/* OpsDeck design system
   Palette: ink #17242D · pine #0E5A50 · paper #F4F6F5 · hi-vis amber #F0A400 (attention states only)
   Type: Archivo (display) · Inter (body) · IBM Plex Mono (numbers, WO tags) */

:root{
  --ink:#17242D; --ink-2:#3C4A53; --muted:#6B7A82;
  --pine:#0E5A50; --pine-dark:#0A423B; --pine-soft:#E3EFEC;
  --paper:#F4F6F5; --card:#FFFFFF; --line:#E2E8E6;
  --amber:#F0A400; --amber-soft:#FDF3DC;
  --red:#CE3B3B; --red-soft:#FBE9E9;
  --blue:#3568C9; --blue-soft:#E8EEFA;
  --green:#2E8B57; --green-soft:#E6F2EB;
  --violet:#7A5BC7; --violet-soft:#EFEAF9;
  --radius:14px; --shadow:0 1px 2px rgba(23,36,45,.06),0 4px 14px rgba(23,36,45,.05);
  --font-d:'Archivo',sans-serif; --font-b:'Inter',sans-serif; --font-m:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-b);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit;font-size:15px}
a{color:inherit;text-decoration:none}
.boot{padding:60px 20px;text-align:center;color:var(--muted)}

h1,h2,h3,.display{font-family:var(--font-d)}
.mono{font-family:var(--font-m)}

/* ---------- Layout ---------- */
.shell{display:flex;min-height:100vh}
.sidebar{display:none}
.main{flex:1;min-width:0;padding-bottom:84px}
.page{max-width:1080px;margin:0 auto;padding:16px 16px 40px}

@media(min-width:900px){
  .sidebar{display:flex;flex-direction:column;width:224px;background:var(--ink);color:#fff;position:sticky;top:0;height:100vh;padding:20px 12px;flex-shrink:0}
  .main{padding-bottom:0}
  .tabbar{display:none!important}
  .page{padding:28px 32px 60px}
}
.brand{font-family:var(--font-d);font-weight:800;font-size:20px;letter-spacing:.5px;padding:6px 12px 20px;display:flex;align-items:center;gap:9px}
.brand-mark{width:28px;height:28px;background:var(--pine);border-radius:8px;display:grid;place-items:center;font-size:15px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#B9C4C9;font-weight:500;font-size:14px;margin-bottom:2px}
.nav-item.active{background:rgba(255,255,255,.09);color:#fff}
.nav-item:hover{color:#fff}
.nav-spacer{flex:1}
.nav-user{padding:12px;border-top:1px solid rgba(255,255,255,.12);font-size:13px}
.nav-user .role{color:#8FA0A8;font-size:12px;text-transform:capitalize}
.nav-user button{color:#B9C4C9;font-size:12px;margin-top:6px;text-decoration:underline}

/* Topbar (mobile) */
.topbar{position:sticky;top:0;z-index:40;background:var(--ink);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:12px}
@media(min-width:900px){.topbar{background:transparent;color:var(--ink);padding:22px 32px 0;max-width:1144px;margin:0 auto}}
.topbar .brand{padding:0;font-size:18px}
.topbar .grow{flex:1}
.icon-btn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:inherit;font-size:17px;position:relative}
@media(min-width:900px){.icon-btn{background:var(--card);box-shadow:var(--shadow)}}
.badge-dot{position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:var(--amber);border:2px solid var(--ink)}
@media(min-width:900px){.badge-dot{border-color:var(--card)}}

/* Bottom tab bar (mobile) */
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--card);border-top:1px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;padding:9px 4px 7px;text-align:center;font-size:11px;color:var(--muted);font-weight:500}
.tab .ti{font-size:21px;display:block;margin-bottom:1px}
.tab.active{color:var(--pine)}

/* ---------- Components ---------- */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.section-title{font-family:var(--font-d);font-weight:700;font-size:16px;margin:24px 0 10px;display:flex;align-items:center;justify-content:space-between}
.section-title:first-child{margin-top:6px}
.section-title .more{font-family:var(--font-b);font-size:13px;color:var(--pine);font-weight:600}

.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.stat-row{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.stat-row{grid-template-columns:repeat(6,1fr)}}
.stat{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 15px}
.stat .v{font-family:var(--font-d);font-weight:800;font-size:26px;line-height:1.1}
.stat .l{font-size:12px;color:var(--muted);margin-top:3px;font-weight:500}
.stat.warn .v{color:var(--amber)}
.stat.bad .v{color:var(--red)}

.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}
.chip.new{background:var(--violet-soft);color:var(--violet)}
.chip.assigned{background:#EDF1F3;color:var(--ink-2)}
.chip.scheduled{background:var(--blue-soft);color:var(--blue)}
.chip.in_progress{background:var(--pine-soft);color:var(--pine)}
.chip.paused{background:var(--violet-soft);color:var(--violet)}
.chip.waiting_parts{background:var(--amber-soft);color:#9A6B00}
.chip.waiting_approval{background:var(--amber-soft);color:#9A6B00}
.chip.completed{background:var(--green-soft);color:var(--green)}
.chip.cancelled{background:#EEE;color:var(--muted)}
.chip.open{background:var(--blue-soft);color:var(--blue)}
.chip.converted{background:var(--green-soft);color:var(--green)}
.chip.dismissed{background:#EEE;color:var(--muted)}

.pri{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.pri.emergency{color:var(--red)}
.pri.high{color:#B37B00}
.pri.normal{color:var(--blue)}
.pri.low{color:var(--muted)}

.wo-num{font-family:var(--font-m);font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.3px}
.money{font-family:var(--font-m);font-weight:600}

.list-item{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line)}
.list-item:last-child{border-bottom:none}
.list-item .body{flex:1;min-width:0}
.list-item .t{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-item .s{font-size:12.5px;color:var(--muted);margin-top:1px}
.list-item .end{text-align:right;flex-shrink:0}

/* Attention rail — hi-vis amber reserved for these */
.attn{border-left:4px solid var(--amber);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 14px;margin-bottom:9px;display:flex;gap:11px;align-items:center}
.attn.emergency{border-left-color:var(--red)}
.attn .ico{font-size:19px;flex-shrink:0}
.attn .t{font-weight:600;font-size:14px}
.attn .s{font-size:12.5px;color:var(--muted)}
.attn .go{margin-left:auto;color:var(--muted);flex-shrink:0}

/* Status bar breakdown */
.status-bars{display:flex;height:12px;border-radius:99px;overflow:hidden;margin:8px 0 12px}
.status-bars>div{height:100%}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--ink-2)}
.legend .sw{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}

/* Property cards */
.prop-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.prop-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.prop-grid{grid-template-columns:1fr 1fr 1fr}}
.prop-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:block}
.prop-photo{height:96px;display:flex;align-items:flex-end;padding:10px 14px;color:#fff;font-family:var(--font-d);font-weight:700;font-size:17px;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.prop-body{padding:12px 14px}
.prop-meta{display:flex;gap:14px;font-size:12.5px;color:var(--muted);margin-top:6px;flex-wrap:wrap}
.health{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-m);font-weight:600;font-size:13px}
.health .ring{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff}
.h-good{background:var(--green)} .h-ok{background:var(--amber)} .h-bad{background:var(--red)}

/* ---------- Technician: Today ---------- */
.today-head{padding:6px 2px 14px}
.today-head h1{font-size:24px;font-weight:800}
.today-head .sub{color:var(--muted);font-size:13.5px;margin-top:2px}
.job-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;display:flex}
.job-rail{width:6px;flex-shrink:0}
.job-rail.emergency{background:var(--red)} .job-rail.high{background:var(--amber)}
.job-rail.normal{background:var(--blue)} .job-rail.low{background:#C9D2D6}
.job-inner{flex:1;padding:14px 15px}
.job-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.job-title{font-family:var(--font-d);font-weight:700;font-size:16.5px;margin:3px 0 2px}
.job-addr{font-size:13px;color:var(--muted)}
.job-tags{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;align-items:center}
.job-est{font-size:12px;color:var(--muted)}

/* Big thumb actions */
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.act{border-radius:13px;padding:14px 8px;font-weight:700;font-size:13.5px;text-align:center;background:var(--paper);color:var(--ink-2);min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.act .ai{font-size:19px}
.act.primary{background:var(--pine);color:#fff;grid-column:1/-1;font-size:16px;min-height:58px}
.act.done{background:var(--green);color:#fff;grid-column:1/-1;font-size:16px;min-height:58px}
.act.warn{background:var(--amber-soft);color:#9A6B00}
.act:active{transform:scale(.985)}
.timer-live{font-family:var(--font-m);font-weight:600;color:var(--pine);font-size:14px}

/* ---------- Forms / modals ---------- */
.field{margin-bottom:13px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:11px;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--pine)}
.field textarea{min-height:84px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 18px;border-radius:11px;font-weight:700;font-size:14px}
.btn.pri{background:var(--pine);color:#fff}
.btn.sec{background:var(--paper);color:var(--ink-2);border:1.5px solid var(--line)}
.btn.danger{background:var(--red-soft);color:var(--red)}
.btn.full{width:100%}
.btn:disabled{opacity:.5;cursor:default}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.modal-bg{position:fixed;inset:0;background:rgba(23,36,45,.5);z-index:100;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:640px){.modal-bg{align-items:center}}
.modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;padding:20px 18px calc(20px + env(safe-area-inset-bottom))}
@media(min-width:640px){.modal{border-radius:18px}}
.modal h3{font-size:18px;margin-bottom:14px}
.modal-close{float:right;color:var(--muted);font-size:22px;line-height:1}

/* Detail page */
.detail-head{padding:4px 2px 12px}
.detail-head h1{font-size:21px;font-weight:800;line-height:1.25}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;font-size:13.5px}
.kv .k{color:var(--muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.kv .v{font-weight:500;margin-top:1px}

.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.photo-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.4px}

.timeline{position:relative;padding-left:18px}
.timeline:before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-item{position:relative;padding:0 0 15px}
.tl-item:before{display:none}
.tl-item .d{font-family:var(--font-m);font-size:11.5px;color:var(--muted)}
.tl-item .t{font-weight:600;font-size:14px}
.tl-item .s{font-size:12.5px;color:var(--muted)}

.tabs{display:flex;gap:4px;overflow-x:auto;padding:2px;background:var(--card);border-radius:12px;box-shadow:var(--shadow);margin-bottom:16px;-webkit-overflow-scrolling:touch}
.tabs button{flex-shrink:0;padding:8px 14px;border-radius:9px;font-weight:600;font-size:13px;color:var(--muted)}
.tabs button.active{background:var(--pine);color:#fff}

table.data{width:100%;border-collapse:collapse;font-size:13.5px}
table.data th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:8px 10px;border-bottom:1.5px solid var(--line)}
table.data td{padding:10px;border-bottom:1px solid var(--line)}
table.data tr:last-child td{border-bottom:none}
.tr-click{cursor:pointer}
.tr-click:hover{background:var(--paper)}
.table-wrap{overflow-x:auto}

/* Search overlay */
.search-bar{display:flex;gap:10px;margin-bottom:14px}
.search-bar input{flex:1;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:15px}
.search-bar input:focus{outline:none;border-color:var(--pine)}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink);padding:20px}
.login-card{background:#fff;border-radius:20px;padding:30px 26px;width:100%;max-width:400px}
.login-card .brand{color:var(--ink);padding:0 0 4px;font-size:24px}
.login-sub{color:var(--muted);font-size:13.5px;margin-bottom:20px}
.demo-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.demo-roles button{padding:10px 8px;border:1.5px solid var(--line);border-radius:11px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.demo-roles button:hover{border-color:var(--pine);color:var(--pine)}
.err{background:var(--red-soft);color:var(--red);padding:10px 13px;border-radius:10px;font-size:13.5px;margin-bottom:12px}

/* Calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-cell{background:var(--card);border-radius:9px;min-height:74px;padding:5px 6px;font-size:11px;box-shadow:var(--shadow)}
.cal-cell.dim{opacity:.45}
.cal-cell.today{outline:2px solid var(--pine)}
.cal-day{font-family:var(--font-m);font-size:11px;color:var(--muted);font-weight:600}
.cal-ev{margin-top:3px;padding:2px 5px;border-radius:5px;background:var(--pine-soft);color:var(--pine);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.cal-ev.pm{background:var(--violet-soft);color:var(--violet)}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:10.5px;text-transform:uppercase;color:var(--muted);font-weight:700;letter-spacing:.4px;margin-bottom:5px;text-align:center}

/* Charts (inline SVG bars) */
.bars{display:flex;align-items:flex-end;gap:8px;height:130px;padding-top:8px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px}
.bar{width:100%;max-width:44px;background:var(--pine);border-radius:6px 6px 0 0;min-height:3px}
.bar-col .bl{font-size:10.5px;color:var(--muted);font-family:var(--font-m)}
.bar-col .bv{font-size:10.5px;font-family:var(--font-m);font-weight:600}

.reason{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--line)}
.reason:last-child{border-bottom:none}
.reason .pts{font-family:var(--font-m);font-weight:600;color:var(--red);flex-shrink:0}

.empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:14px}
.toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:600;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.25)}
@media(min-width:900px){.toast{bottom:32px}}

.notif-item{display:flex;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);align-items:flex-start}
.notif-item.unread{background:var(--pine-soft);margin:0 -12px;padding:13px 12px;border-radius:10px;border-bottom:none;margin-bottom:4px}
.notif-item .ico{font-size:19px;flex-shrink:0}

:focus-visible{outline:2px solid var(--pine);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- V2 additions ---------- */
.attn-group{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;overflow:hidden}
.attn-head{display:flex;align-items:center;gap:11px;padding:13px 14px;border-left:4px solid var(--amber);cursor:pointer}
.attn-head.emergency{border-left-color:var(--red)}
.attn-head .cnt{font-family:var(--font-d);font-weight:800;font-size:19px;min-width:26px;text-align:center}
.attn-head .t{font-weight:700;font-size:14.5px;flex:1}
.attn-items{border-top:1px solid var(--line);padding:4px 14px 8px 30px}
.attn-items a{display:block;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.attn-items a:last-child{border-bottom:none}
.attn-items .s{font-size:12px;color:var(--muted)}

.checklist .ck{display:flex;align-items:center;gap:11px;padding:11px 4px;border-bottom:1px solid var(--line);font-size:14.5px}
.checklist .ck:last-child{border-bottom:none}
.ck .mark{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:14px;flex-shrink:0;background:var(--paper);color:var(--muted);border:1.5px solid var(--line)}
.ck.done .mark{background:var(--green);color:#fff;border-color:var(--green)}
.ck.req .lbl:after{content:' *';color:var(--red);font-weight:700}
.ck .fix{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--pine)}

.quote-card{border:1.5px solid var(--line);border-radius:12px;padding:12px 13px;margin-bottom:9px}
.quote-card.approved{border-color:var(--green);background:var(--green-soft)}
.quote-card .price{font-family:var(--font-d);font-weight:800;font-size:20px}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.quote-grid{grid-template-columns:1fr}}

.snap{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
@media(min-width:700px){.snap{grid-template-columns:repeat(4,1fr)}}
.snap .cell{display:block;background:var(--card);border-radius:11px;box-shadow:var(--shadow);padding:10px 12px;color:inherit;text-decoration:none;border:1px solid transparent}
.snap a.cell:hover,.snap a.cell:focus-visible{border-color:var(--pine);box-shadow:var(--shadow-lift)}
.snap .v{font-family:var(--font-d);font-weight:800;font-size:19px}
.snap .l{font-size:11px;color:var(--muted);font-weight:600}
.snap .l span{float:right;color:var(--pine)}
.snap .warn{color:var(--amber)} .snap .bad{color:var(--red)}

.tl-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 7px;border-radius:99px;margin-right:6px}
.tl-badge.repair{background:var(--pine-soft);color:var(--pine)}
.tl-badge.preventive{background:var(--violet-soft);color:var(--violet)}
.tl-badge.inspection{background:var(--blue-soft);color:var(--blue)}
.tl-badge.asset{background:var(--amber-soft);color:#9A6B00}

.steps{display:flex;gap:6px;margin-bottom:18px}
.steps .st{flex:1;height:5px;border-radius:99px;background:var(--line)}
.steps .st.on{background:var(--pine)}

.tglrow{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid var(--line);font-size:14px}
.tglrow:last-child{border-bottom:none}
input[type=checkbox].tgl{width:20px;height:20px;accent-color:var(--pine)}
.rvr{border-left:4px solid var(--amber)}
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pill-row .btn{padding:8px 13px;font-size:12.5px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.asset-check{background:var(--pine-soft);border:1px solid rgba(12,103,87,.16);border-radius:12px;padding:12px;margin:4px 0 12px}
.asset-check>div:first-child{display:flex;flex-direction:column;margin-bottom:8px}
.asset-check>div:first-child span{font-size:12px;color:var(--muted);margin-top:2px}
.asset-check .field{margin-bottom:0}
.asset-intelligence{border-left:4px solid var(--amber)}
.asset-intelligence.plan_replacement{border-left-color:#C27B00}
.asset-intelligence.replace_urgent{border-left-color:var(--red);background:linear-gradient(90deg,rgba(211,61,61,.045),var(--card) 34%)}
.asset-intelligence.repair_monitor{border-left-color:var(--blue)}
.asset-intelligence.inspect{border-left-color:var(--muted)}
.decision-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.decision-heading h3{font-family:var(--font-d);font-size:19px;line-height:1.2;margin:3px 0 0}
.decision-heading .chip{flex-shrink:0}
.asset-intelligence>p{font-size:14px;color:var(--ink-2);margin:10px 0}
.decision-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.decision-costs>div{border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--bg)}
.decision-costs span,.decision-costs small{display:block;color:var(--muted);font-size:11.5px}
.decision-costs b{display:block;font-family:var(--font-d);font-size:17px;margin:3px 0;line-height:1.25}
.decision-costs .savings-note{color:var(--pine);border-top:1px solid var(--line);margin-top:7px;padding-top:7px;line-height:1.35}
.decision-state{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:9px 10px;border-radius:10px;background:var(--pine-soft);color:var(--pine);font-size:12.5px}
.decision-state svg{flex:0 0 auto;margin-top:1px}.decision-state b,.decision-state small{display:block}.decision-state small{color:var(--muted);margin-top:2px}
.decision-details{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.decision-details summary{cursor:pointer;color:var(--pine);font-size:13px;font-weight:700}
.decision-details[open] summary{margin-bottom:7px}
.health-dimensions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.health-dimensions>div,.health-dimensions>button{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--bg);min-width:0}
.health-dimensions>button{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.health-dimensions>button:hover,.health-dimensions>button:focus-visible{border-color:var(--pine);background:var(--pine-soft)}
.health-dimensions span,.health-dimensions small{display:block;color:var(--muted);font-size:11px}
.health-dimensions b{display:block;font-family:var(--font-d);font-size:17px;margin:3px 0;overflow-wrap:anywhere}
.asset-list-row{gap:10px}.asset-row-main{display:block;color:inherit;text-decoration:none;min-width:0;padding:4px 0}.asset-row-main:focus-visible{outline:2px solid var(--pine);outline-offset:3px;border-radius:6px}
.property-filter-banner{display:flex;align-items:center;justify-content:space-between;gap:10px}.property-filter-banner a{color:var(--pine);font-weight:700;white-space:nowrap}
@media(max-width:640px){
  .row3{grid-template-columns:1fr}
  .decision-heading{align-items:flex-start}
  .decision-costs,.health-dimensions{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){.decision-costs,.health-dimensions{grid-template-columns:1fr}}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--pine)}
.skel{background:linear-gradient(90deg,var(--line) 25%,#EDF1F0 50%,var(--line) 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:10px;height:70px;margin-bottom:10px}
@keyframes sk{to{background-position:-200% 0}}

/* V2 fix: job cards are stacked content blocks (V1's flex layout expected a rail+inner wrapper) */
.job-card{display:block;padding:14px 15px;border-left:6px solid var(--blue);color:inherit;text-decoration:none}
.job-card.emergency{border-left-color:var(--red)}
.job-card.next{border-left-color:var(--pine)}
.job-card .t{font-family:var(--font-d);font-weight:700;font-size:16.5px;margin:3px 0 2px;display:block}
.job-card .s{font-size:13px;color:var(--muted);display:block}
.job-card .next-label{font-size:10.5px;font-weight:800;letter-spacing:.8px;color:var(--pine);margin-bottom:2px}

/* Account menu button: mobile/tablet only — the sidebar handles this on desktop */
/* Account button visible at every size — it's the guaranteed path to Sign out */
.nav-user button{color:#F4F6F5;font-size:13px;font-weight:700;margin-top:8px;text-decoration:none;background:rgba(255,255,255,.12);border-radius:9px;padding:7px 12px;display:inline-block;width:100%;text-align:center}
.nav-user button:hover{background:rgba(255,255,255,.2)}

/* Steadwell brand mark (inline SVG) */
svg.brand-mark{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:inline-block;vertical-align:middle}
.login-card svg.brand-mark{width:38px;height:38px;border-radius:10px}

/* ================= V2 components (previously missing) ================= */

/* Filter / tab pills — horizontally scrollable, never overflow the viewport */
.filters{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 0 8px;margin-bottom:4px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.fpill{flex:0 0 auto;background:var(--card);border:1.5px solid var(--line);border-radius:99px;padding:8px 15px;font-size:13.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;box-shadow:var(--shadow)}
.fpill.on{background:var(--pine);border-color:var(--pine);color:#fff}
select.fpill{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px;background-repeat:no-repeat}

/* Property hero banner */
.prop-hero{height:78px;border-radius:14px;display:flex;align-items:center;padding:0 16px;overflow:hidden}
.prop-hero span{font-family:var(--font-d);font-weight:800;color:#fff;font-size:20px;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prop-hero.lg{height:104px}
.prop-hero.lg span{font-size:24px}

/* Cards & sections */
.card-title{font-family:var(--font-d);font-weight:700;font-size:15.5px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.banner{border-radius:11px;padding:10px 13px;font-size:13.5px;font-weight:600;margin-bottom:10px}
.banner.warn{background:var(--amber-soft);color:#8A5D00}
.hr-item{font-size:13px;color:var(--ink-2);padding:3px 0;display:flex;gap:8px;align-items:baseline}
.hr-item .pts{font-family:var(--font-m);font-weight:700;color:var(--red);flex-shrink:0}
.note{border-left:3px solid var(--line);padding:6px 0 6px 11px;margin-bottom:9px;font-size:14px}
.hello{font-family:var(--font-d);font-weight:800;font-size:23px;margin:2px 0 6px}
.hello .s{font-family:var(--font-b);font-weight:500;font-size:14px;color:var(--muted);margin-top:3px}

/* Photos */
.photo-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.photo-row::-webkit-scrollbar{display:none}
.photo-row img{width:82px;height:82px;object-fit:cover;border-radius:11px;flex:0 0 auto;cursor:pointer;background:var(--paper)}
.photo-add{width:82px;height:82px;border-radius:11px;border:2px dashed var(--line);display:grid;place-items:center;font-size:26px;color:var(--muted);flex:0 0 auto;cursor:pointer}

/* Asset life bar */
.lifebar{height:5px;border-radius:99px;background:var(--line);margin-top:6px;overflow:hidden}
.lifebar div{height:100%;border-radius:99px}

/* Tables */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:7px 9px;border-bottom:1.5px solid var(--line);white-space:nowrap}
.tbl td{padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl tr:last-child td{border-bottom:none}

/* Calendar */
.cal-day{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;margin-bottom:10px}
.cal-day.today{border-left:4px solid var(--pine)}
.cal-day.past{opacity:.72}
.cal-date{font-family:var(--font-d);font-weight:700;font-size:14px;margin-bottom:4px}

/* Timeline dots */
.tl-item{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.tl-item:last-child{border-bottom:none}
.tl-dot{width:9px;height:9px;border-radius:50%;background:var(--pine);margin-top:6px;flex-shrink:0}
.tl-dot.warn{background:var(--amber)}

/* Analytics bars */
.bars{display:flex;gap:10px;align-items:flex-end;overflow-x:auto;padding-top:8px;scrollbar-width:none}
.bars::-webkit-scrollbar{display:none}
.bar-col{flex:1 0 46px;min-width:0;overflow:visible;text-align:center}
.bar{background:var(--pine);border-radius:7px 7px 3px 3px;margin:0 auto;width:70%}
.bar-v{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums;font-size:clamp(9px,2.5vw,10.5px);font-weight:700;letter-spacing:-.15px;margin-top:5px;color:var(--ink-2)}
.bar-l{font-size:11px;color:var(--muted);margin-top:1px}

/* Global overflow guards — nothing should ever push the page sideways */
html,body{overflow-x:hidden}
.page,.card{min-width:0;max-width:100%}
.card{overflow-wrap:anywhere}

/* ============================================================
   VISUAL REFRESH — icon system, calmer surfaces, thumb-reach
   Field apps are used one-handed in bad light: bigger targets,
   fewer competing shadows, stronger type hierarchy.
   ============================================================ */
:root{
  --shadow:0 1px 2px rgba(23,36,45,.05);
  --shadow-lift:0 2px 4px rgba(23,36,45,.05),0 8px 20px rgba(23,36,45,.06);
  --radius:16px;
  --tap:48px;                     /* glove-friendly minimum target */
}

/* Icons inherit text color and align to the baseline of their row */
.ico{flex-shrink:0;vertical-align:-.18em}

/* Sidebar nav with icons */
.nav-item{display:flex;align-items:center;gap:11px}
.nav-item .ico{opacity:.85}
.nav-item.active .ico{opacity:1}
.nav-count{background:var(--amber);color:var(--ink);border-radius:99px;padding:1px 8px;font-size:11px;font-weight:700;margin-left:auto}
.nav-user button{display:flex;align-items:center;justify-content:center;gap:7px}

/* Tab bar: taller targets, clearer active state, true safe-area padding */
.tabbar{padding-bottom:max(env(safe-area-inset-bottom),6px);box-shadow:0 -1px 0 var(--line)}
.tab{min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10.5px;font-weight:600;letter-spacing:.1px;padding:6px 2px;transition:color .15s}
.tab .ti{display:flex;line-height:0}
.tab.active{color:var(--pine)}
.tab.active .ti{position:relative}
.tab.active .ti:after{content:'';position:absolute;inset:-7px -11px;background:var(--pine-soft);border-radius:11px;z-index:-1}

/* Top bar buttons */
.icon-btn{width:40px;height:40px;border-radius:12px}

/* Attention center: icon chips instead of emoji */
.attn-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--amber-soft);color:#8A5D00;flex-shrink:0}
.attn-ico.em{background:var(--red-soft);color:var(--red)}
.attn-head{gap:12px;min-height:var(--tap)}
.attn-head .go{color:var(--muted);font-size:15px}

/* Cards: one soft shadow, hairline edge, more breathing room */
.card{box-shadow:var(--shadow);border:1px solid var(--line);padding:16px 16px}
.section-title{font-family:var(--font-d);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin:22px 0 9px;display:flex;justify-content:space-between;align-items:center;gap:10px}

/* Buttons: larger, flatter, confident */
.btn{min-height:44px;border-radius:12px;font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s,filter .15s}
.btn:active{transform:scale(.985)}
.btn.pri{background:var(--pine);color:#fff;box-shadow:none}
.btn.pri:hover{filter:brightness(1.08)}
.btn.sec{background:var(--card);border:1.5px solid var(--line);color:var(--ink)}
.btn.big{min-height:58px;font-size:16.5px;letter-spacing:.2px}
.btn.danger{background:var(--red-soft);color:var(--red);border:1.5px solid transparent}

/* Menu rows in the account sheet */
.menu-row{display:flex;align-items:center;gap:13px;min-height:var(--tap)}
.menu-row .mi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--paper);color:var(--ink-2)}
.menu-row .end{color:var(--muted)}

/* Lists: comfortable rows, quiet dividers */
.list-item{min-height:var(--tap);padding:11px 0;gap:12px}
.list-item .t{font-weight:600;font-size:14.5px}
.list-item .s{font-size:12.5px;color:var(--muted);margin-top:1px}

/* Status chips: quieter, uppercase micro-label */
.chip{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:4px 9px;border-radius:7px}
.pri{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}

/* Live timer reads as a state, not a decoration */
.timer-live{display:flex;align-items:center;gap:8px;background:var(--pine-soft);color:var(--pine);font-weight:700;font-size:13.5px;padding:10px 13px;border-radius:11px;margin-bottom:10px}

/* Stats: numbers lead, labels recede */
.stat{padding:14px 13px}
.stat .v{font-family:var(--font-d);font-weight:800;font-size:25px;letter-spacing:-.6px;line-height:1.1}
.stat .l{font-size:11px;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.3}

/* Job cards: the tech's primary object — give them presence */
.job-card{box-shadow:var(--shadow);border:1px solid var(--line);border-left-width:5px;padding:15px 16px}
.job-card.next{box-shadow:var(--shadow-lift)}
.next-label{font-size:10px;font-weight:800;letter-spacing:1.1px;color:var(--pine)}

/* Respect reduced-motion preferences */
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Visible keyboard focus for accessibility */
:focus-visible{outline:2.5px solid var(--pine);outline-offset:2px;border-radius:6px}

/* Attention severity: red demands action now, amber needs a decision, slate is a trend to watch */
.attn-head.lvl-critical{border-left-color:var(--red)}
.attn-head.lvl-critical .attn-ico{background:var(--red-soft);color:var(--red)}
.attn-head.lvl-action{border-left-color:var(--amber)}
.attn-head.lvl-action .attn-ico{background:var(--amber-soft);color:#8A5D00}
.attn-head.lvl-watch{border-left-color:#B7C2C7}
.attn-head.lvl-watch .attn-ico{background:var(--paper);color:var(--ink-2)}
.attn-head .cnt{font-family:var(--font-d);font-weight:800;font-size:22px;letter-spacing:-.5px}

/* Tap-to-navigate: hands the address to the tech's own maps app */
.nav-link{display:inline-flex;align-items:center;gap:5px;margin-top:9px;color:var(--pine);font-weight:600;font-size:13px;background:var(--pine-soft);padding:7px 11px;border-radius:9px;cursor:pointer}
.job-card .nav-link{margin-top:10px}

/* Connection state: a persistent, unmissable strip — never a toast that disappears
   before a tech in a crawlspace has read it */
.conn-bar{position:fixed;left:0;right:0;bottom:calc(var(--tap) + max(env(safe-area-inset-bottom),6px));z-index:60;
  padding:10px 16px;font-size:13px;text-align:center;font-weight:600;letter-spacing:.1px}
.conn-bar.off{background:var(--ink);color:#fff}
.conn-bar.sync{background:var(--amber);color:var(--ink);cursor:pointer}
@media(min-width:900px){.conn-bar{bottom:0}}
.banner.off{background:var(--ink);color:#fff;display:flex;align-items:center;gap:8px}

/* Direct line to the person running the job — owner or manager, whoever it is */
.contact-card{border-left:4px solid var(--pine)}

/* ============ Property identity: informative, not decorative ============
   The old cards used a random gradient and initials ("2Hs"), which encoded
   nothing. The mark now shows unit count — the first thing you actually
   want to know about a rental property. */
.pmark{width:54px;height:54px;border-radius:13px;background:var(--pine-soft);color:var(--pine);
  display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.pmark .n{font-family:var(--font-d);font-weight:800;font-size:21px;letter-spacing:-.5px}
.pmark .u{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.75;margin-top:2px}
.pmark.lg{width:64px;height:64px;border-radius:15px}
.pmark.lg .n{font-size:25px}

.prop-card{padding:14px 15px;border:1px solid var(--line);box-shadow:var(--shadow)}
.pc-top{display:flex;align-items:flex-start;gap:13px}
.pc-id{flex:1;min-width:0}
.pc-id b{font-family:var(--font-d);font-size:16px;font-weight:700;display:block;line-height:1.25}
.pc-id .s{font-size:12.5px;color:var(--muted);margin-top:2px}
.pc-type{font-size:11.5px!important;text-transform:uppercase;letter-spacing:.5px;font-weight:600;color:var(--muted)}
.pc-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.pc-stats span{font-size:12px;color:var(--muted);white-space:nowrap}
.pc-stats b{font-family:var(--font-d);font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-.2px;margin-right:3px}
.pc-stats span.on b{color:var(--amber)}

.prop-head{display:flex;gap:14px;align-items:flex-start;margin:14px 0 16px}
.prop-head h1{font-family:var(--font-d);font-size:22px;font-weight:800;letter-spacing:-.4px;line-height:1.2}
.prop-head .s{font-size:13px;color:var(--muted);margin-top:3px}
.nav-link.plain{background:none;padding:0;margin-top:4px;color:var(--pine)}

/* Health ring: green is fine, amber needs attention, red is a problem */
.health .ring{width:38px;height:38px;font-size:13px;font-weight:800;font-family:var(--font-d)}

/* ================= V3 Autopilot & resident workflow ================= */
.autopilot-hero{background:var(--ink);color:#fff;border-radius:20px;padding:22px;display:flex;gap:18px;align-items:center;justify-content:space-between}
.autopilot-hero h1{font-size:25px;line-height:1.15;margin:8px 0 5px;letter-spacing:-.5px}
.autopilot-hero p{font-size:13.5px;color:#B9C4C9;max-width:650px}
.autopilot-hero .btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff;flex-shrink:0}
.auto-live{font-size:10.5px;letter-spacing:1.1px;font-weight:800;color:#9CDACD;display:inline-flex;align-items:center;gap:7px}
.auto-live i{width:8px;height:8px;border-radius:50%;background:#48C9A8;box-shadow:0 0 0 4px rgba(72,201,168,.14)}
.auto-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px}
.auto-kpis>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 14px;display:flex;flex-direction:column}
.auto-kpis b{font-family:var(--font-d);font-size:24px;line-height:1;color:var(--pine)}
.auto-kpis span{font-size:11.5px;color:var(--muted);margin-top:4px}
.auto-kpis .has-exceptions b{color:var(--red)}

.exception-list{display:grid;grid-template-columns:1fr;gap:9px}
@media(min-width:760px){.exception-list{grid-template-columns:repeat(2,1fr)}}
.exception-card{background:#fff;border:1px solid var(--line);border-left:5px solid #A8B4B9;border-radius:14px;padding:13px 14px}
.exception-card.sev-critical{border-left-color:var(--red)}
.exception-card.sev-action{border-left-color:var(--amber)}
.exception-card b{font-family:var(--font-d);font-size:15px;display:block;margin:3px 0}
.exception-card p{font-size:12.5px;color:var(--muted)}
.exception-top{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:800}
.exception-card.sev-critical .exception-top span{color:var(--red)}
.exception-card.sev-action .exception-top span{color:#9A6B00}
.exception-actions{display:flex;gap:8px;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.exception-actions button,.automation-row>button,.automation-row>a,.dispatch-row button,.webhook-actions button,.team-actions button,.evidence-tile button{color:var(--pine);font-size:12px;font-weight:700;padding:5px 8px;border-radius:7px;background:var(--pine-soft)}
.auto-clear{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.auto-clear>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-weight:900}
.auto-clear p{font-size:12.5px;color:var(--muted)}

.automation-feed{padding-top:5px;padding-bottom:5px}
.automation-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.automation-row:last-child{border-bottom:0}
.automation-check{width:24px;height:24px;border-radius:50%;background:var(--pine-soft);color:var(--pine);display:grid;place-items:center;font-weight:900;flex:0 0 auto;margin-top:1px}
.automation-row .body{flex:1;min-width:0}.automation-row b{font-size:13.5px;text-transform:capitalize}.automation-row p{font-size:12.5px;color:var(--ink-2)}
.automation-row small{font-size:10.5px;color:var(--muted)}
.auto-badge{display:inline-flex;background:var(--pine-soft);color:var(--pine);border-radius:7px;padding:2px 7px;font-size:10.5px;font-weight:800;text-transform:capitalize;vertical-align:middle}
.auto-badge.working{background:var(--blue-soft);color:var(--blue)}
.verified{font-size:11.5px;color:var(--green);font-weight:800}

/* Autopilot settings */
.autopilot-settings-head{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--ink);color:#fff;margin-bottom:12px}
.autopilot-settings-head h2{font-size:20px;margin:7px 0 3px}.autopilot-settings-head p{font-size:12.5px;color:#B9C4C9;max-width:650px}
.auto-score{text-align:center;flex:0 0 auto;background:rgba(255,255,255,.08);border-radius:13px;padding:12px 14px}.auto-score b{display:block;font-family:var(--font-d);font-size:24px}.auto-score span{font-size:10px;color:#B9C4C9}
.policy-toggle{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line)}
.policy-toggle:last-child{border-bottom:0}.policy-toggle b{font-size:14px}.policy-toggle p{font-size:12px;color:var(--muted);max-width:700px}
.playbook-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.playbook-grid{grid-template-columns:repeat(2,1fr)}}
.playbook-card{margin:0;border-top:4px solid var(--pine)}.playbook-card.risk-high{border-top-color:var(--red)}.playbook-card.risk-medium{border-top-color:var(--amber)}
.playbook-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--font-d);font-weight:700}
.playbook-card ol{margin:10px 0 0 19px;font-size:12.5px;color:var(--ink-2)}.playbook-card li{padding:2px 0}
.sla-table input{width:70px;padding:6px;border:1px solid var(--line);border-radius:7px}.sla-table td{white-space:nowrap}
.delivery-card{margin:12px 0}.delivery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.delivery-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px}.delivery-grid b,.delivery-grid span{display:block}.delivery-grid b{font-size:12.5px}.delivery-grid span{font-size:11px;color:var(--muted)}
.delivery-grid .ready{background:var(--green-soft);border-color:#CBE5D5}.delivery-grid .ready span{color:var(--green);font-weight:700}

/* Integrations */
.integration-actions{display:flex;gap:8px;flex-wrap:wrap}.integration-status,.delivery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.integration-status>div{border:1px solid var(--line);border-radius:10px;padding:11px;display:flex;flex-direction:column;gap:4px}.integration-status b{font-size:13px}
.integration-ready,.integration-off{font-size:11px;font-weight:800}.integration-ready{color:var(--green)}.integration-off{color:var(--muted)}
.code-sample{font-family:var(--font-m);font-size:11px;background:var(--ink);color:#D9E3E6;border-radius:9px;padding:10px;margin-top:7px;overflow-x:auto;white-space:nowrap}
.webhook-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.webhook-row:last-child{border:0}.webhook-row .body{flex:1;min-width:0}
.webhook-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:720px}.webhook-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.channel-status{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.channel-status span{font-size:10.5px;border-radius:99px;padding:4px 8px;background:#EEE;color:var(--muted)}.channel-status span.on{background:var(--green-soft);color:var(--green)}
.notif-head,.notif-grid{display:grid;grid-template-columns:minmax(150px,1fr) repeat(4,44px);gap:5px;align-items:center}.notif-head{font-size:10px;color:var(--muted);text-align:center;font-weight:800;padding:6px 0;border-bottom:1px solid var(--line)}
.notif-grid{font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}.notif-grid input{justify-self:center}

/* Dispatch, callback and evidence */
.dispatch-card{border-left:4px solid var(--pine)}.confidence{font-family:var(--font-b);font-size:10.5px;background:var(--pine-soft);color:var(--pine);padding:3px 7px;border-radius:7px}
.dispatch-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.dispatch-row .body{flex:1}.dispatch-row p{font-size:11.5px;color:var(--muted)}
.dispatch-score{font-family:var(--font-m);font-weight:800;width:35px;height:35px;border-radius:9px;display:grid;place-items:center;background:var(--paper);color:var(--ink-2)}.dispatch-row.top .dispatch-score{background:var(--pine);color:#fff}
.callback-card{border-left:4px solid var(--red)}.callback-card a{color:var(--pine);font-weight:700}.resident-link-card{display:flex;align-items:center;justify-content:space-between;gap:12px}
.evidence-row{align-items:flex-start}.evidence-tile{width:126px;flex:0 0 126px}.evidence-tile img{width:82px;height:82px;display:block}.evidence-tile span{display:block;font-size:10.5px;color:var(--muted);line-height:1.25;margin-top:4px}.evidence-tile button{margin-top:4px}
.team-actions{display:flex;gap:5px}.day-picker{display:flex;gap:5px;flex-wrap:wrap}.day-picker label{display:flex;gap:3px;align-items:center;background:var(--paper);border-radius:7px;padding:5px 7px;font-size:11px!important}

/* Resident magic-link portal */
.resident-wrap{min-height:100vh;background:#EEF3F1;padding:18px 12px 40px}.resident-page{max-width:620px;margin:0 auto}.resident-page>.card{margin-bottom:11px}
.resident-brand{display:flex;align-items:center;gap:10px;padding:7px 4px 18px}.resident-brand .brand-mark{width:36px;height:36px}.resident-brand b,.resident-brand span{display:block}.resident-brand b{font-family:var(--font-d)}.resident-brand span{font-size:11.5px;color:var(--muted)}
.resident-hero h1{font-size:21px;margin:4px 0}.resident-status{display:flex;align-items:center;gap:9px;margin:11px 0}.resident-status>span:last-child{font-size:12.5px;color:var(--muted)}
.resident-steps{display:flex;justify-content:space-between;position:relative;margin-top:16px;overflow-x:auto}.resident-steps:before{content:'';position:absolute;left:18px;right:18px;top:11px;height:2px;background:var(--line)}
.resident-steps>div{position:relative;text-align:center;z-index:1;min-width:70px}.resident-steps i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:#fff;border:2px solid var(--line);font-style:normal;font-size:10px}.resident-steps .done i{background:var(--pine);border-color:var(--pine);color:#fff}.resident-steps span{display:block;font-size:9.5px;color:var(--muted);margin-top:4px;text-transform:uppercase;font-weight:700}
.appointment-card{display:flex;justify-content:space-between;align-items:center;gap:12px;border-left:4px solid var(--blue)}.appointment-card b{font-family:var(--font-d);font-size:18px}
.resident-thread{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow-y:auto}.resident-msg{max-width:88%;border-radius:12px;padding:9px 11px;background:var(--paper);font-size:13.5px}.resident-msg.outbound,.resident-msg.system{align-self:flex-start}.resident-msg.inbound{align-self:flex-end;background:var(--pine);color:#fff}.resident-msg span{display:block;font-size:9.5px;opacity:.68;margin-top:3px}
.resident-msg img{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:9px;margin-bottom:8px}
.staff-thread .resident-msg.outbound,.staff-thread .resident-msg.system{align-self:flex-end;background:var(--pine);color:#fff}.staff-thread .resident-msg.inbound{align-self:flex-start;background:var(--paper);color:var(--ink)}
.resident-photo{display:flex;align-items:center;justify-content:center;gap:7px;border:1px dashed var(--line);border-radius:9px;padding:9px 12px;margin:-2px 0 9px;color:var(--pine);font-size:13px;font-weight:700;cursor:pointer}.resident-photo input{position:absolute;opacity:0;pointer-events:none}
.resident-access{display:flex;align-items:center;justify-content:space-between;gap:18px}.permission-switch{display:flex;align-items:center;gap:9px;min-width:220px;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer}.permission-switch input{width:18px;height:18px;accent-color:var(--pine);flex:0 0 auto}
.rating-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.rating-row button{border:1px solid var(--line);border-radius:10px;padding:9px 2px;font-family:var(--font-m);font-weight:700}.rating-row button span{color:var(--amber);display:block}.rating-row button:hover{background:var(--amber-soft)}
.resident-foot{text-align:center;font-size:10.5px;color:var(--muted);padding:12px}

@media(max-width:600px){
  .autopilot-hero{align-items:flex-start;flex-direction:column}.autopilot-hero h1{font-size:21px}.auto-kpis{grid-template-columns:1fr 1fr}.auto-kpis>div:first-child{grid-column:1/-1}
  .autopilot-settings-head{align-items:flex-start;flex-direction:column}.auto-score{text-align:left}.delivery-grid,.integration-status{grid-template-columns:1fr}
  .notif-head,.notif-grid{grid-template-columns:minmax(115px,1fr) repeat(4,36px);font-size:11px}.webhook-row{align-items:flex-start;flex-direction:column}.webhook-actions{justify-content:flex-start}
  .resident-steps{justify-content:flex-start}.resident-link-card,.resident-access{align-items:flex-start;flex-direction:column}.permission-switch{min-width:0}
}

/* ================= V4 closed-loop field workflow ================= */
/* Keep all three top-bar actions visible on narrow phones and in installed
   mode, where the safe-area inset can otherwise steal horizontal space. */
.topbar{width:100%;padding-top:max(12px,env(safe-area-inset-top));min-width:0}
.topbar .brand{min-width:0;flex:0 1 auto;overflow:hidden;white-space:nowrap}
.topbar .brand-mark,.topbar .icon-btn{flex:0 0 auto}
.topbar .grow{min-width:0}
@media(max-width:410px){
  .topbar{gap:8px;padding-left:11px;padding-right:11px}
  .topbar .brand{font-size:16px;gap:6px}
  .topbar .brand-mark{width:26px;height:26px}
  .topbar .icon-btn{width:38px;height:38px}
}
@media(max-width:350px){.topbar .brand span{display:none}.topbar .grow{flex:1}}
.main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
@media(min-width:900px){.main{padding-bottom:0}.topbar{padding-top:22px}}

/* Address recognition remains an enhancement: manual entry still works if
   the provider is unavailable or has not yet been configured. */
.address-field{position:relative}
.address-suggestions{display:none;position:absolute;z-index:80;left:0;right:0;top:calc(100% - 9px);background:#fff;border:1px solid var(--line);border-radius:0 0 12px 12px;box-shadow:var(--shadow-lift);overflow:hidden}
.address-suggestions.open{display:block}
.address-suggestions button{width:100%;display:flex;align-items:flex-start;gap:9px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink)}
.address-suggestions button:last-child{border-bottom:0}
.address-suggestions button:hover,.address-suggestions button:focus{background:var(--pine-soft)}
.address-suggestions button span{min-width:0}.address-suggestions b,.address-suggestions small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.address-suggestions b{font-size:13px}.address-suggestions small{font-size:11px;color:var(--muted)}

/* Clean intake flags replace platform-dependent emoji. */
.toggle-label{display:flex;align-items:center;gap:9px;min-width:0}.toggle-label>span{display:flex;flex-direction:column}.toggle-label small{font-size:11px;color:var(--muted)}
.request-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0 13px}
.request-flags label{position:relative;justify-content:flex-start;min-width:0;font-size:13px}
.request-flags input{width:17px;height:17px;accent-color:var(--pine);flex:0 0 auto}
.consent-row{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;margin:5px 0 13px;cursor:pointer;background:var(--paper)}
.consent-row>input{width:18px;height:18px;accent-color:var(--pine);margin-top:2px;flex:0 0 auto}
.consent-row span,.consent-row b,.consent-row small{display:block}.consent-row b{font-size:13.5px}.consent-row small{font-size:11px;color:var(--muted);font-weight:400}
.success-mark{width:72px;height:72px;border-radius:22px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin:0 auto 14px}
.success-mark.urgent{background:var(--red-soft);color:var(--red)}
.issue-separation-note{font-size:11.5px;line-height:1.4;color:var(--muted);margin-top:6px;padding-left:9px;border-left:3px solid var(--blue)}
.batch-intake-summary{margin-top:15px;padding-top:13px;border-top:1px solid var(--line);text-align:left}
.batch-intake-summary>b{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.35px;margin-bottom:6px}
.batch-intake-summary a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.batch-intake-summary a:last-child{border-bottom:0}.batch-intake-summary a span{font-family:var(--font-m);font-size:11px;color:var(--muted)}.batch-intake-summary a b{font-size:13px}

/* Work-state and closeout controls. */
.pause-banner{display:flex;align-items:flex-start;gap:10px;background:var(--violet-soft);color:var(--violet);padding:11px 13px;border-radius:11px;margin:10px 0}
.pause-banner b,.pause-banner span{display:block}.pause-banner span{font-size:12px;color:var(--ink-2);margin-top:1px}
.manage-action-grid,.pause-action-grid,.tracking-actions{display:flex;gap:8px;flex-wrap:wrap}
.manage-action-grid .btn,.pause-action-grid .btn{flex:1 1 150px}
.tracking-actions{margin-top:10px}.tracking-actions .btn{flex:1 1 150px}
.post-close-hint{margin-top:9px;padding:8px 10px;background:var(--green-soft);border-radius:8px;color:var(--green)!important}
.owner-review-note{display:flex;gap:9px;align-items:flex-start;background:var(--amber-soft);padding:10px 12px;border-radius:10px;color:#7A5500}

/* Photos stay in the app rather than opening an unescapable browser tab. */
.photo-viewer img{display:block;width:100%;max-height:65vh;object-fit:contain;background:var(--paper);border-radius:12px;margin:6px 0 14px}
.photo-viewer .btn{position:sticky;bottom:0}
.icon-title{display:inline-flex;color:var(--pine);vertical-align:middle}

/* Durable audio recording and playback. */
.voice-recorder-state{display:flex;align-items:center;gap:12px;padding:14px;background:var(--paper);border-radius:12px;margin-bottom:13px;color:var(--pine)}
.voice-recorder-state b,.voice-recorder-state span{display:block}.voice-recorder-state span{font-size:11.5px;color:var(--muted)}
.voice-recorder-state.recording{background:var(--red-soft);color:var(--red)}
.voice-recorder-state.recording .ico{animation:voicePulse 1.2s ease-in-out infinite}
@keyframes voicePulse{50%{opacity:.35;transform:scale(.92)}}
.voice-label{display:inline-flex;align-items:center;gap:4px;color:var(--pine)}
.note audio{display:block;width:100%;height:40px;margin-top:8px}

/* Checkbox-dropdown for dispatch skills. */
.dispatch-profile-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:13px;margin:12px 0 9px}
.dispatch-profile-head span{font-size:11.5px;color:var(--muted)}
.skill-dropdown{position:relative;border:1.5px solid var(--line);border-radius:11px;background:#fff}
.skill-dropdown summary{list-style:none;cursor:pointer;padding:11px 38px 11px 12px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
.skill-dropdown summary::-webkit-details-marker{display:none}.skill-dropdown summary:after{content:'⌄';position:absolute;right:13px;color:var(--muted)}
.skill-dropdown[open] summary{border-bottom:1px solid var(--line)}
.skill-dropdown>div{padding:6px 10px;max-height:240px;overflow-y:auto}
.skill-dropdown label{display:flex!important;align-items:center;gap:9px;padding:7px 2px;margin:0!important;font-size:13px!important;color:var(--ink)!important}
.skill-dropdown input{width:17px!important;height:17px;accent-color:var(--pine)}

/* Team editing: bounded controls and custom day checks prevent iOS form
   widgets from stretching the modal beyond the viewport. */
.team-edit,.team-edit .row2>*{min-width:0}.team-edit input,.team-edit select{min-width:0;max-width:100%}
.field-help{display:block;font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.35}
.team-edit .day-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.team-edit .day-picker label{position:relative;display:flex!important;align-items:center;justify-content:flex-start;gap:7px;min-width:0;margin:0!important;padding:8px;background:var(--paper);border:1px solid transparent;border-radius:9px;font-size:12px!important;cursor:pointer}
.team-edit .day-picker input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.day-check{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px;border:1.5px solid var(--line);border-radius:6px;background:#fff;color:#fff}
.day-check .ico{opacity:0}.team-edit .day-picker input:checked+.day-check{background:var(--pine);border-color:var(--pine)}.team-edit .day-picker input:checked+.day-check .ico{opacity:1}
.day-name{overflow:hidden;text-overflow:ellipsis}

/* Scoped leasing-company portal and partner administration. */
.partner-wrap{min-height:100vh;background:#EEF3F1;padding:18px 12px 48px}.partner-page{max-width:760px;margin:0 auto}.partner-page>.card{margin-bottom:12px}
.partner-hero{background:var(--ink);color:#fff;border-radius:18px;padding:20px;margin-bottom:18px}.partner-hero h1{font-size:23px;line-height:1.2;margin:7px 0 5px}.partner-hero p{font-size:13px;color:#B9C4C9;max-width:620px}
.partner-request{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.partner-request:last-child{border-bottom:0}.partner-request .body{flex:1;min-width:0}.partner-request p{font-size:13px;color:var(--ink-2);margin:3px 0}.partner-request span{font-size:11px;color:var(--muted)}
.partner-request-end{display:flex;align-items:flex-end;gap:7px;flex-direction:column}.partner-request-end .btn{font-size:12px;min-height:36px;padding:7px 11px}
.partner-settings-intro{display:flex;gap:12px;align-items:flex-start;background:var(--pine-soft)}.partner-settings-intro .card-title{margin-bottom:3px}.partner-settings-intro p{font-size:12.5px;color:var(--ink-2)}
.partner-settings-intro>div{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:0}.partner-settings-intro>.btn{flex:0 0 auto}
.partner-property-list{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.partner-property-list span{font-size:10.5px;background:var(--paper);padding:3px 7px;border-radius:6px;color:var(--muted)}
.partner-link-row{display:flex;gap:7px}.partner-link-row input{flex:1;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted)}
.property-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:11px;padding:6px;max-height:210px;overflow-y:auto}
.property-checklist label{display:flex!important;align-items:center;gap:8px;padding:7px;margin:0!important}.property-checklist input{width:17px!important;height:17px;accent-color:var(--pine)}
@media(max-width:600px){
  .request-flags,.property-checklist{grid-template-columns:1fr}
  .team-edit .row2{grid-template-columns:1fr}.team-edit .dispatch-profile-head{align-items:flex-start;flex-direction:column;gap:2px}.team-edit .day-picker{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partner-request{align-items:flex-start;flex-direction:column}.partner-request-end{align-items:flex-start;width:100%}.partner-request-end .btn{width:100%}
  .partner-link-row{flex-direction:column}.partner-link-row .btn{width:100%}
  .partner-settings-intro{flex-direction:column}.partner-settings-intro>.btn{width:100%}
}

/* ================= V4.2 mass-market workflow ================= */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.page-heading,.home-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:2px 0 18px}
.page-heading.flush{margin-top:0}.page-heading h1,.home-heading h1{font-size:26px;line-height:1.15;letter-spacing:-.45px}.page-heading p,.home-heading p{font-size:13.5px;color:var(--muted);margin-top:4px;max-width:680px}
.view-tabs{display:flex;gap:4px;overflow-x:auto;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:13px;margin-bottom:16px;scrollbar-width:none}
.view-tabs::-webkit-scrollbar{display:none}.view-tabs a{flex:0 0 auto;min-height:40px;padding:9px 14px;border-radius:9px;color:var(--muted);font-size:13.5px;font-weight:700;display:flex;align-items:center}.view-tabs a.on{background:var(--pine-soft);color:var(--pine)}
.more-menu{padding:4px 16px}.btn.compact{min-height:38px;padding:7px 12px;font-size:12.5px}.compact-title{margin-top:8px!important}
.section-title{text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px}.chip{text-transform:none;letter-spacing:0;font-size:11px}
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.empty b{color:var(--ink);font-family:var(--font-d)}.empty span{display:block;max-width:460px}

/* Presets make complex automation and notification matrices approachable. */
.preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:15px}
.preset-card{position:relative;display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:14px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);min-height:92px}
.preset-card input[type=radio]{margin-top:3px;accent-color:var(--pine)}.preset-card>span,.preset-card b,.preset-card small{display:block}.preset-card b{font-size:13.5px;line-height:1.3}.preset-card small{font-size:11.5px;line-height:1.4;color:var(--muted);margin-top:4px}
.preset-card.selected,.preset-card:has(input:checked){border-color:var(--pine);background:var(--pine-soft)}.preset-card.recommended:not(.selected){border-color:#A9CEC5}.preset-card:disabled{cursor:default;opacity:.72}
.preset-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex:0 0 18px;margin-top:1px}.preset-card.selected .preset-radio{border:5px solid var(--pine);background:#fff}
.compact-presets{margin:12px 0}.compact-presets .preset-card{min-height:82px}.notif-presets{margin-bottom:14px}.device-notifications{border:1.5px solid var(--line);border-radius:12px;padding:13px;margin-bottom:14px}
.money-input{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.money-input span{padding-left:12px;color:var(--muted);font-weight:700}.money-input input{border:0!important;border-radius:0!important;padding-left:6px!important}

/* Collapsible secondary detail keeps the next action visible first. */
.advanced-settings,.detail-section{padding:0;overflow:hidden}.advanced-settings>summary,.detail-section>summary,.automation-summary>summary,.partner-history>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:14px 16px}
.advanced-settings>summary::-webkit-details-marker,.detail-section>summary::-webkit-details-marker,.automation-summary>summary::-webkit-details-marker,.partner-history>summary::-webkit-details-marker{display:none}
.advanced-settings>summary span,.detail-section>summary span,.automation-summary>summary span{display:flex;flex-direction:column}.advanced-settings>summary small,.detail-section>summary small,.automation-summary>summary small{font-size:11.5px;color:var(--muted);font-weight:400;margin-top:2px}.advanced-settings[open]>summary .ico,.detail-section[open]>summary .ico,.automation-summary[open]>summary .ico,.partner-history[open]>summary .ico{transform:rotate(90deg)}
.detail-section-body{padding:0 16px 16px;border-top:1px solid var(--line)}.job-next-action{border:2px solid var(--pine);box-shadow:var(--shadow-lift);margin-bottom:12px}.job-next-action .card-title{color:var(--pine)}.next-action-help{font-size:12.5px;color:var(--muted);margin:3px 0 12px}.status-reason,.status-detail{font-size:11.5px;color:#7A5500;background:var(--amber-soft);border-radius:7px;padding:4px 7px;margin-top:7px;display:inline-block}

/* Resident and partner multi-issue wizards. */
.intake-wrap{align-items:flex-start;padding:22px 14px;min-height:100dvh}.intake-card{max-width:650px;padding:24px}.intake-card h1,.receipt-card h1{font-size:24px;line-height:1.2;margin-bottom:5px}.intake-card .brand{padding:0 0 18px}
.intake-steps{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin:0 0 18px}.intake-steps:before{content:'';position:absolute;left:9%;right:9%;top:15px;height:2px;background:var(--line)}.intake-steps>div{position:relative;z-index:1;text-align:center;min-width:0}.intake-steps i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#fff;border:2px solid var(--line);font-style:normal;font-size:12px;font-weight:800;color:var(--muted)}.intake-steps span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.intake-steps .on i{border-color:var(--pine);color:var(--pine)}.intake-steps .on:not(.current) i,.intake-steps .current i{background:var(--pine);color:#fff}.intake-steps .current span{color:var(--pine);font-weight:800}
.form-intro{font-size:13.5px;color:var(--muted);margin:0 0 16px}.form-error{background:var(--red-soft);color:var(--red);border-radius:10px;font-size:13px;font-weight:600;margin-bottom:12px}.form-error:not(:empty){padding:10px 12px}.optional{font-weight:400;color:var(--muted)}.context-question{border-left:4px solid var(--amber)}
.draft-issues,.review-section{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}.draft-issue{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:var(--paper)}.draft-issue>div{flex:1;min-width:0}.draft-issue span,.draft-issue b,.draft-issue p,.draft-issue small{display:block}.draft-issue span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}.draft-issue b{font-size:13.5px}.draft-issue p{font-size:12.5px;color:var(--ink-2);margin-top:2px}.draft-issue small{font-size:10.5px;color:var(--muted);margin-top:3px}.draft-issue button{color:var(--red);font-size:12px;font-weight:700;min-height:36px;padding:6px}
.wizard-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.wizard-actions .btn{width:100%}.privacy-note{text-align:center;margin-top:12px}.wizard-mini-steps{color:var(--pine);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0}.review-grid>div{border:1px solid var(--line);border-radius:11px;padding:11px}.review-grid span,.review-grid b,.review-grid p{display:block}.review-grid span{font-size:10.5px;color:var(--muted);text-transform:uppercase;font-weight:800}.review-grid b{font-size:13.5px;margin-top:2px}.review-grid p{font-size:11.5px;color:var(--muted);margin-top:2px}
.notice{display:flex;flex-direction:column;gap:3px;border-radius:11px;padding:11px 12px;margin:12px 0;font-size:12.5px}.notice.calm{background:var(--pine-soft);color:var(--ink-2)}.notice.calm b{color:var(--pine)}.receipt-card{max-width:650px;text-align:center}.receipt-card>p{color:var(--muted);font-size:13.5px}.receipt-card>.btn{margin-top:9px}.setup-ready-card{display:flex;align-items:center;gap:11px;background:var(--pine-soft);color:var(--pine);padding:12px;border-radius:11px;margin-bottom:14px}.setup-ready-card b,.setup-ready-card span{display:block}.setup-ready-card span{font-size:11.5px;color:var(--muted)}

/* Integrations are described by user outcome; technical connections stay advanced. */
.connected-service-list{display:flex;flex-direction:column}.connected-service-list>div{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}.connected-service-list>div:last-child{border-bottom:0}.connected-service-list>div>span:first-child{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--paper);color:var(--pine);flex:0 0 36px}.connected-service-list .body{flex:1;min-width:150px}.connected-service-list b,.connected-service-list small{display:block}.connected-service-list b{font-size:13.5px}.connected-service-list small{font-size:11.5px;color:var(--muted)}.connected-service-list .integration-ready,.connected-service-list .integration-off{white-space:nowrap}.inline-details{margin-top:12px}.inline-details summary{cursor:pointer;color:var(--pine);font-size:12.5px;font-weight:700}.setup-checklist{margin:14px 0 16px 21px;color:var(--ink-2);font-size:13.5px}.setup-checklist li{padding:4px 0}.profile-section-title{font-family:var(--font-d);font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:800;margin:2px 0 10px}

/* A fixed header and larger targets prevent controls being lost behind iOS chrome. */
.topbar{position:sticky;top:0;isolation:isolate}.icon-btn{width:44px;height:44px}.tab{min-height:56px}.nav-item,.team-actions button,.webhook-actions button{min-height:40px}.field input,.field select,.field textarea{min-height:44px}.tglrow>span small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.notif-advanced{margin-top:12px}.notif-matrix{overflow-x:auto}.notif-head,.notif-grid{min-width:480px}

@media(max-width:700px){
  .page-heading,.home-heading{flex-direction:column;gap:10px}.page-heading h1,.home-heading h1{font-size:23px}.page-heading .btn,.home-heading .btn{width:100%}
  .preset-grid{grid-template-columns:1fr}.preset-card{min-height:0}.review-grid{grid-template-columns:1fr}.connected-service-list>div{align-items:flex-start;flex-wrap:wrap}.connected-service-list .body{min-width:calc(100% - 52px)}.connected-service-list .btn{margin-left:47px;flex:1}
}
@media(max-width:639px){
  input,select,textarea{font-size:16px}.modal-bg:has(.team-modal){align-items:stretch}.modal.team-modal{max-width:none;max-height:100dvh;height:100dvh;border-radius:0;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom))}.team-modal #tm-save{position:sticky;bottom:0;z-index:2;box-shadow:0 -10px 18px #fff;background:var(--pine)}
  .intake-wrap{padding:0;background:#fff}.intake-card,.receipt-card{max-width:none;min-height:100dvh;border-radius:0;padding:18px 16px calc(24px + env(safe-area-inset-bottom))}.intake-steps span{font-size:9px}.wizard-actions{position:sticky;bottom:0;background:#fff;padding:10px 0 calc(4px + env(safe-area-inset-bottom));z-index:4}.emergency-guidance{font-size:12px}
  .partner-hero{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.partner-hero .btn{width:100%}
}
@media(max-width:410px){.topbar .icon-btn{width:44px;height:44px}.intake-steps span{font-size:0}.intake-steps .current span{font-size:9px}.request-flags{grid-template-columns:1fr}}

@media print{
  body{background:#fff}.receipt-card{box-shadow:none;border:0}.receipt-card .btn,.toast{display:none}.login-wrap.intake-wrap{background:#fff;padding:0}.batch-intake-summary a{break-inside:avoid}
}

/* ================= V4.3 one-trip operations, communications and security ================= */
.text-action{display:block;width:max-content;margin:11px auto 0;color:var(--pine);font-size:13px;font-weight:750;background:none;border:0;text-align:center}
.nav-count{margin-left:auto;background:var(--red);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;font-size:10px;font-weight:850}
.inbox-list{display:flex;flex-direction:column;gap:10px}.inbox-item{margin:0}.inbox-item.unresolved{border-left:4px solid var(--pine)}.inbox-item.resolved{opacity:.78}.inbox-top,.inbox-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.inbox-source{display:flex;align-items:center;gap:6px;color:var(--pine);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.45px}.inbox-item p{font-size:14px;line-height:1.5;color:var(--ink-2);margin:10px 0}.inbox-actions{justify-content:flex-start}.inbox-actions .btn{min-height:40px;padding:8px 13px}.inbox-photo{width:84px;height:64px;object-fit:cover;border-radius:9px;margin-top:10px;cursor:pointer}
.travel-banner{display:flex;align-items:center;gap:10px;background:#EAF4FF;color:#204F7C;border-radius:11px;padding:11px 12px;margin:12px 0 4px}.travel-banner.arrived{background:var(--pine-soft);color:var(--pine)}.travel-banner b,.travel-banner span{display:block}.travel-banner span{font-size:11.5px;margin-top:2px}.resident-steps{grid-template-columns:repeat(5,minmax(0,1fr))!important}.troubleshooting-card{border:2px solid #86B7AA}.troubleshooting-head,.resolved-card{display:flex;align-items:flex-start;gap:11px}.troubleshooting-head>.ico,.resolved-card>.ico{flex:0 0 auto;color:var(--pine)}.troubleshooting-card ol{margin:14px 0 14px 24px;color:var(--ink-2);font-size:13.5px;line-height:1.48}.troubleshooting-card li{padding:4px 0}.safety-note{display:flex;align-items:flex-start;gap:6px;background:var(--amber-soft);border-radius:9px;padding:9px 10px;font-size:12px;margin-bottom:12px}.resolved-card{background:var(--pine-soft)}
.visit-plan-card{border-left:4px solid #65A99A}.visit-plan-card.planned{border-left-color:var(--pine)}.visit-plan-head,.visit-plan-head>div{display:flex;align-items:flex-start;gap:10px}.visit-plan-head{justify-content:space-between}.visit-plan-head>div{min-width:0}.visit-plan-head>.btn{flex:0 0 auto}.visit-plan-head .ico{color:var(--pine);flex:0 0 auto}.visit-job-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;margin-top:12px}.visit-job-list a{border:1px solid var(--line);border-radius:10px;padding:9px;color:var(--ink)}.visit-job-list a.current{background:var(--pine-soft);border-color:#A9CEC5}.visit-job-list span,.visit-job-list b,.visit-job-list small{display:block}.visit-job-list span{font-size:10px;color:var(--pine);font-weight:850}.visit-job-list b{font-size:12.5px;margin:2px 0}.visit-job-list small{font-size:10.5px;color:var(--muted)}.trip-saved{display:flex;align-items:center;gap:6px;color:var(--pine);font-size:11.5px;font-weight:800;margin-top:10px}.visit-prep{margin-top:11px;border-top:1px solid var(--line);padding-top:10px}.visit-prep summary{color:var(--pine);font-size:12.5px;font-weight:800;cursor:pointer}.visit-prep-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.visit-prep-grid>div{background:var(--paper);border-radius:9px;padding:9px}.visit-prep-grid b,.visit-prep-grid span{display:block}.visit-prep-grid b{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.45px}.visit-prep-grid span{font-size:11.5px;line-height:1.5;margin-top:3px}.visit-picker{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden;margin:12px 0}.visit-picker label{display:flex!important;align-items:flex-start;gap:9px;padding:10px 11px;margin:0!important;border-bottom:1px solid var(--line)}.visit-picker label:last-child{border-bottom:0}.visit-picker label.fixed{background:var(--pine-soft)}.visit-picker input{width:18px!important;height:18px;accent-color:var(--pine);flex:0 0 auto}.visit-picker b,.visit-picker small{display:block}.visit-picker b{font-size:12.5px}.visit-picker small{font-size:10.5px;color:var(--muted);margin-top:2px}.eta-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.eta-picker button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800;color:var(--ink-2)}.eta-picker button.on{background:var(--pine-soft);border-color:var(--pine);color:var(--pine)}
.outcome-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.outcome-grid .card{margin:0;min-height:115px}.outcome-grid b,.outcome-grid span,.outcome-grid small{display:block}.outcome-grid b{font-family:var(--font-d);font-size:24px;color:var(--pine)}.outcome-grid span{font-size:12.5px;font-weight:800;margin-top:3px}.outcome-grid small{font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:4px}
.pms-list{display:flex;flex-direction:column}.pms-list>div{display:flex;align-items:center;gap:9px;padding:10px 0;border-top:1px solid var(--line)}.integration-logo{width:36px;height:36px;border-radius:9px;background:var(--pine-soft);color:var(--pine);display:grid;place-items:center;font-size:11px;font-weight:900;flex:0 0 36px}.pms-list .body{flex:1;min-width:0}.pms-list b,.pms-list small{display:block}.pms-list b{font-size:13px}.pms-list small{font-size:10.5px;color:var(--muted);margin-top:2px}.compact-empty{min-height:90px}.scope-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px}.scope-picker label{display:flex!important;align-items:center;gap:8px;background:var(--paper);padding:8px;border-radius:8px;margin:0!important}.scope-picker input{width:17px!important;height:17px;accent-color:var(--pine)}
.security-card{display:flex;align-items:center;gap:11px}.security-card .body{flex:1}.security-icon{width:42px;height:42px;border-radius:11px;background:var(--pine-soft);color:var(--pine);display:grid;place-items:center;flex:0 0 42px}.security-checks{display:flex;flex-direction:column}.security-checks>div{display:flex;align-items:flex-start;gap:9px;padding:10px 0;border-bottom:1px solid var(--line)}.security-checks>div:last-child{border-bottom:0}.security-checks .ready>.ico{color:var(--pine)}.security-checks .warn>.ico{color:#B97900}.security-checks b,.security-checks small{display:block}.security-checks b{font-size:13px}.security-checks small{font-size:11px;color:var(--muted);margin-top:2px}.mfa-qr{display:block;width:210px;height:210px;margin:12px auto;border:1px solid var(--line);border-radius:10px}.recovery-codes{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;letter-spacing:1px;background:var(--paper);border:1px dashed var(--muted);border-radius:11px;padding:13px;margin:12px 0;line-height:1.7}.language-toggle{display:flex;width:max-content;margin:-8px 0 14px auto;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.language-toggle button{min-height:36px;padding:7px 11px;border-radius:7px;color:var(--muted);font-size:12px;font-weight:800}.language-toggle button.on{background:#fff;color:var(--pine);box-shadow:0 1px 4px #10212818}

.onboarding-import-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.onboarding-import-grid .preset-card{min-height:118px}.onboarding-import-grid .preset-card>span:first-child{color:var(--pine);flex:0 0 auto}
@media(max-width:700px){.outcome-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-prep-grid{grid-template-columns:1fr}.pms-list>div{flex-wrap:wrap}.pms-list .body{min-width:calc(100% - 50px)}.pms-list .integration-ready,.pms-list .integration-off{margin-left:45px}.security-card{align-items:flex-start;flex-wrap:wrap}.security-card .body{min-width:calc(100% - 56px)}.security-card>.btn{width:100%}.resident-steps span{font-size:9px}}
@media(max-width:440px){.outcome-grid{grid-template-columns:1fr 1fr}.outcome-grid .card{padding:12px}.outcome-grid b{font-size:20px}.inbox-actions{display:grid;grid-template-columns:1fr 1fr}.inbox-actions .btn{text-align:center}.eta-picker{grid-template-columns:1fr 1fr}.visit-plan-head{flex-direction:column}.visit-plan-head>.btn{width:100%}.scope-picker,.onboarding-import-grid{grid-template-columns:1fr}.resident-steps span{font-size:0}.resident-steps .done:last-child span{font-size:9px}}
.sms-legal{display:block;margin-top:6px}.sms-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}
