/* GENERATED by scope_css.py from the prototype base.css: every rule confined to v7 markup. Edit v7-base.src.css, not this. */
/* PeopleSense redesign — shared design system (one file for Workplace + Retail, phone / tablet / desktop).
   Layout: phone <768 = top bar + bottom nav; tablet 768-1199 = icon rail + content; desktop >=1200 = full sidebar.
   Product colour: <body data-product="wp"> dark teal, <body data-product="rt"> green-teal on light. */:root{
  --bg:#f3f6f5; --surface:#ffffff; --sunk:#eef2f1; --line:#dde5e3; --line-2:#c9d4d1;
  --ink:#13201e; --ink-2:#43534f; --ink-3:#5f6e6a;
  --brand:#0e5c55; --brand-2:#e3f0ee; --brand-ink:#ffffff;
  --ok:#1a7a50; --ok-bg:#e3f4ec; --warn:#965a0b; --warn-bg:#fbf0dc; --bad:#b8352b; --bad-bg:#fbe6e3; --info:#2d5fa6; --info-bg:#e6eef9;
  --r-sm:8px; --r:12px; --r-lg:16px;
  --f:"Inter","Segoe UI",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --fs-xs:11px; --fs-sm:12px; --fs:13px; --fs-md:14px; --fs-lg:16px; --fs-xl:20px; --fs-num:22px;
  --gap:12px; --pad:14px;
}
body[data-product="wp"]{ --brand:#0b4f4a; --brand-2:#e0eeec; }
body[data-product="rt"]{ --brand:#13705f; --brand-2:#e2f3ee; }
*{box-sizing:border-box}
html, body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font:var(--fs)/1.45 var(--f);-webkit-font-smoothing:antialiased}
:where(#v7app, .sheet.v7) button:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) select:not(:where(.v7-legacy, .v7-legacy *)){font:inherit;color:inherit}
:where(#v7app, .sheet.v7) a:not(:where(.v7-legacy, .v7-legacy *)){color:var(--brand)}
:where(#v7app, .sheet.v7) .num:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .mono:not(:where(.v7-legacy, .v7-legacy *)){font-variant-numeric:tabular-nums}
:where(#v7app, .sheet.v7) .mono:not(:where(.v7-legacy, .v7-legacy *)){font-family:var(--mono);font-size:var(--fs-sm)}
:where(#v7app, .sheet.v7) .muted:not(:where(.v7-legacy, .v7-legacy *)){color:var(--ink-3)} :where(#v7app, .sheet.v7) .ink2:not(:where(.v7-legacy, .v7-legacy *)){color:var(--ink-2)}

/* ---------- app frame ---------- */:where(#v7app, .sheet.v7) .app:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).app{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;min-height:100vh}
:where(#v7app, .sheet.v7) .side:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side{display:none}
:where(#v7app, .sheet.v7) .top:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
:where(#v7app, .sheet.v7) .logo:not(:where(.v7-legacy, .v7-legacy *)){width:30px;height:30px;border-radius:8px;flex:none}
:where(#v7app, .sheet.v7) .site:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-direction:column;line-height:1.15;min-width:0}
:where(#v7app, .sheet.v7) .site b:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-md)} :where(#v7app, .sheet.v7) .site span:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .top .grow:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).top .grow{flex:1}
:where(#v7app, .sheet.v7) .live-pill:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;color:var(--ok);background:var(--ok-bg);border-radius:999px;padding:3px 9px;white-space:nowrap}
:where(#v7app, .sheet.v7) .live-pill:not(:where(.v7-legacy, .v7-legacy *))::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
:where(#v7app, .sheet.v7) .icon-btn:not(:where(.v7-legacy, .v7-legacy *)){width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;position:relative}
:where(#v7app, .sheet.v7) .icon-btn .dot:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--bad);color:#fff;font-size:11px;display:grid;place-items:center;padding:0 4px}
:where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){padding:14px;padding-bottom:84px;min-width:0}
:where(#v7app, .sheet.v7) .bnav:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
:where(#v7app, .sheet.v7) .bnav button:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav button{border:0;background:none;display:grid;justify-items:center;gap:2px;font-size:var(--fs-xs);color:var(--ink-3);cursor:pointer;padding:4px 0;position:relative}
:where(#v7app, .sheet.v7) .bnav button .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav button .ic-wrap{width:52px;height:28px;border-radius:14px;display:grid;place-items:center}
:where(#v7app, .sheet.v7) .bnav button[aria-current="page"]:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav button[aria-current="page"]{color:var(--brand);font-weight:600}
:where(#v7app, .sheet.v7) .bnav button[aria-current="page"] .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav button[aria-current="page"] .ic-wrap{background:var(--brand-2)}
:where(#v7app, .sheet.v7) .bnav .badge-n:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav .badge-n{position:absolute;top:0;left:calc(50% + 6px);background:var(--ink);color:#fff;border-radius:9px;font-size:11px;padding:0 5px;line-height:16px}

@media (min-width:768px){
  :where(#v7app, .sheet.v7) .app:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).app{grid-template-columns:72px 1fr;grid-template-rows:auto 1fr}
  :where(#v7app, .sheet.v7) .side:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side{display:flex;flex-direction:column;grid-row:1/3;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow:auto;padding:10px 8px;gap:2px}
  :where(#v7app, .sheet.v7) .side .brand:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side .brand{display:flex;align-items:center;gap:10px;padding:4px 6px 12px}
  :where(#v7app, .sheet.v7) .side .brand b:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side .brand b{display:none}
  :where(#v7app, .sheet.v7) .side .grp:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side .grp{display:none}
  :where(#v7app, .sheet.v7) .side button:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side button{display:flex;align-items:center;gap:10px;border:0;background:none;border-radius:10px;padding:9px;cursor:pointer;color:var(--ink-2);font-size:var(--fs);text-align:left;justify-content:center}
  :where(#v7app, .sheet.v7) .side button span:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side button span{display:none}
  :where(#v7app, .sheet.v7) .side button[aria-current="page"]:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side button[aria-current="page"]{background:var(--brand-2);color:var(--brand);font-weight:600}
  :where(#v7app, .sheet.v7) .top:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).top{grid-column:2}
  :where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){grid-column:2;padding:18px 20px 28px}
  :where(#v7app, .sheet.v7) .bnav:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).bnav{display:none}
}
@media (min-width:1200px){
  :where(#v7app, .sheet.v7) .app:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).app{grid-template-columns:232px 1fr}
  :where(#v7app, .sheet.v7) .side .brand b:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side .brand b{display:block;font-size:var(--fs-md)}
  :where(#v7app, .sheet.v7) .side .grp:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side .grp{display:block;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:12px 9px 4px}
  :where(#v7app, .sheet.v7) .side button:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side button{justify-content:flex-start;padding:7px 10px}
  :where(#v7app, .sheet.v7) .side button span:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side button span{display:inline}
  :where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){padding:20px 28px 32px}
}

/* ---------- page header ---------- */:where(#v7app, .sheet.v7) .page:not(:where(.v7-legacy, .v7-legacy *)){display:none;flex-direction:column;gap:var(--gap)}
:where(#v7app, .sheet.v7) .page.on:not(:where(.v7-legacy, .v7-legacy *)){display:flex}
:where(#v7app, .sheet.v7) .ph:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
:where(#v7app, .sheet.v7) .ph h1:not(:where(.v7-legacy, .v7-legacy *)){margin:0;font-size:var(--fs-xl);line-height:1.2;font-weight:700}
:where(#v7app, .sheet.v7) .ph p:not(:where(.v7-legacy, .v7-legacy *)){margin:2px 0 0;color:var(--ink-3);font-size:var(--fs);max-width:70ch}
:where(#v7app, .sheet.v7) .ph .acts:not(:where(.v7-legacy, .v7-legacy *)){margin-left:auto;display:flex;flex-wrap:wrap;gap:8px}
:where(#v7app, .sheet.v7) .ph>div:first-child:not(:where(.v7-legacy, .v7-legacy *)){min-width:0;flex:1 1 220px}

/* ---------- controls ---------- */:where(#v7app, .sheet.v7) .btn:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);font-size:var(--fs);font-weight:500;cursor:pointer;white-space:nowrap}
:where(#v7app, .sheet.v7) .btn.pri:not(:where(.v7-legacy, .v7-legacy *)){background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
:where(#v7app, .sheet.v7) .btn.sm:not(:where(.v7-legacy, .v7-legacy *)){height:32px;margin-block:-2px;padding:0 9px;font-size:var(--fs-sm);border-radius:8px}
/* owner 11-11: small buttons and chips are 32 px tap targets that take their old 28 px in the layout (margin -2px);
   a disabled button looks disabled (Alert history Next on the last page) */:where(#v7app, .sheet.v7) .btn:disabled:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .btn[disabled]:not(:where(.v7-legacy, .v7-legacy *)){opacity:.45;cursor:default;pointer-events:none}
:where(#v7app, .sheet.v7) .btn.ghost:not(:where(.v7-legacy, .v7-legacy *)){border-color:transparent;background:transparent;color:var(--brand)}
:where(#v7app, .sheet.v7) .tabs:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
:where(#v7app, .sheet.v7) .tabs button:not(:where(.v7-legacy, .v7-legacy *)){border:0;background:none;padding:8px 12px;font-size:var(--fs);color:var(--ink-3);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
:where(#v7app, .sheet.v7) .tabs button[aria-selected="true"]:not(:where(.v7-legacy, .v7-legacy *)){color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
:where(#v7app, .sheet.v7) .tabs .n:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);background:var(--sunk);border-radius:8px;padding:0 6px;margin-left:4px}
:where(#v7app, .sheet.v7) .seg:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;background:var(--sunk);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
:where(#v7app, .sheet.v7) .seg button:not(:where(.v7-legacy, .v7-legacy *)){border:0;background:none;border-radius:8px;padding:5px 10px;font-size:var(--fs-sm);cursor:pointer;color:var(--ink-2)}
:where(#v7app, .sheet.v7) .seg button[aria-pressed="true"]:not(:where(.v7-legacy, .v7-legacy *)){background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
:where(#v7app, .sheet.v7) .bar:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-wrap:wrap;gap:8px;align-items:center}
:where(#v7app, .sheet.v7) .bar .search:not(:where(.v7-legacy, .v7-legacy *)){flex:1 1 200px;min-width:0;height:34px;border:1px solid var(--line-2);border-radius:10px;padding:0 10px 0 32px;background:var(--surface) no-repeat 10px 50%/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c7b77' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
:where(#v7app, .sheet.v7) .sel:not(:where(.v7-legacy, .v7-legacy *)){height:34px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);padding:0 8px;font-size:var(--fs);max-width:100%}
:where(#v7app, .sheet.v7) .chip:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;align-items:center;gap:5px;height:32px;margin-block:-2px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}
:where(#v7app, .sheet.v7) .chip[aria-pressed="true"]:not(:where(.v7-legacy, .v7-legacy *)){background:var(--brand);border-color:var(--brand);color:#fff}
:where(#v7app, .sheet.v7) .chip .n:not(:where(.v7-legacy, .v7-legacy *)){opacity:.75}
:where(#v7app, .sheet.v7) .chips:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}

/* ---------- cards + KPI tiles (one size system) ---------- */:where(#v7app, .sheet.v7) .card:not(:where(.v7-legacy, .v7-legacy *)){background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--pad);min-width:0}
:where(#v7app, .sheet.v7) .card>h2:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .card-h h2:not(:where(.v7-legacy, .v7-legacy *)){margin:0;font-size:var(--fs-md);font-weight:600}
:where(#v7app, .sheet.v7) .card-h:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:center;gap:8px;margin-bottom:10px}
:where(#v7app, .sheet.v7) .card-h .r:not(:where(.v7-legacy, .v7-legacy *)){margin-left:auto;display:flex;gap:6px;align-items:center}
:where(#v7app, .sheet.v7) .card-h .sub:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-sm);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .kpis:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:768px){:where(#v7app, .sheet.v7) .kpis:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
:where(#v7app, .sheet.v7) .kpi:not(:where(.v7-legacy, .v7-legacy *)){background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;display:grid;gap:2px;min-width:0;cursor:pointer;text-align:left}
:where(#v7app, .sheet.v7) .kpi .l:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-sm);color:var(--ink-2);display:flex;align-items:center;gap:6px}
:where(#v7app, .sheet.v7) .kpi .v:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-num);font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}
:where(#v7app, .sheet.v7) .kpi .v small:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-md);font-weight:500;color:var(--ink-3)}
:where(#v7app, .sheet.v7) .kpi .s:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .kpi.hero:not(:where(.v7-legacy, .v7-legacy *)){grid-column:1/-1;background:var(--brand);color:#fff;border-color:var(--brand)}
:where(#v7app, .sheet.v7) .kpi.hero .l:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .kpi.hero .s:not(:where(.v7-legacy, .v7-legacy *)){color:rgba(255,255,255,.82)} :where(#v7app, .sheet.v7) .kpi.hero .v:not(:where(.v7-legacy, .v7-legacy *)){font-size:30px}
:where(#v7app, .sheet.v7) .kpi.warn:not(:where(.v7-legacy, .v7-legacy *)){border-color:#efd3a4;background:var(--warn-bg)} :where(#v7app, .sheet.v7) .kpi.bad:not(:where(.v7-legacy, .v7-legacy *)){border-color:#f0c2bc;background:var(--bad-bg)}
:where(#v7app, .sheet.v7) .grid2:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:var(--gap);grid-template-columns:1fr}
:where(#v7app, .sheet.v7) .grid3:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:var(--gap);grid-template-columns:1fr}
@media (min-width:900px){:where(#v7app, .sheet.v7) .grid2:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(2,minmax(0,1fr))}:where(#v7app, .sheet.v7) .grid3:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(3,minmax(0,1fr))}:where(#v7app, .sheet.v7) .span2:not(:where(.v7-legacy, .v7-legacy *)){grid-column:span 2}}

/* ---------- status badges ---------- */:where(#v7app, .sheet.v7) .b:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:600;border-radius:6px;padding:1px 7px;white-space:nowrap;background:var(--sunk);color:var(--ink-2)}
:where(#v7app, .sheet.v7) .b.ok:not(:where(.v7-legacy, .v7-legacy *)){background:var(--ok-bg);color:var(--ok)} :where(#v7app, .sheet.v7) .b.warn:not(:where(.v7-legacy, .v7-legacy *)){background:var(--warn-bg);color:var(--warn)} :where(#v7app, .sheet.v7) .b.bad:not(:where(.v7-legacy, .v7-legacy *)){background:var(--bad-bg);color:var(--bad)} :where(#v7app, .sheet.v7) .b.info:not(:where(.v7-legacy, .v7-legacy *)){background:var(--info-bg);color:var(--info)} :where(#v7app, .sheet.v7) .b.brand:not(:where(.v7-legacy, .v7-legacy *)){background:var(--brand-2);color:var(--brand)}
:where(#v7app, .sheet.v7) .dot-in:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .dot-out:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:600}
:where(#v7app, .sheet.v7) .dot-in:not(:where(.v7-legacy, .v7-legacy *)){color:var(--ok)} :where(#v7app, .sheet.v7) .dot-out:not(:where(.v7-legacy, .v7-legacy *)){color:var(--bad)}
:where(#v7app, .sheet.v7) .dot-in:not(:where(.v7-legacy, .v7-legacy *))::before, :where(#v7app, .sheet.v7) .dot-out:not(:where(.v7-legacy, .v7-legacy *))::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

/* ---------- photos (placeholder: blurred, no faces) ---------- */:where(#v7app, .sheet.v7) .ph-img:not(:where(.v7-legacy, .v7-legacy *)){flex:none;border-radius:8px;background:radial-gradient(circle at 50% 38%,#b9c3c1 0 22%,transparent 23%),radial-gradient(ellipse at 50% 100%,#b9c3c1 0 45%,transparent 46%),linear-gradient(#dfe5e4,#cfd8d6);filter:blur(.6px)}
:where(#v7app, .sheet.v7) .ph-img.s:not(:where(.v7-legacy, .v7-legacy *)){width:32px;height:32px} :where(#v7app, .sheet.v7) .ph-img.m:not(:where(.v7-legacy, .v7-legacy *)){width:44px;height:44px} :where(#v7app, .sheet.v7) .ph-img.l:not(:where(.v7-legacy, .v7-legacy *)){width:72px;height:72px;border-radius:12px}
:where(#v7app, .sheet.v7) .ph-img.snap:not(:where(.v7-legacy, .v7-legacy *)){width:56px;height:42px;border-radius:6px;background:linear-gradient(135deg,#5d6a68,#2f3836)}
:where(#v7app, .sheet.v7) .ph-img.round:not(:where(.v7-legacy, .v7-legacy *)){border-radius:50%}

/* ---------- DATA TABLE: full table on >=768, compact 2-line rows on phone (no one-word rows) ---------- */:where(#v7app, .sheet.v7) .tbl-wrap:not(:where(.v7-legacy, .v7-legacy *)){background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
:where(#v7app, .sheet.v7) .tbl:not(:where(.v7-legacy, .v7-legacy *)){width:100%;border-collapse:collapse;font-size:var(--fs)}
:where(#v7app, .sheet.v7) .tbl th:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);text-align:left;padding:8px 10px;background:var(--sunk);white-space:nowrap;position:sticky;top:0}
:where(#v7app, .sheet.v7) .tbl td:not(:where(.v7-legacy, .v7-legacy *)){padding:7px 10px;border-top:1px solid var(--line);vertical-align:middle}
:where(#v7app, .sheet.v7) .tbl tr:not(:where(.v7-legacy, .v7-legacy *)){cursor:pointer} :where(#v7app, .sheet.v7) .tbl tbody tr:hover:not(:where(.v7-legacy, .v7-legacy *)){background:color-mix(in srgb,var(--brand,#0f766e) 6%,transparent)}
:where(#v7app, .sheet.v7) .tbl .who:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:center;gap:8px;min-width:0}
:where(#v7app, .sheet.v7) .tbl .who b:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-weight:600;white-space:nowrap}
:where(#v7app, .sheet.v7) .tbl .who span:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-size:var(--fs-xs);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .tbl .r:not(:where(.v7-legacy, .v7-legacy *)){text-align:right}
:where(#v7app, .sheet.v7) .tbl-foot:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .tbl-foot .r:not(:where(.v7-legacy, .v7-legacy *)){margin-left:auto;display:flex;gap:6px}
@media (max-width:767px){
  :where(#v7app, .sheet.v7) .tbl thead:not(:where(.v7-legacy, .v7-legacy *)){display:none}
  :where(#v7app, .sheet.v7) .tbl:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .tbl tbody:not(:where(.v7-legacy, .v7-legacy *)){display:block}
  :where(#v7app, .sheet.v7) .tbl tr:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:auto 1fr auto;column-gap:10px;row-gap:2px;padding:9px 10px;border-top:1px solid var(--line);align-items:center}
  :where(#v7app, .sheet.v7) .tbl td:not(:where(.v7-legacy, .v7-legacy *)){border:0;padding:0;font-size:var(--fs-sm);min-width:0}
  :where(#v7app, .sheet.v7) .tbl td.c-img:not(:where(.v7-legacy, .v7-legacy *)){grid-row:1/4}
  :where(#v7app, .sheet.v7) .tbl td.c-main:not(:where(.v7-legacy, .v7-legacy *)){grid-column:2;font-size:var(--fs)}
  :where(#v7app, .sheet.v7) .tbl td.c-end:not(:where(.v7-legacy, .v7-legacy *)){grid-column:3;grid-row:1;justify-self:end;text-align:right}
  :where(#v7app, .sheet.v7) .tbl td.c-meta:not(:where(.v7-legacy, .v7-legacy *)){grid-column:2/4;color:var(--ink-2)}
  :where(#v7app, .sheet.v7) .tbl td.c-meta:empty:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .tbl td.hide-m:not(:where(.v7-legacy, .v7-legacy *)){display:none}
  :where(#v7app, .sheet.v7) .tbl td[data-l]:not(:where(.v7-legacy, .v7-legacy *))::before{content:attr(data-l) " ";color:var(--ink-3)}
  :where(#v7app, .sheet.v7) .tbl td.c-meta:not(:where(.v7-legacy, .v7-legacy *)){display:inline}
  :where(#v7app, .sheet.v7) .tbl .metas:not(:where(.v7-legacy, .v7-legacy *)){grid-column:2/4;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:var(--fs-sm);color:var(--ink-2)}
}
/* phone meta line helper usable inside td.c-main too */:where(#v7app, .sheet.v7) .meta:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-wrap:wrap;gap:2px 10px;font-size:var(--fs-xs);color:var(--ink-3)}

/* ---------- list rows (feeds, alerts) ---------- */:where(#v7app, .sheet.v7) .list:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-direction:column}
:where(#v7app, .sheet.v7) .row:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);min-width:0;cursor:pointer}
:where(#v7app, .sheet.v7) .row:first-child:not(:where(.v7-legacy, .v7-legacy *)){border-top:0}
:where(#v7app, .sheet.v7) .row .t:not(:where(.v7-legacy, .v7-legacy *)){flex:1;min-width:0}
:where(#v7app, .sheet.v7) .row .t b:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .row .t span:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .row .e:not(:where(.v7-legacy, .v7-legacy *)){text-align:right;font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}
:where(#v7app, .sheet.v7) .sev:not(:where(.v7-legacy, .v7-legacy *)){width:4px;align-self:stretch;border-radius:2px;background:var(--line-2);flex:none}
:where(#v7app, .sheet.v7) .sev.bad:not(:where(.v7-legacy, .v7-legacy *)){background:var(--bad)} :where(#v7app, .sheet.v7) .sev.warn:not(:where(.v7-legacy, .v7-legacy *)){background:var(--warn)} :where(#v7app, .sheet.v7) .sev.info:not(:where(.v7-legacy, .v7-legacy *)){background:var(--info)}

/* ---------- CAMERA TILE: same minimalist look as the current app ---------- */:where(#v7app, .sheet.v7) .cams:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:768px){:where(#v7app, .sheet.v7) .cams:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1200px){:where(#v7app, .sheet.v7) .cams:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(4,minmax(0,1fr))}}
:where(#v7app, .sheet.v7) .cams.wall:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
:where(#v7app, .sheet.v7) .cam:not(:where(.v7-legacy, .v7-legacy *)){position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0d1312;color:#fff;cursor:pointer}
:where(#v7app, .sheet.v7) .cam .vid:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;inset:0;background:radial-gradient(ellipse at 40% 60%,#3b4644 0,#151c1b 70%);filter:blur(1px)}
:where(#v7app, .sheet.v7) .cam .tl:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;top:6px;left:6px;font-size:11px;font-weight:700;letter-spacing:.04em;background:rgba(0,0,0,.55);border-radius:4px;padding:1px 5px;display:flex;align-items:center;gap:4px}
:where(#v7app, .sheet.v7) .cam .tl:not(:where(.v7-legacy, .v7-legacy *))::before{content:"";width:5px;height:5px;border-radius:50%;background:#e54b3c}
:where(#v7app, .sheet.v7) .cam .tl.off:not(:where(.v7-legacy, .v7-legacy *))::before{background:#8a9593}
:where(#v7app, .sheet.v7) .cam .tr:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:6px;background:rgba(0,0,0,.45);display:grid;place-items:center}
:where(#v7app, .sheet.v7) .cam .bl:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;left:7px;bottom:6px;right:52px;line-height:1.15}
:where(#v7app, .sheet.v7) .cam .bl b:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .cam .bl span:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-size:11px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .cam .br:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;right:7px;bottom:6px;font-size:11px;opacity:.9}
:where(#v7app, .sheet.v7) .cam .q:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;right:7px;bottom:20px;font-size:11px;font-weight:700;border:1px solid rgba(255,255,255,.5);border-radius:3px;padding:0 3px}
:where(#v7app, .sheet.v7) .cam.off .vid:not(:where(.v7-legacy, .v7-legacy *)){background:#1b2120} :where(#v7app, .sheet.v7) .cam.off .mid:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;inset:0;display:grid;place-items:center;font-size:11px;opacity:.8}

/* ---------- floor map placeholder ---------- */:where(#v7app, .sheet.v7) .map:not(:where(.v7-legacy, .v7-legacy *)){position:relative;border-radius:var(--r);background:var(--sunk);border:1px solid var(--line);aspect-ratio:16/9;overflow:hidden}
:where(#v7app, .sheet.v7) .map .zone:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;border:1px solid #a9c9c3;background:rgba(14,92,85,.10);border-radius:4px;font-size:11px;color:var(--ink-2);padding:2px 4px}
:where(#v7app, .sheet.v7) .map .zone.hot:not(:where(.v7-legacy, .v7-legacy *)){background:rgba(14,92,85,.35);color:#fff;border-color:transparent}

/* ---------- small charts ---------- */:where(#v7app, .sheet.v7) .bars:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:flex-end;gap:4px;height:90px}
:where(#v7app, .sheet.v7) .bars i:not(:where(.v7-legacy, .v7-legacy *)){flex:1;background:var(--brand);border-radius:3px 3px 0 0;opacity:.85;min-height:2px}
:where(#v7app, .sheet.v7) .bars i.lo:not(:where(.v7-legacy, .v7-legacy *)){opacity:.35}
:where(#v7app, .sheet.v7) .axis:not(:where(.v7-legacy, .v7-legacy *)){display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--ink-3);margin-top:4px}
:where(#v7app, .sheet.v7) .hbar:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:minmax(80px,30%) 1fr auto;gap:8px;align-items:center;font-size:var(--fs-sm);padding:3px 0}
:where(#v7app, .sheet.v7) .hbar .track:not(:where(.v7-legacy, .v7-legacy *)){height:8px;background:var(--sunk);border-radius:4px;overflow:hidden}
:where(#v7app, .sheet.v7) .hbar .track i:not(:where(.v7-legacy, .v7-legacy *)){display:block;height:100%;background:var(--brand);border-radius:4px}
:where(#v7app, .sheet.v7) .heat:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:2px}
:where(#v7app, .sheet.v7) .heat i:not(:where(.v7-legacy, .v7-legacy *)){aspect-ratio:1;border-radius:2px;background:var(--brand)}

/* ---------- person card / detail panel ---------- */:where(#v7app, .sheet.v7) .detail:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:var(--gap)}
:where(#v7app, .sheet.v7) .dl:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:768px){:where(#v7app, .sheet.v7) .dl:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(4,minmax(0,1fr))}}
:where(#v7app, .sheet.v7) .dl>div:not(:where(.v7-legacy, .v7-legacy *)){background:var(--sunk);border-radius:8px;padding:7px 9px;min-width:0}
:where(#v7app, .sheet.v7) .dl dt:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .dl .k:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);color:var(--ink-3)} :where(#v7app, .sheet.v7) .dl dd:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .dl .v:not(:where(.v7-legacy, .v7-legacy *)){margin:0;font-weight:600;font-size:var(--fs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(#v7app, .sheet.v7) .timeline:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:0}
:where(#v7app, .sheet.v7) .timeline .ev:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:52px 14px 1fr;gap:6px;font-size:var(--fs-sm);padding:4px 0}
:where(#v7app, .sheet.v7) .timeline .ev i:not(:where(.v7-legacy, .v7-legacy *)){width:9px;height:9px;border-radius:50%;background:var(--brand);margin-top:4px}

/* ---------- settings rows ---------- */:where(#v7app, .sheet.v7) .set:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
:where(#v7app, .sheet.v7) .set:first-child:not(:where(.v7-legacy, .v7-legacy *)){border-top:0}
:where(#v7app, .sheet.v7) .set .t:not(:where(.v7-legacy, .v7-legacy *)){flex:1;min-width:0} :where(#v7app, .sheet.v7) .set .t b:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-weight:600} :where(#v7app, .sheet.v7) .set .t span:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .sw:not(:where(.v7-legacy, .v7-legacy *)){width:36px;height:20px;border-radius:10px;background:var(--line-2);position:relative;flex:none;cursor:pointer;border:0}
:where(#v7app, .sheet.v7) .sw:not(:where(.v7-legacy, .v7-legacy *))::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
:where(#v7app, .sheet.v7) .sw[aria-checked="true"]:not(:where(.v7-legacy, .v7-legacy *)){background:var(--brand)} :where(#v7app, .sheet.v7) .sw[aria-checked="true"]:not(:where(.v7-legacy, .v7-legacy *))::after{left:18px}

/* ---------- More menu grid ---------- */:where(#v7app, .sheet.v7) .tiles:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:768px){:where(#v7app, .sheet.v7) .tiles:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
:where(#v7app, .sheet.v7) .tile:not(:where(.v7-legacy, .v7-legacy *)){display:grid;justify-items:center;gap:6px;padding:12px 6px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:var(--fs-sm);text-align:center;cursor:pointer}
:where(#v7app, .sheet.v7) .tile .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)){width:36px;height:36px;border-radius:10px;background:var(--brand-2);color:var(--brand);display:grid;place-items:center}

/* ---------- bottom sheet ---------- */:where(#v7app, .sheet.v7) .sheet-bg:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet-bg{position:fixed;inset:0;background:rgba(10,20,18,.35);z-index:50;display:none}
:where(#v7app, .sheet.v7) .sheet:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet{position:fixed;z-index:51;background:var(--surface);display:none;flex-direction:column;gap:10px;padding:16px;left:0;right:0;bottom:0;border-radius:16px 16px 0 0;max-height:85vh;overflow:auto}
@media (min-width:768px){:where(#v7app, .sheet.v7) .sheet:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet{left:auto;top:0;bottom:0;width:420px;border-radius:0}}
:where(#v7app, .sheet.v7) .sheet.on:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.on, :where(#v7app, .sheet.v7) .sheet-bg.on:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet-bg.on{display:flex} :where(#v7app, .sheet.v7) .sheet-bg.on:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet-bg.on{display:block}

/* ---------- icons ---------- */:where(#v7app, .sheet.v7) .ic:not(:where(.v7-legacy, .v7-legacy *)){width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:where(#v7app, .sheet.v7) .ic.s:not(:where(.v7-legacy, .v7-legacy *)){width:14px;height:14px} :where(#v7app, .sheet.v7) .ic.l:not(:where(.v7-legacy, .v7-legacy *)){width:22px;height:22px}
:where(#v7app, .sheet.v7) .empty:not(:where(.v7-legacy, .v7-legacy *)){padding:22px;text-align:center;color:var(--ink-3);font-size:var(--fs-sm)}
:where(#v7app, .sheet.v7) .note:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .pager:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:4px}
:where(#v7app, .sheet.v7) .hide-m:not(:where(.v7-legacy, .v7-legacy *)){} @media (max-width:767px){:where(#v7app, .sheet.v7) .hide-m:not(:where(.v7-legacy, .v7-legacy *)){display:none!important}}
:where(#v7app, .sheet.v7) .only-m:not(:where(.v7-legacy, .v7-legacy *)){display:none} @media (max-width:767px){:where(#v7app, .sheet.v7) .only-m:not(:where(.v7-legacy, .v7-legacy *)){display:revert}}

/* ---------- role preview: Viewer sees counts only ---------- */body[data-role="viewer"] :where(#v7app, .sheet.v7) .pii:not(:where(.v7-legacy, .v7-legacy *)){display:none!important}
body[data-role="viewer"] :where(#v7app, .sheet.v7) .ph-img:not(:where(.v7-legacy, .v7-legacy *)){background:var(--sunk)!important}
body[data-role="viewer"] :where(#v7app, .sheet.v7) .need-admin:not(:where(.v7-legacy, .v7-legacy *)){display:none!important}
:where(#v7app, .sheet.v7) .rolebar:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:6px;align-items:center;font-size:var(--fs-xs);color:var(--ink-3)}
:where(#v7app, .sheet.v7) .card .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .kpi .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)){width:28px;height:28px;border-radius:8px;background:var(--brand-2);color:var(--brand);display:inline-grid;place-items:center;flex:none}
:where(#v7app, .sheet.v7) .btn.danger:not(:where(.v7-legacy, .v7-legacy *)){color:var(--bad);border-color:#efc4be}
@media (min-width:768px){:where(#v7app, .sheet.v7) .tbl td.only-m:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .tbl th.only-m:not(:where(.v7-legacy, .v7-legacy *)){display:none}}
:where(#v7app, .sheet.v7) .live-pill.dot-in:not(:where(.v7-legacy, .v7-legacy *))::before{display:none}
/* draft 2: zoom controls inside the map corner; compact select bar */:where(#v7app, .sheet.v7) .map .zoom:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;top:6px;right:6px;display:flex;gap:4px;z-index:2}
:where(#v7app, .sheet.v7) .map .zoom button:not(:where(.v7-legacy, .v7-legacy *)){width:26px;height:26px;border-radius:7px;border:1px solid var(--line-2);background:var(--surface);display:grid;place-items:center;cursor:pointer;font-size:14px;line-height:1}
:where(#v7app, .sheet.v7) .bar .sel:not(:where(.v7-legacy, .v7-legacy *)){flex:0 1 auto;min-width:0}
@media (max-width:767px){:where(#v7app, .sheet.v7) .bar:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}:where(#v7app, .sheet.v7) .bar .search:not(:where(.v7-legacy, .v7-legacy *)){grid-column:1/-1}:where(#v7app, .sheet.v7) .bar .sel:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .bar .btn:not(:where(.v7-legacy, .v7-legacy *)){width:100%}}
:where(#v7app, .sheet.v7) .card-h .sel:not(:where(.v7-legacy, .v7-legacy *)){height:30px;font-size:var(--fs-sm)}
/* name review sheet */:where(#v7app, .sheet.v7) .frames:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
:where(#v7app, .sheet.v7) .frames .ph-img:not(:where(.v7-legacy, .v7-legacy *)){width:100%;height:auto;aspect-ratio:3/4;border-radius:8px}
:where(#v7app, .sheet.v7) .match:not(:where(.v7-legacy, .v7-legacy *)){display:flex;align-items:center;gap:10px;background:var(--brand-2);border-radius:10px;padding:8px}
/* rule F: compact grouped filters */:where(#v7app, .sheet.v7) .fbar:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:8px;align-items:center;flex-wrap:nowrap;min-width:0}
:where(#v7app, .sheet.v7) .fbar .search:not(:where(.v7-legacy, .v7-legacy *)){flex:1 1 220px;min-width:0;height:34px;border:1px solid var(--line-2);border-radius:10px;padding:0 10px 0 32px;background:var(--surface) no-repeat 10px 50%/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c7b77' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
:where(#v7app, .sheet.v7) .fbar .fsel:not(:where(.v7-legacy, .v7-legacy *)){display:flex;gap:8px;min-width:0}
:where(#v7app, .sheet.v7) .fbar .fsel .sel:not(:where(.v7-legacy, .v7-legacy *)){max-width:170px}
:where(#v7app, .sheet.v7) .fbtn .n:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs-xs);background:var(--sunk);border-radius:8px;padding:0 6px}
@media (max-width:767px){:where(#v7app, .sheet.v7) .fbar .fsel:not(:where(.v7-legacy, .v7-legacy *)){display:none}}
:where(#v7app, .sheet.v7) .fgroup:not(:where(.v7-legacy, .v7-legacy *)){display:grid;gap:6px}
:where(#v7app, .sheet.v7) .fgroup h3:not(:where(.v7-legacy, .v7-legacy *)){margin:6px 0 0;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
:where(#v7app, .sheet.v7) .fgroup .g:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:where(#v7app, .sheet.v7) .fgroup .g .sel:not(:where(.v7-legacy, .v7-legacy *)){width:100%}
:where(#v7app, .sheet.v7) .sheet .foot:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet .foot{display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:-16px;background:var(--surface);padding:10px 0}
:where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){overflow-x:clip}
/* draft 3 shared fixes: compact More tiles (like the current app) */:where(#v7app, .sheet.v7) .tiles:not(:where(.v7-legacy, .v7-legacy *)){gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (min-width:768px){:where(#v7app, .sheet.v7) .tiles:not(:where(.v7-legacy, .v7-legacy *)){grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}}
:where(#v7app, .sheet.v7) .tile:not(:where(.v7-legacy, .v7-legacy *)){padding:8px 4px;gap:4px;font-size:11px;line-height:1.2;border-radius:10px}
:where(#v7app, .sheet.v7) .tile .ic-wrap:not(:where(.v7-legacy, .v7-legacy *)){width:30px;height:30px;border-radius:8px}
:where(#v7app, .sheet.v7) .card:has(.tiles):not(:where(.v7-legacy, .v7-legacy *)){padding:10px}
:where(#v7app, .sheet.v7) .card:has(.tiles)>h2:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .card:has(.tiles) .card-h:not(:where(.v7-legacy, .v7-legacy *)){margin-bottom:6px;font-size:var(--fs)}
/* map cards: one compact header line, map fills the card */:where(#v7app, .sheet.v7) .card:has(.map):not(:where(.v7-legacy, .v7-legacy *)){padding:8px}
:where(#v7app, .sheet.v7) .card:has(.map) .card-h:not(:where(.v7-legacy, .v7-legacy *)){margin-bottom:6px;flex-wrap:nowrap;gap:6px;min-width:0}
:where(#v7app, .sheet.v7) .card:has(.map) .card-h h2:not(:where(.v7-legacy, .v7-legacy *)){font-size:var(--fs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
:where(#v7app, .sheet.v7) .card:has(.map) .card-h .r:not(:where(.v7-legacy, .v7-legacy *)){flex-wrap:nowrap;gap:4px}
:where(#v7app, .sheet.v7) .card:has(.map) .sel:not(:where(.v7-legacy, .v7-legacy *)){height:28px;font-size:var(--fs-xs);padding:0 4px;max-width:118px}
:where(#v7app, .sheet.v7) .map:not(:where(.v7-legacy, .v7-legacy *)){aspect-ratio:4/3;width:100%}
@media (min-width:768px){:where(#v7app, .sheet.v7) .map:not(:where(.v7-legacy, .v7-legacy *)){aspect-ratio:16/9}}
:where(#v7app, .sheet.v7) .map .zoom:not(:where(.v7-legacy, .v7-legacy *)){top:auto;bottom:6px}
/* draft 3: phone tabs never cut off - wrap as compact pills */@media (max-width:767px){
  :where(#v7app, .sheet.v7) .tabs:not(:where(.v7-legacy, .v7-legacy *)){flex-wrap:wrap;overflow:visible;border-bottom:0;gap:4px}
  :where(#v7app, .sheet.v7) .tabs button:not(:where(.v7-legacy, .v7-legacy *)){border:1px solid var(--line);border-radius:999px;padding:4px 10px;margin:0;font-size:var(--fs-sm)}
  :where(#v7app, .sheet.v7) .tabs button[aria-selected="true"]:not(:where(.v7-legacy, .v7-legacy *)){background:var(--brand);border-color:var(--brand);color:#fff}
  :where(#v7app, .sheet.v7) .tabs .n:not(:where(.v7-legacy, .v7-legacy *)){background:rgba(0,0,0,.08)}
}
/* shared fixes requested by QA agents */:where(#v7app, .sheet.v7) .row .t .b:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .row .t .muted:not(:where(.v7-legacy, .v7-legacy *)){display:inline-flex}
:where(#v7app, .sheet.v7) .strip:not(:where(.v7-legacy, .v7-legacy *)){display:flex;flex-wrap:wrap;gap:6px}
:where(#v7app, .sheet.v7) .sheet .dl:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet .dl{grid-template-columns:repeat(2,minmax(0,1fr))}
:where(#v7app, .sheet.v7) .card:has(.map) .card-h .btn.sm:not(:where(.v7-legacy, .v7-legacy *)){height:28px;padding:0 6px}
:where(#v7app, .sheet.v7) .tabs button[aria-selected="true"]:not(:where(.v7-legacy, .v7-legacy *)){cursor:default}
:where(#v7app, .sheet.v7) .vw:not(:where(.v7-legacy, .v7-legacy *)){display:none} body[data-role="viewer"] :where(#v7app, .sheet.v7) .vw:not(:where(.v7-legacy, .v7-legacy *)){display:revert}
@media (max-width:1023px){:where(#v7app, .sheet.v7) .hide-t:not(:where(.v7-legacy, .v7-legacy *)){display:none!important}}
:where(#v7app, .sheet.v7) .cam .mid:not(:where(.v7-legacy, .v7-legacy *)){position:absolute;inset:0;display:grid;place-items:center}
@media (max-width:767px){:where(#v7app, .sheet.v7) .meta.only-m:not(:where(.v7-legacy, .v7-legacy *)){display:flex}}
/* iOS / WKWebView fixes (from the Mac session) */@media (max-width:767px){:where(#v7app, .sheet.v7) input:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) select:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) textarea:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .sel:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .search:not(:where(.v7-legacy, .v7-legacy *)){font-size:16px}}
:where(#v7app, .sheet.v7) .sheet:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
:where(#v7app, .sheet.v7) .sheet .foot:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet .foot{bottom:calc(-16px - env(safe-area-inset-bottom,0px));padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
:where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
@media (min-width:768px){:where(#v7app, .sheet.v7) main:not(:where(.v7-legacy, .v7-legacy *)){padding-bottom:28px}}
:where(#v7app, .sheet.v7) .app:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).app{min-height:100vh;min-height:100dvh}
@media (min-width:768px){:where(#v7app, .sheet.v7) .side:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).side{height:100vh;height:100dvh}}
:where(#v7app, .sheet.v7) .top:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).top{padding-top:calc(10px + env(safe-area-inset-top,0px))}
/* full-screen camera / photo viewer on every device (owner: live view full screen on mobile) */:where(#v7app, .sheet.v7) .sheet.full:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full{inset:0;left:0;right:0;top:0;bottom:0;width:auto;max-height:none;height:100%;border-radius:0;background:#0b1110;color:#fff;
  padding:calc(10px + env(safe-area-inset-top,0px)) 10px calc(10px + env(safe-area-inset-bottom,0px));gap:8px;justify-content:center}
:where(#v7app, .sheet.v7) .sheet.full .card-h h2:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .card-h h2, :where(#v7app, .sheet.v7) .sheet.full .note:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .note, :where(#v7app, .sheet.v7) .sheet.full .muted:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .muted{color:#fff}
:where(#v7app, .sheet.v7) .sheet.full .cam:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .cam, :where(#v7app, .sheet.v7) .sheet.full .ph-img:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .ph-img{width:100%;max-height:calc(100% - 120px);aspect-ratio:16/9;border-radius:6px}
@media (orientation:landscape) and (max-height:500px){:where(#v7app, .sheet.v7) .sheet.full .cam:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .cam{max-height:calc(100vh - 70px)}}
:where(#v7app, .sheet.v7) .sheet.full .btn:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
:where(#v7app, .sheet.v7) .sheet.full .icon-btn:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .icon-btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
:where(#v7app, .sheet.v7) .sheet.full .dl>div:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .dl>div{background:rgba(255,255,255,.08)}
:where(#v7app, .sheet.v7) .sheet.full .dl .k:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .dl .k, :where(#v7app, .sheet.v7) .sheet.full .dl dt:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .dl dt{color:rgba(255,255,255,.65)} :where(#v7app, .sheet.v7) .sheet.full .dl .v:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .dl .v, :where(#v7app, .sheet.v7) .sheet.full .dl dd:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .dl dd{color:#fff}
:where(#v7app, .sheet.v7) .sheet.full .sel:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .sel, :where(#v7app, .sheet.v7) .sheet.full select:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full select{background:#1b2321;color:#fff;border-color:rgba(255,255,255,.25)}
:where(#v7app, .sheet.v7) .sheet.full .sel:empty:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .sel:empty{display:none}
:where(#v7app, .sheet.v7) .sheet.full .bar:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .bar{display:flex;flex-wrap:wrap;gap:6px}
:where(#v7app, .sheet.v7) .sheet.full .bar .btn:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .bar .btn{flex:1 1 auto;justify-content:center}
:where(#v7app, .sheet.v7) .sheet.full .cam:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .cam{max-height:none}
@media (max-width:767px) and (orientation:portrait){:where(#v7app, .sheet.v7) .sheet.full .cam:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .cam{aspect-ratio:4/3}}
:where(#v7app, .sheet.v7) .sheet.full .rotate-tip:not(:where(.v7-legacy, .v7-legacy *)), :where(.sheet.v7, #v7app).sheet.full .rotate-tip{font-size:var(--fs-xs);color:rgba(255,255,255,.6);text-align:center}
/* iOS: date/time inputs fit their cell; no zoom on any phone field */:where(#v7app, .sheet.v7) input[type=date]:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input[type=time]:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input[type=datetime-local]:not(:where(.v7-legacy, .v7-legacy *)){box-sizing:border-box;min-width:0;width:100%;max-width:100%;display:block}
:where(#v7app, .sheet.v7) input[type=date]:not(:where(.v7-legacy, .v7-legacy *))::-webkit-date-and-time-value, :where(#v7app, .sheet.v7) input[type=time]:not(:where(.v7-legacy, .v7-legacy *))::-webkit-date-and-time-value{text-align:left}
@media (max-width:767px){
  :where(#v7app, .sheet.v7) .card:has(.map) .sel:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .card-h .sel:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input.sel:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) select:not(:where(.v7-legacy, .v7-legacy *)){font-size:16px}
  :where(#v7app, .sheet.v7) .card:has(.map) .sel:not(:where(.v7-legacy, .v7-legacy *)){height:28px;padding:0 2px;max-width:104px;text-overflow:ellipsis}
}
:where(#v7app, .sheet.v7) .flabel:not(:where(.v7-legacy, .v7-legacy *)){display:block;font-size:var(--fs-xs);color:var(--ink-3);margin-bottom:2px}
/* owner: no visible scrollbars inside the app */body *{scrollbar-width:none} body *::-webkit-scrollbar{display:none;width:0;height:0}
html, body{scrollbar-width:none} html::-webkit-scrollbar, body::-webkit-scrollbar{display:none;width:0;height:0}
/* tablet (768-1023): tables use the compact two-line rows, like phone - nothing cut, no squeezed words */@media (min-width:768px) and (max-width:1023px){
  :where(#v7app, .sheet.v7) .tbl thead:not(:where(.v7-legacy, .v7-legacy *)){display:none}
  :where(#v7app, .sheet.v7) .tbl:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .tbl tbody:not(:where(.v7-legacy, .v7-legacy *)){display:block}
  :where(#v7app, .sheet.v7) .tbl tr:not(:where(.v7-legacy, .v7-legacy *)){display:grid;grid-template-columns:auto 1fr auto;column-gap:12px;row-gap:2px;padding:9px 12px;border-top:1px solid var(--line);align-items:center}
  :where(#v7app, .sheet.v7) .tbl td:not(:where(.v7-legacy, .v7-legacy *)){border:0;padding:0;font-size:var(--fs-sm);min-width:0}
  :where(#v7app, .sheet.v7) .tbl td.c-img:not(:where(.v7-legacy, .v7-legacy *)){grid-row:1/4}
  :where(#v7app, .sheet.v7) .tbl td.c-main:not(:where(.v7-legacy, .v7-legacy *)){grid-column:2;font-size:var(--fs)}
  :where(#v7app, .sheet.v7) .tbl td.c-end:not(:where(.v7-legacy, .v7-legacy *)){grid-column:3;grid-row:1;justify-self:end;text-align:right}
  :where(#v7app, .sheet.v7) .tbl td.hide-m:not(:where(.v7-legacy, .v7-legacy *)){display:none}
  :where(#v7app, .sheet.v7) .tbl .only-m:not(:where(.v7-legacy, .v7-legacy *)){display:revert} :where(#v7app, .sheet.v7) .tbl .meta.only-m:not(:where(.v7-legacy, .v7-legacy *)){display:flex}
  :where(#v7app, .sheet.v7) .tbl td.only-m:not(:where(.v7-legacy, .v7-legacy *)){display:block}
}
/* 1024-1199: full table, smaller type, wrap only at word boundaries */@media (min-width:1024px) and (max-width:1199px){
  :where(#v7app, .sheet.v7) .tbl:not(:where(.v7-legacy, .v7-legacy *)){font-size:12px} :where(#v7app, .sheet.v7) .tbl th:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) .tbl td:not(:where(.v7-legacy, .v7-legacy *)){padding:6px 7px} :where(#v7app, .sheet.v7) .tbl th:not(:where(.v7-legacy, .v7-legacy *)){font-size:11px}
}
/* role preview: manager loses admin-only actions; viewer loses names/photos and admin actions */body[data-role="manager"] :where(#v7app, .sheet.v7) .need-admin:not(:where(.v7-legacy, .v7-legacy *)){display:none!important}
/* iOS WebKit: date/time inputs only obey sizing with appearance:none (native picker still opens) */:where(#v7app, .sheet.v7) input[type=date]:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input[type=time]:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) input[type=datetime-local]:not(:where(.v7-legacy, .v7-legacy *)){-webkit-appearance:none;appearance:none;min-height:34px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);padding:0 8px}
/* phone: every field 16px, beats page-scoped rules (no iOS zoom) */@media (max-width:767px){:where(#v7app, .sheet.v7) input:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) select:not(:where(.v7-legacy, .v7-legacy *)), :where(#v7app, .sheet.v7) textarea:not(:where(.v7-legacy, .v7-legacy *)){font-size:16px!important}}
