/* People-on-Site log -- ported from the workplace console (workplace-platform web/*.css @ 7881c7a),
   scoped to .wpl so nothing else in the retail console changes. Owner 2026-09-29: the retail Detection
   Log must look and work like People on Site. Tokens: workplace light = retail day, dark = retail night.
   Generated by scratchpad/wpl_build.py (rules chosen by class name). */
.wpl{
  --v4-bg:#EEF1F2; --v4-surface:#FFFFFF; --v4-surface-2:#F7F9F9; --v4-surface-3:#EFF3F3;
  --v4-line:#DCE2E3; --v4-line-strong:#C3CCCD;
  --v4-ink:#152220; --v4-ink-2:#4A5857; --v4-ink-3:#5F6C6B;   /* VQ: ref #7D8A89 was 3.0–3.6:1 as text → 5.2:1 */
  --v4-muted:#5F6D6C;
  --v4-accent:#0E6B62; --v4-accent-ink:#FFFFFF; --v4-accent-soft:#DCEFEC; --v4-accent-2:#12877B;
  --v4-crit:#B3261E; --v4-crit-soft:#F8E1DF; --v4-crit-ink:#9E2019;
  --v4-high:#C2621C; --v4-high-soft:#FBE8DA; --v4-high-ink:#94470F;
  --v4-med:#A9821A;  --v4-med-soft:#F7EDCD;  --v4-med-ink:#735708;
  --v4-info:#2C5AA0; --v4-info-soft:#DEE7F5; --v4-info-ink:#244C88;
  --v4-ok:#2E7D4F;   --v4-ok-soft:#DDF0E4;   --v4-ok-ink:#23653F;
  --v4-z-work:#0E6B62; --v4-z-meet:#2C5AA0; --v4-z-cafe:#C2621C; --v4-z-common:#A9821A;
  --v4-z-lobby:#7D8A89; --v4-z-out:#D8DEDF; --v4-z-park:#5B5F7A;
  --v4-hover:color-mix(in srgb,var(--v4-accent-soft) 45%,var(--v4-surface-2));
  --v4-selected:var(--v4-accent-soft);
  --v4-focus:0 0 0 3px color-mix(in srgb,var(--v4-accent) 16%,transparent);
  --v4-shadow-1:0 1px 2px rgba(10,28,25,.05),0 8px 24px rgba(10,28,25,.05);
  --v4-shadow-2:0 12px 36px rgba(10,28,25,.10),0 2px 8px rgba(10,28,25,.06);
  --v4-shadow-3:0 20px 60px rgba(5,20,18,.18);
  --v4-glass:color-mix(in srgb,var(--v4-surface) 86%,transparent);
  --v4-scrim:rgba(10,20,19,.35);
  --v4-ease:cubic-bezier(.22,.8,.3,1);
  --v4-font:"Inter Tight",Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --v4-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --v4-r:6px; --v4-r-lg:10px; --v4-side:232px; --v4-top:56px; --v4-max:1400px;
  /* person type — ONE pill shape; Employee = teal + solid person, Visitor = orange + dashed person */
  --v4-emp:var(--v4-accent); --v4-emp-bg:var(--v4-accent-soft); --v4-emp-line:color-mix(in srgb,var(--v4-accent) 34%,transparent);
  --v4-vis:var(--v4-high-ink); --v4-vis-bg:var(--v4-high-soft); --v4-vis-line:color-mix(in srgb,var(--v4-high) 60%,transparent);


  /* spacing (4px base) */
  --v4-space-1:4px; --v4-space-2:8px; --v4-space-3:12px; --v4-space-4:16px; --v4-space-5:20px; --v4-space-6:24px; --v4-space-8:32px; --v4-space-10:40px;
  /* radii */
  --v4-r-sm:4px; --v4-r-md:8px; --v4-r-xl:14px; --v4-r-pill:999px;       /* + --v4-r (6) and --v4-r-lg (10) above */
  /* type scale (role names) */
  --v4-fs-3xs:11px; --v4-fs-2xs:11px; --v4-fs-xs:11px;   /* VQ: nothing below 11px */ --v4-fs-meta:11.5px; --v4-fs-sm:12px; --v4-fs-ui:12.5px;
  --v4-fs-base:13px; --v4-fs-nav:13.5px; --v4-fs-md:14px; --v4-fs-lg:15px; --v4-fs-title:16px; --v4-fs-h2:17px;
  --v4-fs-kpi-sm:22px; --v4-fs-kpi:26px;
  --v4-fw-reg:400; --v4-fw-med:500; --v4-fw-semi:600;
  --v4-lh-tight:1.25; --v4-lh:1.45;
  /* heading hierarchy: page title (top bar) → section (h2) → card (h3) → group label (h4) */
  --v4-h1:var(--v4-fw-semi) var(--v4-fs-title)/var(--v4-lh-tight) var(--v4-font);
  --v4-h2:var(--v4-fw-semi) var(--v4-fs-h2)/var(--v4-lh-tight) var(--v4-font);
  --v4-h3:var(--v4-fw-semi) var(--v4-fs-md)/1.3 var(--v4-font);
  --v4-h4:var(--v4-fw-semi) var(--v4-fs-xs)/1.3 var(--v4-font);
  /* icons */
  --v4-ic-sm:14px; --v4-ic:16px; --v4-ic-lg:20px;
  /* control heights */
  --v4-h-sm:26px; --v4-h:32px; --v4-h-lg:38px;
  /* tables */
  --v4-row-h:40px; --v4-row-h-compact:34px; --v4-cell-y:8px; --v4-cell-x:10px;
  /* surfaces of overlays */
  --v4-drawer-w:480px; --v4-drawer-pad:var(--v4-space-5); --v4-modal-pad:var(--v4-space-4); --v4-card-pad:var(--v4-space-4);
  /* charts */
  --v4-chart-pad:var(--v4-space-3) var(--v4-space-2) var(--v4-space-1);
  /* motion: 150–300 ms, one easing */
  --v4-dur-fast:150ms; --v4-dur:200ms; --v4-dur-slow:280ms;
  /* border strengths */
  --v4-bw:1px; --v4-bw-strong:1.5px; --v4-bw-focus:2px;

--t:.18s cubic-bezier(.4,0,.2,1); --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace; --ease:cubic-bezier(.2,.8,.2,1); --motion-fast:140ms; --violet:#8b6ee8; --v4-pad-card:var(--v4-space-4); --v4-card-bd:1px solid var(--v4-line); --v4-card-head-h:28px; --v4-card-pad:var(--v4-space-4); --v4-card-r:var(--v4-r-xl); --v4-card-sh:var(--v4-shadow-1);}
[data-theme="night"] .wpl{
  --v4-bg:#0F1615; --v4-surface:#172120; --v4-surface-2:#1E2A29; --v4-surface-3:#1A2524;
  --v4-line:#293736; --v4-line-strong:#3A4A49;
  --v4-ink:#EAF0EF; --v4-ink-2:#B4C0BF; --v4-ink-3:#8E9D9C; --v4-muted:#93A2A1;   /* VQ: ink-3 ≥4.5:1 on surface-2 */
  --v4-accent:#4CC2B4; --v4-accent-ink:#0B1413; --v4-accent-soft:#183B37; --v4-accent-2:#6fd3c7;
  --v4-crit:#F08A83; --v4-crit-soft:#4A1F1C; --v4-crit-ink:#F4A09A;
  --v4-high:#F0A56B; --v4-high-soft:#4A2E1A; --v4-high-ink:#F3B584;
  --v4-med:#E3C15E;  --v4-med-soft:#463A15;  --v4-med-ink:#E8CB76;
  --v4-info:#86ACE8; --v4-info-soft:#1D2E4A; --v4-info-ink:#9DBCEE;
  --v4-ok:#79C795;   --v4-ok-soft:#1B3A28;   --v4-ok-ink:#8ED3A7;
  --v4-z-work:#4CC2B4; --v4-z-meet:#86ACE8; --v4-z-cafe:#F0A56B; --v4-z-common:#E3C15E;
  --v4-z-lobby:#8E9C9B; --v4-z-out:#2A3736; --v4-z-park:#9A9FC4;
  --v4-shadow-1:0 1px 2px rgba(0,0,0,.22),0 10px 28px rgba(0,0,0,.16);
  --v4-shadow-2:0 14px 42px rgba(0,0,0,.30),0 2px 8px rgba(0,0,0,.20);
  --v4-shadow-3:0 28px 80px rgba(0,0,0,.45);
  --v4-glass:color-mix(in srgb,var(--v4-surface) 88%,transparent);
  --v4-scrim:rgba(0,0,0,.5);
  --v4-vis:var(--v4-high-ink);
}
.wpl{
  --v4-panel:var(--v4-surface); --v4-panel2:var(--v4-surface-2); --v4-panel3:var(--v4-surface-3); --v4-raise:var(--v4-surface-2);
  --v4-text:var(--v4-ink); --v4-text2:var(--v4-ink-2); --v4-faint:var(--v4-ink-3);
  --v4-line2:var(--v4-line-strong);
  --v4-brand:var(--v4-accent); --v4-brand2:var(--v4-info); --v4-brandSoft:var(--v4-accent-soft); --v4-brandInk:var(--v4-accent);
  --v4-green:var(--v4-ok); --v4-red:var(--v4-crit); --v4-yellow:var(--v4-med); --v4-orange:var(--v4-high);
  --v4-cyan:var(--v4-info); --v4-violet:var(--v4-z-park);
  --v4-ok-bg:var(--v4-ok-soft); --v4-bad-ink:var(--v4-crit-ink); --v4-bad-bg:var(--v4-crit-soft);
  --v4-warn-ink:var(--v4-med-ink); --v4-warn-bg:var(--v4-med-soft); --v4-info-bg:var(--v4-info-soft);
  --v4-card-shadow:var(--v4-shadow-1); --v4-shadow:var(--v4-shadow-2); --v4-drawer-shadow:var(--v4-shadow-3);
  --v4-r-kpi:var(--v4-r-lg); --v4-r-wrap:var(--v4-r-lg); --v4-r-ctl:var(--v4-r);
}
.wpl{
  --bg:var(--v4-bg); --panel:var(--v4-surface); --panel-2:var(--v4-surface-2); --panel-3:var(--v4-surface-3);
  --ink:var(--v4-ink); --ink-2:var(--v4-ink-2); --muted:var(--v4-muted); --faint:var(--v4-ink-3);
  --line:var(--v4-line); --line-2:var(--v4-line-strong); --line-strong:var(--v4-line-strong);
  --brand:var(--v4-accent); --brand-2:var(--v4-accent-2); --cyan:var(--v4-info);
  --ok:var(--v4-ok); --ok-bg:var(--v4-ok-soft); --warn:var(--v4-med); --warn-bg:var(--v4-med-soft);
  --bad:var(--v4-crit); --bad-bg:var(--v4-crit-soft); --info:var(--v4-info); --info-bg:var(--v4-info-soft);
  --surface-hover:var(--v4-hover); --surface-selected:var(--v4-selected); --focus-ring:var(--v4-focus);
  --sh-1:var(--v4-shadow-1); --sh-2:var(--v4-shadow-1); --sh-3:var(--v4-shadow-3);
  --sh-brand:0 8px 20px color-mix(in srgb,var(--v4-accent) 22%,transparent);
  --shadow-card:var(--v4-shadow-1); --shadow-hover:var(--v4-shadow-2); --shadow-float:var(--v4-shadow-3);
  --grid:var(--v4-line);
  --r:var(--v4-r-lg); --r-sm:8px; --r-xs:var(--v4-r);
  --font-display:var(--v4-font);
  --nav:var(--v4-surface); --nav-2:var(--v4-surface); --nav-ink:var(--v4-ink-2); --nav-ink-2:var(--v4-ink-3);
  --nav-overlay:var(--v4-surface-2); --nav-overlay-2:var(--v4-line); --nav-border:var(--v4-line); --nav-hover-ink:var(--v4-ink);

--accent:var(--v4-accent);color:var(--v4-ink);font-family:var(--v4-font)}
.wpl .mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.wpl input, .wpl select{font:inherit;color:inherit}
.wpl .muted{color:var(--muted)}
.wpl .sm{font-size:11px}
.wpl .spacer{flex:1}
.wpl .btn.disabled{opacity:.4;pointer-events:none}
.wpl select, .wpl input{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);
  border-radius:9px;padding:8px 11px;transition:var(--t);font-weight:500}
.wpl select:hover, .wpl input:hover{border-color:var(--line-2)}
.wpl select:focus, .wpl input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--info-bg)}
.wpl .searchwrap input{padding-left:32px;width:100%}
.wpl .btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);
  color:var(--ink);border-radius:10px;padding:8px 13px;font-weight:600;cursor:pointer;transition:var(--t)}
.wpl .btn:hover{background:var(--panel-2);border-color:var(--line-2)}
.wpl .btn.ghost svg{color:var(--brand)}
.wpl .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:17px;box-shadow:var(--sh-2)}
.wpl .chips{display:flex;gap:6px;flex-wrap:wrap}
.wpl .tablewrap{overflow-x:auto;margin:0 -3px}
.wpl table{width:100%;border-collapse:collapse}
.wpl th{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
  text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
.wpl td{padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px;vertical-align:middle}
.wpl tbody tr{transition:background var(--t)}
.wpl tbody tr:hover{background:var(--panel-2)}
.wpl tbody tr:last-child td{border-bottom:0}
.wpl input[type=range]{-webkit-appearance:none;width:100%;height:6px;border-radius:99px;
  background:var(--panel-3);padding:0;margin-top:8px}
.wpl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;
  background:var(--brand);cursor:pointer;box-shadow:var(--sh-1);border:2px solid var(--panel)}
.wpl tr[data-prow2]:hover{background:var(--panel-2)}
.wpl .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;
  font-size:12px;font-weight:550;border:1px solid var(--line);background:var(--panel-2);
  color:var(--ink);white-space:nowrap}
.wpl .chip svg{width:14px;height:14px}
.wpl .chip.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:var(--ok-bg);color:var(--ok)}
.wpl .chip.warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-bg);color:var(--warn)}
.wpl .btn:hover .ic3d{transform:translateY(-1.5px) scale(1.09);filter:drop-shadow(0 3px 5px rgba(20,30,60,.30)) brightness(1.05)}
.wpl .tablewrap{position:relative}
.wpl .tablewrap thead th{position:sticky;top:0;z-index:2;background:var(--panel);
  font-size:10px;color:var(--muted);
  box-shadow:inset 0 -1px 0 var(--line)}
.wpl .tablewrap table{border-collapse:separate;border-spacing:0}
.wpl td.mono, .wpl td .mono{font-variant-numeric:tabular-nums}
.wpl tbody tr:hover td{background:var(--panel-2)}
.wpl tbody tr{cursor:default}
.wpl tbody tr[data-prow], .wpl tbody tr[data-prow2]{cursor:pointer}
.wpl tbody tr[data-prow] td:first-child, .wpl tbody tr[data-prow2] td:first-child{box-shadow:inset 3px 0 0 transparent;transition:box-shadow var(--t)}
.wpl tbody tr[data-prow]:hover td:first-child, .wpl tbody tr[data-prow2]:hover td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.wpl .tablewrap::after{content:'';position:sticky;bottom:0;left:0;display:block;height:14px;
  background:linear-gradient(to top,var(--panel),transparent);pointer-events:none;margin-top:-14px}
.wpl .empty{border:1px dashed var(--line);border-radius:12px;background:var(--panel-2);
  line-height:1.6}
.wpl .bigtable{max-height:none!important}
.wpl .bigtable table{width:100%;font-size:14px}
.wpl .bigtable thead th{font-size:11.5px;letter-spacing:.03em;padding:12px 14px}
.wpl .bigtable tbody td{padding:12px 14px;vertical-align:middle}
.wpl .bigtable tbody tr{transition:background var(--t)}
.wpl .bigtable tbody tr:hover{background:var(--info-bg)}
.wpl .bigtable .ithumb{width:40px;height:40px;border-radius:9px}
.wpl .logstd table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}
.wpl .logstd th, .wpl .logstd td{box-sizing:border-box}
.wpl .logstd thead th{padding:9px clamp(5px,.5vw,9px);font-size:11px;font-weight:700;line-height:1.15;
  color:var(--muted);text-transform:uppercase;letter-spacing:.02em;white-space:normal;overflow:visible;text-overflow:clip;
  background:var(--panel-2);border-bottom:1px solid var(--line);vertical-align:middle;text-align:left;position:sticky;top:0}
.wpl .logstd tbody td{padding:9px clamp(5px,.5vw,9px);font-size:12.5px;line-height:1.25;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;vertical-align:middle;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.wpl .logstd tbody tr{height:56px;cursor:pointer;transition:background var(--t)}
.wpl .logstd tbody tr:hover{background:var(--info-bg)}
.wpl .logstd tbody td b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}
.wpl .logstd tbody td .ithumb, .wpl .logstd tbody td .noimg, .wpl .logstd tbody td .asthumb{width:40px;height:40px;min-width:40px;border-radius:8px;object-fit:contain;display:block}
.wpl .logstd .astag{font-size:11px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;border-radius:6px}
.wpl .logstd .asdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle}
.wpl .logstd .asdot.ok{background:var(--ok)}
.wpl .logstd .asdot.bad{background:var(--bad)}
.wpl .logstd .asmatch{color:var(--ok);font-weight:700}
.wpl .astag.act-work{background:var(--ok-bg);color:var(--ok)}
.wpl .astag.act-meet{background:var(--info-bg);color:var(--brand)}
.wpl .astag.act-stand{background:var(--warn-bg);color:var(--warn)}
.wpl .astag.act-walk{background:#8b6ee81f;color:var(--violet)}
.wpl .astag.act-other{background:var(--panel-3);color:var(--ink-2)}
.wpl .logstd :is(th,td):nth-child(1){width:13%;min-width:112px}
.wpl .logstd :is(th,td):nth-child(2){width:8%;min-width:64px}
.wpl .logstd :is(th,td):nth-child(3){width:8%;min-width:74px}
.wpl .logstd :is(th,td):nth-child(4){width:9%;min-width:72px}
.wpl .logstd :is(th,td):nth-child(5){width:6%;min-width:64px;text-align:center}
.wpl .logstd :is(th,td):nth-child(6){width:14%;min-width:124px}
.wpl .logstd :is(th,td):nth-child(7){width:15%;min-width:108px}
.wpl .logstd :is(th,td):nth-child(8){width:8%;min-width:84px}
.wpl .logstd :is(th,td):nth-child(9){width:12%;min-width:92px}
.wpl .logstd :is(th,td):nth-child(10){width:8%;min-width:58px}
.wpl .logstd thead th{white-space:nowrap}
.wpl .logstd :is(th,td):nth-child(3){white-space:nowrap}
.wpl .ddate{color:var(--muted);font-size:11px}
.wpl .logsel :is(th,td):nth-child(1){width:34px;min-width:34px;text-align:center}
.wpl .logsel :is(th,td):nth-child(2){width:13%;min-width:112px}
.wpl .logsel :is(th,td):nth-child(3){width:8%;min-width:64px}
.wpl .logsel :is(th,td):nth-child(4){width:8%;min-width:74px;white-space:nowrap}
.wpl .logsel :is(th,td):nth-child(5){width:9%;min-width:72px}
.wpl .logsel :is(th,td):nth-child(6){width:6%;min-width:64px;text-align:center}
.wpl .logsel :is(th,td):nth-child(7){width:13%;min-width:118px}
.wpl .logsel :is(th,td):nth-child(8){width:15%;min-width:104px}
.wpl .logsel :is(th,td):nth-child(9){width:8%;min-width:84px}
.wpl .logsel :is(th,td):nth-child(10){width:11%;min-width:88px}
.wpl .logsel :is(th,td):nth-child(11){width:8%;min-width:56px}
.wpl .selcol input{cursor:pointer;margin:0}
.wpl .detbulk .btn.sm{padding:5px 12px;font-size:12px}
.wpl .detshow{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.wpl .detshow select{padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:12.5px}
.wpl .btn.danger{background:transparent;border:1px solid var(--bad);color:var(--bad);font-weight:700}
.wpl .btn.danger:hover{background:var(--bad);color:#fff}
.wpl .logstd thead th .thlbl{vertical-align:middle}
.wpl .colf{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:5px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;vertical-align:middle;opacity:.7}
.wpl .colf:hover{background:var(--panel-3);color:var(--ink);opacity:1}
.wpl .colf.on{background:var(--brand);color:#fff;opacity:1}
.wpl .colmenu{position:fixed;z-index:1200;min-width:196px;max-width:280px;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:0 12px 34px rgba(0,0,0,.28);padding:10px;font-size:13px}
.wpl .colmenu .colmh{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.wpl .colmenu .colmlist{max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.wpl .colmenu .colcb{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px;cursor:pointer;font-size:12.5px}
.wpl .colmenu .colcb:hover{background:var(--panel-3)}
.wpl .colmenu .colcb input{cursor:pointer;margin:0}
.wpl .colmenu .colmq, .wpl .colmenu .colml input{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2,var(--panel));color:var(--ink);font-size:12.5px}
.wpl .colmenu .colml{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);margin-bottom:8px}
.wpl .colmenu .colmft{display:flex;justify-content:space-between;gap:8px;margin-top:10px}
.wpl .colmenu .btn.sm{padding:5px 12px;font-size:12px}
.wpl .detfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.wpl .detfoot-l, .wpl .detfoot-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wpl .detgo input{width:56px;text-align:center;padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font-size:12px}
.wpl .detfoot .aspg{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font-size:12.5px;cursor:pointer}
.wpl .detfoot .aspg.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.wpl .detfoot .aspg:disabled{opacity:.4;cursor:default}
.wpl .detfoot .asdots{color:var(--muted);padding:0 2px}
.wpl .actmenu button.danger{color:var(--bad)}
.wpl .actmenu button.danger svg{color:var(--bad)}
.wpl .actmenu button.danger:hover{background:var(--bad-bg)}
.wpl .btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--sh-brand)}
.wpl .btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2)}
.wpl .btn.primary svg{color:#fff}
.wpl .btn.sm{padding:6px 10px;font-size:12px;border-radius:8px}
.wpl .asfield input, .wpl .asfield select{width:100%;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);
  border-radius:9px;padding:9px 11px;font:inherit;font-size:13px;transition:var(--t);appearance:none}
.wpl .asfield input:focus, .wpl .asfield select:focus{outline:none;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--info-bg)}
.wpl .asfield select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 16px,calc(100% - 10px) 16px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}
.wpl .asinput input{padding-right:38px}
.wpl .asbtns .btn{padding:10px 22px}
.wpl .astag{display:inline-flex;align-items:center;padding:2px 9px;border-radius:7px;font-size:11.5px;font-weight:600;background:var(--panel-3);color:var(--ink-2);border:1px solid var(--line)}
.wpl .astag.ok{background:var(--info-bg);color:var(--brand);border-color:transparent}
.wpl .astag.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.wpl .astag.violet{background:#8b6ee81f;color:var(--violet);border-color:transparent}
.wpl .asst{color:var(--ink-2)}
.wpl .asdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}
.wpl .asdot.ok{background:var(--ok)}
.wpl .asdot.bad{background:var(--bad)}
.wpl .aspg{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);background:var(--panel);color:var(--ink-2);
  border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:var(--t)}
.wpl .aspg:hover:not(:disabled):not(.on){background:var(--panel-2);border-color:var(--line-2)}
.wpl .aspg.on{background:var(--brand);border-color:var(--brand);color:#fff}
.wpl .aspg:disabled{opacity:.4;cursor:not-allowed}
.wpl .asdots{color:var(--muted);padding:0 3px}
.wpl .ohtbl table{width:100%;border-collapse:collapse}
.wpl .ohtbl th{text-align:left;padding:14px 18px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--brand);font-weight:600;border-bottom:1px solid var(--line)}
.wpl .ohtbl td{padding:13px 18px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.wpl .ohtbl tr:last-child td{border-bottom:0}
.wpl .ddir table{width:100%;border-collapse:collapse}
.wpl .ddir th{text-align:left;padding:14px 18px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--brand);font-weight:700;border-bottom:1px solid var(--line)}
.wpl .ddir td{padding:14px 18px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.wpl .ddir tr:last-child td{border-bottom:0}
.wpl .eptbl table{width:100%;border-collapse:collapse}
.wpl .eptbl th{text-align:left;padding:13px 16px;font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--brand);font-weight:700;border-bottom:1px solid var(--line)}
.wpl .eptbl td{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.wpl .eptbl tr:last-child td{border-bottom:0}
.wpl select.podf{cursor:pointer}
.wpl .tablewrap{overflow-x:auto;
  overscroll-behavior-x:contain;      
  -webkit-overflow-scrolling:touch;   
  scrollbar-width:thin;}
.wpl .tablewrap::-webkit-scrollbar{height:6px}
.wpl .tablewrap::-webkit-scrollbar-track{background:transparent}
.wpl .tablewrap::-webkit-scrollbar-thumb{background:rgba(127,140,165,.34);border-radius:99px}
.wpl .tablewrap::-webkit-scrollbar-thumb:hover{background:rgba(127,140,165,.55)}
.wpl .tablewrap table{width:100%;border-collapse:collapse}
.wpl .tablewrap th, .wpl .tablewrap td{padding:5px 8px;
  font-size:12px;
  line-height:1.35;
  white-space:nowrap;                 
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:260px;                    
  vertical-align:middle;}
.wpl .tablewrap th{font-size:11px;
  letter-spacing:.02em;
  padding-top:7px;padding-bottom:7px;}
.wpl .tablewrap td.mono, .wpl .tablewrap td.sm{max-width:none;width:1%}
.wpl .tablewrap .av{width:26px;height:26px;font-size:10px}
.wpl .card.cardwide{grid-column:1 / -1 !important}
.wpl .tablewrap table{table-layout:fixed;width:100%;min-width:0}
.wpl .tablewrap th, .wpl .tablewrap td{max-width:none}
.wpl .mmap .card-node{cursor: pointer;
  pointer-events: auto;}
.wpl .mmap .card-node foreignObject{overflow: visible !important;}
.wpl .mmap .card-name{font-size: 26px;
  font-weight: 700;
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -0.01em;}
.wpl .mmap .card-count-line{display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 25px;
  line-height: 1.15;
  margin-top: 1px;}
.wpl .mmap .card-node:active .floating-card{box-shadow: var(--sh-1);}
.wpl .p2val.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em}
.wpl .mmap .card-name{font-size:30px; line-height:1.1}
.wpl .ws-icon-btn.danger{color:#ff684f}
.wpl .wfstd :is(th,td):nth-child(1){width:16.4%;min-width:150px}
.wpl .wfstd :is(th,td):nth-child(2){width:8.6%;min-width:88px}
.wpl .wfstd :is(th,td):nth-child(3){width:6.7%;min-width:70px}
.wpl .wfstd :is(th,td):nth-child(4){width:8.1%;min-width:84px}
.wpl .wfstd :is(th,td):nth-child(5){width:7.4%;min-width:76px;text-align:center}
.wpl .wfstd :is(th,td):nth-child(6){width:14.5%;min-width:150px}
.wpl .wfstd :is(th,td):nth-child(7){width:13.6%;min-width:126px}
.wpl .wfstd :is(th,td):nth-child(8){width:12%;min-width:122px}
.wpl .wfstd thead th{white-space:nowrap}
.wpl .wfstd :is(th,td):nth-child(9){width:12.7%;min-width:116px}
.wpl .attreg table{min-width:940px}
.wpl .attreg tbody tr{height:46px;cursor:default}
.wpl .attreg tbody td, .wpl .attreg thead th{padding:7px clamp(5px,.5vw,10px)}
.wpl .attreg :is(th,td):nth-child(1){width:46px;min-width:46px}
.wpl .attreg :is(th,td):nth-child(2){width:17%;min-width:161px}
.wpl .attreg :is(th,td):nth-child(3){width:7.2%;min-width:70px}
.wpl .attreg :is(th,td):nth-child(4){width:20%;min-width:190px}
.wpl .attreg :is(th,td):nth-child(5){width:13.5%;min-width:126px}
.wpl .attreg :is(th,td):nth-child(6){width:10.5%;min-width:98px}
.wpl .attreg :is(th,td):nth-child(7){width:10.5%;min-width:98px}
.wpl .attreg :is(th,td):nth-child(8){width:13.4%;min-width:140px}
.wpl .attreg thead th{white-space:nowrap}
.wpl .attreg :is(th,td):nth-child(9){width:50px;min-width:50px;padding-left:0;padding-right:6px}
.wpl .empdir table{table-layout:fixed}
.wpl .empdir tbody tr{height:46px}
.wpl .empdir tbody td, .wpl .empdir thead th{padding:7px clamp(5px,.5vw,10px)}
.wpl .empdir :is(th,td):nth-child(1){width:25.5%;min-width:184px}
.wpl .empdir :is(th,td):nth-child(2){width:13%;min-width:104px}
.wpl .empdir :is(th,td):nth-child(3){width:23%;min-width:170px}
.wpl .empdir :is(th,td):nth-child(4){width:13%;min-width:96px}
.wpl .empdir :is(th,td):nth-child(5){width:11.5%;min-width:94px}
.wpl .empdir :is(th,td):nth-child(6){width:14%;min-width:118px;text-align:right}
.wpl .empact .btn.sm{padding:4px 12px;font-size:12px}
.wpl .setsw input{position:absolute;opacity:0;width:0;height:0}
.wpl .setsw input:checked+span{background:var(--ok)}
.wpl .setsw input:checked+span::after{transform:translateX(17px)}
.wpl .setfield input{width:88px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.wpl .setdfoot .muted{margin-right:auto;text-align:left}
.wpl .setrow input, .wpl .setrow select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;
  background:var(--panel);color:var(--ink);font-size:13px;width:100%}
.wpl .setshifts :is(th,td):nth-child(1){width:5.7%;min-width:38px}
.wpl .setshifts :is(th,td):nth-child(2){width:26.6%;min-width:178px}
.wpl .setshifts :is(th,td):nth-child(3){width:25.0%;min-width:167px}
.wpl .setshifts :is(th,td):nth-child(4){width:16.3%;min-width:109px}
.wpl .setshifts :is(th,td):nth-child(5){width:14.2%;min-width:95px}
.wpl .setshifts :is(th,td):nth-child(6){width:12.3%;min-width:82px}
.wpl .setshifts table{min-width:669px}
.wpl .setdir :is(th,td):nth-child(1){width:33.7%;min-width:189px}
.wpl .setdir :is(th,td):nth-child(2){width:28.2%;min-width:158px}
.wpl .setdir :is(th,td):nth-child(3){width:19.4%;min-width:109px}
.wpl .setdir :is(th,td):nth-child(4){width:18.7%;min-width:105px}
.wpl .setdir table{min-width:561px}
.wpl .setdays :is(th,td):nth-child(1){width:14.8%;min-width:105px}
.wpl .setdays :is(th,td):nth-child(2){width:19.7%;min-width:140px}
.wpl .setdays :is(th,td):nth-child(3){width:15.0%;min-width:106px}
.wpl .setdays :is(th,td):nth-child(4){width:35.4%;min-width:251px}
.wpl .setdays :is(th,td):nth-child(5){width:15.1%;min-width:107px}
.wpl .setdays table{min-width:709px}
.wpl .setareas :is(th,td):nth-child(1){width:18.1%;min-width:155px}
.wpl .setareas :is(th,td):nth-child(2){width:11.4%;min-width:97px}
.wpl .setareas :is(th,td):nth-child(3){width:13.5%;min-width:115px}
.wpl .setareas :is(th,td):nth-child(4){width:22.5%;min-width:192px}
.wpl .setareas :is(th,td):nth-child(5){width:13.5%;min-width:115px}
.wpl .setareas :is(th,td):nth-child(6){width:11.5%;min-width:98px}
.wpl .setareas :is(th,td):nth-child(7){width:9.6%;min-width:82px}
.wpl .setareas table{min-width:854px}
.wpl .setalerts :is(th,td):nth-child(1){width:26.2%;min-width:129px}
.wpl .setalerts :is(th,td):nth-child(2){width:18.9%;min-width:93px}
.wpl .setalerts :is(th,td):nth-child(3){width:26.8%;min-width:132px}
.wpl .setalerts :is(th,td):nth-child(4){width:28.0%;min-width:138px}
.wpl .setalerts table{min-width:492px}
.wpl .setcams :is(th,td):nth-child(1){width:15.2%;min-width:135px}
.wpl .setcams :is(th,td):nth-child(2){width:20.9%;min-width:186px}
.wpl .setcams :is(th,td):nth-child(3){width:14.4%;min-width:128px}
.wpl .setcams :is(th,td):nth-child(4){width:13.6%;min-width:121px}
.wpl .setcams :is(th,td):nth-child(5){width:12.0%;min-width:107px}
.wpl .setcams :is(th,td):nth-child(6){width:14.6%;min-width:130px}
.wpl .setcams :is(th,td):nth-child(7){width:9.2%;min-width:82px}
.wpl .setcams table{min-width:889px}
.wpl .setemps :is(th,td):nth-child(1){width:16.4%;min-width:110px}
.wpl .setemps :is(th,td):nth-child(2){width:19.0%;min-width:127px}
.wpl .setemps :is(th,td):nth-child(3){width:28.7%;min-width:192px}
.wpl .setemps :is(th,td):nth-child(4){width:23.6%;min-width:158px}
.wpl .setemps :is(th,td):nth-child(5){width:12.3%;min-width:82px}
.wpl .setemps table{min-width:669px}
.wpl .sethist :is(th,td):nth-child(1){width:19.6%;min-width:128px}
.wpl .sethist :is(th,td):nth-child(2){width:19.6%;min-width:128px}
.wpl .sethist :is(th,td):nth-child(3){width:21.6%;min-width:141px}
.wpl .sethist :is(th,td):nth-child(4){width:26.3%;min-width:172px}
.wpl .sethist :is(th,td):nth-child(5){width:13.0%;min-width:85px}
.wpl .sethist table{min-width:654px}
.wpl .setlegacy .tablewrap table{table-layout:auto;width:auto;min-width:100%}
.wpl .setlegacy .tablewrap :is(th,td){white-space:nowrap;overflow:visible;text-overflow:clip;
  width:auto;min-width:0}
.wpl .card, .wpl .card > *, .wpl .tablewrap, .wpl .tablewrap > *{min-width:0;}
.wpl .toolbar, .wpl .card .head{align-items:center;}
.wpl .btn{flex:0 0 auto;}
.wpl .btn svg{vertical-align:middle;}
.wpl .card{overflow-wrap:anywhere;}
.wpl .card .head{min-width:0;}
.wpl .card .head > div{min-width:0;}
.wpl .card .head h3, .wpl .card .head small{max-width:100%;}
.wpl .tablewrap{max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;}
.wpl table{max-width:100%;}
.wpl th, .wpl td{vertical-align:middle;}
.wpl td .btn, .wpl td .iconbtn{white-space:nowrap;}
.wpl .btn:focus-visible{outline-offset:2px;}
.wpl .tablewrap, .wpl .colmenu .colmlist, .wpl .wfstd, .wpl .logstd, .wpl .bigtable{scrollbar-width: none;          
  -ms-overflow-style: none;}
.wpl .tablewrap::-webkit-scrollbar, .wpl .colmenu .colmlist::-webkit-scrollbar, .wpl .wfstd::-webkit-scrollbar, .wpl .logstd::-webkit-scrollbar, .wpl .bigtable::-webkit-scrollbar{width: 0;
  height: 0;
  display: none;}
.wpl .gen-v2 .genv2-btn.primary{border:0;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff}
.wpl .gen-v2 .genv2-btn.ghost{border:0;background:transparent;color:var(--muted)}
.wpl .mdet-filters input, .wpl .mdet-filters select{width:100%;min-height:38px;padding:8px 10px;border-radius:10px;
  border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font:inherit;font-size:13px}
.wpl .mdet-filters .btn{grid-column:1/-1;min-height:38px}
.wpl input, .wpl select{font:inherit;color:inherit}
.wpl .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.wpl .muted{color:var(--muted)}
.wpl .sm{font-size:12px}
.wpl .btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:var(--r-xs);border:1px solid var(--line-strong);background:var(--panel);font-weight:500;font-size:13px;
  transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
.wpl .btn svg{width:15px;height:15px}
.wpl .btn:hover{background:var(--surface-hover)}
.wpl .btn:active{transform:translateY(1px)}
.wpl .btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.wpl .btn.primary:hover{filter:brightness(1.06)}
.wpl .btn.ghost{border-color:transparent;background:transparent}
.wpl .btn.danger{color:var(--bad);border-color:transparent;background:transparent}
.wpl .btn.danger:hover{background:var(--bad-bg)}
.wpl .btn.sm{height:28px;padding:0 10px;font-size:12px}
.wpl .chips{display:flex;gap:6px;flex-wrap:wrap}
.wpl .chip{border:1px solid var(--line);background:var(--panel);color:var(--ink-2);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:500;line-height:1.3;
  transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease)}
.wpl .chip:hover{background:var(--surface-hover);border-color:var(--line-strong)}
.wpl .chip.on{background:var(--surface-selected);border-color:rgba(79,99,246,.35);color:var(--brand);font-weight:600}
.wpl .chip .n{opacity:.6;margin-left:4px;font-weight:500}
.wpl .search{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:0 12px;height:36px;min-width:240px;transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease)}
.wpl .search:focus-within{border-color:rgba(79,99,246,.5);box-shadow:var(--focus-ring)}
.wpl .search svg{width:15px;height:15px;color:var(--muted)}
.wpl .search input{border:0;background:none;outline:none;flex:1;font-size:13px}
.wpl .select{height:36px;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:0 10px;font-size:13px}
.wpl .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.wpl .toolbar .spacer{flex:1}
.wpl .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);padding:18px 20px;
  transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
.wpl .card.support{background:var(--panel-2);border-color:transparent;box-shadow:none}
.wpl .card.interactive{cursor:pointer}
.wpl .card.interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--line-strong)}
.wpl .card .head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.wpl .card .head h3{font-size:14.5px}
.wpl .card .head small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.wpl tr:hover .chev{color:var(--brand);transform:translateX(2px)}
.wpl .bar i.muted{background:var(--faint)}
.wpl .tablewrap{overflow-x:auto}
.wpl table{width:100%;border-collapse:separate;border-spacing:0}
.wpl thead th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}
.wpl tbody td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.wpl tbody tr{transition:background var(--motion-fast) var(--ease)}
.wpl tbody tr.click{cursor:pointer}
.wpl tbody tr.click:hover{background:var(--surface-hover)}
.wpl tbody tr.selected{background:var(--surface-selected)}
.wpl th:first-child, .wpl td:first-child{padding-left:4px}
.wpl td.chevcell{width:28px;text-align:right;padding-right:14px}
.wpl .empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px;line-height:1.5}
.wpl .empty b{display:block;color:var(--ink);font-weight:600;margin-bottom:3px}
.wpl .errbox .sm{color:var(--muted)}
.wpl .field input, .wpl .field select{height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;background:var(--panel)}
.wpl .card{padding:14px 15px}
.wpl .card .head{margin-bottom:11px}
.wpl tbody td{padding:9px 12px}
.wpl thead th{padding:8px 12px}
.wpl .card .head h3{text-transform:none;letter-spacing:-.015em;color:var(--ink)}
.wpl .card .head h3::before{display:none;content:none}
.wpl .card .head small{text-transform:none;letter-spacing:0}
.wpl td:first-child{white-space:nowrap}
.wpl .pagehead .btn input[type=date]{border:0;background:none;color:inherit;font:inherit;padding:0;width:114px}
.wpl tbody tr[hidden]{display:none}
.wpl .v4-type, .wpl .astag.ok, .wpl .astag.warn{display:inline-flex;align-items:center;gap:4px;padding:1px 7px 1px 5px;border-radius:var(--v4-r-pill);
  font:600 var(--v4-fs-xs)/1.45 var(--v4-font);letter-spacing:0;text-transform:none;white-space:nowrap;border:1px solid transparent;vertical-align:middle;max-width:none}
.wpl .v4-type--emp, .wpl .astag.ok{color:var(--v4-emp);background:var(--v4-emp-bg);border-color:var(--v4-emp-line)}
.wpl .v4-type--vis, .wpl .astag.warn{color:var(--v4-vis);background:var(--v4-vis-bg);border-color:var(--v4-vis-line);border-style:dashed}
.wpl .v4-type--unres, .wpl .astag.unres{color:var(--v4-muted);background:var(--v4-surface-2);border-color:var(--v4-line);border-style:dotted}
.wpl .astag.ok::before, .wpl .astag.warn::before{content:"";width:12px;height:12px;flex:none;background:currentColor;
  -webkit-mask:var(--v4-glyph) center/contain no-repeat;mask:var(--v4-glyph) center/contain no-repeat}
.wpl .astag.ok{--v4-glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M4.8 20c.9-3.7 3.7-5.6 7.2-5.6s6.3 1.9 7.2 5.6'/%3E%3C/svg%3E")}
.wpl .astag.warn{--v4-glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M4.8 20c.9-3.7 3.7-5.6 7.2-5.6s6.3 1.9 7.2 5.6' stroke-dasharray='2.4 2.2'/%3E%3Crect x='15.5' y='14.5' width='5' height='4' rx='.8'/%3E%3C/svg%3E")}
.wpl .card{padding:var(--v4-pad-card)}
.wpl .card > .head{min-height:var(--v4-card-head-h);margin-bottom:var(--v4-space-3)}
.wpl .card{border-radius:var(--v4-card-r)}
.wpl .card{background:var(--v4-surface);border:var(--v4-card-bd);border-radius:var(--v4-card-r);box-shadow:var(--v4-card-sh)}
.wpl .card.support{background:var(--v4-surface-2)}
.wpl .card .head h3{font:600 var(--v4-fs-md)/1.3 var(--v4-font);letter-spacing:-.01em;text-transform:none;color:var(--v4-ink)}
.wpl .card .head small{font-size:var(--v4-fs-sm);color:var(--v4-muted)}
.wpl .tablewrap{border:1px solid var(--v4-line);border-radius:var(--v4-r-lg);max-width:100%;overflow-x:auto;background:var(--v4-surface)}
.wpl thead th, .wpl th{font:500 var(--v4-fs-sm)/1.3 var(--v4-font);letter-spacing:0;color:var(--v4-muted);background:var(--v4-surface-2);border-bottom:1px solid var(--v4-line)}
.wpl tbody td, .wpl td{font-size:var(--v4-fs-base);border-bottom:1px solid var(--v4-line)}
.wpl tbody tr.click:hover, .wpl tbody tr[data-prow2]:hover, .wpl tbody tr:hover{background:var(--v4-hover)}
.wpl tbody tr.click:hover td, .wpl tbody tr[data-prow2]:hover td{background:transparent}
.wpl .btn{position:relative;overflow:hidden;min-height:var(--v4-h);border-radius:var(--v4-r);border:1px solid var(--v4-line-strong);
  background:var(--v4-surface);color:var(--v4-ink);font-weight:500;font-family:var(--v4-font);
  transition:transform var(--v4-dur-fast) var(--v4-ease),box-shadow var(--v4-dur-fast) var(--v4-ease),background-color var(--v4-dur-fast) ease,border-color var(--v4-dur-fast) ease}
.wpl .btn{height:auto;min-height:var(--v4-h);font-size:var(--v4-fs-base)}
.wpl .btn:hover{background:var(--v4-surface-2);color:var(--v4-ink);border-color:var(--v4-line-strong);transform:translateY(-1px);box-shadow:0 6px 16px rgba(10,28,25,.08)}
.wpl .btn:active{transform:translateY(0) scale(.985)}
.wpl .btn.primary{background:var(--v4-accent);border-color:var(--v4-accent);color:var(--v4-accent-ink);
  box-shadow:0 8px 20px color-mix(in srgb,var(--v4-accent) 22%,transparent)}
.wpl .btn.primary:hover{background:var(--v4-accent-2);border-color:var(--v4-accent-2);color:var(--v4-accent-ink)}
.wpl .btn.ghost{background:transparent}
.wpl .btn.danger{color:var(--v4-crit-ink);border-color:color-mix(in srgb,var(--v4-crit) 40%,var(--v4-line));background:transparent}
.wpl .btn[disabled]{opacity:.5;transform:none;box-shadow:none}
.wpl .select, .wpl select, .wpl input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]){border-color:var(--v4-line-strong);background-color:var(--v4-surface);color:var(--v4-ink);border-radius:var(--v4-r)}
.wpl .search input, .wpl .search input:focus{border:0;background:none;box-shadow:none}
.wpl .select:focus, .wpl select:focus, .wpl input:focus{border-color:var(--v4-accent);box-shadow:var(--v4-focus);outline:none}
.wpl .search{border-radius:var(--v4-r);border-color:var(--v4-line-strong);background:var(--v4-surface)}
.wpl .search:focus-within{border-color:var(--v4-accent);box-shadow:var(--v4-focus)}
.wpl .search svg{color:var(--v4-ink-3)}
.wpl input[type=checkbox], .wpl input[type=radio]{accent-color:var(--v4-accent)}
.wpl .chips{gap:2px;padding:3px;background:var(--v4-surface-2);border:1px solid var(--v4-line);border-radius:var(--v4-r-lg);width:max-content;max-width:100%}
.wpl .chip{border:0;background:transparent;border-radius:var(--v4-r);padding:5px 11px;font-size:var(--v4-fs-ui);font-weight:500;color:var(--v4-ink-2);line-height:1.4}
.wpl .chip:hover{color:var(--v4-ink);background:transparent}
.wpl .chip.on{background:var(--v4-surface);color:var(--v4-accent);font-weight:600;box-shadow:0 1px 2px rgba(10,28,25,.08),0 0 0 1px var(--v4-line)}
.wpl .empty{color:var(--v4-muted);font-size:var(--v4-fs-base)}
.wpl .dthumb{background-color:var(--v4-surface-2);border-radius:var(--v4-r)}
.wpl .card{padding:var(--v4-card-pad)}
.wpl .card .head{margin-bottom:var(--v4-space-3);gap:var(--v4-space-3)}
.wpl .card .head h3{font:var(--v4-h3);letter-spacing:-.01em}
.wpl .btn{min-height:var(--v4-h);padding:0 var(--v4-space-3);font-size:var(--v4-fs-base);gap:var(--v4-space-2)}
.wpl .btn svg{width:var(--v4-ic);height:var(--v4-ic)}
.wpl select, .wpl .select, .wpl input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]){min-height:var(--v4-h);font-size:var(--v4-fs-base)}
.wpl .search{min-height:var(--v4-h)}
.wpl tbody td{padding:var(--v4-cell-y) var(--v4-cell-x);height:var(--v4-row-h);vertical-align:middle}
.wpl thead th{padding:var(--v4-cell-y) var(--v4-cell-x);height:var(--v4-row-h-compact);white-space:nowrap}
.wpl tbody tr:last-child td{border-bottom:0}
.wpl tbody tr.on td, .wpl tbody tr[aria-selected="true"] td{background:var(--v4-selected)}
.wpl tbody td{text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}
.wpl :is(.v3,#view) td .astag.ok, .wpl :is(.v3,#view) td .astag.warn, .wpl :is(.v3,#view) td .v4-type{padding:1px var(--v4-space-1) 1px 3px;gap:3px;font-size:var(--v4-fs-2xs);letter-spacing:-.01em}
.wpl :is(.v3,#view) td .astag.ok::before, .wpl :is(.v3,#view) td .astag.warn::before{width:11px;height:11px}
.wpl :is(.v3,#view) td:has(> .astag), .wpl :is(.v3,#view) td:has(> .v4-type){text-overflow:clip;overflow:visible}
.wpl .btn.primary, .wpl .btn.pri, .wpl .btn.primary:hover{color:var(--v4-accent-ink)!important}
.wpl .btn.primary svg{color:var(--v4-accent-ink)}
.wpl .v4m-enrbar .btn{white-space:nowrap;border:1px solid transparent!important;background:transparent!important;color:var(--v4-ink-2)!important;
  min-height:var(--v4-h);padding:var(--v4-space-1) var(--v4-space-3);border-radius:var(--v4-r);font-size:var(--v4-fs-ui);font-weight:var(--v4-fw-med);box-shadow:none!important}
.wpl .v4m-enrbar .btn:hover{background:var(--v4-surface)!important;color:var(--v4-accent)!important;border-color:var(--v4-line)!important;box-shadow:var(--v4-shadow-1)!important}
.wpl .v4m-enrbar .btn:focus-visible{outline:none;box-shadow:var(--v4-focus)!important}
.wpl .v4m-modal .tablewrap{border:1px solid var(--v4-line);border-radius:var(--v4-r-lg);overflow:auto;max-width:100%;background:var(--v4-surface);box-shadow:var(--v4-shadow-1)}
.wpl .v4m-modal table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--v4-fs-base)}
.wpl .v4m-modal .tablewrap > table{min-width:780px}
.wpl .v4m-modal.v4m-ro .tablewrap > table{min-width:640px}
.wpl .v4m-modal thead th{position:sticky;top:0;z-index:1;text-align:left;font:var(--v4-fw-med) var(--v4-fs-sm)/1.3 var(--v4-font);color:var(--v4-muted);
  background:var(--v4-surface-2);padding:var(--v4-space-2) var(--v4-space-3);border-bottom:1px solid var(--v4-line);white-space:nowrap}
.wpl .v4m-modal tbody td{padding:var(--v4-space-2) var(--v4-space-3);border-bottom:1px solid var(--v4-line);vertical-align:middle;color:var(--v4-ink);
  transition:background-color var(--v4-dur-fast) ease}
.wpl .v4m-modal tbody tr:last-child td{border-bottom:0}
.wpl .v4m-modal tbody tr:hover td{background:var(--v4-hover)}
.wpl .v4m-modal thead th, .wpl .v4m-modal tbody td{max-width:none;overflow:visible;text-overflow:clip}
.wpl .v4m-modal tbody td:last-child{white-space:nowrap}
.wpl .v4m-modal tbody td:last-child .btn + .btn{margin-left:var(--v4-space-1)}
.wpl .v4m-modal .btn.sm{min-height:var(--v4-h);padding:var(--v4-space-1) var(--v4-space-2);font-size:var(--v4-fs-ui)}
.wpl .v4m-modal .btn svg{width:14px;height:14px}
.wpl .v4m-modal .btn.ghost.sm[data-elframes]{font-family:var(--v4-mono);gap:var(--v4-space-1)}
.wpl .v4m-modal .empty{color:var(--v4-muted);padding:var(--v4-space-8) var(--v4-space-4)!important;border:1px dashed var(--v4-line-strong);border-radius:var(--v4-r-lg);background:var(--v4-surface-2)}
.wpl .v4m-modal.v4m-ro .tablewrap th:last-child, .wpl .v4m-modal.v4m-ro .tablewrap td:last-child{display:none}
.wpl .gen-v2 .genv2-btn.primary{background:var(--v4-accent);color:var(--v4-accent-ink);box-shadow:var(--v4-shadow-1)}
.wpl .gen-v2 .genv2-btn.primary:hover{background:var(--v4-accent-2);transform:translateY(-1px);box-shadow:var(--v4-shadow-2)}
.wpl .gen-v2 .genv2-btn.primary:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}
.wpl .gen-v2 .genv2-btn.ghost{color:var(--v4-ink-2)}
.wpl .gen-v2 .genv2-btn.ghost:hover{color:var(--v4-crit-ink)}
.wpl .colmenu{background:var(--v4-surface);border:1px solid var(--v4-line);border-radius:var(--v4-r-lg);box-shadow:var(--v4-shadow-3);color:var(--v4-ink);padding:var(--v4-space-3);
  animation:v4mIn var(--v4-dur) var(--v4-ease) both}
.wpl .colmenu .colmh{color:var(--v4-muted);font:var(--v4-fw-semi) var(--v4-fs-xs)/1.3 var(--v4-font);letter-spacing:.05em}
.wpl .colmenu .colcb{border-radius:var(--v4-r);padding:var(--v4-space-1) var(--v4-space-2);transition:background-color var(--v4-dur-fast) ease}
.wpl .colmenu .colcb:hover{background:var(--v4-hover)}
.wpl .colmenu .colcb:has(input:checked){background:var(--v4-accent-soft);color:var(--v4-accent)}
.wpl .colmenu .colmq, .wpl .colmenu .colml input{border:1px solid var(--v4-line-strong);border-radius:var(--v4-r);background:var(--v4-surface);color:var(--v4-ink);min-height:var(--v4-h)}
.wpl .colmenu .colmq:focus, .wpl .colmenu .colml input:focus{border-color:var(--v4-accent);box-shadow:var(--v4-focus);outline:none}
.wpl .colmenu .colmft{padding-top:var(--v4-space-2);border-top:1px solid var(--v4-line)}
.wpl .colmenu .btn{border-radius:var(--v4-r);border:1px solid var(--v4-line-strong);background:var(--v4-surface);color:var(--v4-ink);min-height:var(--v4-h)}
.wpl .colmenu .btn.primary{background:var(--v4-accent);border-color:var(--v4-accent);color:var(--v4-accent-ink)}
.wpl .actmenu button.danger{color:var(--v4-crit-ink)}
.wpl .detfoot{border-top:1px solid var(--v4-line)}
.wpl .detfoot .aspg{min-width:var(--v4-h);height:var(--v4-h);border-radius:var(--v4-r);border:1px solid var(--v4-line);background:var(--v4-surface);color:var(--v4-ink);
  font:var(--v4-fw-med) var(--v4-fs-ui)/1 var(--v4-font);transition:background-color var(--v4-dur-fast) ease,border-color var(--v4-dur-fast) ease,transform var(--v4-dur-fast) var(--v4-ease)}
.wpl .detfoot .aspg:hover:not(:disabled){background:var(--v4-surface-2);border-color:var(--v4-line-strong);transform:translateY(-1px)}
.wpl .detfoot .aspg.on{background:var(--v4-accent);border-color:var(--v4-accent);color:var(--v4-accent-ink);font-weight:var(--v4-fw-semi);box-shadow:var(--v4-shadow-1)}
.wpl .detfoot .aspg:focus-visible{outline:none;box-shadow:var(--v4-focus)}
.wpl .detgo input{border-radius:var(--v4-r);border:1px solid var(--v4-line-strong);background:var(--v4-surface);color:var(--v4-ink);min-height:var(--v4-h)}
.wpl tr[data-phmore] td{background:var(--v4-surface-2)!important;color:var(--v4-muted);font-size:var(--v4-fs-sm);text-align:center}
.wpl .mdet-filters input, .wpl .mdet-filters select{min-width:0;width:100%;min-height:var(--v4-h-lg);border:1px solid var(--v4-line-strong);border-radius:var(--v4-r);
  background:var(--v4-surface);color:var(--v4-ink);padding:var(--v4-space-1) var(--v4-space-2);font:inherit;font-size:var(--v4-fs-nav)}
.wpl .mdet-filters input:focus, .wpl .mdet-filters select:focus{border-color:var(--v4-accent);box-shadow:var(--v4-focus);outline:none}
.wpl tr.v4m-noaccess-row td, .wpl tr.v4m-noaccess-row:hover td{padding:var(--v4-space-4)!important;background:var(--v4-surface)!important;box-shadow:none!important}
.wpl .tablewrap{min-width:0;max-width:100%}
.wpl .v4ev-root .mono, .wpl .v4in-root .mono{font-family: var(--v4-mono); font-variant-numeric: tabular-nums;}
.wpl .v4ev-root .ddate, .wpl .v4in-root .ddate{color: var(--ev-muted); margin-right: 4px;}
.wpl .v4ev-btn.primary, .wpl .v4in-btn.primary{background: var(--ev-brand); border-color: var(--ev-brand); color: var(--ev-brand-ink); box-shadow: 0 8px 20px color-mix(in srgb, var(--ev-brand) 22%, transparent);}
.wpl .v4ev-btn.primary:hover, .wpl .v4in-btn.primary:hover{background: var(--v4-accent-2); border-color: var(--v4-accent-2);}
.wpl tr[data-prow2] td > div[style*="width:52px"]{cursor: zoom-in;}
.wpl tr[data-prow2] td > div[style*="width:52px"]{transition: box-shadow .16s var(--v4-ease), transform .16s var(--v4-ease);}
.wpl tr[data-prow2] td > div[style*="width:52px"]:hover{box-shadow: 0 0 0 2px var(--v4-accent), var(--v4-shadow-1); transform: translateY(-1px);}

/* retail-only: [hidden] must win over the ported .btn display; one toolbar row on wide screens */
.wpl [hidden]{display:none!important}
.wpl .chips{flex-wrap:nowrap}.wpl .chip,.wpl .detshow,.wpl .toolbar .btn{white-space:nowrap}.wpl .toolbar #dlZone{max-width:170px}.wpl .toolbar{gap:10px}.wpl .toolbar .search{min-width:0;width:190px;flex:0 0 190px}.wpl .toolbar .spacer{min-width:0}.wpl .toolbar #dlDate{width:132px}
