/* Property Ops design system. Tokens first; components use only tokens.
   Status colour carries meaning: red = overdue / urgent, amber = look soon, violet = waiting on someone,
   green = done or healthy, blue = scheduled / informational. Category colours help scan equipment;
   a text label is always shown next to them. */
:root{
  --bg:#f4f3ee; --bg-tint:#ebeee5; --surface:#fffefa; --surface-hover:#f8f7f1; --fill:#eceee6; --text:#1c3734; --muted:#53645e;
  --hairline:#dde2d8; --field:#b3c0b5; --accent:#0a2138; --accent-hover:#123a5e; --accent-soft:#e6edf4; --on-accent:#fff;
  --accent-2:#b4813c; --brand-grad:linear-gradient(135deg,#0a2138 0%,#103a5e 100%);
  --desk:#0a2138; --desk-text:#c2d5e5; --desk-mark:#36ff00; --feature:#103a5e; --feature-text:#c2d5e5;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype",serif;
  --urgent:#b42318; --urgent-soft:#fbecea; --attention:#85551d; --attention-soft:#f7e6cb; --attention-mark:#d1913c;
  --waiting:#6a4f93; --waiting-soft:#efe9f5; --done:#19734f; --done-soft:#e3f1e8; --info:#1f6584; --info-soft:#e4eff2;
  --focus:#1f9b07;
  --cat-heat:#ea580c; --cat-water:#2563eb; --cat-oil:#a16207; --cat-cool:#0891b2; --cat-septic:#4d7c0f; --cat-supply:#0284c7;
  --cat-power:#475569; --cat-roof:#9a3412; --cat-pump:#0f766e; --cat-elec:#ca8a04; --cat-appl:#9333ea; --cat-other:#64748b;
  --shadow:0 1px 2px #0f172a0f,0 0 0 1px #0f172a0d; --shadow-md:0 4px 14px #0f172a14,0 0 0 1px #0f172a0d;
  --shadow-lg:0 22px 48px #0f172a2e,0 0 0 1px #0f172a12;
  --radius:16px; --radius-sm:11px; --sidebar:248px; --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f1614; --bg-tint:#16211e; --surface:#16201d; --surface-hover:#1b2723; --fill:#22302b; --text:#e7ece8; --muted:#9fb0a8;
  --hairline:#2a3833; --field:#3d4f48; --accent:#9cc3e6; --accent-hover:#c2d5e5; --accent-soft:#15304a; --on-accent:#0f1614;
  --desk:#071827; --desk-text:#c2d5e5; --desk-mark:#36ff00; --feature:#0f2c47; --feature-text:#c2d5e5;
  --accent-2:#e7bf82; --urgent:#ff8a7a; --urgent-soft:#3a1915; --attention:#f0c27a; --attention-soft:#38290f; --attention-mark:#e7a94e;
  --waiting:#c4adef; --waiting-soft:#2a2238; --done:#7fd6a8; --done-soft:#123325; --info:#82c4dc; --info-soft:#132c35; --focus:#57e83a;
  --cat-heat:#fb8a4c; --cat-water:#6b9bff; --cat-oil:#e0a43a; --cat-cool:#3fd0e8; --cat-septic:#9bd14b; --cat-supply:#4bbcf7;
  --cat-power:#a5b4cc; --cat-roof:#f08a5d; --cat-pump:#3fd6c2; --cat-elec:#facc15; --cat-appl:#c48bff; --cat-other:#a3adc2;
  --shadow:0 0 0 1px #ffffff10; --shadow-md:0 6px 18px #00000066,0 0 0 1px #ffffff12; --shadow-lg:0 22px 48px #000000a0,0 0 0 1px #ffffff17;
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0f1614; --bg-tint:#16211e; --surface:#16201d; --surface-hover:#1b2723; --fill:#22302b; --text:#e7ece8; --muted:#9fb0a8;
  --hairline:#2a3833; --field:#3d4f48; --accent:#9cc3e6; --accent-hover:#c2d5e5; --accent-soft:#15304a; --on-accent:#0f1614;
  --desk:#071827; --desk-text:#c2d5e5; --desk-mark:#36ff00; --feature:#0f2c47; --feature-text:#c2d5e5;
  --accent-2:#e7bf82; --urgent:#ff8a7a; --urgent-soft:#3a1915; --attention:#f0c27a; --attention-soft:#38290f; --attention-mark:#e7a94e;
  --waiting:#c4adef; --waiting-soft:#2a2238; --done:#7fd6a8; --done-soft:#123325; --info:#82c4dc; --info-soft:#132c35; --focus:#57e83a;
  --cat-heat:#fb8a4c; --cat-water:#6b9bff; --cat-oil:#e0a43a; --cat-cool:#3fd0e8; --cat-septic:#9bd14b; --cat-supply:#4bbcf7;
  --cat-power:#a5b4cc; --cat-roof:#f08a5d; --cat-pump:#3fd6c2; --cat-elec:#facc15; --cat-appl:#c48bff; --cat-other:#a3adc2;
  --shadow:0 0 0 1px #ffffff10; --shadow-md:0 6px 18px #00000066,0 0 0 1px #ffffff12; --shadow-lg:0 22px 48px #000000a0,0 0 0 1px #ffffff17;
  color-scheme:dark;
}
/* One tone per row or card, inherited by its dot, reason line and status text. */
.tone-urgent{--tone:var(--urgent);--tone-soft:var(--urgent-soft);--tone-text:var(--urgent)}
.tone-attention{--tone:var(--attention-mark);--tone-soft:var(--attention-soft);--tone-text:var(--attention)}
.tone-waiting{--tone:var(--waiting);--tone-soft:var(--waiting-soft);--tone-text:var(--waiting)}
.tone-neutral{--tone:var(--muted);--tone-soft:var(--fill);--tone-text:var(--muted)}
.tone-done{--tone:var(--done);--tone-soft:var(--done-soft);--tone-text:var(--done)}

.tone-info{--tone:var(--info);--tone-soft:var(--info-soft);--tone-text:var(--info)}

*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 "Inter var","Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable Text","Segoe UI",system-ui,Roboto,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
.icon-sm{width:16px;height:16px;vertical-align:-3px}
.icon-lg{width:26px;height:26px}
a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
h1{font-family:var(--serif);font-size:40px;line-height:1.08;letter-spacing:-.03em;font-weight:400;margin:4px 0 8px}
h2{font-family:var(--serif);font-size:23px;line-height:1.25;letter-spacing:-.01em;font-weight:400;margin:0 0 12px}
h3{font-size:16px;font-weight:650;margin:20px 0 8px}
p{margin:6px 0 14px}
/* Component display rules (e.g. .switcher nav a{display:flex}) must never un-hide [hidden] elements */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:var(--surface);padding:10px 14px;z-index:20;border-radius:var(--radius-sm)}

/* App shell (owner desk): one dark header with Today / Properties / Upcoming and a contextual Ask Kaya;
   phones get the same three plus Kaya as a bottom tab bar. Everything else is reached from where it belongs. */
.brand{display:inline-flex;align-items:center;gap:10px;font:400 21px/1 var(--serif);letter-spacing:-.015em;color:var(--text);white-space:nowrap}
.brand strong{font-weight:600}
.brand:hover{color:var(--text);text-decoration:none}
.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--brand-grad);color:var(--desk-mark)}
.logo .icon{width:19px;height:19px;stroke-width:2}
.po-logo{width:30px;height:30px;flex:none;display:block}
.frame{min-height:100vh;display:flex;flex-direction:column}
.app-bar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:12px;padding:10px 28px;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--hairline)}
.app-bar-public{justify-content:center}
.desk-bar{display:block;padding:0;background:var(--desk);color:#fff;border-bottom:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.desk-inner{display:flex;align-items:center;gap:14px;max-width:1200px;margin:0 auto;padding:10px 28px;min-height:64px}
.desk-bar .brand,.desk-bar .brand:hover{color:#fff}
.desk-bar .logo{background:transparent;width:28px}
.main-nav{display:flex;gap:24px;margin-left:22px}
.main-nav a{color:var(--desk-text);padding:8px 0;border-bottom:2px solid transparent;font-size:16px;font-weight:500}
.main-nav a:hover{color:#fff;text-decoration:none}
.main-nav a[aria-current="page"]{color:#fff;border-bottom-color:var(--desk-mark)}
.global-search{flex:1;max-width:340px;margin-left:auto;position:relative;display:flex;align-items:center}
.global-search .icon{position:absolute;left:12px;color:var(--desk-text);pointer-events:none}
.global-search input{padding-left:38px;border-radius:9px;background:#ffffff14;border-color:#ffffff2e;color:#fff;min-height:40px}
.global-search input::placeholder{color:#c3d1cb}
.new-menu>summary.button{min-height:40px;padding:8px 14px;border-radius:9px;background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #3d5f80}
.new-menu>summary.button:hover{background:#ffffff14}
.new-menu .menu-panel a{gap:10px}
.ask-kaya{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:9px;color:#fff;font-weight:600;font-size:15px;box-shadow:inset 0 0 0 1px #3d5f80;white-space:nowrap}
.ask-kaya .icon{color:var(--desk-mark)}
.ask-kaya:hover,.ask-kaya[aria-current="page"]{background:#ffffff1f;color:#fff;text-decoration:none}
.desk-bar .menu-panel{color:var(--text)}
.account>summary{display:grid;place-items:center;padding:0}
.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ffffff1a;color:#fff;font-weight:700;font-size:15px;box-shadow:inset 0 0 0 1.5px #ffffff40}
.menu-label{display:block;padding:8px 12px 4px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.segmented{display:flex;gap:2px;margin:0 8px 6px;padding:3px;background:var(--fill);border-radius:11px}
.segmented button{flex:1;min-height:36px;padding:4px;background:transparent;color:var(--muted);border-radius:9px}
.segmented button:hover{background:var(--surface-hover);color:var(--text)}
.segmented button[aria-pressed="true"]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}
.menu-panel .theme-choice{padding:0}
main{width:100%;max-width:1000px;margin:28px auto 40px;padding:0 28px}
footer{text-align:center;color:var(--muted);font-size:13px;padding:20px 20px 36px;margin-top:auto}
.tabbar{display:none}

/* Buttons and actions */
.button,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--accent);color:var(--on-accent);padding:10px 18px;border-radius:var(--radius-sm);font:inherit;font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;min-height:44px;line-height:1.2}
.button:hover,button:hover{background:var(--accent-hover);color:var(--on-accent);text-decoration:none}
.button.secondary,button.secondary{background:var(--accent-soft);color:var(--accent)}
.button.secondary:hover,button.secondary:hover{background:var(--accent-soft);color:var(--accent-hover)}
.button-large{font-size:17px;padding:13px 32px;min-width:160px}
button.quiet,.quiet{background:transparent;color:var(--accent);font-weight:500;padding:8px 10px}
button.quiet:hover{background:var(--fill);color:var(--accent-hover)}
button:disabled{opacity:.6;cursor:progress}
.text-action{font-weight:500;padding:10px 4px;display:inline-flex;align-items:center;min-height:44px}
.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:20px 0 4px}

/* Page titles */
.title-bar,.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.page-heading p{max-width:620px;color:var(--muted)}
.summary{margin:0;font-size:17px;color:var(--muted)}
.summary-urgent{color:var(--urgent);font-weight:600}
.eyebrow{font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted);margin:0}
.back{display:inline-flex;align-items:center;min-height:32px;font-size:15px;font-weight:500}
.back::before{content:"‹";font-size:22px;line-height:1;margin-right:5px;transform:translateY(-1px)}
.calm{color:var(--muted);margin:14px 4px 0}.calm::before{content:"✓ ";color:var(--done);font-weight:700}

/* Grouped lists */
.group{margin:26px 0 0}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 4px 8px}
.group-head h2{margin:0}
.group-now .group-head h2{color:var(--urgent)}
.head-link{font-size:15px;font-weight:500}
.count,.badge{display:inline-block;background:var(--fill);color:var(--muted);border-radius:999px;padding:1px 9px;font-size:13px;font-weight:600;line-height:1.5}
.count-urgent,.group-now .count{background:var(--urgent-soft);color:var(--urgent)}
.list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.row{position:relative;display:flex;align-items:center;gap:8px;min-height:60px}
.row+.row,.list>.work+.work,.list>.row+.work,.list>.work+.row{border-top:1px solid var(--hairline)}
.row::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:transparent}
.row.tone-urgent::before{background:var(--urgent)}.row.tone-attention::before{background:var(--attention-mark)}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:12px 8px 12px 18px;color:var(--text);min-height:60px;justify-content:center}
.row-main:hover{text-decoration:none;background:var(--surface-hover);color:var(--text)}
.row-main:hover .row-title{text-decoration:underline;text-underline-offset:3px}
.row-title{font-size:16.5px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:14px;color:var(--muted);margin:0}
.row-action{flex:none;margin-right:14px;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:15px}
.row-action:hover{text-decoration:none;color:var(--accent-hover);filter:brightness(.97)}
.row-action-quiet{margin-right:6px;padding:0 12px;background:transparent;border:1px dashed var(--hairline);color:var(--muted)}
@media (max-width:480px){.row-action-quiet{padding:0 10px;font-size:14px}}
.quiet-action{background:transparent;font-weight:500;padding:0 10px}
.quiet-action:hover{background:var(--fill)}
.empty-row{margin:0;padding:16px 18px;color:var(--muted);font-size:15px}

/* Status pills: one per row, next to the title */
.pill{display:inline-block;border-radius:12px;padding:1px 9px;font-size:13px;font-weight:600;line-height:1.55;overflow-wrap:anywhere;max-width:100%;background:var(--fill);color:var(--muted)}
.pill-urgent{background:var(--urgent-soft);color:var(--urgent)}
.pill-attention{background:var(--attention-soft);color:var(--attention)}
.pill-waiting{background:var(--waiting-soft);color:var(--waiting)}
.pill-done{background:var(--done-soft);color:var(--done)}
.pill-neutral{background:var(--fill);color:var(--muted)}

/* Disclosure */
details>summary{cursor:pointer;font-weight:600;padding:10px 0;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"›";display:inline-block;width:1em;margin-right:4px;color:var(--muted);transition:transform .15s ease;font-weight:700}
details[open]>summary::before{transform:rotate(90deg)}
.group-collapsed{margin-top:14px}
.group-collapsed>summary{padding:8px 4px;min-height:44px;display:flex;align-items:center;gap:8px}
.collapsed-title{font-size:17px;font-weight:650;color:var(--muted)}
.group-collapsed[open]>summary{margin-bottom:8px}
.subtle{margin-top:6px}.subtle>summary{font-weight:500;color:var(--muted);font-size:15px;padding:10px 4px}
.subtle .list{margin-top:2px}
@media (prefers-reduced-motion:reduce){details>summary::before{transition:none}}

/* Menus (no JavaScript) */
.menu{position:relative;display:inline-block}
.menu>summary::before,.confirm>summary::before{content:none}
.menu>summary{padding:0}.menu>summary.button{padding:10px 18px}
.menu:not(.account)>summary:not(.button){color:var(--accent);font-weight:500;min-height:44px;display:inline-flex;align-items:center;padding:0 6px}
.menu-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:230px;z-index:15;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column}
.menu-panel>a,.menu-panel button{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:var(--text);font-weight:500;width:100%;justify-content:flex-start;background:transparent}
.menu-panel>a:hover,.menu-panel button:hover{background:var(--fill);text-decoration:none;color:var(--text)}
.menu-panel .muted{padding:8px 12px 4px;margin:0}
.menu-panel form{margin:0}

/* Property Card */
.identity{margin-bottom:6px}
.identity-meta{display:flex;flex-wrap:wrap;gap:2px 16px;color:var(--muted);font-size:15px;margin:0 0 4px}
.notes{max-width:65ch;color:var(--text)}.notes p{margin:6px 0}
.action-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 14px}
.contacts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.contacts li{display:flex;align-items:center;gap:14px;background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:8px 8px 8px 14px;min-height:52px}
.contact-text{display:flex;flex-direction:column;line-height:1.3}.contact-text a{font-weight:600;color:var(--text)}.contact-text .muted{font-size:13px}
.call{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:var(--done-soft);color:var(--done);font-weight:600;font-size:14px;white-space:nowrap}
.call::before{content:"☎";margin-right:6px}.call:hover{text-decoration:none;color:var(--done)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tile{display:flex;flex-direction:column;gap:2px;background:var(--surface);box-shadow:var(--shadow);border-radius:var(--radius);padding:13px 16px;color:var(--text);min-height:64px}
.tile:hover{text-decoration:none;background:var(--surface-hover);color:var(--text)}
.tile-title{font-weight:600;line-height:1.3}
.tile-meta{font-size:14px;color:var(--muted)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--attention-mark);margin-left:7px;vertical-align:middle}
/* Card hierarchy: at-a-glance counts, an emphasized "Needs attention" block, quieter side context */
main.wide{max-width:1120px}
.wide .identity h1{font-size:40px;letter-spacing:-.026em}
.wide .identity-meta{font-size:16px}
.status-strip{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 4px}
.stat{flex:1 1 130px;display:flex;flex-direction:column;gap:2px;margin:0;padding:12px 16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);min-height:72px;justify-content:center}
.stat:hover{text-decoration:none;color:var(--text);background:var(--surface-hover)}
.stat-num{font-size:28px;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat-label{font-size:14px;font-weight:600;color:var(--muted)}
.stat-urgent{background:var(--urgent-soft);box-shadow:inset 0 0 0 1.5px var(--urgent)}
.stat-urgent .stat-num,.stat-urgent .stat-label{color:var(--urgent)}
.stat-urgent:hover{background:var(--urgent-soft)}
.stat-attention .stat-num{color:var(--attention)}
.stat-zero .stat-num{color:var(--muted);font-weight:500}
.stat-calm{flex-direction:row;align-items:center;min-height:56px}.stat-calm .stat-label{font-size:16px;color:var(--text)}
.stat-calm::before{content:"✓";color:var(--done);font-weight:700;margin-right:8px}
.card-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0 32px}
@media (min-width:960px){.card-layout{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.card-side>.side-group:first-child,.card-side>.facts-panel:first-child{margin-top:26px}}
.subgroup{margin:0 0 18px}
.subgroup-title{display:flex;align-items:center;gap:8px;margin:14px 4px 8px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.subgroup-now .subgroup-title{color:var(--urgent)}
.subgroup-now .count{background:var(--urgent-soft);color:var(--urgent)}
.list-now{box-shadow:0 0 0 1.5px var(--urgent),0 6px 18px #c4001a14}
.list-now .row-title{font-size:18px}
.list-now .row-main{padding-top:15px;padding-bottom:15px}
.subgroup-later>summary{display:flex;align-items:center;gap:8px;padding:8px 4px;min-height:44px}
.subgroup-later .subgroup-title{margin:0}
.unit-tag{display:inline-block;border:1px solid var(--hairline);border-radius:6px;padding:0 7px;font-size:12.5px;font-weight:600;color:var(--text);line-height:1.6}
.unit-shared{color:var(--muted);font-weight:500}
.unit-unknown{border-style:dashed;color:var(--muted);font-weight:500}
.side-group .group-head h2{font-size:17px}
.tile-group{font-size:13px;font-weight:600;color:var(--muted);margin:10px 4px 6px}
.card-side .tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.not-recorded{background:transparent;border:1px dashed var(--field);border-radius:var(--radius);padding:12px 16px}
.strip-title{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.not-recorded .plain{margin:0;font-size:15px}
.manage{margin-top:30px}
.manage>summary{background:var(--surface);box-shadow:var(--shadow);border-radius:var(--radius);padding:14px 16px;min-height:52px}
.manage[open]>summary{border-radius:var(--radius) var(--radius) 0 0}
.manage-body{background:var(--surface);box-shadow:var(--shadow);border-radius:0 0 var(--radius) var(--radius);padding:2px 18px 16px;border-top:1px solid var(--hairline)}
.manage-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;border-top:1px solid var(--hairline);padding:4px 0}
.confirm>summary{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--accent);font-weight:500}
.confirm[open]>summary{color:var(--muted)}
.confirm-box{background:var(--attention-soft);border-radius:var(--radius-sm);padding:12px 14px;margin:2px 0 10px;max-width:440px}
.confirm-box p{margin:0 0 10px}.confirm-box form{margin:0}

/* Task page */
.task-head{margin-bottom:10px}
.task-head .row-meta{font-size:15px}
.task-actions{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:flex-start}
.presets{flex:1;min-width:260px;margin:0}
.presets-label{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.preset-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.preset-buttons button{min-height:40px;padding:8px 14px;font-size:15px}
.secondary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;width:100%;border-top:1px solid var(--hairline);padding-top:6px}
.secondary-actions>a{font-weight:500;min-height:44px;display:inline-flex;align-items:center}
.facts dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 20px;margin:0 0 6px}
.facts dt{font-size:13px;color:var(--muted);font-weight:500}.facts dd{margin:2px 0 0}

/* Shared panels and legacy rows used by other pages */
.panel{background:var(--surface);border-radius:var(--radius);padding:20px;margin:16px 0;box-shadow:var(--shadow)}
.narrow{max-width:640px;margin:16px auto}
.empty-state{text-align:center;padding:36px 20px}.empty-state p{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.grid .panel{margin:0}
.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.work{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--hairline)}
.panel>.work:first-of-type,.panel h2+.work{border-top:0}
.list>.work{padding:13px 18px}.list>.work:first-child{border-top:0}
.work p{margin:3px 0 0}
.work-title{font-weight:600;font-size:16.5px;color:var(--text)}a.work-title:hover{color:var(--text)}
.dates{text-align:right;font-size:14px;min-width:140px;color:var(--text)}.dates span{display:block}
.muted,.empty{color:var(--muted);font-size:14px}.empty{margin:0}
.aged{color:var(--urgent);font-weight:600}
.notice{padding:12px 16px;border-radius:12px;background:var(--done-soft);color:var(--text);margin:0 0 14px}
.notice-error{background:var(--urgent-soft)}
.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;word-break:break-all}
.plain{list-style:none;padding:0;margin:0 0 10px}.plain li{padding:4px 0}
form.inline{display:inline;margin:0}
.card-search{margin:0 0 8px;max-width:560px}
.inline-field{display:flex;gap:10px}.inline-field input{flex:1}
.capture{margin-top:16px;border-top:1px solid var(--hairline);padding-top:12px}
.capture.panel{margin-top:10px;border-top:0;padding-top:16px}
.row>.call{flex:none}
.explainer{background:var(--accent-soft);border-radius:var(--radius);padding:14px 18px;margin:8px 0 6px;max-width:760px}
.explainer p{margin:4px 0 8px}.explainer ul{margin:0 0 8px;padding-left:20px}.explainer li{margin:2px 0}
.explainer .muted{color:var(--text);opacity:.8}

/* Attention: headline, property switcher, Quick Add, "Needs you now" cards, overview rail.
   Red, amber and violet appear only where something is due; everything informational stays neutral. */
main.attention{max-width:1160px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px}
.headline{font-size:32px;line-height:1.12;letter-spacing:-.025em;font-weight:750;margin:4px 0}
.headline em{font-style:normal;color:var(--urgent)}
.hero .summary{font-size:15px}
.switcher{position:relative;flex:none}
.switcher>summary{display:flex;align-items:center;gap:10px;background:var(--surface);box-shadow:var(--shadow);border-radius:999px;padding:8px 14px 8px 16px;min-height:44px;font-weight:600}
.switcher>summary::before{content:none}
.switcher>summary::after{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px);margin-left:2px}
.switcher-panel{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-height:70vh;overflow:auto;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:30}
.switcher-find{margin-bottom:6px;min-height:40px;padding:8px 11px}
.switcher nav{display:flex;flex-direction:column}
.switcher nav a{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border-radius:9px;color:var(--text)}
.switcher nav a:hover{background:var(--fill);text-decoration:none;color:var(--text)}
.switcher nav a[aria-current="page"]{background:var(--accent-soft);font-weight:600}
.switcher-name small{color:var(--muted);font-weight:500;margin-left:4px;font-size:13px}
.switcher-empty{padding:4px 10px}
.n{flex:none;min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;font-size:12.5px;font-weight:700;background:var(--fill);color:var(--muted)}
.n-urgent{background:var(--urgent);color:var(--surface)}

.quick{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:8px 10px 8px 14px;margin:0 0 26px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.quick:focus-within{box-shadow:0 0 0 2px var(--accent),var(--shadow)}
.quick-line{flex:1 1 280px;display:flex;align-items:center;gap:10px;min-width:0}
.quick-plus{width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;flex:none}
.quick-line input{border:0;background:transparent;padding:10px 2px;font-size:17px;min-height:46px}
.quick-line input:focus{outline:none}
.quick-opts{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.quick-where{font-size:14px;font-weight:600;color:var(--muted);padding:0 6px;max-width:16em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 16px controls: iOS zooms into any smaller form control and stays zoomed */
.quick-select select{min-height:38px;padding:6px 10px;border-radius:999px;font-size:16px;font-weight:600;width:auto;max-width:15em;background:var(--surface-hover);border-color:var(--hairline)}
.quick-when{display:flex;flex-wrap:wrap;gap:6px;border:0;margin:0;padding:0}
.qchip{position:relative;display:inline-flex;align-items:center;margin:0;font-size:14px;font-weight:600;color:var(--muted)}
.qchip input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.qchip span{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface-hover);cursor:pointer}
.qchip input:checked+span{background:var(--text);color:var(--bg);border-color:var(--text)}
.qchip input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.qchip-date input{min-height:38px;padding:4px 10px;border-radius:999px;font-size:16px;width:auto;border-color:var(--hairline);background:var(--surface-hover);color:var(--muted)}
.quick-go{min-height:40px;padding:8px 18px;border-radius:12px}
.quick-more{flex-basis:100%;margin:0 0 2px 38px;font-size:13.5px;color:var(--muted)}
.quick-errors{flex-basis:100%}.quick-errors .errorlist{margin:4px 0}
.panel .quick{box-shadow:0 0 0 1px var(--hairline);margin:12px 0 0}

.attention-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.section-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 4px 10px}
.section-now{color:var(--urgent)}.section-now .count{background:var(--urgent);color:var(--surface)}
.stack{display:flex;flex-direction:column;gap:10px}
.acard{position:relative;background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}
.acard:has(details[open]){z-index:6}
.acard.tone-urgent{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--urgent) 40%,transparent),var(--shadow)}
.acard.tone-urgent::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--urgent)}
.acard-main{display:flex;gap:14px;align-items:center;padding:16px 14px 16px 18px}
.sig{flex:none;width:10px;height:10px;border-radius:50%;background:var(--tone,var(--muted));box-shadow:0 0 0 4px var(--tone-soft,var(--fill))}
.sig-small{width:8px;height:8px;box-shadow:0 0 0 3px var(--tone-soft,var(--fill))}
.acard-body{flex:1;min-width:0}
.why{margin:0;font-size:13px;font-weight:700;color:var(--tone-text,var(--muted))}
/* Long unbroken text (an email address in "waiting on", a pasted URL) wraps instead of widening a phone page */
.why,.ctx,.rail-meta,.sheet-title,.unit-showing{overflow-wrap:anywhere}
.acard-title{margin:2px 0 3px;font-size:17.5px;font-weight:650;letter-spacing:-.01em;line-height:1.3;overflow-wrap:anywhere}
.acard-title a,.related-title,.rail-title{color:var(--text)}
.ctx{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:14px;color:var(--muted)}
.acts{display:flex;align-items:center;gap:4px;flex:none}
.act>summary::before{content:none}
.act-primary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border-radius:12px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:15px;white-space:nowrap}
a.act-primary:hover{color:var(--on-accent);text-decoration:none;opacity:.88}
.act-soft,a.act-soft:hover{background:var(--accent-soft);color:var(--accent)}
.act-quiet{display:inline-flex;align-items:center;min-height:42px;padding:0 12px;border-radius:12px;color:var(--muted);font-weight:600;font-size:14.5px}
.act-quiet:hover,.act[open]>.act-quiet{background:var(--fill);color:var(--text)}
.act[open]>.act-primary{box-shadow:0 0 0 3px var(--focus)}
.sheet{position:absolute;right:12px;top:calc(100% - 8px);width:min(340px,calc(100% - 24px));background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);padding:14px;z-index:20;font-weight:400}
.sheet form{margin:0}
.sheet label{font-size:13.5px;margin:8px 0 4px}
.sheet input,.sheet textarea{min-height:40px;padding:8px 10px}
.sheet-title{margin:0 0 6px;font-weight:700}
.sheet-label{margin:10px 0 6px;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sheet-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
.sheet-buttons>a{font-weight:500;padding:0 6px}
.chip-button,.chip-button:hover{min-height:38px;padding:6px 13px;font-size:14.5px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.sheet-links{display:flex;flex-direction:column;margin:10px 0 0}
.sheet-links a,.sheet-links .link-button{min-height:38px;display:flex;align-items:center;font-weight:500}
/* A button that carries what was typed to a fuller page, styled like the links beside it */
.link-button,.link-button:hover{background:none;border:0;box-shadow:none;padding:0 6px;min-height:38px;color:var(--accent);font:inherit;font-weight:500;text-align:left;cursor:pointer}
.link-button:hover{text-decoration:underline}
.sheet-links .link-button{padding:0}
.fine{font-size:13px;color:var(--muted);margin:8px 0 0}
.sheet-menu{padding:6px;width:230px;display:flex;flex-direction:column}
.sheet-menu a{display:flex;align-items:center;min-height:42px;padding:0 10px;border-radius:9px;color:var(--text);font-weight:500}
.sheet-menu a:hover{background:var(--fill);text-decoration:none;color:var(--text)}
.related{border-top:1px solid var(--hairline);margin:0 14px 0 18px;padding:4px 0 8px 24px}
.related-row{position:relative;display:flex;align-items:center;gap:10px;padding:8px 0}
.related-row+.related-row{border-top:1px solid var(--hairline)}
.related-row .sheet{right:0;top:calc(100% - 2px)}
.related-body{flex:1;min-width:0;display:flex;flex-direction:column}
.related-title{font-weight:600;overflow-wrap:anywhere}
.related-body .why{font-size:12.5px}.related-body .ctx{font-size:13px}
.acts-compact .act-primary{min-height:36px;padding:0 13px;font-size:14px;border-radius:10px}
.acts-compact .act-quiet{min-height:36px;padding:0 9px;font-size:13.5px}
/* One-click Done (a form, not a sheet) and the Done confirmation with Undo / Add details. */
.act-form,.od-inline-form{margin:0;display:inline-flex}
button.act-primary{border:0;box-shadow:none;cursor:pointer;font-family:inherit}
button.act-primary:hover{opacity:.88}
.notice-done{justify-content:space-between;flex-wrap:wrap}
.notice-done>span:first-child{flex:1;min-width:12ch}
.notice-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notice-actions form{margin:0}
.notice-button{min-height:38px;padding:0 16px;border-radius:10px;border:1.5px solid currentColor;background:transparent;color:var(--text);font:inherit;font-weight:700;cursor:pointer;box-shadow:none}
.notice-link{min-height:38px;display:inline-flex;align-items:center;padding:0 6px;font-weight:600}
.related-more{display:inline-flex;min-height:38px;align-items:center;font-size:14px;font-weight:500}

.overview{display:flex;flex-direction:column;gap:20px}
.rail-list{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:4px}
.rail-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:12px}
.when{flex:none;width:44px;text-align:center;border-radius:10px;background:var(--surface-hover);box-shadow:var(--shadow);padding:4px 0;line-height:1.1}
.when small{display:block;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted)}
.when b{display:block;font-size:16px}
.when-plan,.when-done{padding:9px 0;font-weight:700;color:var(--muted)}.when-done{color:var(--done)}
.who{flex:none;width:36px;height:36px;border-radius:50%;background:var(--waiting-soft);color:var(--waiting);display:grid;place-items:center;font-weight:700;font-size:14px;margin:0 4px}
.rail-text{flex:1;min-width:0;display:flex;flex-direction:column}
.rail-title{font-weight:600;font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.rail-meta{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:13px;color:var(--muted)}
.rail-status{color:var(--tone-text,var(--muted));font-weight:600}
.rail-action{flex:none;min-height:36px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;background:var(--accent-soft);font-weight:600;font-size:14px}
.rail-more>summary{font-size:14px;font-weight:600;color:var(--accent);padding:8px 10px;min-height:40px;display:flex;align-items:center}
.rail-tail{display:flex;flex-direction:column;gap:8px}
.tail>summary{display:flex;align-items:center;gap:8px;background:var(--surface);box-shadow:var(--shadow);border-radius:14px;padding:10px 14px;min-height:46px}
.tail[open]>summary{margin-bottom:8px}
.tail-title{font-weight:650}
.overview-tabs{display:none}

/* Units on the Property Card */
/* position:relative keeps visually hidden labels inside the scroller; otherwise they widen the page on phones */
.unit-bar{position:relative;display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;margin:12px -2px 4px;scrollbar-width:none}
.unit-bar::-webkit-scrollbar{display:none}
/* With a mouse there is no swipe: show a thin scrollbar so units off to the side can be found */
@media (hover:hover) and (pointer:fine){.unit-bar{scrollbar-width:thin}.unit-bar::-webkit-scrollbar{display:block;height:6px}}
.unit-bar a{flex:none;display:flex;flex-direction:column;justify-content:center;min-width:118px;min-height:56px;padding:8px 14px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow);color:var(--text);line-height:1.3}
.unit-bar a:hover{text-decoration:none;color:var(--text);background:var(--surface-hover)}
.unit-bar small{color:var(--muted);font-size:13px}
.unit-bar a.unit-unset{box-shadow:none;border:1px dashed var(--hairline)}
.unit-bar a[aria-current="page"]{background:var(--text);color:var(--bg)}
.unit-bar a[aria-current="page"] small{color:inherit;opacity:.75}
.unit-bar .unit-add{min-width:0;background:transparent;box-shadow:inset 0 0 0 1.5px var(--field);color:var(--accent);font-weight:700;align-items:center}
.unit-showing{margin:0 4px 8px;color:var(--muted);font-size:14px}
.also>summary{display:flex;align-items:center;gap:8px;padding:8px 4px;min-height:44px}.also .subgroup-title{margin:0}
.choice{border:0;padding:0;margin:6px 0 16px}
.choice legend{font-weight:600;font-size:15px;margin-bottom:6px;padding:0}
div:has(>div>label>input[type="radio"]){display:flex;flex-direction:column;gap:6px;max-width:460px}
div>div>label:has(>input[type="radio"]){display:flex;gap:10px;align-items:center;margin:0;background:var(--surface-hover);box-shadow:var(--shadow);border-radius:12px;padding:11px 14px;font-weight:600;min-height:46px;cursor:pointer}
div>div>label:has(>input:checked){box-shadow:0 0 0 2px var(--accent)}

@media (max-width:900px){.attention-grid{grid-template-columns:minmax(0,1fr);gap:26px}}
@media (max-width:650px){
  .hero{flex-direction:column;align-items:stretch;gap:12px}
  .headline{font-size:26px}
  .switcher>summary{justify-content:space-between}
  .switcher-label{flex:1}
  .switcher-panel{left:0;right:0;width:auto}
  .quick{padding:8px 10px}
  .quick-opts{width:100%}
  .quick-more{margin-left:4px}
  .quick-go{margin-left:auto}
  .acard-main{flex-wrap:wrap;padding:14px}
  .acts{width:100%;padding-left:24px}
  .acts>:first-child{flex:1}
  .acts>details:first-child>summary,.acts>form:first-child>button{width:100%}
  .sheet{left:8px;right:8px;width:auto}
  .related{margin:0 12px;padding-left:10px}
  .related-row{flex-wrap:wrap}
  .acts-compact{padding-left:18px}
  .overview.tabbed .rail{display:none}
  .overview.tabbed .rail.on{display:block}
  /* The tab names the section visually; the heading stays for screen-reader heading navigation */
  .overview.tabbed .rail>.section-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .overview.tabbed .overview-tabs{display:flex;background:var(--fill);border-radius:12px;padding:4px;gap:2px}
  .overview-tabs button{flex:1;min-height:40px;background:transparent;color:var(--muted);font-size:14px;padding:6px 4px;border-radius:9px}
  .overview-tabs button[aria-selected="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
}

/* Equipment facts (2B): known values as a definition list, missing ones as actionable rows */
.count-attention{background:var(--attention-soft);color:var(--attention)}
.group-head h2 .count,.section-heading .count{vertical-align:middle;font-size:13px;letter-spacing:0;text-transform:none}
.fact-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 20px;margin:4px 0 14px}
.fact{padding:8px 0;border-bottom:1px solid var(--hairline)}
.fact dt{font-size:13px;font-weight:600;color:var(--muted)}
.fact dd{margin:2px 0 0}
.fact-value{font-weight:650;font-size:16.5px;overflow-wrap:anywhere}
.fact-basis{display:block;font-size:13px;color:var(--muted)}
.fact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;font-size:14px}
.fact-actions button.quiet{min-height:36px;padding:4px 6px;font-size:14px}
.facts-panel .list .row{flex-wrap:wrap;padding-right:6px}
/* In the narrow side column the actions go under the text instead of squeezing it */
.card-side .facts-panel .row-main{flex:1 1 100%;padding-bottom:4px}
.card-side .facts-panel .list .row{padding-bottom:8px}
.card-side .facts-panel .list .row>.row-action:first-of-type{margin-left:14px}
.tile .cat{margin-bottom:6px}
.facts-panel .menu>summary{min-height:40px;padding:0 8px;color:var(--accent);font-weight:500}
.fact-others li{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.tile-gap{font-size:13px;font-weight:500;color:var(--muted)}  /* missing facts are information, not alerts */
.tile-facts{font-size:13.5px;color:var(--text);overflow-wrap:anywhere}
.field-row-date{grid-template-columns:110px minmax(0,1fr) 90px}
@media (max-width:650px){.field-row-date{grid-template-columns:1fr 1fr}.field-row-date p:first-child{grid-column:1 / -1}}

/* Forms */
label{display:block;font-weight:600;font-size:15px;margin-bottom:6px}
input,select,textarea{font:inherit;max-width:100%;width:100%;padding:11px 12px;border:1px solid var(--field);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);min-height:44px}
input[type="checkbox"],input[type="radio"]{width:auto;min-height:0}
input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--accent)}
.helptext{display:block;color:var(--muted);font-size:13px;margin-top:5px}
.errorlist{color:var(--urgent);background:var(--urgent-soft);padding:10px 14px 10px 30px;border-radius:var(--radius-sm);margin:0 0 8px}
.field-error{display:block;color:var(--urgent);font-size:14px;margin-top:4px}
[aria-invalid="true"]{border-color:var(--urgent)!important}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 120px;gap:12px}.field-row p{margin:6px 0 14px}
@media (max-width:650px){.field-row{grid-template-columns:minmax(0,1fr) 80px}.field-row .grow{grid-column:1 / -1}}
label.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}label.check input{margin-top:4px}
.advanced{border-top:1px solid var(--hairline);margin-top:18px;padding-top:4px}
.advanced>summary{min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.advanced>summary .muted{font-weight:500}
fieldset{border:1px solid var(--hairline);border-radius:var(--radius-sm);margin:20px 0;padding:16px}
legend{font-weight:600}dt{font-weight:600}dd{margin:0 0 14px}

@media (max-width:1000px){.global-search{max-width:220px}.main-nav{gap:18px;margin-left:8px}}
@media (max-width:760px){
  .desk-inner{padding:8px 16px;min-height:56px;gap:8px}
  .main-nav,.global-search{display:none}
  .new-menu{margin-left:auto}
  .desk-bar .ask-kaya{display:none}
  .app-bar{padding:8px 16px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;justify-content:space-around;gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--hairline)}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:50px;justify-content:center;border-radius:12px;color:var(--muted);font-size:11.5px;font-weight:600}
  .tabbar a:hover{text-decoration:none;color:var(--text)}
  .tabbar a[aria-current="page"]{color:var(--accent)}
  .tabbar a[aria-current="page"] .icon{stroke-width:2.2}
  .has-shell footer{padding-bottom:96px}
}
@media (max-width:650px){
  .new-menu>summary.button span{display:none}
  .new-menu>summary.button{padding:8px 12px}
  .global-search input{font-size:16px}
  main{margin:18px auto 32px;padding:0 16px}
  h1{font-size:28px}
  .title-bar{align-items:flex-start}
  .row-main{padding:12px 6px 12px 16px}
  .row-action{margin-right:10px;min-height:44px;padding:0 14px}
  .quiet-action{padding:0 8px}
  .page-heading{display:block}
  .work{flex-direction:column;gap:6px}
  .dates{text-align:left;min-width:0}
  .action-bar .button{flex:1 1 auto}
  .action-bar .text-action{width:100%;justify-content:center}
  .contacts li{width:100%;justify-content:space-between}
  .tiles,.card-side .tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .wide .identity h1{font-size:30px}
  .stat{flex:1 1 40%;min-height:64px;padding:10px 14px}.stat-num{font-size:24px}
  .task-actions .button-large{width:100%}
  .panel{padding:16px}
  .manage-row{flex-direction:column;gap:0}.confirm-box{max-width:none}
  .grid{display:block}.grid .panel{margin:0 0 12px}
  .inline-field{flex-wrap:wrap}
}

/* ---- Product components (2026-10-28) ------------------------------------------------------- */
h1,.headline{letter-spacing:-.028em}
.panel,.list,.tile,.stat,.acard,.rail-list,.tail>summary,.card{transition:box-shadow .18s var(--ease),transform .18s var(--ease),background .18s var(--ease)}
a.tile:hover,a.stat:hover,a.card:hover,.card-link:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.notice{display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);animation:rise .35s var(--ease)}
.notice::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--done)}
.notice-error::before{background:var(--urgent)}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
.menu-panel,.sheet,.switcher-panel{animation:pop .14s var(--ease);transform-origin:top right}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Assistant, recommendations and previews (intelligent-ops milestone) */
.demo-banner{display:block;padding:10px 14px;border-radius:12px;background:var(--waiting-soft);color:var(--text);font-size:14px;margin:0 0 14px}
.demo-banner .icon{color:var(--waiting);margin-top:2px}
.demo-db{margin:0 0 14px;padding:6px 12px;border-radius:10px;border:1px dashed var(--waiting);color:var(--waiting);font-size:13px;font-weight:600}
.context-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:14px;font-weight:600;margin:0 0 12px}
.ask{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-md);margin:0 0 18px}
.ask:focus-within{box-shadow:0 0 0 2px var(--accent),var(--shadow-md)}
.ask input[type=text],.ask input:not([type]){border:0;background:transparent;font-size:17px;min-height:48px;padding:8px 0}
.ask input:focus{outline:none}
.ask>button{min-height:46px;min-width:46px;padding:0;border-radius:14px;background:var(--brand-grad)}
.ask-home{margin-bottom:10px;padding-left:10px}
.ask-spark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--brand-grad);color:#fff;flex:none}
.ask-spark .icon{width:17px;height:17px}
.ask-photo{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;margin:0;color:var(--muted);cursor:pointer}
.ask-photo:hover{background:var(--fill);color:var(--text)}
.ask-photo input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0}
.ask-photo:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.reply-text{font-size:17px;font-weight:600;margin:0 0 10px}
.reply-unsure{background:var(--attention-soft)}
.examples{display:flex;flex-wrap:wrap;gap:8px}
.examples .chip{font-weight:500}
.context-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:4px 0 14px}
.context-facts .answer dd{font-size:15px}
.tier-title{margin-top:8px}
.recs{display:flex;flex-direction:column;gap:2px;margin:4px 0 10px}
.rec{display:flex;gap:10px;align-items:flex-start;padding:10px 4px;border-top:1px solid var(--hairline)}
.rec:first-child{border-top:0}
.rec input[type=checkbox]{width:22px;height:22px;margin-top:2px;accent-color:var(--accent);flex:none}
.rec-dot{flex:none;width:10px;height:10px;border-radius:50%;margin:7px 6px 0;background:var(--tone,var(--info));box-shadow:0 0 0 4px var(--tone-soft,var(--info-soft))}
.rec-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rec-title{font-weight:650;color:var(--text);margin:0;cursor:pointer;overflow-wrap:anywhere}
.rec-why{font-size:13.5px;color:var(--muted)}
.rec-related{background:var(--accent-soft);border-radius:12px;padding-left:8px;padding-right:8px}
.rec-menu{flex:none}
.rec-menu>summary{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:12px;color:var(--muted)}
.rec-menu>summary:hover{background:var(--fill)}
.rec-dot{background:transparent!important;box-shadow:none!important;border:2px solid var(--tone,var(--info));width:10px;height:10px}
.ask-photo.on{color:var(--on-accent);background:var(--accent)}
.proposal{border-radius:14px;box-shadow:inset 0 0 0 1.5px var(--accent);padding:14px 16px;margin:10px 0;background:var(--surface)}
.proposal h3{margin:0;font-size:16px;display:flex;gap:6px;align-items:center}
.proposal-closed{box-shadow:inset 0 0 0 1px var(--hairline);opacity:.85}
.preview-steps{margin:10px 0 6px;padding-left:22px}
.preview-steps li{padding:4px 0}
.preview-steps .step-note{color:var(--attention)}
.menu-form{padding:6px 8px}.menu-form label{font-size:13px}.menu-form input{min-height:40px;margin-bottom:6px}
.capture-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.more-grid a{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-weight:650;min-height:96px}
.more-grid a:hover{text-decoration:none;box-shadow:var(--shadow-md);color:var(--text)}
.demo-compact{font-size:13px;padding:6px 12px}
@media (max-width:650px){.stat-zero{display:none}.action-bar .text-action{display:none}}
@media (max-width:650px){.ask input{font-size:16px}}

/* Page header: eyebrow, title, one line of context, actions on the right */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 20px}
.page-head h1{margin:2px 0 4px}
.page-head .lede{margin:0;color:var(--muted);max-width:640px}
.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.crumbs{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:14px;color:var(--muted);margin:0 0 4px}
.crumbs a{color:var(--muted);font-weight:550}.crumbs a:hover{color:var(--accent)}
.crumbs .icon{width:14px;height:14px}
main.wide-main{max-width:1200px}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 24px}
.kpi{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 16px 14px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);overflow:hidden;min-height:104px}
a.kpi:hover{text-decoration:none;color:var(--text);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.kpi::after{content:"";position:absolute;inset:auto -30px -40px auto;width:110px;height:110px;border-radius:50%;background:var(--tone-soft,var(--fill));opacity:.9}
.kpi>*{position:relative;z-index:1}
.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kpi-label{font-size:13.5px;font-weight:650;color:var(--muted)}
.kpi-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--tone-soft,var(--fill));color:var(--tone,var(--muted))}
.kpi-num{font-size:32px;font-weight:750;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.kpi-note{font-size:13px;color:var(--muted)}
.kpi.tone-urgent .kpi-num{color:var(--urgent)}

/* Cards and grids */
.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin:0 0 16px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.card-head h2{margin:0;font-size:17px;display:flex;align-items:center;gap:8px}
.card-head h2 .icon{color:var(--muted)}
.card-link{display:block;color:var(--text)}.card-link:hover{text-decoration:none;color:var(--text)}
.columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:start}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
@media (max-width:900px){.columns{grid-template-columns:minmax(0,1fr)}}

/* Category chip: colour + icon for a kind of system, always next to its name */
.cat{--c:var(--cat-other);display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:11px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}
.cat-heat{--c:var(--cat-heat)}.cat-water{--c:var(--cat-water)}.cat-oil{--c:var(--cat-oil)}.cat-cool{--c:var(--cat-cool)}
.cat-septic{--c:var(--cat-septic)}.cat-supply{--c:var(--cat-supply)}.cat-power{--c:var(--cat-power)}.cat-roof{--c:var(--cat-roof)}
.cat-pump{--c:var(--cat-pump)}.cat-elec{--c:var(--cat-elec)}.cat-appl{--c:var(--cat-appl)}.cat-other{--c:var(--cat-other)}
.cat-sm{width:28px;height:28px;border-radius:9px}.cat-sm .icon{width:16px;height:16px}

/* Filter chips (links, so every filter is a shareable URL and works without JavaScript) */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.filters .label{font-size:13px;font-weight:650;color:var(--muted);margin-right:2px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-size:14px;font-weight:600}
.chip:hover{text-decoration:none;color:var(--text);background:var(--surface-hover)}
.chip[aria-current="true"],.chip.on{background:var(--text);color:var(--bg);box-shadow:none}
.chip .n{min-width:20px;height:20px;font-size:11.5px}
.filter-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 16px}
.filter-form label{font-size:13px;margin:0 0 4px;color:var(--muted)}
.filter-form select,.filter-form input{min-height:40px;padding:7px 10px;width:auto;min-width:170px;font-size:16px}

/* Generic item rows with a leading icon */
.item{display:flex;align-items:center;gap:14px;padding:12px 16px;color:var(--text);min-height:64px}
.item+.item{border-top:1px solid var(--hairline)}
a.item:hover{background:var(--surface-hover);text-decoration:none;color:var(--text)}
.item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.item-title{font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.item-meta{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:13.5px;color:var(--muted)}
.item-side{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13.5px;color:var(--muted)}
.item-side strong{color:var(--text);font-size:15px}
.chev{color:var(--muted);flex:none}
.pill-info{background:var(--info-soft);color:var(--info)}

/* Suggestions */
.suggestion{display:flex;gap:12px;align-items:flex-start;padding:14px 14px 12px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.suggestion+.suggestion{margin-top:10px}
.suggestion .kpi-icon{flex:none}
.suggestion-body{flex:1;min-width:0}
.suggestion-title{margin:0;font-weight:650;line-height:1.3}
.suggestion-why{margin:3px 0 8px;font-size:13.5px;color:var(--muted)}
.suggestion-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.suggestion-actions .button{min-height:36px;padding:6px 14px;font-size:14px;border-radius:10px}
.suggestion-actions button.quiet{min-height:36px;font-size:13.5px;color:var(--muted)}

/* Portfolio cards */
.home-card{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);position:relative;overflow:hidden}
.home-card:hover{text-decoration:none;color:var(--text);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.home-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--tone,var(--done))}
.home-top{display:flex;gap:12px;align-items:center}
.home-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--bg-tint);color:var(--accent);flex:none;font-weight:750}
.home-name,.home-addr{display:block}
.home-name{font-size:17px;font-weight:700;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}
.home-addr{font-size:13.5px;color:var(--muted);overflow-wrap:anywhere}
.home-stats{display:flex;flex-wrap:wrap;gap:6px}
.mini{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:var(--fill);font-size:12.5px;font-weight:650;color:var(--muted)}
.mini.tone-urgent{background:var(--urgent-soft);color:var(--urgent)}
.mini.tone-attention{background:var(--attention-soft);color:var(--attention)}
.mini.tone-waiting{background:var(--waiting-soft);color:var(--waiting)}
.mini.tone-done{background:var(--done-soft);color:var(--done)}
.mini.tone-info{background:var(--info-soft);color:var(--info)}

/* Activity timeline */
.timeline{list-style:none;margin:0;padding:0}
.timeline li{position:relative;display:flex;gap:12px;padding:0 0 14px 0}
.timeline li:not(:last-child)::before{content:"";position:absolute;left:15px;top:32px;bottom:2px;width:2px;background:var(--hairline)}
.tl-dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;flex:none;background:var(--tone-soft,var(--fill));color:var(--tone,var(--muted))}
.tl-dot .icon{width:16px;height:16px}
.tl-body{min-width:0;display:flex;flex-direction:column}
.tl-title{font-weight:600;color:var(--text);overflow-wrap:anywhere;line-height:1.3}
.tl-meta{font-size:13px;color:var(--muted)}

/* Bars (spending trend): real values only; the label always states the amount */
.bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);gap:8px;align-items:end;height:180px;margin:8px 0 4px;overflow-x:auto;padding-bottom:4px}
.bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;min-width:0}
.bar-fill{width:100%;max-width:36px;max-height:calc(100% - 36px);border-radius:8px 8px 3px 3px;background:var(--brand-grad);min-height:3px}
.bar-empty .bar-fill{min-height:0;background:transparent}
.bar-label{font-size:11.5px;color:var(--muted);white-space:nowrap}
.bar-amount{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap}
.meter{height:8px;border-radius:999px;background:var(--fill);overflow:hidden}
.meter>span{display:block;height:100%;border-radius:999px;background:var(--brand-grad)}
table.data{width:100%;border-collapse:collapse;font-size:14.5px}
table.data th{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--hairline)}
table.data td{padding:10px;border-bottom:1px solid var(--hairline);vertical-align:top}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.data tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}

/* Equipment summary: the four answers */
.answers{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 18px}
.answer{padding:14px 16px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.answer dt{font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:6px}
.answer dd{margin:6px 0 0;font-size:17px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.answer small{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-top:2px}
.hero-card{display:flex;gap:16px;align-items:center;padding:20px 22px;border-radius:20px;background:linear-gradient(135deg,var(--bg-tint),var(--surface) 70%);box-shadow:var(--shadow);margin:0 0 20px}
.hero-card .cat{width:56px;height:56px;border-radius:16px}.hero-card .cat .icon{width:28px;height:28px}

/* Visit checklist and progress */
.progress{display:flex;align-items:center;gap:12px;margin:6px 0 16px}
.progress .meter{flex:1;height:10px}
.progress-text{font-size:14px;font-weight:650;color:var(--muted);white-space:nowrap}
.check-item{display:flex;gap:12px;align-items:flex-start;padding:12px 16px}
.check-item+.check-item{border-top:1px solid var(--hairline)}
.check-item input[type="checkbox"]{width:22px;height:22px;margin-top:2px;accent-color:var(--accent)}
.check-item label{margin:0;font-weight:600;flex:1;cursor:pointer}
.check-item .item-meta{margin-top:2px;font-weight:500}
.done-mark{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--done-soft);color:var(--done);flex:none}
.done-mark .icon{width:15px;height:15px;stroke-width:2.4}
.todo-mark{width:26px;height:26px;border-radius:50%;border:2px solid var(--field);flex:none}
.purpose-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:6px 0 18px}
.purpose{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;font-weight:650;margin:0}
.purpose input{position:absolute;opacity:0;pointer-events:none}
.purpose .icon{color:var(--accent)}
.purpose small{font-weight:500;color:var(--muted);font-size:12.5px}
.purpose:has(input:checked){box-shadow:0 0 0 2px var(--accent),var(--shadow-md);background:var(--accent-soft)}
.purpose:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.sticky-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;flex-wrap:nowrap;align-items:center;padding:12px 0;background:var(--bg);box-shadow:0 -1px 0 var(--hairline)}
.sticky-actions>*{flex:none}

/* Empty state with icon */
.empty-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:32px 20px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--muted)}
.empty-card .kpi-icon{width:48px;height:48px;border-radius:14px;background:var(--accent-soft);color:var(--accent)}
.empty-card h2,.empty-card h3{color:var(--text);margin:4px 0 0}
.empty-card p{margin:0 0 6px;max-width:440px}

.section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:26px 4px 10px}
.section-title .count{text-transform:none;letter-spacing:0}
.stack-sm>*+*{margin-top:10px}
.help{font-size:13.5px;color:var(--muted);margin:4px 0 12px}
.badge-note{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:var(--info-soft);color:var(--info);font-size:13px;font-weight:600}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:650px){.two-col{grid-template-columns:1fr}
  /* Phones: a compact swipeable strip, so the work itself is visible without scrolling past counts */
  .kpis{display:flex;overflow-x:auto;gap:8px;margin:0 -16px 18px;padding:2px 16px 6px;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:none}
  .kpis::-webkit-scrollbar{display:none}
  .kpi{flex:0 0 42%;min-height:0;padding:11px 12px;gap:4px;scroll-snap-align:start}.kpi-num{font-size:24px}
  .kpi-note{display:none}.kpi.tone-urgent .kpi-note,.kpi.tone-attention .kpi-note{display:block;font-size:12px}
  .kpi-icon{width:28px;height:28px}.kpi-icon .icon{width:16px;height:16px}.kpi-label{font-size:12.5px}
  /* Filters scroll sideways instead of stacking rows of chips above the content */
  .filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 16px;padding:2px 16px 6px;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}.filters>*{flex:none}
  .filter-form>p{flex:1 1 100%}.filter-form select,.filter-form input{width:100%;min-width:0}.filter-form>button{width:100%}
  /* Touch targets */
  .chip,.qchip span,.qchip-date input,.rail-action,.suggestion-actions .button,.suggestion-actions button.quiet,
  .fact-actions button.quiet,.call,.back{min-height:44px}
  .crumbs a{display:inline-flex;align-items:center;min-height:44px}
  /* Quick Add: just the line until it is used */
  .quick:not(:focus-within):has(input[name="title"]:placeholder-shown) .quick-opts{display:none}
  .page-head{align-items:flex-start}.page-actions{width:100%}.page-actions .button{flex:1}
  .item{padding:12px 14px;flex-wrap:wrap}
  .item-side{order:3;flex-basis:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:2px 10px;text-align:left;padding-left:50px;font-size:13px}
  .item-side strong{font-size:14px}
  .item>.chev{display:none}.hero-card{padding:16px}.answers{grid-template-columns:1fr 1fr}}
.demo-db.env-realcopy{border:2px solid var(--urgent);color:var(--urgent);background:var(--urgent-soft);font-size:14px;letter-spacing:.01em}
/* Kaya */
.kaya-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.kaya-bar .context-chip{margin:0}
.kaya-mode{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;margin:0}
.kaya-switch{margin:0 0 12px}
.kaya-thinking{color:var(--muted);font-size:14px;margin:-8px 0 14px 16px}
.kaya-text p{margin:0 0 8px;font-size:16px;line-height:1.5}.kaya-text ul{margin:4px 0 10px;padding-left:20px}.kaya-text li{margin:3px 0;line-height:1.45}
.kaya-reply .proposal{margin-top:12px}
.kaya-based{margin:14px 0 6px}
.kaya-thread{list-style:none;padding:0;margin:8px 0 0}.kaya-thread li{padding:10px 0;border-top:1px solid var(--hairline)}
.kaya-you{font-weight:600;margin:0 0 6px}
.label-review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.label-photo{margin:0}.label-photo img{width:100%;max-height:420px;object-fit:contain;border-radius:12px;background:var(--fill)}
.label-field{border:1px solid var(--hairline);border-radius:12px;padding:10px 12px;margin:0 0 10px}
.label-field legend{font-weight:650;padding:0 4px}.label-field input:not([type=checkbox]){width:100%}
.label-field .check{display:flex;align-items:center;gap:8px;min-height:44px}
@media (max-width:650px){.label-review{grid-template-columns:1fr}}
/* Import review */
.import-off{opacity:.65}
.import-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;margin-top:8px}
.import-field label:first-child{display:block;font-weight:600;font-size:14px;margin-bottom:4px}
.import-field input:not([type=checkbox]){width:100%}
.import-field .check,.import-row > .check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px}
.import-field.state-differs input:not([type=checkbox]){border-color:var(--attention)}
.import-field.state-fills input:not([type=checkbox]),.import-field.state-new input:not([type=checkbox]){border-color:var(--info)}
.import-field label.check,.label-field label.check{box-shadow:none;background:none;padding:0;font-weight:500}
@media (max-width:650px){.sticky-actions{flex-wrap:wrap}}
.import-row-title{font-size:17px;margin:0}
.import-choice{border:0;padding:0;margin:4px 0 0}.import-choice legend{font-weight:600;margin-bottom:4px}
@media (max-width:650px){.label-photo img{max-height:35vh}}
.kaya-thinking:empty{display:none}
.kaya-foot{margin-top:18px}
/* Onboarding */
.onb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0 0 16px}
.onb-card{display:flex;flex-direction:column;gap:8px;color:var(--text);text-decoration:none}.onb-card:hover{text-decoration:none;box-shadow:var(--shadow-md)}
.onb-name{font-weight:650;font-size:17px}.onb-go{color:var(--accent);font-weight:600;display:flex;align-items:center;gap:4px}
.onb-progress{display:flex;align-items:center;gap:10px;max-width:420px}.onb-progress .meter{flex:1}
.onb-list,.onb-review{list-style:none;padding:0;margin:0}
.onb-list li,.onb-review li{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:10px 0;border-top:1px solid var(--hairline)}
.onb-list li:first-child,.onb-review li:first-child{border-top:0}
.onb-review .item-main{display:flex;flex-flow:row wrap;align-items:center;gap:3px 4px;min-width:0}
.onb-review .item-main>.item-title{flex:0 1 auto}.onb-review .item-main>.why{order:1}.onb-review .why[open]{flex-basis:100%}
.onb-review .item-main>.field-error,.onb-review .item-main>.item-meta{order:2;flex-basis:100%}
.onb-review .decision-rejected .item-title{text-decoration:line-through;color:var(--muted)}
.onb-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;flex:none;max-width:50%}
.onb-edit summary{cursor:pointer;color:var(--accent);min-height:44px;display:flex;align-items:center}
.onb-edit form{margin-top:8px}
.onb-section > summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;min-height:44px}.onb-h2{font-size:18px;font-weight:700}
.onb-entries{margin:10px 0 0}.onb-entry{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--hairline)}
.onb-entry dt{font-weight:600}.onb-entry dd{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.onb-system{padding:8px 0;border-top:1px solid var(--hairline)}
.onb-suggest,.onb-task{margin:8px 0}.onb-mark{margin-top:12px}
.onb-reply{margin:12px 0}
@media (max-width:650px){.onb-list li,.onb-review li{flex-direction:column}.onb-actions{max-width:none;justify-content:flex-start}.onb-entry{grid-template-columns:1fr}}
/* Setup */
.setup-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start;margin:0 0 16px}
.setup-head h1{margin:0}.setup-head .muted{margin:4px 0}
.setup-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.setup-units{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.profile-row{margin:0;padding:10px 0;border-top:1px solid var(--hairline)}.profile-row:first-of-type{border-top:0}
.profile-row fieldset{border:0;margin:0;padding:0}
.profile-row legend{display:flex;align-items:center;gap:8px;font-weight:650;font-size:15px;margin:0 0 8px;padding:0}
.profile-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.chip-choice{position:relative;display:inline-flex;margin:0}
.chip-choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip-choice span{box-sizing:border-box;height:44px;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--fill);color:var(--text);font-weight:550;border:1.5px solid var(--hairline);transition:background .15s var(--ease)}
.chip-choice input:checked + span{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.chip-choice input:checked + span::before{content:"✓";margin-right:6px;font-weight:700}
.chip-choice input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px}
.chip-unknown{box-sizing:border-box;height:44px;font-size:15px;line-height:1.2;margin:0;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;background:none;color:var(--muted);border:1.5px dashed var(--field);font-weight:500}
.profile-status{display:inline-block;font-size:13px;color:var(--done);margin-top:6px}.profile-status:empty{display:none}
.profile-status.is-error{color:var(--urgent);font-weight:600}
.profile-undo{min-height:44px;padding:0 10px;font-size:14px;margin-left:4px}
.setup-section-title{margin:22px 0 10px;font-size:18px}
.setup-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin:0 0 16px}
.setup-card{margin:0}.setup-card-head{display:flex;align-items:center;gap:10px;margin:0 0 6px}.setup-card-head h3{margin:0;font-size:17px;flex:1}
.saved-note{color:var(--done);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:4px}
.setup-item{padding:8px 0;border-top:1px solid var(--hairline)}.setup-line{margin:2px 0 0;color:var(--muted);font-size:14px}
.setup-details > summary,.setup-more > summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:44px;display:inline-flex;align-items:center;gap:6px}
.setup-form{margin:6px 0 4px}.setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px}
.setup-grid .field{margin:4px 0}.setup-grid input:not([type=checkbox]),.setup-grid select,.setup-grid textarea{width:100%}
.setup-wide{grid-column:1/-1}.setup-new{margin-top:6px}.setup-pair{display:flex;gap:6px}.setup-pair input{max-width:80px}
.about{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;min-height:32px;margin-top:2px}
.setup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.setup-hint{margin:12px 0 18px}
.setup-kaya textarea{width:100%;min-height:96px}
.review-group{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 4px}
.review-conflict{color:var(--urgent)}
.why{display:inline-block}.why > summary{list-style:none;cursor:pointer;color:var(--muted);min-width:44px;min-height:44px;display:inline-grid;place-items:center}
.setup-leftout{margin:8px 0;font-size:14px}
.onb-profile{display:flex;flex-direction:column;gap:2px;font-size:14px}
.setup-history > summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}
@media (max-width:650px){.setup-cards{grid-template-columns:1fr}.setup-head-actions{width:100%}.setup-head-actions .button{flex:1;justify-content:center}}
.profile-line{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;font-size:15px;margin:6px 0 12px}
.why>summary::before,.setup-details>summary::before{content:none}
.setup-details>summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent)}
.optional{color:var(--muted);font-weight:400}
fieldset.unit-row{border:0;margin:0;padding:0}

.unit-system { padding: 14px 0; border-bottom: 1px solid var(--border); }
.unit-system summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
.unit-fact { display:block; margin:8px 0; }

/* Owner workflows: phone section bar, utilities at a glance, contract filters, install and offline pages. */
.jump-nav{display:none}
@media (max-width:959px){
  .jump-nav{position:sticky;top:56px;z-index:14;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:10px -16px 4px;padding:8px 16px;
    background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .jump-nav::-webkit-scrollbar{display:none}
  .jump-nav a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:20px;background:var(--surface);
    box-shadow:var(--shadow);color:var(--text);font-size:14px;font-weight:600;white-space:nowrap}
  .jump-nav a:hover{text-decoration:none;background:var(--surface-hover)}
  .card-layout [id],#people{scroll-margin-top:120px}
  .action-bar .button{min-height:44px}
}
.utilities .item-meta strong{color:var(--text)}
.utilities .row-action{margin-left:auto;align-self:center}
.shutoff-list li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--hairline)}
.shutoff-list li:last-child{border-bottom:0}
.shutoff-list a{margin-left:auto;min-height:32px;display:inline-flex;align-items:center}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.filter-bar select{min-height:44px;max-width:100%}
.contract-group-renewal,.contract-group-expired{color:var(--attention)}
.install-steps li{margin:6px 0}
.offline-page{padding:48px 16px}

/* Owner desk (2026-11-05): Today / Properties / Upcoming. Serif titles, warm paper surfaces, one dark header,
   breadcrumbs from the property down to its unit, equipment or task. */
main.desk{max-width:1160px}
.page-head h1,.desk-hero h1,.identity h1,.task-head h1,.hero-card h1{font-family:var(--serif);font-weight:400}
.desk-hero{padding:6px 0 8px}
.desk-hero h1{font-size:clamp(40px,5vw,60px);line-height:1.02;letter-spacing:-.04em;margin:8px 0 6px}
.desk-hero .summary{font-size:18px}
.desk-hero .summary em{font-style:normal;color:var(--urgent);font-weight:650}
.eyebrow{letter-spacing:.12em;font-weight:700;font-size:11.5px;color:var(--muted)}
.lede{color:var(--muted);max-width:680px}
.desk-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 18px}
.desk-actions .menu>summary.button{list-style:none}
.desk-cols{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr);gap:24px;align-items:start}
.desk-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.desk-main{min-width:0}
.desk-panel{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:20px 22px;margin:0 0 16px}
.desk-side .desk-panel{margin:0}
.desk-panel>h2,.desk-panel>details>summary{font-family:var(--serif);font-size:23px;font-weight:400;margin:0 0 10px}
.desk-panel>details>summary{font-size:19px;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:6px}
.desk-rows{display:flex;flex-direction:column}
.desk-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--hairline);color:var(--text);min-height:56px}
.desk-row:hover{text-decoration:none;color:var(--accent)}
.desk-row-icon{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:8px;background:var(--tone-soft,var(--fill));color:var(--tone-text,var(--muted))}
.desk-row-main{flex:1;min-width:0}
.desk-row-main strong{display:block;font-weight:650;overflow-wrap:anywhere}
.desk-row-main small{display:block;color:var(--muted);font-size:13.5px;overflow-wrap:anywhere}
.desk-row-end{margin-left:auto;white-space:nowrap;font-size:15px;color:var(--text)}
.chev-mark{color:var(--muted);font-size:20px;line-height:1}
.tag{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;background:var(--fill);color:var(--muted);padding:3px 7px;border-radius:5px}
.desk-link{margin:12px 0 0}
.desk-link a{font-weight:600}
.agenda-group h2 .count,.desk-panel h2 .count{font-family:inherit;font-size:14px;vertical-align:middle}
.agenda-overdue h2{color:var(--urgent)}
.agenda-filters{margin:4px 0 14px}
.agenda-filters .count{margin-left:4px;opacity:.75}
.crumb{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:14.5px;color:var(--muted);margin:0 0 6px}
.crumb a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--field)}
.crumb a:hover{color:var(--accent)}
.crumb [aria-current]{color:var(--text)}
.crumb-aside{margin-left:auto}
.crumb ~ .identity .back,.crumb ~ .task-head .back{display:none}
.desk-identity h1{font-size:clamp(36px,4.6vw,56px);letter-spacing:-.04em;margin:6px 0 8px}
.task-head h1{font-size:clamp(30px,4vw,46px);letter-spacing:-.03em}
/* Today: decisions first. The first card leads; the rest of the open work stays one tap away. */
.desk-feature-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 10px}
.desk-feature-head .section-label{margin:0}
.filters-quiet{margin:0}
.filters-quiet .chip{min-height:34px;font-size:13.5px}
.desk-decisions>.acard:first-child{box-shadow:inset 4px 0 0 var(--feature),var(--shadow-md)}
.desk-plan{margin-top:22px}
.desk-more{margin-top:22px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px}
.desk-more>summary{min-height:52px;display:flex;align-items:center;gap:8px;padding:0 18px;font-weight:650;cursor:pointer}
.desk-more>.overview{padding:4px 14px 14px}
.desk-capture .quick-add,.desk-capture form{margin-top:8px}
.desk-activity .timeline{margin-top:4px}
/* Units on the parent page: the same filter links, as a vertical list. */
.unit-bar[data-layout="list"]{flex-direction:column;gap:0;overflow:visible;margin:4px 0 0;padding:0}
.unit-bar[data-layout="list"] a{min-width:0;min-height:56px;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 4px;border-radius:0;background:transparent;box-shadow:none;border-top:1px solid var(--hairline)}
.unit-bar[data-layout="list"] a:first-child{border-top:0}
.unit-bar[data-layout="list"] a:hover{background:var(--surface-hover)}
.unit-bar[data-layout="list"] a[aria-current="page"]{background:transparent;color:var(--text)}
.unit-bar[data-layout="list"] a[aria-current="page"] b::after{content:" · this page";font-weight:400;color:var(--muted)}
.unit-bar[data-layout="list"] small{font-size:13.5px;text-align:right}
.unit-bar[data-layout="list"] a.unit-unset{border:0;border-top:1px dashed var(--field);color:var(--attention)}
.unit-bar[data-layout="list"] .unit-add{justify-content:flex-start;box-shadow:none;border-top:1px solid var(--hairline);border-radius:0}
.unit-bar a[aria-current="page"]{background:var(--accent);color:var(--on-accent)}
#units .help{margin:0 0 6px}
.task-cols{margin-top:10px}
.task-next .facts dl{display:flex;flex-wrap:wrap;gap:4px 28px;margin:6px 0 10px}
.task-next .task-actions{border-top:1px solid var(--hairline);padding-top:14px;margin-top:6px}
.activity-list li{padding:8px 0;border-bottom:1px solid var(--hairline)}
.activity-list li:last-child{border-bottom:0}
.more-actions .menu-panel a{gap:10px}
@media (max-width:900px){.desk-cols{grid-template-columns:minmax(0,1fr);gap:16px}}
@media (max-width:650px){
  main.desk{padding:0 16px}
  .desk-hero h1{font-size:40px}
  .desk-identity h1{font-size:34px}
  .desk-panel{padding:16px}
  .desk-actions .button{flex:1 1 auto}
  .desk-actions .more-actions{flex:1 1 auto}
  .desk-actions .more-actions>summary{width:100%}
  .crumb-aside{margin-left:0;width:100%}
  .desk-row-end{font-size:14px}
}
