/* ParkOps — prototype styles. Ported from Park_Ops_OneApp_Wireframes_v9 design system.
   Navy accent only, one status-pill system, line icons, no emojis. */
:root{
  --board:#EDEBE7;--ink:#1B1C1F;--ink2:#666A72;--ink3:#9CA0A7;--ink4:#C2C5CB;
  --line:#E4E4E6;--line2:#EFEEEC;--surface:#FFFFFF;--fill:#F5F4F2;--fill2:#EFEEEB;
  --accent:#213B5E;--accent2:#33567F;--accent-soft:#E7ECF2;--accent-soft2:#F2F5FA;
  --ok:#2E7350;--ok-bg:#E7F0EA;
  --warn:#8A6418;--warn-bg:#F2EBD8;
  --alert:#9E3A3A;--alert-bg:#F1E3E3;
  --legal:#6E2A6E;--legal-bg:#EFE2EF;
  --r:14px;--r-sm:9px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--fill);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
.hidden{display:none !important;}

/* ===== app shell ===== */
.app{display:flex;min-height:100vh;}

/* sidebar */
.sb{width:230px;background:var(--fill);border-right:1px solid var(--line);display:flex;flex-direction:column;flex:none;position:sticky;top:0;height:100vh;}
.sbtop{padding:16px 16px 12px;border-bottom:1px solid var(--line2);}
.sbbrand{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:620;letter-spacing:-.01em;}
.sbbrand .mk{width:26px;height:26px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.sbbrand .mk svg{width:15px;height:15px;}
.sbbrand small{display:block;font-size:9.5px;font-weight:500;color:var(--ink3);letter-spacing:.02em;}
.sbswitch{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px;margin-top:12px;cursor:pointer;}
.sbswitch .pin{width:24px;height:24px;border-radius:5px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
.sbswitch .pin svg{width:13px;height:13px;}
.sbswitch .nm{font-size:12px;font-weight:600;line-height:1.25;flex:1;min-width:0;}
.sbswitch .nm small{display:block;font-size:9.5px;color:var(--ink3);font-weight:500;}
.sbswitch .cv svg{width:13px;height:13px;color:var(--ink3);}
.sbnav{flex:1;overflow:auto;padding:12px 10px;}
.sbgrp{margin-bottom:14px;}
.sbgl{font-size:9.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.1em;padding:0 8px 6px;}
.sbi{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:6px;font-size:12.5px;font-weight:540;color:var(--ink2);cursor:pointer;width:100%;text-align:left;background:none;border:none;}
.sbi svg{width:15px;height:15px;color:var(--ink3);flex:none;}
.sbi .ct{margin-left:auto;font-size:9.5px;font-weight:680;color:var(--ink3);background:var(--surface);border:1px solid var(--line);padding:1px 6px;border-radius:4px;}
.sbi:hover{background:var(--fill2);color:var(--ink);}
.sbi.on{background:var(--accent);color:#fff;font-weight:600;}
.sbi.on svg,.sbi.on .ct{color:#fff;}
.sbi.on .ct{background:rgba(255,255,255,.16);border-color:transparent;}
.sbuser{padding:12px 14px;border-top:1px solid var(--line2);display:flex;align-items:center;gap:9px;}
.sbuser .av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:660;flex:none;}
.sbuser .un{flex:1;min-width:0;}
.sbuser .nm{font-size:12px;font-weight:620;line-height:1.2;}
.sbuser .rl{font-size:9.5px;color:var(--ink3);margin-top:1px;}
.sbuser>svg{width:15px;height:15px;color:var(--ink3);flex:none;cursor:pointer;}
.hdr .sbuser>svg{display:none;}
.sbbrand .bt{flex:1;min-width:0;}
.navtog{margin-left:auto;width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--ink2);cursor:pointer;flex:none;}
.navtog svg{width:13px;height:13px;}
.navtog:hover{color:var(--accent);border-color:var(--accent-soft);}
.sb{transition:width .14s ease;}
/* collapsed icon-only rail */
.sb.collapsed{width:62px;}
.sb.collapsed .sbtop{padding:14px 8px 10px;}
.sb.collapsed .sbbrand{justify-content:center;gap:6px;}
.sb.collapsed .sbbrand .bt{display:none;}
.sb.collapsed .sbswitch{justify-content:center;padding:7px 0;margin-top:10px;}
.sb.collapsed .sbswitch .nm,.sb.collapsed .sbswitch .cv{display:none;}
.sb.collapsed .sbnav{padding:12px 8px;}
.sb.collapsed .sbgl{display:none;}
.sb.collapsed .sbgrp{margin-bottom:8px;padding-top:8px;border-top:1px solid var(--line2);}
.sb.collapsed .sbgrp:first-child{padding-top:0;border-top:0;}
.sb.collapsed .sbi{position:relative;justify-content:center;padding:9px 0;gap:0;}
.sb.collapsed .sbi .lbl{display:none;}
.sb.collapsed .sbi .ct{position:absolute;top:2px;right:5px;margin:0;font-size:8px;padding:0 3px;line-height:1.4;}
.sb.collapsed .sbuser{justify-content:center;padding:12px 8px;}
.sb.collapsed .sbuser .un,.sb.collapsed .sbuser>svg{display:none;}

/* main */
.main{flex:1;display:flex;flex-direction:column;min-width:0;}
.hdr{height:48px;flex:none;border-bottom:1px solid var(--line2);display:flex;align-items:center;padding:0 22px;gap:14px;background:var(--surface);position:sticky;top:0;z-index:20;}
.hdr .right{flex-wrap:nowrap;}
.hdr .actbtn,.hdr .accbadge,.hdr .ksearch{white-space:nowrap;}
.hdr .ksearch{min-width:0;}
.crumbs{font-size:12.5px;color:var(--ink2);font-weight:540;display:flex;align-items:center;gap:6px;}
.crumbs strong{color:var(--ink);font-weight:640;}
.hdr .right{margin-left:auto;display:flex;align-items:center;gap:10px;}
.ksearch{display:flex;align-items:center;gap:8px;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:6px 11px;width:240px;color:var(--ink3);font-size:12px;cursor:pointer;text-align:left;}
.ksearch:hover{border-color:var(--accent2);color:var(--ink2);}
.ksearch svg{width:14px;height:14px;flex:none;}
.ksearch svg{width:14px;height:14px;}
.ibtn{width:32px;height:32px;border-radius:7px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--ink2);position:relative;}
.ibtn svg{width:15px;height:15px;}
.ibtn.badge::after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--alert);border:1.5px solid var(--surface);}
.content{flex:1;overflow:auto;padding:22px;}

/* "view as" banner for super admin */
.viewas{display:flex;align-items:center;gap:10px;background:var(--warn-bg);border:1px solid #E4D6AE;color:var(--warn);border-radius:9px;padding:8px 13px;margin-bottom:16px;font-size:12.5px;font-weight:560;}
.viewas svg{width:15px;height:15px;}
.viewas .x{margin-left:auto;color:var(--warn);background:none;border:1px solid #E4D6AE;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:620;}

/* page title */
.ptitle{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.ptitle h1{font-size:22px;font-weight:660;letter-spacing:-.02em;}
.ptitle .meta{font-size:12.5px;color:var(--ink2);margin-top:3px;}
.ptitle .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

.actbtn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:560;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:7px 11px;}
.actbtn svg{width:13px;height:13px;color:var(--ink2);}
.actbtn:hover{border-color:var(--ink4);}
.actbtn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:620;}
.actbtn.primary svg{color:#fff;}
.actbtn.soft{background:var(--accent-soft);color:var(--accent);border-color:transparent;}
.actbtn.soft svg{color:var(--accent);}
.actbtn.danger{color:var(--alert);}
.actbtn.danger svg{color:var(--alert);}
.actbtn.sm{padding:5px 9px;font-size:11px;}

/* subnav tabs */
/* default icon size — unsized icon() svgs would otherwise default to ~150px; specific rules + inline styles override */
svg{width:14px;height:14px;}
.subnav{display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:3px;margin-bottom:16px;width:fit-content;max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;}
.subnav .sn{white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:5px;}
.subnav .sn svg{width:13px;height:13px;flex:none;}
.pnote svg{flex:none;}
.subnav .sn{font-size:12px;font-weight:580;color:var(--ink2);padding:7px 14px;border-radius:6px;border:none;background:none;}
.subnav .sn.on{background:var(--accent);color:#fff;font-weight:640;}
.subnav .sn .ct{font-size:9.5px;background:var(--fill2);color:var(--ink3);padding:1px 6px;border-radius:4px;margin-left:6px;font-weight:680;}
.subnav .sn.on .ct{background:rgba(255,255,255,.18);color:#fff;}

/* KPI strip */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px;}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 14px;}
.kpi .kl{font-size:10.5px;color:var(--ink2);font-weight:560;display:flex;align-items:center;gap:5px;}
.kpi .kl svg{width:13px;height:13px;color:var(--ink3);}
.kpi .kv{font-size:23px;font-weight:670;letter-spacing:-.02em;line-height:1;margin-top:8px;}
.kpi .kd{font-size:10.5px;margin-top:6px;color:var(--ink2);}
.kpi.alert{border-color:#E4CBCB;background:#FBF1F1;}
.kpi.alert .kl,.kpi.alert .kv,.kpi.alert .kd{color:var(--alert);}

/* grids */
.gr-8-4{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px;}
.gr-6-6{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
@media(max-width:1000px){.gr-8-4,.gr-6-6{grid-template-columns:1fr;}}

/* customizable dashboard: 12-col bento grid (free width + height, dense packing) */
.dashgrid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:44px;grid-auto-flow:row dense;gap:14px;margin-bottom:14px;}
.dashtile{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.dashtile>.tilebody{flex:1;min-height:0;overflow:auto;}
.dashtile>.tilebody>.card{min-height:100%;box-sizing:border-box;}
@media(max-width:1000px){.dashgrid{grid-auto-rows:auto;}.dashtile{grid-column:span 12 !important;grid-row:auto !important;}.dashtile>.tilebody{overflow:visible;}}
.dashgrid.editing .dashtile{outline:1.5px dashed var(--line);outline-offset:3px;border-radius:12px;cursor:grab;}
.dashgrid.editing .dashtile:hover{outline-color:var(--accent2);}
.dashtile.dragging{opacity:.45;}
.dashtile.dragover{outline:2px solid var(--accent);outline-offset:3px;}
.dashtile .tilebar{display:flex;align-items:center;gap:8px;padding:2px 2px 9px;}
.dashtile .tilebar .drag{display:inline-flex;color:var(--ink3);cursor:grab;}
.dashtile .tilebar .drag svg{width:15px;height:15px;}
.dashtile .tilebar .tname{font-size:11px;font-weight:660;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;}
.dashtile .tilebar .wopts{margin-left:auto;display:flex;gap:3px;}
.dashtile .tilebar .wopt{font-size:10.5px;font-weight:620;color:var(--ink2);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:2px 8px;cursor:pointer;min-width:26px;}
.dashtile .tilebar .wopt:hover{border-color:var(--accent);color:var(--accent);}
.dashtile .tilebar .wopt.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.dashedit-bar{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink2);background:var(--accent-soft);border:1px solid #CFDCEB;border-radius:8px;padding:9px 13px;margin-bottom:14px;}
.dashedit-bar svg{width:14px;height:14px;color:var(--accent);flex:none;}
.dashedit-bar strong{color:var(--accent);font-weight:640;}
.dashedit-bar a{color:var(--accent);font-weight:600;cursor:pointer;margin-left:auto;text-decoration:underline;}
.dashtile{position:relative;}
.dashgrid.editing .dashtile .tileresize{position:absolute;z-index:5;}
.dashgrid.editing .dashtile .tileresize::before{content:"";position:absolute;border-radius:3px;background:var(--line2);transition:background .12s;}
.dashgrid.editing .dashtile .tileresize:hover::before{background:var(--accent);}
.dashgrid.editing .dashtile .tr-x{top:8px;bottom:18px;right:-8px;width:14px;cursor:col-resize;}
.dashgrid.editing .dashtile .tr-x::before{left:5px;top:50%;transform:translateY(-50%);width:4px;height:46px;}
.dashgrid.editing .dashtile .tr-x:hover::before{height:72px;}
.dashgrid.editing .dashtile .tr-y{left:8px;right:18px;bottom:-8px;height:14px;cursor:row-resize;}
.dashgrid.editing .dashtile .tr-y::before{top:5px;left:50%;transform:translateX(-50%);height:4px;width:46px;}
.dashgrid.editing .dashtile .tr-y:hover::before{width:72px;}
.dashgrid.editing .dashtile .tr-xy{right:-7px;bottom:-7px;width:18px;height:18px;cursor:nwse-resize;}
.dashgrid.editing .dashtile .tr-xy::before{right:3px;bottom:3px;width:9px;height:9px;border-radius:0 0 3px 0;border-right:2.5px solid var(--line2);border-bottom:2.5px solid var(--line2);background:none;}
.dashgrid.editing .dashtile .tr-xy:hover::before{border-color:var(--accent);background:none;}
/* front desk (dashboard tile + reporting board) */
.fdsplit{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.fdsplit{grid-template-columns:1fr;}}
.fdhead{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--ink2);margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid var(--line2);}
.fdhead svg{width:13px;height:13px;color:var(--ink3);}
.fdhead strong{color:var(--ink);font-weight:680;}
.fdmini{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;padding:4px 0;font-size:11.5px;}
.fdmini .fdm-site{font-weight:620;color:var(--ink);}
.fdmini .fdm-guest{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fdmini .fdm-time{color:var(--ink3);font-size:10.5px;font-variant-numeric:tabular-nums;}
.fdmore{font-size:10.5px;color:var(--ink3);padding-top:4px;}
.fdnone{font-size:11.5px;color:var(--ink3);padding:6px 0;}
.fdcolhead{display:flex;align-items:center;gap:8px;padding:11px 14px;background:var(--fill);border-bottom:1px solid var(--line);font-size:12px;font-weight:620;}
.fdcolhead svg{width:14px;height:14px;color:var(--accent);}
.fdcolhead .ct{margin-left:auto;font-size:10px;font-weight:680;color:var(--ink2);background:var(--surface);border:1px solid var(--line);padding:1px 8px;border-radius:5px;}
.fdlist{padding:4px 14px 10px;}
.fdrow{display:grid;grid-template-columns:86px 76px 1fr 74px 90px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line2);font-size:12px;}
.fdrow:last-child{border-bottom:0;}
.fdrow .fd-date{font-size:11px;font-weight:600;color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums;}
.fdrow .fd-site{font-weight:640;color:var(--ink);}
.fdrow .fd-guest{font-weight:540;}
.fdrow .fd-len{font-size:10.5px;color:var(--ink2);}
.fdrow .fd-time{font-size:11px;color:var(--ink3);font-variant-numeric:tabular-nums;}
.fdrow .fd-st{text-align:right;}
.fdrow .fd-st .pill{cursor:pointer;}
.fdrow.fdhead{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);padding:7px 0 6px;border-bottom:1px solid var(--line);}
.fdrow.fdhead .fd-st{text-align:right;}
@media(max-width:760px){.fdrow{grid-template-columns:62px 1fr auto;row-gap:2px;}.fdrow .fd-site,.fdrow .fd-time{display:none;}}

/* card */
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px 18px;}
.card .ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.card .ch h4{font-size:14px;font-weight:640;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;}
.card .ch h4 svg{width:15px;height:15px;color:var(--ink2);}
.card .ch .meta{font-size:11px;color:var(--ink2);}
.card .ch .meta strong{color:var(--ink);font-weight:600;}
.card .ch .vl{font-size:11px;color:var(--accent);font-weight:600;background:none;border:none;}

/* greeting */
.greet{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap;}
.greet h1{font-size:24px;font-weight:660;letter-spacing:-.02em;}
.greet .gmeta{font-size:12.5px;color:var(--ink2);margin-top:4px;}
.greet .gright{display:flex;gap:8px;flex-wrap:wrap;}

/* attention / queue list */
.attlist{display:flex;flex-direction:column;gap:8px;max-height:368px;overflow-y:auto;padding-right:4px;}
.attlist::-webkit-scrollbar{width:8px;}
.attlist::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;}
.attlist::-webkit-scrollbar-thumb:hover{background:var(--ink4);}
.at{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;background:var(--surface);border:1px solid var(--line);border-radius:9px;}
.at:hover{border-color:var(--ink4);}
.at .ico{width:30px;height:30px;border-radius:7px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
.at .ico svg{width:15px;height:15px;}
.at .ico.al{background:var(--alert-bg);color:var(--alert);}
.at .ico.wr{background:var(--warn-bg);color:var(--warn);}
.at .ico.lg{background:var(--legal-bg);color:var(--legal);}
.at .ico.ok{background:var(--ok-bg);color:var(--ok);}
.at .body{flex:1;min-width:0;}
.at .ttl{font-size:12.5px;font-weight:600;line-height:1.3;}
.at .sub{font-size:11px;color:var(--ink2);margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.at .qact{display:flex;gap:6px;align-self:center;}

/* park status mini-cards */
.parkrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:11px;}
.parkcard{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:14px;}
.parkcard .pn{font-size:13px;font-weight:640;display:flex;align-items:center;gap:7px;}
.parkcard .pn svg{width:14px;height:14px;color:var(--ink2);}
.parkcard .pc{font-size:10.5px;color:var(--ink3);margin-top:1px;}
.parkcard .mini{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;}
.parkcard .mi{background:var(--fill);border-radius:7px;padding:8px 9px;}
.parkcard .mi .l{font-size:9px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.parkcard .mi .v{font-size:16px;font-weight:660;letter-spacing:-.02em;margin-top:3px;}
.parkcard .mi.al{background:var(--alert-bg);}
.parkcard .mi.al .l,.parkcard .mi.al .v{color:var(--alert);}

/* park info cards (Monday Master Prop List mirror) */
.infocards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;}
.infocard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;}
.infocard .ic-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line);}
.infocard .ic-id{display:flex;gap:10px;align-items:flex-start;min-width:0;}
.infocard .ic-ic{width:32px;height:32px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
.infocard .ic-ic svg{width:16px;height:16px;}
.infocard .ic-name{font-size:14px;font-weight:660;letter-spacing:-.01em;}
.infocard .ic-addr{font-size:11px;color:var(--ink2);margin-top:2px;line-height:1.35;}
.infocard .ic-tags{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex:none;}
.infocard .ic-sec{font-size:9.5px;font-weight:680;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);margin:14px 0 7px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.infocard .ic-sec .sec-link{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:620;text-transform:none;letter-spacing:0;color:var(--accent);text-decoration:none;}
.infocard .ic-sec .sec-link:hover{text-decoration:underline;}
.infocard .ic-sec .sec-link svg{width:12px;height:12px;}
/* sub-properties (RV park / motel / laundromat on a parcel) */
.sublist{display:flex;flex-direction:column;gap:7px;}
.subrow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:8px 10px;}
.subrow .sb-l{display:flex;gap:8px;align-items:center;min-width:0;}
.subrow .sb-ic{width:26px;height:26px;border-radius:6px;background:var(--surface);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink2);flex:none;}
.subrow .sb-ic svg{width:13px;height:13px;}
.subrow .sb-n{font-size:12px;font-weight:600;}
.subrow .sb-a{font-size:10.5px;color:var(--ink3);margin-top:1px;}
/* onboarding pipeline */
.ob-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);}
.ob-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;}
.ob-bar .ob-sub{font-size:11px;color:var(--ink3);margin-top:3px;max-width:560px;line-height:1.4;}
.obcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.obcard{background:var(--surface);border:1px dashed var(--accent2);border-radius:12px;padding:15px 16px;}
.obcard .ob-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.obcard .ob-name{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:650;}
.obcard .ob-name svg{width:15px;height:15px;color:var(--ink2);}
.obcard .ob-addr{font-size:11px;color:var(--ink2);margin:5px 0 10px;}
.obcard .obgrid{display:flex;flex-direction:column;gap:1px;}
.infogrid{display:flex;flex-direction:column;gap:1px;}
.inforow{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--line);}
.inforow:last-child{border-bottom:0;}
.inforow .il{font-size:11px;color:var(--ink3);}
.inforow .iv{font-size:12px;color:var(--ink);font-weight:520;display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;word-break:break-word;}
.inforow .iv a{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:4px;}
.inforow .iv a:hover{text-decoration:underline;}
.inforow .iv a svg{width:12px;height:12px;}
.inforow .iv .cbtn{flex:none;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--fill);display:flex;align-items:center;justify-content:center;color:var(--ink3);cursor:pointer;}
.inforow .iv .cbtn svg{width:11px;height:11px;}
.inforow .iv .cbtn:hover{border-color:var(--accent2);color:var(--accent);}
@media(max-width:560px){.inforow{grid-template-columns:1fr;gap:1px;}}

/* status pills — ONE system */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:640;padding:2px 9px;border-radius:999px;background:var(--fill2);color:var(--ink2);border:1px solid transparent;white-space:nowrap;}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8;}
.pill.ok{background:var(--ok-bg);color:var(--ok);}
.pill.warn{background:var(--warn-bg);color:var(--warn);}
.pill.alert{background:var(--alert-bg);color:var(--alert);}
.pill.legal{background:var(--legal-bg);color:var(--legal);}
.pill.accent{background:var(--accent-soft);color:var(--accent);}
/* Super-Admin inline editable fields */
.ef{display:inline-flex;align-items:center;gap:5px;border-radius:6px;cursor:pointer;padding:1px 4px;margin:-1px -4px;max-width:100%;}
.ef[data-efedit]:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent2);}
.ef .ef-pen{opacity:0;color:var(--accent);display:inline-flex;flex:none;}
.ef .ef-pen svg{width:12px;height:12px;}
.ef[data-efedit]:hover .ef-pen{opacity:.85;}
.ef-empty{color:var(--ink3);font-style:italic;}
.ef.noedit{cursor:default;}
.ef-pen-btn{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--fill);color:var(--ink3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;opacity:.5;}
.ef-pen-btn svg{width:12px;height:12px;}
.ef.noedit:hover .ef-pen-btn,.ef-pen-btn:hover{opacity:1;color:var(--accent);border-color:var(--accent2);}
.ef.on{gap:4px;}
.ef-input{font:inherit;font-size:12px;padding:3px 7px;border:1px solid var(--accent2);border-radius:6px;background:var(--surface);color:var(--ink);min-width:90px;max-width:240px;}
.ef-save,.ef-cancel{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.ef-save{background:var(--ok-bg);color:var(--ok);border-color:transparent;}
.ef-cancel{background:var(--fill);color:var(--ink2);}
.ef-save svg,.ef-cancel svg{width:13px;height:13px;}
.fh-btn{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:640;color:var(--ink3);background:var(--fill);border:1px solid var(--line);border-radius:999px;padding:1px 7px 1px 5px;cursor:pointer;flex:none;}
.fh-btn svg{width:11px;height:11px;}
.fh-btn:hover{color:var(--accent);border-color:var(--accent2);}
/* version-history drawer */
.histlist{display:flex;flex-direction:column;gap:10px;}
.histrow{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--surface);}
.histrow .hh{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.histrow .hh .hl{font-size:11.5px;font-weight:600;color:var(--ink);}
.histrow .hh .ht{margin-left:auto;font-size:10.5px;color:var(--ink3);}
.histrow .hv{display:flex;align-items:center;gap:7px;font-size:12.5px;flex-wrap:wrap;}
.histrow .hv svg{width:13px;height:13px;color:var(--ink3);flex:none;}
.histrow .hv .from{color:var(--ink3);text-decoration:line-through;}
.histrow .hv .to{color:var(--ink);font-weight:600;}
.histrow .hf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;font-size:11px;color:var(--ink2);}
.histnote{display:flex;gap:7px;align-items:center;font-size:10.5px;color:var(--ink3);margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);}
.histnote svg{width:13px;height:13px;flex:none;}
/* per-page edit/view-only access badge (header) */
.accbadge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:660;padding:3px 9px;border-radius:999px;white-space:nowrap;}
.accbadge svg{width:12px;height:12px;}
.accbadge.edit{background:var(--ok-bg);color:var(--ok);}
.accbadge.view{background:var(--fill2);color:var(--ink2);}
.pill.muted{background:var(--fill2);color:var(--ink3);}
.pill.np::before{display:none;}
.actlink{color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
/* inline pill-styled dropdown for quick severity/status edits on list rows */
.pillsel{position:relative;display:inline-flex;cursor:pointer;}
.pillsel::after{content:"";display:inline-block;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3.6px solid currentColor;margin-left:3px;align-self:center;opacity:.55;}
.pillsel select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;font:inherit;}

/* tables */
.tbl{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.tbl thead th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:680;text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--fill);}
.tbl tbody td{font-size:12.5px;padding:12px 14px;border-bottom:1px solid var(--line2);vertical-align:middle;}
.tbl tbody tr:last-child td{border-bottom:none;}
.tbl tbody tr{cursor:pointer;}
.tbl tbody tr:hover{background:var(--accent-soft2);}
.tbl .t-ttl{font-weight:600;color:var(--ink);}
.tbl .t-sub{font-size:10.5px;color:var(--ink3);margin-top:1px;}
.tbl .pk{font-size:10px;font-weight:600;color:var(--ink2);background:var(--fill);border:1px solid var(--line);padding:1px 7px;border-radius:5px;}

/* 5-step tracker */
.pipe{display:flex;align-items:stretch;gap:0;margin:4px 0;}
.pipe .pst{flex:1;padding:9px 8px;background:var(--fill);border:1px solid var(--line);border-right:0;text-align:center;}
.pipe .pst:first-child{border-radius:8px 0 0 8px;}
.pipe .pst:last-child{border-right:1px solid var(--line);border-radius:0 8px 8px 0;}
.pipe .pst .cnt{font-size:10px;font-weight:700;color:var(--ink3);}
.pipe .pst .lb{font-size:9.5px;color:var(--ink2);font-weight:560;margin-top:3px;}
.pipe .pst.done{background:var(--accent-soft2);}
.pipe .pst.done .cnt{color:var(--accent2);}
.pipe .pst.cur{background:var(--accent);border-color:var(--accent);}
.pipe .pst.cur .cnt,.pipe .pst.cur .lb{color:#fff;}

/* ===== schedule ===== */
.wkstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:16px;}
.wkday{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 11px;cursor:pointer;}
.wkday:hover{border-color:var(--ink4);}
.wkday.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
.wkday .wd{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:680;}
.wkday.today .wd{color:var(--accent);}
.wkday .dt{font-size:20px;font-weight:670;letter-spacing:-.02em;margin-top:2px;}
.wkday .counts{display:flex;gap:5px;margin-top:9px;flex-wrap:wrap;}
.wkday .cc{font-size:9.5px;font-weight:680;padding:1px 6px;border-radius:5px;}
.wkday .cc.turn{background:var(--alert-bg);color:var(--alert);}
.wkday .cc.b2b{background:var(--legal-bg);color:var(--legal);}
.wkday .cc.stay{background:var(--accent-soft);color:var(--accent);}
.wkday .cc.arr{background:var(--ok-bg);color:var(--ok);}

.cleangrid{display:flex;flex-direction:column;gap:8px;}
.cleanrow{display:flex;align-items:center;gap:11px;padding:11px 13px;background:var(--surface);border:1px solid var(--line);border-radius:9px;}
.cleanrow .rm{width:62px;flex:none;font-weight:680;font-size:13px;}
.cleanrow .rm small{display:block;font-size:9px;color:var(--ink3);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.cleanrow .info{flex:1;min-width:0;}
.cleanrow .info .l1{font-size:12.5px;font-weight:580;}
.cleanrow .info .l2{font-size:10.5px;color:var(--ink2);margin-top:1px;}
.cleanrow .assign{display:flex;align-items:center;gap:7px;flex:none;}
.cleanrow .assign select{font-size:11.5px;border:1px solid var(--line);border-radius:7px;padding:5px 8px;background:var(--fill);color:var(--ink);font-weight:560;}
.av-sm{width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:680;flex:none;}

/* cleaner workload chips */
.crew{display:flex;gap:8px;flex-wrap:wrap;}
.crewchip{display:flex;align-items:center;gap:8px;background:var(--fill);border:1px solid var(--line);border-radius:9px;padding:7px 11px;}
.crewchip .nm{font-size:12px;font-weight:600;}
.crewchip .ld{font-size:10px;color:var(--ink2);}

/* ===== home: park stack, personal notes, this-week bar charts ===== */
.parkstack{display:flex;flex-direction:column;gap:11px;}
.noteadd{display:flex;gap:8px;margin-bottom:12px;}
.noteadd input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12.5px;font-family:inherit;}
.noteadd input:focus{outline:none;border-color:var(--accent2);}
.notelist{display:flex;flex-direction:column;gap:7px;}
.noteitem{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;background:var(--fill);border-radius:8px;border-left:3px solid var(--accent2);}
.noteitem .ntx{flex:1;font-size:12.5px;line-height:1.4;white-space:pre-wrap;}
.noteitem .noterm{border:none;background:none;color:var(--ink3);flex:none;cursor:pointer;padding:0;}
.noteitem .noterm svg{width:13px;height:13px;}
.noteitem .noterm:hover{color:var(--alert);}
.bars{display:flex;flex-direction:column;gap:10px;}
.bar-row{display:grid;grid-template-columns:92px 1fr 26px;align-items:center;gap:10px;font-size:11.5px;}
.bar-row .bl{color:var(--ink2);font-weight:540;}
.bar-row .bt{height:8px;background:var(--fill2);border-radius:999px;overflow:hidden;}
.bar-row .bt i{display:block;height:100%;background:var(--accent);border-radius:999px;}
.bar-row .bt i.warn{background:var(--warn);}
.bar-row .bt i.ok{background:var(--ok);}
.bar-row .bv{font-weight:660;text-align:right;font-variant-numeric:tabular-nums;}
.modalbox.wide{width:560px;}

/* ===== park data: billing detail panel ===== */
.pdtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px;}
.pdtile{background:var(--fill);border:1px solid var(--line);border-radius:9px;padding:9px 10px;}
.pdtile .l{font-size:9px;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.pdtile .v{font-size:16px;font-weight:680;letter-spacing:-.02em;margin-top:4px;}
.bills{display:flex;flex-direction:column;gap:6px;}
.billrow{display:grid;grid-template-columns:34px 1fr 58px 64px 44px;align-items:center;gap:8px;font-size:11px;}
.billrow .bm{color:var(--ink2);font-weight:600;}
.billrow .bbar{height:7px;background:var(--fill2);border-radius:999px;overflow:hidden;}
.billrow .bbar i{display:block;height:100%;background:var(--accent2);border-radius:999px;}
.billrow .ba{font-weight:660;text-align:right;font-variant-numeric:tabular-nums;}
.billrow .bd{color:var(--ink3);text-align:right;font-size:10px;}

/* ===== utilities launch-card grid (v9) ===== */
.utilgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px;}
.utilcard{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px 14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;}
.utilcard:hover{border-color:var(--accent2);}
.utilcard .uc-top{display:flex;align-items:center;gap:8px;}
.utilcard .uc-ic{width:28px;height:28px;border-radius:7px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
.utilcard .uc-ic svg{width:15px;height:15px;}
.utilcard .uc-svc{font-size:11px;font-weight:680;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;}
.utilcard .uc-name{font-size:13.5px;font-weight:640;letter-spacing:-.01em;line-height:1.25;}
.utilcard .uc-meta{font-size:10.5px;color:var(--ink2);}
.utilcard .uc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:9px;border-top:1px solid var(--line2);}
.utilcard .uc-avg{font-size:11.5px;font-weight:640;font-variant-numeric:tabular-nums;}

/* ===== budget (v9) ===== */
.bigstat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:center;margin-bottom:14px;}
.bigstat .bs{border-right:1px solid var(--line2);padding-right:18px;}
.bigstat .bs:last-child{border-right:0;}
.bigstat .bs .l{font-size:10.5px;font-weight:600;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em;}
.bigstat .bs .v{font-size:26px;font-weight:680;letter-spacing:-.02em;line-height:1;margin-top:6px;}
.bigstat .bs .v.al{color:var(--alert);} .bigstat .bs .v.ok{color:var(--ok);}
.bigstat .bs .s{font-size:11px;color:var(--ink2);margin-top:5px;}
@media(max-width:900px){.bigstat{grid-template-columns:1fr 1fr;}}
.ybars{display:flex;align-items:flex-end;gap:6px;height:130px;border-bottom:1px solid var(--line2);padding-bottom:2px;}
.ybars .yb{flex:1;height:100%;display:flex;align-items:flex-end;}
.ybars .yb .bar{width:100%;background:var(--accent);border-radius:4px 4px 0 0;min-height:4px;}
.ybars .yb .bar.over{background:var(--alert);}
.ybars .yb .bar.cur{background:var(--accent2);outline:2px solid var(--accent);outline-offset:1px;}
.yblbl{display:flex;gap:6px;margin-top:5px;}
.yblbl span{flex:1;text-align:center;font-size:9.5px;color:var(--ink3);font-weight:580;}
.catedit{display:grid;grid-template-columns:1fr 120px 100px 90px;gap:9px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line2);font-size:12.5px;}
.catedit:last-child{border-bottom:0;}
.catedit .cn{font-weight:540;}
.catedit .binput{display:flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--accent2);border-radius:7px;padding:4px 8px;}
.catedit .binput input{border:none;background:none;outline:none;font-family:inherit;font-size:12.5px;font-weight:640;color:var(--ink);width:100%;}
.catedit .binput.ro{border-color:var(--line);background:var(--fill);}
.catedit .spent{font-weight:640;font-variant-numeric:tabular-nums;}
.catedit .spent.over{color:var(--alert);}
.catedit .var{font-size:11.5px;font-weight:640;text-align:right;font-variant-numeric:tabular-nums;}
.catedit .var.over{color:var(--alert);} .catedit .var.under{color:var(--ok);}
.cathead{background:var(--fill);padding:9px 14px;display:grid;grid-template-columns:1fr 120px 100px 90px;gap:9px;font-size:9.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);}
.cathead div:last-child{text-align:right;}

/* ===== budget extras: burn legend, over-budget history, variance table, funnel ===== */
.burn .legend{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--ink2);margin-bottom:8px;}
.burn .legend i{width:14px;height:3px;background:var(--accent);border-radius:2px;display:inline-block;vertical-align:middle;margin-right:5px;}
.burn .legend .target i{border-top:1.5px dashed var(--ink3);background:transparent;height:0;}
.overhist{display:flex;flex-direction:column;gap:7px;}
.overhist .oh{display:grid;grid-template-columns:64px 1fr auto;gap:11px;align-items:center;padding:8px 11px;background:var(--alert-bg);border:1px solid #E7CDCD;border-radius:7px;font-size:11.5px;color:var(--alert);}
.overhist .oh .mn{font-weight:680;} .overhist .oh .amt{font-weight:680;font-variant-numeric:tabular-nums;}
.vartable{width:100%;border-collapse:collapse;font-size:12px;}
.vartable th{font-size:9.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);background:var(--fill);}
.vartable td{padding:10px 12px;border-bottom:1px solid var(--line2);font-variant-numeric:tabular-nums;}
.vartable td:first-child{font-weight:560;}
.vartable td.over{color:var(--alert);font-weight:640;} .vartable td.under{color:var(--ok);font-weight:640;}
.daterange{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.funnel{display:flex;flex-direction:column;gap:6px;}
.funnel .fs{display:grid;grid-template-columns:96px 1fr 34px;align-items:center;gap:10px;font-size:11.5px;cursor:pointer;}
.funnel .fs .lbl{font-weight:540;color:var(--ink);}
.funnel .fs .bar{height:26px;background:var(--accent-soft);border-radius:5px;display:flex;align-items:center;padding-left:10px;color:var(--accent);font-weight:660;font-size:11px;min-width:30px;}
.funnel .fs.done .bar{background:var(--ok-bg);color:var(--ok);}
.funnel .fs.cur .bar{background:var(--accent);color:#fff;}
.funnel .fs .vl{font-weight:680;text-align:right;}
.funnel .fs:hover .bar{filter:brightness(.97);}

/* ===== documents (Drive-backed) ===== */
.docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:11px;margin-bottom:18px;}
.docfolder{display:block;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:14px;cursor:pointer;}
.docfolder:hover{border-color:var(--accent2);box-shadow:0 1px 0 rgba(0,0,0,.02);}
.docfolder .dfi{width:34px;height:34px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;}
.docfolder .dfi svg{width:17px;height:17px;}
.docfolder .dfn{font-size:12.5px;font-weight:620;margin-top:10px;line-height:1.3;}
.docfolder .dfc{font-size:10.5px;color:var(--ink2);margin-top:3px;display:flex;align-items:center;gap:4px;}
.docfolder .dfc svg{width:11px;height:11px;}
.docfolder .dflist{margin-top:9px;border-top:1px solid var(--line2);padding-top:8px;display:flex;flex-direction:column;gap:5px;}
.docfolder .dfl{font-size:10.5px;color:var(--ink2);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.docfolder .dfl svg{width:11px;height:11px;color:var(--ink3);flex:none;}
.docfolder .dfempty{margin-top:9px;border-top:1px dashed var(--line);padding-top:8px;font-size:10.5px;color:var(--ink3);}
.docfolder .dfdesc{font-size:11px;color:var(--ink2);margin-top:7px;line-height:1.45;}
.docfolder.lcp{border-color:var(--legal);background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--legal-bg);}
.docfolder.lcp .dfi{background:var(--legal-bg);color:var(--legal);}
.docfolder.lcp:hover{border-color:var(--legal);box-shadow:0 6px 18px -12px var(--legal);}
/* Park Data per-park sub-toggle */
.pdparks{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 16px;}
.pdpark{font-size:11.5px;font-weight:580;color:var(--ink2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 13px;cursor:pointer;}
.pdpark:hover{border-color:var(--accent2);}
.pdpark.on{background:var(--accent-soft);border-color:var(--accent2);color:var(--accent);font-weight:660;}
.dropzone{border:1.5px dashed var(--line);border-radius:10px;padding:18px;text-align:center;color:var(--ink2);font-size:12.5px;cursor:pointer;background:var(--fill);}
.dropzone:hover{border-color:var(--accent2);color:var(--accent);}
.dropzone.drag{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);border-style:solid;}
.dropzone svg{width:22px;height:22px;color:var(--ink3);margin-bottom:6px;}
.dropzone small{display:block;font-size:10.5px;color:var(--ink3);margin-top:3px;}

/* ===== editable preference inputs ===== */
.prefin{border:1px solid var(--line);border-radius:7px;padding:5px 9px;font-size:12px;font-family:inherit;background:var(--fill);color:var(--ink);font-weight:560;}
.prefin:focus{outline:none;border-color:var(--accent2);background:var(--surface);}
.prefin.wide{width:200px;text-align:right;}
.drawer .dfield select{cursor:pointer;}

/* ===== guest link in violations ===== */
.guestlink{font-weight:560;color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:5px;border-bottom:1px dashed var(--accent-soft);}
.guestlink:hover{border-bottom-color:var(--accent);}

/* ===== credentials block (masked) ===== */
.creds{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.credrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line2);font-size:12px;}
.credrow:last-child{border-bottom:none;}
.credrow .cl{color:var(--ink2);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.credrow .cv{display:flex;align-items:center;gap:8px;font-weight:540;}
.credrow .cv.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px;}
.credrow .masked{letter-spacing:2px;color:var(--ink2);}
.credrow .cbtn{width:24px;height:24px;border-radius:6px;border:1px solid var(--line);background:var(--fill);display:inline-flex;align-items:center;justify-content:center;color:var(--ink2);cursor:pointer;flex:none;}
.credrow .cbtn svg{width:12px;height:12px;}
.credrow .cbtn:hover{border-color:var(--accent2);color:var(--accent);}
/* text variant (Show / Hide) — auto width so the label sits inside the button */
.credrow .cbtn.txt{width:auto;height:24px;padding:0 9px;gap:4px;font-size:10.5px;font-weight:620;}

/* ===== print: staff turnover sheets ===== */
#printroot{display:none;}
@media print {
  .app,#overlay{display:none !important;}
  #printroot{display:block !important;}
  @page{margin:14mm;}
  /* force background shades (dark crew-divider band) to actually print */
  #printroot,.psheet,.ptable td.grp{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
.psheet{color:#111;font-family:-apple-system,"Segoe UI",Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.psheet .phdr{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #222;padding-bottom:8px;margin-bottom:4px;}
.psheet h1{font-size:17px;font-weight:700;letter-spacing:-.01em;}
.psheet .psub{font-size:12px;color:#444;margin-top:3px;}
.psheet .psum{font-size:11px;color:#444;text-align:right;max-width:280px;}
.ptable{width:100%;border-collapse:collapse;margin-top:10px;font-size:11.5px;}
.ptable th{text-align:left;border-bottom:1.5px solid #333;padding:6px 8px;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#333;}
.ptable td{border-bottom:1px solid #d4d4d4;padding:7px 8px;vertical-align:top;}
.ptable td.b{font-weight:700;}
.ptable td.grp{background:#2f3a4a;font-weight:800;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:#fff;padding:7px 8px;border-top:2px solid #111;border-bottom:2px solid #111;}
.ptable .done{width:42px;text-align:center;}
.ptable .donebox{display:inline-block;width:15px;height:15px;border:1.5px solid #333;border-radius:3px;}
.psheet .pfoot{margin-top:10px;font-size:9.5px;color:#999;}
.pbreak{page-break-after:always;}

/* ===== v9 Schedule: week strip + staff grid + day sheet ===== */
.pill.acc{background:var(--accent-soft);color:var(--accent);}
.pill.neutral{background:var(--fill2);color:var(--ink2);}
.pill.so{background:var(--ok-bg);color:var(--ok);}

.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin-bottom:16px;}
.daycard{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px 12px 12px;display:flex;flex-direction:column;gap:10px;cursor:pointer;}
.daycard:hover{border-color:#CFDCEB;}
.daycard.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}
.daycard.selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}
.daycard .dch{display:flex;align-items:center;justify-content:space-between;}
.daycard .dnm{font-size:10.5px;font-weight:680;color:var(--ink2);text-transform:uppercase;letter-spacing:.08em;}
.daycard.selected .dnm{color:var(--accent);}
.daycard .dd{font-size:13px;font-weight:660;color:var(--ink);}
.daycard .todaypill{font-size:8.5px;font-weight:680;color:var(--warn);background:var(--warn-bg);padding:1px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.06em;}
.daycard .stay{text-align:center;padding:7px 0 6px;background:var(--fill);border-radius:7px;}
.daycard.selected .stay{background:var(--surface);}
.daycard .stay .v{font-size:24px;font-weight:680;letter-spacing:-.025em;line-height:1;}
.daycard .stay .l{font-size:9px;font-weight:680;color:var(--ink2);text-transform:uppercase;letter-spacing:.07em;margin-top:4px;}
.daycard .metrics{display:flex;flex-direction:column;gap:4px;}
.daycard .m{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:4px 7px;border-radius:5px;}
.daycard .m .ml{display:flex;align-items:center;gap:6px;color:var(--ink2);font-weight:560;}
.daycard .m .ml svg{width:11px;height:11px;color:var(--ink3);}
.daycard .m .mv{font-weight:660;color:var(--ink);font-variant-numeric:tabular-nums;}
.daycard .m.b2b{background:var(--accent-soft);border:1px solid #CFDCEB;}
.daycard .m.b2b .ml,.daycard .m.b2b .ml svg,.daycard .m.b2b .mv{color:var(--accent);}
.daycard.selected .m.b2b{background:var(--accent);border-color:var(--accent);}
.daycard.selected .m.b2b .ml,.daycard.selected .m.b2b .ml svg,.daycard.selected .m.b2b .mv{color:#fff;}
.daycard .m.so{background:var(--ok-bg);border:1px solid #C8DCC4;}
.daycard .m.so .ml,.daycard .m.so .ml svg,.daycard .m.so .mv{color:var(--ok);}
.daycard.selected .m.so{background:var(--ok);border-color:var(--ok);}
.daycard.selected .m.so .ml,.daycard.selected .m.so .ml svg,.daycard.selected .m.so .mv{color:#fff;}
.daycard .m.peekable{cursor:pointer;}
.daycard .m.peekable .mv{display:inline-flex;align-items:center;gap:2px;}
.daycard .m.peekable .mv svg{width:11px;height:11px;opacity:.6;}
.daycard .m.b2b.peekable:hover{background:var(--accent);border-color:var(--accent);}
.daycard .m.b2b.peekable:hover .ml,.daycard .m.b2b.peekable:hover .ml svg,.daycard .m.b2b.peekable:hover .mv{color:#fff;}
.daycard .m.so.peekable:hover{background:var(--ok);border-color:var(--ok);}
.daycard .m.so.peekable:hover .ml,.daycard .m.so.peekable:hover .ml svg,.daycard .m.so.peekable:hover .mv{color:#fff;}
/* day-card metric quick-peek modal */
.peeklist{display:flex;flex-direction:column;gap:8px;max-height:min(56vh,440px);overflow-y:auto;margin:0 -4px;padding:1px 4px;}
.peekrow{border:1px solid var(--line);border-radius:9px;padding:10px 12px;}
.peekrow .pk-room{font-size:12.5px;font-weight:660;color:var(--ink);margin-bottom:5px;}
.peekrow .pk-main{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.peekrow .pk-guest{font-size:12.5px;font-weight:560;color:var(--ink);}
.peekrow .pk-stay{font-size:11px;color:var(--ink2);}
.peekrow .pk-dates{font-size:11px;color:var(--ink3);margin-top:3px;}
.peekrow .pk-leg{display:flex;align-items:center;gap:8px;padding:3px 0;flex-wrap:wrap;}
.peekrow .pk-leg+.pk-leg{border-top:1px dashed var(--line2);margin-top:3px;padding-top:6px;}
.peekrow .pk-dir{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:5px;flex:none;}
.peekrow .pk-dir svg{width:11px;height:11px;}
.peekrow .pk-dir.out{background:var(--fill2);color:var(--ink2);}
.peekrow .pk-dir.in{background:var(--accent-soft);color:var(--accent);}
.daycard .crew{display:flex;align-items:center;padding-top:9px;border-top:1px solid var(--line2);min-height:30px;}
.daycard .crew .av{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:660;border:1.5px solid var(--surface);}
.daycard .crew .av+.av{margin-left:-6px;}
.daycard .crew .none{font-size:10px;color:var(--ink3);font-weight:580;}

.staffgrid{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px;}
.staffhead{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line2);gap:14px;flex-wrap:wrap;}
.staffhead h4{font-size:14px;font-weight:640;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;}
.staffhead h4 svg{width:14px;height:14px;color:var(--ink2);}
.staffhead .meta{font-size:11px;color:var(--ink2);margin-top:3px;}
.staffhead .right{display:flex;gap:7px;align-items:center;flex:none;}
.stafftable{width:100%;border-collapse:collapse;}
.stafftable th{font-size:9.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;padding:9px 8px;text-align:center;background:var(--fill);border-bottom:1px solid var(--line);white-space:nowrap;}
.stafftable th.name{text-align:left;padding-left:18px;width:200px;}
.stafftable tr.grouprow td{background:var(--fill2);font-size:9.5px;font-weight:740;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);padding:7px 8px 7px 18px;border-top:2px solid var(--ink3);border-bottom:1px solid var(--line);}
.stafftable th.today{color:var(--warn);background:var(--warn-bg);}
.stafftable td{padding:11px 8px;border-bottom:1px solid var(--line2);text-align:center;vertical-align:middle;}
.stafftable td.name{text-align:left;padding-left:18px;}
.stafftable td.today{background:#FBFAF6;}
.stafftable tr:last-child td{border-bottom:0;}
.stafftable td.name .nm{display:flex;align-items:center;gap:10px;}
.stafftable td.name .av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:660;flex:none;}
.stafftable td.name .nt{font-weight:620;font-size:12.5px;line-height:1.2;}
.stafftable td.name .nr{font-size:10px;color:var(--ink2);margin-top:1px;}
.stafftable .shift{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:10.5px;font-weight:620;padding:5px 9px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,monospace;min-width:54px;cursor:pointer;box-shadow:inset 0 0 0 1px transparent;}
.stafftable .shift:hover{box-shadow:inset 0 0 0 1.5px var(--accent);}
.stafftable .shift.lead{background:var(--accent);color:#fff;}
.stafftable .off{color:var(--ink3);font-weight:580;font-size:11px;font-style:italic;cursor:pointer;border:1px solid transparent;border-radius:6px;padding:4px 9px;}
.stafftable .off:hover{color:var(--accent);border-color:var(--accent-soft);}
.stafftable .empty{color:var(--ink4);font-size:15px;font-weight:600;border:1px dashed var(--line);border-radius:6px;padding:4px 9px;display:inline-block;min-width:54px;cursor:pointer;}
.stafftable .empty:hover{color:var(--accent);border-color:var(--accent-soft);}
.stafftable .dash{color:var(--ink4);font-weight:600;font-size:13px;cursor:pointer;border:1px solid transparent;border-radius:6px;padding:4px 9px;display:inline-block;min-width:54px;}
.stafftable .dash:hover{color:var(--accent);border-color:var(--accent-soft);}
/* schedule defaults & bulk toolbar */
.schedtools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 18px;border-bottom:1px solid var(--line);background:var(--fill);}
.schedtools .lbl{color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;font-weight:680;font-size:9.5px;}
.schedtools a{color:var(--accent);cursor:pointer;font-weight:560;font-size:11px;display:inline-flex;align-items:center;gap:4px;}
.schedtools a:hover{text-decoration:underline;}
.schedtools a svg{width:12px;height:12px;}
/* default-times & payroll modal tables */
.ddtable{width:100%;border-collapse:collapse;font-size:12px;}
.ddtable th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);font-weight:680;padding:6px 8px;border-bottom:1px solid var(--line);}
.ddtable td{padding:7px 8px;border-bottom:1px solid var(--line2);}
.ddtable tr.ddgrp td{background:var(--fill2);font-weight:740;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);border-top:2px solid var(--ink3);}
.ddtable tr.ddtot td{font-weight:740;border-top:2px solid var(--ink);background:var(--fill);}
/* quick-add cells + standing-default markers (schedule grid) */
.stafftable .qadd:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);border-style:solid;}
.stafftable .defmk{font-style:normal;color:var(--accent2);font-size:8px;vertical-align:super;margin-left:2px;opacity:.9;}
.stafftable .shift.eve{box-shadow:inset 2.5px 0 0 var(--accent);}
.stafftable .shift.eve:hover{box-shadow:inset 2.5px 0 0 var(--accent),inset 0 0 0 1.5px var(--accent);}
.deflegend{color:var(--ink3);white-space:nowrap;}
.deflegend .defmk{font-style:normal;color:var(--accent2);font-size:8px;vertical-align:super;margin-right:2px;}
/* standing-week toggle chips (Default shifts modal) */
.ddtable.standingwk th,.ddtable.standingwk td{text-align:center;}
.ddtable.standingwk td.dpname{text-align:left;font-weight:600;white-space:nowrap;}
.dpname .av{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:660;margin-right:7px;vertical-align:middle;}
.dchip{min-width:40px;border-radius:6px;padding:4px 7px;font-size:10px;font-weight:640;cursor:pointer;border:1px solid var(--line);background:var(--accent-soft);color:var(--accent);}
.dchip:hover{border-color:var(--accent);}
.dchip.off{background:transparent;color:var(--ink3);border-style:dashed;font-style:italic;}
/* shift editor — cleaner sectioned layout */
.shiftbox .ml{padding:16px 18px;}
.shiftbox .sh-times{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px;}
.shiftbox .sh-times>div{flex:1;}
.shiftbox .sh-times .dlabel{margin:0 0 5px;}
.shiftbox .sh-times select{width:100%;padding:8px;}
.shiftbox .sh-to{color:var(--ink3);padding-bottom:9px;font-size:12px;}
.shiftbox .sh-save{width:100%;justify-content:center;margin-bottom:8px;}
.shiftbox .sh-seg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;}
.shiftbox .sh-seg .actbtn{justify-content:center;}
.shiftbox .sh-defchk{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink2);margin:11px 0 0;cursor:pointer;}
.shiftbox .sh-defchk strong{font-weight:660;color:var(--ink);}
.shiftbox .sh-sec{border-top:1px solid var(--line);margin-top:13px;padding-top:11px;}
.shiftbox .sh-seclbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink3);font-weight:680;margin-bottom:8px;}
.shiftbox .sh-wide{width:100%;justify-content:center;}
.shiftbox .sh-grid2{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.shiftbox .sh-grid2 .actbtn{justify-content:center;}
.shiftbox .sh-inactive{width:100%;justify-content:center;margin-top:14px;color:var(--ink2);font-size:11px;}
.stafffoot{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line2);background:var(--fill);font-size:11.5px;color:var(--ink2);flex-wrap:wrap;gap:8px;}
.stafffoot strong{color:var(--ink);font-weight:640;}
.stafffoot .right{display:flex;gap:14px;}
.stafffoot a{color:var(--accent);font-weight:580;cursor:pointer;}

.dayhead{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--accent-soft);border-bottom:1px solid #CFDCEB;flex-wrap:wrap;}
.dayhead .dbadge{display:flex;flex-direction:column;align-items:center;background:var(--accent);color:#fff;border-radius:9px;padding:7px 12px;min-width:58px;}
.dayhead .dbadge .v{font-size:19px;font-weight:680;line-height:1;}
.dayhead .dbadge .m{font-size:9px;font-weight:680;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;}
.dayhead .dtitle{flex:1;min-width:200px;}
.dayhead .dtitle h4{font-size:15px;font-weight:660;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;}
.dayhead .dtitle .stats{font-size:11.5px;color:var(--ink2);margin-top:3px;}
.dayhead .dtitle .stats strong{color:var(--ink);font-weight:640;}
.dayhead .dtitle .stats .b2b{color:var(--accent);font-weight:640;}
.daysheet .ass select{border:1px solid var(--line);border-radius:6px;padding:4px 7px;font-size:11px;font-family:inherit;background:var(--fill);color:var(--ink);font-weight:560;}

/* ===== admin / visibility toggles ===== */
.tog{position:relative;width:38px;height:22px;border-radius:999px;background:var(--ink4);border:none;flex:none;transition:background .15s;}
.tog::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on{background:var(--ok);}
.tog.on::after{left:18px;}
.permgrid{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.permgrid th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);font-weight:680;padding:11px 12px;border-bottom:1px solid var(--line);background:var(--fill);text-align:center;}
.permgrid th:first-child{text-align:left;}
.permgrid td{padding:10px 12px;border-bottom:1px solid var(--line2);font-size:12px;text-align:center;}
.permgrid td:first-child{text-align:left;font-weight:560;}
.permgrid tbody tr:last-child td{border-bottom:none;}
.permgrid .who{display:flex;align-items:center;gap:9px;}
.permgrid .rolep{font-size:9.5px;color:var(--ink3);}
.permgrid td:nth-child(2),.permgrid td:nth-child(3){text-align:left;}
.rolesel{font:inherit;font-size:11.5px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);cursor:pointer;}
.rolesel:hover{border-color:var(--accent2);}
/* global search */
.searchmodal{align-items:flex-start;justify-content:center;padding-top:80px;}
.searchbox{width:640px;max-width:94vw;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 80px -30px rgba(0,0,0,.5);overflow:hidden;}
.search-in{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);}
.search-in svg{width:18px;height:18px;color:var(--ink3);flex:none;}
.search-in input{flex:1;border:none;outline:none;background:none;font:inherit;font-size:15px;color:var(--ink);}
.search-in kbd{font-size:10px;color:var(--ink3);border:1px solid var(--line);border-radius:5px;padding:2px 6px;background:var(--fill);}
.search-results{max-height:60vh;overflow-y:auto;padding:8px;}
.search-hint{padding:26px 18px;text-align:center;font-size:12px;color:var(--ink3);line-height:1.6;}
.search-grp{margin-bottom:6px;}
.search-gl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink3);padding:8px 10px 4px;}
.search-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:9px 10px;cursor:pointer;}
.search-item:hover,.search-item:focus{background:var(--accent-soft);}
.search-item .si-ic{width:30px;height:30px;border-radius:7px;background:var(--fill);color:var(--ink2);display:flex;align-items:center;justify-content:center;flex:none;}
.search-item .si-ic svg{width:15px;height:15px;}
.search-item .si-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.search-item .si-t{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-item .si-s{font-size:10.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-item .si-why{font-size:10.5px;color:var(--ink2);line-height:1.4;margin-top:3px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;}
.search-item .si-wl{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);background:var(--fill);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-right:5px;}
.search-item mark{background:var(--warn-bg);color:var(--ink);font-weight:640;border-radius:3px;padding:0 1px;}
.search-item .si-why mark{background:var(--accent-soft);color:var(--accent);}
.search-count{font-size:9.5px;font-weight:680;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);padding:6px 10px 2px;}
.search-item > svg{width:14px;height:14px;color:var(--ink4);flex:none;align-self:flex-start;margin-top:9px;}
.ksearch kbd{font-size:10px;color:var(--ink3);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-left:auto;background:var(--surface);}
/* maintenance email-list dialog + note dates */
.modalbox.wide{width:720px;max-width:95vw;}
.mlistprev{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;}
.mlistprev table{margin:0;}
.mlistprev .dtable th{position:sticky;top:0;background:var(--fill);z-index:1;}
.noteitem .ndate{font-size:10px;color:var(--ink3);margin-top:3px;}
/* staffing status toggle + send-schedule compose dialog */
.statustog{background:none;border:none;padding:0;cursor:pointer;}
.sendrow{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12.5px;}
.sendrow .sl{width:84px;flex:none;color:var(--ink3);font-size:11px;}
.sendrow .sv{flex:1;color:var(--ink);min-width:0;}
.attchip{display:inline-flex;align-items:center;gap:6px;background:var(--fill);border:1px solid var(--line);border-radius:7px;padding:4px 9px;font-size:11.5px;color:var(--ink2);}
.attchip svg{color:var(--accent);}
/* parks checkbox dropdown */
.parkdd{position:relative;display:inline-block;}
.parkdd-sum{list-style:none;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:560;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;white-space:nowrap;}
.parkdd-sum::-webkit-details-marker{display:none;}
.parkdd-sum:hover{border-color:var(--accent2);}
.parkdd-sum svg{width:12px;height:12px;color:var(--ink3);transition:transform .15s;}
.parkdd[open] .parkdd-sum svg{transform:rotate(180deg);}
.parkdd-menu{margin-top:5px;min-width:160px;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 26px -16px rgba(0,0,0,.3);padding:6px;}
.parkdd-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;font-size:12px;font-weight:520;cursor:pointer;white-space:nowrap;}
.parkdd-item.allp{border-bottom:1px solid var(--line2);border-radius:0;margin-bottom:2px;}
.permgrid tbody tr.urow-off td:first-child{opacity:.55;}
.parkdd-item:hover{background:var(--fill);}
.parkdd-item input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;}

/* digest preview */
.digest{display:flex;flex-direction:column;gap:9px;}
.digline{display:flex;align-items:flex-start;gap:9px;font-size:12px;padding:9px 11px;background:var(--fill);border-radius:8px;border-left:3px solid var(--accent2);}
.digline.urg{border-left-color:var(--alert);background:var(--alert-bg);}
.digline svg{width:14px;height:14px;color:var(--ink2);flex:none;margin-top:1px;}
.digline.urg svg{color:var(--alert);}
.smsframe{background:var(--ink);border-radius:14px;padding:14px;max-width:300px;}
.smsbubble{background:#2b6cb0;color:#fff;border-radius:14px 14px 14px 4px;padding:10px 13px;font-size:12px;line-height:1.45;white-space:pre-wrap;}
.smsmeta{font-size:9.5px;color:var(--ink4);margin-top:7px;text-align:center;}

/* ===== v9 list pattern: filter bar + table + docked drawer ===== */
.pill.edit{padding-right:6px;cursor:pointer;}
.pill.edit::after{content:"";display:inline-block;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3.6px solid currentColor;margin-left:3px;opacity:.55;}

.fbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.fbar .fchip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 11px;font-size:11.5px;color:var(--ink);font-weight:540;cursor:pointer;}
.fbar .fchip .lbl{color:var(--ink2);}
.fbar .fchip svg{width:12px;height:12px;color:var(--ink3);}
.fbar .fchip.act{background:var(--accent-soft);color:var(--accent);border-color:#CFDCEB;font-weight:620;}
.fbar .fchip.act svg{color:var(--accent);}
.fbar .fchip .x{width:14px;height:14px;border-radius:50%;background:var(--accent2);color:#fff;display:inline-flex;align-items:center;justify-content:center;margin-left:3px;}
.fbar .fchip .x svg{width:8px;height:8px;color:#fff;}
.fbar .addf{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px dashed var(--line);border-radius:7px;padding:6px 11px;font-size:11.5px;color:var(--ink2);font-weight:540;}
.fbar .addf svg{width:12px;height:12px;}
.fbar .right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.fbar .sortbtns{display:inline-flex;align-items:center;gap:4px;}
.fbar .sortbtns .sl{font-size:11px;color:var(--ink3);margin-right:2px;}
.fbar .sortb{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:11px;color:var(--ink2);font-weight:560;cursor:pointer;white-space:nowrap;}
.fbar .sortb.on{background:var(--accent-soft);color:var(--accent);border-color:#CFDCEB;font-weight:640;}
/* on-site arriving/departing rows (Notifications) */
.onrow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line2);font-size:12px;}
.onrow:last-child{border-bottom:none;}
.onrow .onname{color:var(--ink);font-weight:560;}
.onrow .onsite{color:var(--ink2);font-weight:600;font-variant-numeric:tabular-nums;}
.onnone{font-size:11.5px;color:var(--ink3);padding:6px 0;}
.fdlist .fdday{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);background:var(--fill2);padding:5px 14px;border-top:1px solid var(--line2);}
.fdlist .fdday:first-child{border-top:none;}
.ucard.off{opacity:.6;}
.subrow .sb-c{margin-left:auto;font-size:11.5px;color:var(--ink2);white-space:nowrap;}
/* ---- login gate ---- */
.sbuser .sb-signout{margin-left:auto;background:none;border:none;color:var(--ink3);cursor:pointer;display:inline-flex;align-items:center;padding:6px;border-radius:7px;}
.sbuser .sb-signout:hover{background:var(--fill2);color:var(--alert);}
.loginwrap{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--accent) 0%,#16263c 100%);padding:20px;}
.loginbox{width:380px;max-width:94vw;background:var(--surface);border-radius:16px;box-shadow:0 30px 70px -20px rgba(0,0,0,.55);padding:26px 26px 22px;}
.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.login-brand .mk{width:34px;height:34px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.login-brand .bt{font-size:18px;font-weight:720;color:var(--ink);line-height:1.1;}
.login-brand .bt small{display:block;font-size:10px;font-weight:560;color:var(--ink3);letter-spacing:.02em;}
.login-h{font-size:14px;font-weight:660;color:var(--ink);margin:0 0 12px;}
.login-sub{font-size:12px;color:var(--ink2);line-height:1.5;margin:-6px 0 14px;}
.temppw{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:20px;font-weight:680;letter-spacing:.04em;color:var(--accent);text-align:center;background:var(--accent-soft);border:1px dashed var(--accent2);border-radius:10px;padding:14px;user-select:all;}
.pwor{display:flex;align-items:center;gap:10px;margin:16px 0;}
.pwor::before,.pwor::after{content:"";flex:1;height:1px;background:var(--line);}
.pwor span{font-size:10px;font-weight:680;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);}
.login-l{display:block;font-size:11px;font-weight:620;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;margin:10px 0 5px;}
.login-in{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-size:13px;font-family:inherit;color:var(--ink);background:var(--surface);}
.login-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);}
.login-btn{width:100%;justify-content:center;margin-top:16px;padding:11px;}
.login-err{background:var(--alert-bg);color:var(--alert);border-radius:8px;padding:8px 11px;font-size:11.5px;font-weight:560;display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.login-err svg{width:13px;height:13px;}
.login-note{font-size:10.5px;color:var(--ink3);line-height:1.5;margin-top:12px;display:flex;gap:6px;}
.login-note svg{width:13px;height:13px;flex:none;color:var(--accent);}
.login-demos{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;}
.login-dl{font-size:10px;font-weight:680;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);margin-bottom:7px;}
.login-demo{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:var(--fill2);border:1px solid transparent;border-radius:9px;padding:8px 10px;margin-bottom:6px;cursor:pointer;font-family:inherit;}
.login-demo:hover{border-color:var(--accent2);background:var(--accent-soft);}
.login-demo .av-sm{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:680;flex:none;}
.login-demo strong{font-size:12px;font-weight:600;color:var(--ink);display:block;}
.login-demo small{font-size:10px;color:var(--ink3);}
.onday{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);margin:8px 0 2px;}
.onday:first-child{margin-top:0;}
.fbar .tsearch{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:0 11px;font-size:11.5px;color:var(--ink3);width:240px;}
.fbar .tsearch svg{width:13px;height:13px;flex:none;}
.fbar .tsearch input{border:none;background:none;outline:none;font-family:inherit;font-size:11.5px;padding:7px 0;width:100%;color:var(--ink);}
/* filter dropdown (chip that opens a menu) */
.fbar .fdrop{position:relative;}
.fbar .fdrop>summary{list-style:none;}
.fbar .fdrop>summary::-webkit-details-marker{display:none;}
.fbar .fdrop[open]>summary{background:var(--accent-soft);color:var(--accent);border-color:#CFDCEB;}
.fbar .fmenu{position:absolute;top:calc(100% + 5px);left:0;z-index:25;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 14px 36px -16px rgba(0,0,0,.4);padding:5px;min-width:175px;max-height:300px;overflow:auto;display:flex;flex-direction:column;}
.fbar .fmenu button{text-align:left;background:none;border:none;border-radius:6px;padding:7px 10px;font-size:12px;color:var(--ink);cursor:pointer;font-family:inherit;}
.fbar .fmenu button:hover{background:var(--fill2);}
.fbar .fmenu button.on{background:var(--accent-soft);color:var(--accent);font-weight:620;}
/* vendor table */
.vendtable td{vertical-align:middle;}
.vendtable .vtitle{display:flex;flex-direction:column;gap:1px;}
.vendtable .vid{font-size:9px;font-weight:680;color:var(--ink3);font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.03em;}
.vendtable .vtitle .title{font-weight:620;font-size:12.5px;color:var(--ink);}
/* vendor detail pane */
.panel.vpanel{display:flex;flex-direction:column;overflow:hidden;}
.panel.vpanel .pbody{flex:1;min-height:0;overflow:auto;}
.vph{align-items:flex-start;}
.vph .vid-row{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);margin-bottom:3px;}
.vpills{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px;}
.vcard{background:var(--fill);border:1px solid var(--line);border-radius:10px;padding:2px 13px;margin-bottom:4px;}
.vcard .fieldrow{border-bottom:1px solid var(--line2);}
.vcard .fieldrow:last-child{border-bottom:0;}
.vcard .fieldrow .v a{color:var(--accent);display:inline-flex;align-items:center;gap:4px;}
.vcard .fieldrow .v a svg{width:11px;height:11px;}
.vjobs,.vdocs{display:flex;flex-direction:column;gap:7px;}
.vjob,.vdoc{display:flex;align-items:center;gap:9px;font-size:11.5px;padding:8px 11px;background:var(--fill);border:1px solid var(--line);border-radius:9px;}
.vjob .jid{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;font-weight:680;color:var(--accent);flex:none;}
.vjob .jdesc{flex:1;min-width:0;}
.vjob .pill{margin-left:auto;flex:none;}
.vdoc .dl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);width:34px;flex:none;}
.vdoc .dn{flex:1;color:var(--accent);display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;}
.vdoc .dn svg{width:11px;height:11px;flex:none;}
.vdoc .dnote{font-size:10px;color:var(--ink3);flex:none;}
.vnotes{font-size:12px;color:var(--ink2);line-height:1.55;background:var(--fill);border:1px solid var(--line);border-radius:9px;padding:11px 13px;}
.vfoot{border-top:1px solid var(--line);padding:12px 18px;display:flex;gap:10px;background:var(--surface);}
.vfoot .actbtn{flex:1;justify-content:center;text-decoration:none;}
/* dashboard card redesigns (maintenance / violations) */
.dim{color:var(--ink3);}
.card .ch .meta{display:flex;align-items:center;gap:7px;font-size:11px;}
.seclabel.sm{margin:13px 0 8px;}
.kpirow{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:6px;}
@media(max-width:560px){.kpirow{grid-template-columns:1fr 1fr;}}
.kt{background:var(--fill);border:1px solid var(--line);border-radius:10px;padding:9px 11px;min-width:0;}
.kt .kl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);}
.kt .kv{font-size:21px;font-weight:680;letter-spacing:-.02em;line-height:1.1;margin-top:1px;}
.kt .ks{font-size:10px;color:var(--ink2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kt.urgent{background:var(--alert-bg);border-color:#E7CDCD;}
.kt.urgent .kl,.kt.urgent .kv{color:var(--alert);}
.catbars{display:flex;flex-direction:column;gap:7px;}
.catbar{display:grid;grid-template-columns:78px 1fr 22px;align-items:center;gap:10px;font-size:11.5px;}
.catbar .cbl{color:var(--ink);font-weight:540;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.catbar .cbt{height:8px;background:var(--fill2);border-radius:5px;overflow:hidden;}
.catbar .cbt i{display:block;height:100%;border-radius:5px;}
.catbar .cbv{text-align:right;font-weight:660;font-variant-numeric:tabular-nums;color:var(--ink);}
.recur{display:flex;flex-direction:column;}
.recrow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line2);font-size:11.5px;cursor:pointer;}
.recrow:first-child{border-top:0;}
.recrow .rru{font-weight:540;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.recrow .rrp{color:var(--ink2);font-size:11px;}
.vfunnel{display:flex;flex-direction:column;gap:7px;margin-bottom:2px;}
.vfrow{display:grid;grid-template-columns:72px 1fr 16px;align-items:center;gap:10px;font-size:11.5px;cursor:pointer;}
.vfrow .vfl{color:var(--ink2);font-weight:540;}
.vfrow .vft{height:20px;background:var(--fill2);border-radius:5px;overflow:hidden;display:flex;align-items:center;}
.vfrow .vft i{display:flex;align-items:center;height:100%;background:#DCE4F0;color:var(--ink2);font-size:10px;font-weight:700;padding-left:8px;border-radius:5px;min-width:20px;font-style:normal;}
.vfrow.hot .vft i{background:var(--accent);color:#fff;}
.vfrow .vfn{text-align:right;font-weight:660;color:var(--ink);font-variant-numeric:tabular-nums;}
.ndel{display:flex;flex-direction:column;gap:7px;}
.ndrow{display:grid;grid-template-columns:92px 1fr 36px;align-items:center;gap:10px;font-size:11.5px;}
.ndrow .ndl{color:var(--ink2);}
.ndrow .ndt{height:8px;background:var(--fill2);border-radius:5px;overflow:hidden;}
.ndrow .ndt i{display:block;height:100%;border-radius:5px;}
.ndrow .ndt i.ok{background:var(--ok);}
.ndrow .ndt i.amber{background:#9a7a1a;}
.ndrow .ndn{text-align:right;font-size:10.5px;color:var(--ink2);font-variant-numeric:tabular-nums;}
/* utilities cards (grouped, richer) */
.useclabel{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink3);margin:6px 0 10px;}
.ucardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:18px;}
.ucard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:11px;}
.ucard:hover{border-color:#CFDCEB;}
.ucard .uc-hd{display:flex;align-items:center;gap:10px;}
.ucard .uc-ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;}
.ucard .uc-ic svg{width:17px;height:17px;}
.ucard .uc-ic.amber{background:var(--warn-bg);color:var(--warn);}
.ucard .uc-ic.blue{background:var(--accent-soft);color:var(--accent);}
.ucard .uc-ic.grey{background:var(--fill2);color:var(--ink2);}
.ucard .uc-nm{flex:1;min-width:0;}
.ucard .uc-nm .n{font-size:13px;font-weight:640;color:var(--ink);}
.ucard .uc-nm .s{font-size:10.5px;color:var(--ink2);margin-top:1px;}
.ucard .uc-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.ucard .uc-cell{background:var(--fill);border-radius:8px;padding:8px 10px;min-width:0;}
.ucard .uc-cell .l,.ucard .uc-bill .l{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);}
.ucard .uc-cell .v{font-size:12px;font-weight:560;color:var(--ink);margin-top:2px;word-break:break-word;}
.ucard .uc-cell .v.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px;}
.ucard .uc-bill{display:flex;align-items:flex-end;justify-content:space-between;background:var(--fill);border-radius:8px;padding:9px 12px;}
.ucard .uc-bill .big{font-size:18px;font-weight:680;letter-spacing:-.02em;color:var(--ink);margin-top:1px;}
.ucard .uc-bill .due{text-align:right;}
.ucard .uc-bill .due .v{font-size:12px;font-weight:560;color:var(--ink);margin-top:1px;}
.ucard .uc-btns{display:flex;gap:7px;}
.ucard .uc-btns .actbtn{flex:1;justify-content:center;text-decoration:none;}
.ucard .uc-btns .actbtn.icob{flex:none;width:38px;padding:0;}

.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
table.dtable{width:100%;border-collapse:collapse;font-size:12px;}
table.dtable thead th{font-size:10px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);background:var(--fill);white-space:nowrap;}
table.dtable tbody td{padding:10px;border-bottom:1px solid var(--line2);vertical-align:middle;}
table.dtable tbody tr{cursor:pointer;}
table.dtable tbody tr:last-child td{border-bottom:none;}
table.dtable tbody tr:hover{background:var(--accent-soft2);}
table.dtable tbody tr.selected{background:var(--accent-soft2);box-shadow:inset 3px 0 0 var(--accent);}
table.dtable .id{font-size:10.5px;font-weight:680;color:var(--ink2);font-family:ui-monospace,SFMono-Regular,monospace;}
table.dtable .title{display:flex;align-items:center;gap:8px;font-weight:560;color:var(--ink);}
table.dtable tr.selected .title{color:var(--accent);font-weight:620;}
table.dtable .thumb{width:22px;height:22px;border-radius:4px;background:var(--fill);display:flex;align-items:center;justify-content:center;color:var(--ink3);flex:none;}
table.dtable .thumb svg{width:11px;height:11px;}
table.dtable .park{color:var(--ink2);font-weight:540;white-space:nowrap;}
table.dtable .ass{display:flex;align-items:center;gap:6px;white-space:nowrap;}
table.dtable .ass .av{width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:660;flex:none;}
table.dtable .ass.unassigned{color:var(--ink3);font-style:italic;}
table.dtable .age{color:var(--ink2);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;}
table.dtable .com{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink2);font-weight:580;}
table.dtable .com svg{width:12px;height:12px;color:var(--ink3);}
table.dtable .com.has{color:var(--accent);}
table.dtable .com.has svg{color:var(--accent);}
.tablefoot{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--line2);background:var(--surface);font-size:11.5px;color:var(--ink2);}
.tablefoot .right{display:flex;gap:14px;align-items:center;}
.tablefoot a{color:var(--accent);font-weight:580;cursor:pointer;}

/* mini 5-step tracker (in row) */
.mtrack{display:inline-flex;align-items:center;gap:0;}
.mtrack .s{width:11px;height:11px;border-radius:50%;background:var(--surface);border:1.6px solid var(--line);flex:none;}
.mtrack .s.done{background:var(--ok);border-color:var(--ok);}
.mtrack .s.cur{background:var(--accent);border-color:var(--accent);}
.mtrack .ln{width:7px;height:2px;background:var(--line);flex:none;}
.mtrack .ln.done{background:var(--ok);}
.mtrack .stp{margin-left:8px;font-size:10.5px;font-weight:600;color:var(--accent);}

/* docked drawer */
.drawer{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;position:sticky;top:16px;display:flex;flex-direction:column;max-height:calc(100vh - 110px);}
/* maintenance / violations detail as a right slide-over (reuses the docked-drawer inner markup) */
.scrim > .drawer.panelized{position:static;top:0;width:480px;max-width:94vw;height:100%;max-height:100%;border:0;border-radius:0;box-shadow:-18px 0 40px -22px rgba(0,0,0,.45);}
.drawer .dhdr{padding:14px 16px 12px;border-bottom:1px solid var(--line2);display:flex;align-items:flex-start;gap:10px;}
.drawer .dhdr .id{font-size:10px;font-weight:680;color:var(--ink2);font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.04em;text-transform:uppercase;}
.drawer .dhdr .title{font-size:14.5px;font-weight:640;letter-spacing:-.01em;line-height:1.3;margin-top:2px;}
.drawer .dhdr .sub{font-size:11px;color:var(--ink2);margin-top:2px;}
.drawer .dhdr .right{margin-left:auto;display:flex;gap:5px;}
.drawer .dhdr .ib{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--ink2);}
.drawer .dhdr .ib svg{width:13px;height:13px;}
.drawer .dsplits{display:flex;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line2);flex-wrap:wrap;}
.drawer .dbody{flex:1;overflow:auto;padding:14px 16px;}
.drawer .dfoot{border-top:1px solid var(--line2);padding:11px 14px;background:var(--surface);}
.drawer .dlabel{font-size:9.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;margin:14px 0 7px;}
.drawer .dlabel:first-child{margin-top:0;}
.drawer .dbox{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px 11px;}
.drawer .dphotos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.drawer .dphotos .ph{aspect-ratio:1;border:1px dashed var(--line);border-radius:7px;background:var(--fill);display:flex;align-items:center;justify-content:center;color:var(--ink3);}
.drawer .dphotos .ph svg{width:16px;height:16px;}
.drawer .ddesc{position:relative;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:9px 30px 9px 11px;font-size:12px;color:var(--ink);line-height:1.45;}
.drawer .ddesc .edit{position:absolute;top:8px;right:8px;color:var(--ink3);}
.drawer .ddesc .edit svg{width:12px;height:12px;}
.drawer .dfield{display:grid;grid-template-columns:96px 1fr;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line2);font-size:11.5px;}
.drawer .dfield:last-child{border-bottom:0;}
.drawer .dfield .fl{color:var(--ink2);font-weight:580;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;}
.drawer .dfield .fv{color:var(--ink);font-weight:540;display:flex;align-items:center;gap:6px;}
.drawer .dfield .fv .av{width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:660;flex:none;}
.drawer .dfield select{border:1px solid var(--line);border-radius:6px;padding:4px 7px;font-size:11.5px;font-family:inherit;background:var(--fill);color:var(--ink);font-weight:560;width:100%;}
.drawer .dact{display:flex;align-items:flex-start;gap:9px;font-size:11.5px;padding:5px 0;}
.drawer .dact .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none;}
.drawer .dact .body{flex:1;}
.drawer .dact .tm{font-size:10px;color:var(--ink3);margin-top:1px;}
.drawer .msg{display:flex;gap:7px;margin-bottom:9px;}
.drawer .msg .av{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:660;flex:none;}
.drawer .msg.am .av{background:var(--warn-bg);color:var(--warn);}
.drawer .msg .body{flex:1;min-width:0;}
.drawer .msg .meta{font-size:10px;color:var(--ink3);display:flex;gap:5px;align-items:baseline;margin-bottom:2px;}
.drawer .msg .meta strong{color:var(--ink);font-weight:620;font-size:11px;}
.drawer .msg .txt{font-size:11.5px;color:var(--ink);line-height:1.45;background:var(--fill);border-radius:7px;padding:7px 9px;}
.drawer .addc{display:flex;gap:7px;}
.drawer .addc input{flex:1;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:11.5px;font-family:inherit;}
.drawer .addc input:focus{outline:none;border-color:var(--accent2);}
.drawer .footbar{display:flex;gap:7px;}
.drawer .footbar .actbtn{flex:1;justify-content:center;}
.gate{font-size:11px;color:var(--warn);background:var(--warn-bg);border:1px solid #E4D6AE;border-radius:7px;padding:8px 10px;display:flex;gap:7px;align-items:flex-start;line-height:1.5;}
.gate svg{width:13px;height:13px;flex:none;margin-top:1px;}

/* full 5-step workflow tracker (in drawer) */
.wftrack{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:2px 0 4px;align-items:flex-start;}
.wfstep{display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;}
.wfstep::after{content:"";position:absolute;top:11px;left:calc(50% + 11px);right:calc(-50% + 11px);height:2px;background:var(--line);}
.wfstep:last-child::after{display:none;}
.wfstep .wfd{width:22px;height:22px;border-radius:50%;background:var(--surface);border:1.6px solid var(--line);color:var(--ink3);display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:680;z-index:1;}
.wfstep .wfd svg{width:11px;height:11px;}
.wfstep .wfl{font-size:8.6px;font-weight:600;color:var(--ink3);text-align:center;line-height:1.15;}
.wfstep.done .wfd{background:var(--ok);border-color:var(--ok);color:#fff;}
.wfstep.done::after{background:var(--ok);}
.wfstep.done .wfl{color:var(--ok);}
.wfstep.current .wfd{background:var(--accent);border-color:var(--accent);color:#fff;}
.wfstep.current .wfl{color:var(--accent);font-weight:700;}

/* detail panel / modal */
.scrim{position:fixed;inset:0;background:rgba(20,22,28,.34);z-index:60;display:flex;justify-content:flex-end;}
.panel{width:460px;max-width:94vw;background:var(--surface);height:100%;overflow:auto;box-shadow:-18px 0 40px -22px rgba(0,0,0,.45);}
.panel .ph{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2;}
.panel .ph h3{font-size:16px;font-weight:650;letter-spacing:-.01em;}
.panel .ph .sub{font-size:11.5px;color:var(--ink2);margin-top:3px;}
.panel .pbody{padding:18px 20px;}
.panel .x{width:30px;height:30px;border-radius:7px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--ink2);flex:none;}
.panel .x svg{width:15px;height:15px;}
.fieldrow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:12.5px;}
.fieldrow .k{color:var(--ink2);}
.fieldrow .v{font-weight:560;text-align:right;}
.seclabel{font-size:10.5px;font-weight:680;color:var(--ink3);text-transform:uppercase;letter-spacing:.07em;margin:18px 0 9px;}

/* comments */
.cmt{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid var(--line2);}
.cmt .cb{flex:1;}
.cmt .cmeta{font-size:10.5px;color:var(--ink3);}
.cmt .cmeta strong{color:var(--ink);font-weight:620;}
.cmt .ctext{font-size:12.5px;margin-top:2px;}
.cmtbox{display:flex;gap:8px;margin-top:12px;}
.cmtbox input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12.5px;font-family:inherit;}
.cmtbox input:focus{outline:none;border-color:var(--accent2);}

/* activity feed */
.feed{display:flex;flex-direction:column;}
.feed .fi{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2);}
.feed .fi:last-child{border-bottom:none;}
.feed .fdot{width:8px;height:8px;border-radius:50%;background:var(--accent2);margin-top:5px;flex:none;}
.feed .ft{font-size:12px;}
.feed .ft strong{font-weight:620;}
.feed .fm{font-size:10.5px;color:var(--ink3);margin-top:1px;}

.empty{text-align:center;color:var(--ink3);font-size:12.5px;padding:30px;}
.stub{background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--ink2);}
.stub svg{width:26px;height:26px;color:var(--ink4);margin-bottom:10px;}
.stub h3{font-size:15px;color:var(--ink);font-weight:620;margin-bottom:5px;}
.stub p{font-size:12.5px;max-width:420px;margin:0 auto;}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:12.5px;font-weight:560;padding:10px 16px;border-radius:9px;z-index:90;box-shadow:0 10px 30px -10px rgba(0,0,0,.5);}

/* modal (switcher / view-as) */
.modal{position:fixed;inset:0;background:rgba(20,22,28,.34);z-index:70;display:flex;align-items:center;justify-content:center;}
.modalbox{background:var(--surface);border-radius:14px;width:380px;max-width:92vw;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:90vh;}
.modalbox .mh{padding:16px 18px;border-bottom:1px solid var(--line);font-size:14px;font-weight:640;flex:none;}
.modalbox .ml{padding:8px;overflow:auto;flex:1;min-height:0;}
.optrow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;}
.optrow:hover{background:var(--fill);}
.optrow.on{background:var(--accent-soft);}
.optrow .av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:660;}
.optrow .nm{font-size:12.5px;font-weight:600;}
.optrow .rl{font-size:10.5px;color:var(--ink3);}

/* Front Desk — In-House list */
.ihbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.ihsearchwrap{flex:1;display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:0 10px;}
.ihsearchwrap svg{width:14px;height:14px;color:var(--ink3);flex:none;}
.ihsearch{flex:1;border:none;outline:none;background:none;font-size:12.5px;color:var(--ink);padding:9px 0;}
.ihtable{width:100%;border-collapse:collapse;font-size:12.5px;}
.ihtable thead th{text-align:left;font-size:10px;font-weight:680;text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--fill);position:sticky;top:0;}
.ihtable tbody td{padding:9px 12px;border-bottom:1px solid var(--line2);vertical-align:middle;}
.ihtable tbody tr:last-child td{border-bottom:none;}
.ihtable tbody tr.ihbalrow{background:rgba(158,58,58,.06);}            /* slight red tint = guest has a balance owed */
.ihtable tbody tr.ihbalrow:hover{background:rgba(158,58,58,.10);}
.ihtable tbody tr.ihon{background:var(--accent-soft);}                 /* selection wins over the balance tint */
.ihtable tbody tr:hover{background:var(--fill);}
.ihtable tbody tr.ihon:hover{background:var(--accent-soft2,var(--accent-soft));}
.ihtable tbody tr.ihon.ihbalrow{background:var(--accent-soft);}
.ihtable .ihck{width:34px;text-align:center;padding-right:0;}
.ihtable .ihck input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;}
.ihtable .ihsite{font-weight:600;}
.ihtable .ihguest{font-weight:560;}
.ihtable .ihbal{font-variant-numeric:tabular-nums;font-weight:600;}
.ihowe{color:var(--alert);}
.ihcred{color:var(--ok);}
.ihfoot{margin-top:10px;font-size:11px;color:var(--ink3);display:flex;align-items:center;gap:8px;}
/* in-house "find a guest" (off-park search) */
.ihfind{padding:14px 16px;margin-bottom:14px;}
.ihfindhd{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);margin-bottom:10px;}
.ihfindhd svg{width:15px;height:15px;color:var(--accent);flex:none;}
.ihfindsub{font-size:11px;font-weight:500;color:var(--ink3);}
.ihfindbar{display:flex;gap:8px;}
.ihfindbar .ihsearch{flex:1;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px 11px;}
.ihfindmsg{font-size:11.5px;color:var(--ink3);margin-top:9px;display:flex;align-items:center;gap:6px;}
.ihfindmsg svg{width:13px;height:13px;color:var(--accent);}

/* email modal — recipient chips, real preview iframe, send results */
.recipchips{display:flex;flex-wrap:wrap;gap:5px;max-height:62px;overflow:auto;padding:2px 0;}
.rchip{font-size:11px;font-weight:560;background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:3px 8px;}
.rchip small{font-weight:500;opacity:.8;}
.rchip.muted{background:var(--fill2);color:var(--ink3);}
.emailto{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2);background:var(--accent-soft);border-radius:7px;padding:7px 10px;margin-bottom:8px;}
.emailto svg{width:13px;height:13px;color:var(--accent);flex:none;}
.emailto strong{color:var(--ink);font-weight:620;}
.emailbanner{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--ink2);background:var(--fill);border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;padding:7px 10px;}
.emailbanner svg{width:13px;height:13px;color:var(--accent);flex:none;}
.emailframe{display:block;width:100%;height:300px;border:1px solid var(--line);border-radius:0 0 8px 8px;background:#fff;}
.sendresults{margin-top:10px;display:flex;flex-direction:column;gap:4px;max-height:130px;overflow:auto;}
.sr{display:flex;align-items:center;gap:6px;font-size:11.5px;padding:5px 9px;border-radius:6px;}
.sr svg{width:13px;height:13px;flex:none;}
.sr.ok{background:var(--ok-bg);color:var(--ink2);}
.sr.ok svg{color:var(--ok);}
.sr.bad{background:var(--alert-bg);color:var(--ink2);}
.sr.bad svg{color:var(--alert);}

/* Notice Delivery composer */
.seg{display:inline-flex;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:3px;gap:2px;}
.seg .segbtn{font-size:12px;font-weight:560;color:var(--ink2);padding:6px 16px;border:none;background:none;border-radius:6px;cursor:pointer;}
.seg .segbtn.on{background:var(--accent);color:#fff;font-weight:640;}
.noticenl{width:100%;min-height:64px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12.5px;font-family:inherit;line-height:1.5;color:var(--ink);outline:none;box-sizing:border-box;}
.noticenl:focus{border-color:var(--accent);}
.noticeedit{border:1px solid var(--line);border-radius:8px;padding:16px 18px;background:#fff;max-height:300px;overflow:auto;outline:none;}
.noticeedit:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);}

/* Reference photos & files (maintenance + violations panes) */
.attgrid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.attthumb{position:relative;width:62px;height:62px;border-radius:8px;overflow:hidden;border:1px solid var(--line);}
.attthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.attfile{position:relative;display:flex;align-items:center;gap:7px;background:var(--fill);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:11.5px;}
.attfile .ai svg{width:14px;height:14px;color:var(--accent);}
.attfile .an{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:560;}
.attfile .az{color:var(--ink3);font-size:10px;}
.attx{border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.attthumb .attx{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;background:rgba(20,22,28,.6);color:#fff;}
.attthumb .attx svg{width:10px;height:10px;}
.attfile .attx{background:none;color:var(--ink3);width:15px;height:15px;}
.attfile .attx svg{width:12px;height:12px;}
.attdrop{display:flex;align-items:center;gap:8px;justify-content:center;border:1.5px dashed var(--line);border-radius:8px;padding:11px;font-size:12px;font-weight:560;color:var(--ink2);cursor:pointer;}
.attdrop:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
.attdrop input{display:none;}
.attdrop svg{width:15px;height:15px;}
.atthint{font-size:10px;color:var(--ink3);margin-top:7px;display:flex;align-items:center;gap:5px;}
.atthint svg{width:12px;height:12px;flex:none;}
