@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@500;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
--paper:#F6F3EC;
--paper-raised:#FFFFFF;
--ink:#241F19;
--ink-dim:#5B564C;
--line:#DDD6C6;
--line-strong:#C7BEA8;
--clay:#B5502D;
--clay-ink:#7A331A;
--slate:#2F4858;
--good:#3F7D4F;
--good-bg:#E4EEE4;
--warn:#A8720C;
--warn-bg:#F3E7CC;
--bad:#A23B3B;
--bad-bg:#F3E0DD;
--neutral-bg:#EAE5D8;
--focus:#2F4858;
--shadow: 0 1px 2px rgba(36,31,25,.06), 0 4px 14px rgba(36,31,25,.07);
}
@media (prefers-color-scheme: dark){
:root{
--paper:#1B1815; --paper-raised:#242019; --ink:#EDE7DA; --ink-dim:#B4AB99;
--line:#3A342A; --line-strong:#4B4436; --clay:#E07A4E; --clay-ink:#F3A47D;
--slate:#7FA0B4; --good:#7FBF8F; --good-bg:#26332A; --warn:#D9A84A; --warn-bg:#3A3120;
--bad:#E08A8A; --bad-bg:#3A2624; --neutral-bg:#2B271F; --focus:#7FA0B4;
--shadow: 0 1px 2px rgba(0,0,0,.3), 0 4px 18px rgba(0,0,0,.35);
}
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
background:var(--paper); color:var(--ink);
font-family:'IBM Plex Sans', system-ui, sans-serif; font-size:15px; line-height:1.45;
-webkit-tap-highlight-color:transparent;
}
.mono{font-family:'IBM Plex Mono', ui-monospace, monospace; font-variant-numeric:tabular-nums;}
h1,h2,h3{font-family:'Roboto Slab', serif; text-wrap:balance; margin:0;}
a{color:var(--slate);}
button,input,select,textarea{font-family:inherit; -webkit-tap-highlight-color:transparent;}
::selection{background:var(--clay); color:#fff;}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px;}
[hidden]{display:none !important;}

@media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }

/* ---- login ---- */
#loginScreen{
min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:24px;
}
.login-card{
width:100%; max-width:360px; background:var(--paper-raised); border:1px solid var(--line);
border-radius:16px; padding:28px 24px; box-shadow:var(--shadow);
}
.login-card h1{font-size:24px; margin:0 0 20px;}
.login-card .field{margin-bottom:14px;}
.login-card label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-dim); margin-bottom:6px;}
.login-card .field input{
width:100%; border:1.5px solid var(--line-strong); background:var(--paper); color:var(--ink);
border-radius:9px; padding:11px 12px; font-size:16px;
}
.login-error{color:var(--bad); font-size:13px; min-height:18px; margin-top:2px;}
.login-card button{
width:100%; background:var(--clay); border:none; color:#fff; border-radius:9px;
padding:12px; font-size:15px; font-weight:600; cursor:pointer; margin-top:6px;
}
.login-card button:disabled{opacity:.6;}

/* ---- shell ---- */
#app{max-width:640px; margin:0 auto; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; background:var(--paper);}
header.topbar{position:sticky; top:0; z-index:800; background:var(--paper); border-bottom:1px solid var(--line); padding:14px 16px 10px;}
.topbar-row{display:flex; align-items:baseline; justify-content:space-between; gap:12px;}
.brand{display:flex; flex-direction:column; gap:2px;}
.brand h1{font-size:22px; font-weight:700; color:var(--ink);}
.county-label{font-size:11.5px; color:var(--ink-dim); font-weight:500;}
.county-label select{font:inherit; color:inherit; background:none; border:none; padding:0; cursor:pointer;}
.topbar-right{display:flex; align-items:center; gap:8px;}
.loc-pill{
display:flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-dim);
background:var(--paper-raised); border:1px solid var(--line); border-radius:99px; padding:6px 10px;
white-space:nowrap; cursor:pointer;
}
.loc-dot{width:7px; height:7px; border-radius:50%; background:var(--line-strong); flex:none;}
.loc-dot.live{background:var(--good);} .loc-dot.err{background:var(--bad);}
.who-btn{
width:40px; height:40px; border-radius:50%; background:var(--slate); color:#fff; border:none;
font-size:12px; font-weight:700; cursor:pointer; flex:none;
}
.logout-btn{
width:40px; height:40px; border-radius:50%; background:var(--paper-raised); color:var(--ink-dim);
border:1px solid var(--line); cursor:pointer; flex:none; display:flex; align-items:center; justify-content:center;
}
.logout-btn:hover{color:var(--bad); border-color:var(--bad);}
.view-tabs{display:flex; margin-top:14px; border-bottom:1px solid var(--line);}
.view-tab{flex:1; display:flex; align-items:center; justify-content:center; gap:6px; background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-1px; padding:10px 6px 9px; font-size:13.5px; font-weight:600; color:var(--ink-dim); cursor:pointer;}
.view-tab[aria-pressed="true"]{color:var(--clay-ink); border-bottom-color:var(--clay);}
.toolbar{display:flex; flex-direction:column; gap:8px; margin-top:12px;}
.toolbar-chips{display:flex; gap:8px; overflow-x:auto; padding-bottom:2px;}
.search-row{flex:none;}
.search-input{width:100%; font:inherit; font-size:14px; color:var(--ink); background:var(--paper-raised); border:1px solid var(--line-strong); border-radius:10px; padding:9px 13px;}
.chip{
flex:none; font-size:13px; font-weight:500; color:var(--ink-dim); background:var(--paper-raised);
border:1px solid var(--line); border-radius:99px; padding:7px 13px; cursor:pointer;
display:flex; align-items:center; gap:6px;
}
.chip[aria-pressed="true"]{background:var(--slate); border-color:var(--slate); color:#fff;}

.chip.view-toggle{margin-left:auto; background:var(--paper-raised); border-color:var(--line-strong);}
.chip.view-toggle[aria-pressed="true"]{background:var(--clay); border-color:var(--clay);}

.area-row{display:flex; align-items:center; gap:8px; flex:none;}
.area-select{font:inherit; font-size:13px; font-weight:500; color:var(--ink); background:var(--paper-raised); border:1px solid var(--line-strong); border-radius:99px; padding:7px 13px; cursor:pointer;}

/* ---- map ---- */
#mapView{position:relative; flex:1; display:flex; flex-direction:column;}
#mapCanvas{flex:1; min-height:0; height:calc(100vh - 118px); height:calc(100dvh - 118px);}
.map-legend{
position:absolute; left:12px; bottom:calc(14px + env(safe-area-inset-bottom)); z-index:410;
background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:8px 10px;
display:flex; gap:12px; font-size:11.5px; color:var(--ink-dim); box-shadow:var(--shadow);
}
.map-legend span{display:flex; align-items:center; gap:5px;}
.map-legend .dot{width:9px; height:9px; border-radius:50%; display:inline-block;}
.map-legend .dot.me{background:var(--slate);}
.map-legend .dot.prop{background:var(--clay);}
.map-legend .dot.approx{background:var(--clay); opacity:.45;}
.leaflet-popup-content-wrapper{background:var(--paper-raised); color:var(--ink); border-radius:10px;}
.leaflet-popup-tip{background:var(--paper-raised);}
.map-pin{width:22px; height:22px; display:flex; align-items:center; justify-content:center; color:var(--clay);}
.map-pin svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));}
.map-pin.approx svg{opacity:.55;}
.map-pin.selected{color:var(--slate); transform:scale(1.18); transform-origin:50% 90%;}
.me-pin{width:18px; height:18px; border-radius:50%; background:var(--slate); border:3px solid var(--paper-raised); box-shadow:0 0 0 2px var(--slate), 0 1px 4px rgba(0,0,0,.4);}
.map-popup{font-family:'IBM Plex Sans', sans-serif; font-size:13px; min-width:180px;}
.map-popup .addr{font-family:'Roboto Slab',serif; font-weight:700; font-size:14px; margin-bottom:4px;}
.map-popup .popup-section{color:var(--ink-dim); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:3px;}
.map-popup .popup-date{color:var(--clay-ink); font-weight:600; font-size:12px; margin-bottom:4px;}
.map-popup .dist{color:var(--ink-dim); font-family:'IBM Plex Mono',monospace; font-size:12px; margin-bottom:6px;}
.map-popup button{background:var(--clay); color:#fff; border:none; border-radius:7px; padding:6px 10px; font-size:12px; font-weight:600; cursor:pointer;} .map-popup-route{margin-right:6px;} .map-popup-route.on{background:var(--good);}

.banner{margin:12px 16px 0; padding:11px 13px; border-radius:10px; font-size:13px; display:flex; gap:9px; align-items:flex-start; border:1px solid transparent;}
.banner.warn{background:var(--warn-bg); color:var(--warn); border-color:color-mix(in srgb, var(--warn) 35%, transparent);}
.banner.bad{background:var(--bad-bg); color:var(--bad); border-color:color-mix(in srgb, var(--bad) 35%, transparent);}
.banner .x{margin-left:auto; cursor:pointer; opacity:.6; flex:none; background:none; border:none; color:inherit;}

main{flex:1; padding:12px 16px 120px;}
.stale-note{font-size:11px; color:var(--ink-dim); margin:2px 2px 10px; font-family:'IBM Plex Mono',monospace;}

.card{background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:14px 14px 12px; margin-bottom:10px; box-shadow:var(--shadow); cursor:pointer;}
.card-top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start;}
.addr{font-family:'Roboto Slab', serif; font-weight:700; font-size:16.5px; line-height:1.25; color:var(--ink);}
.dist{flex:none; font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:600; color:var(--slate); background:color-mix(in srgb, var(--slate) 12%, transparent); border-radius:8px; padding:4px 8px; text-align:right; white-space:nowrap;}
.dist small{display:block; font-weight:400; font-size:9.5px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.04em;}
.card-meta{display:flex; flex-wrap:wrap; gap:6px 10px; margin-top:8px; font-size:12.5px; color:var(--ink-dim);}
.card-meta b{color:var(--ink); font-weight:600;}
.badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:9px;}
.badge{font-size:11px; font-weight:600; padding:3px 8px; border-radius:6px; letter-spacing:.02em;}
.badge.good{background:var(--good-bg); color:var(--good);}
.badge.warn{background:var(--warn-bg); color:var(--warn);}
.badge.bad{background:var(--bad-bg); color:var(--bad);}
.badge.neutral{background:var(--neutral-bg); color:var(--ink-dim);}
.badge.scheduled{background:var(--neutral-bg); color:var(--ink);}
.badge.postponed{background:var(--warn-bg); color:var(--warn);}
.badge.sold{background:var(--good-bg); color:var(--good);}
.card-row{position:relative; display:flex; gap:10px; align-items:flex-start;}
.pick{flex:none; width:26px; height:26px; border-radius:6px; border:1.5px solid var(--line-strong); background:var(--paper-raised); margin-top:2px; display:flex; align-items:center; justify-content:center;}
.pick[aria-checked="true"]{background:var(--clay); border-color:var(--clay); color:#fff; font-weight:700; font-size:13px;}

.empty{text-align:center; padding:60px 20px; color:var(--ink-dim);}
.empty h2{font-size:17px; margin-bottom:6px; color:var(--ink);}

.route-bar{position:fixed; left:0; right:0; bottom:0; z-index:900; display:flex; justify-content:center; padding:0 16px calc(16px + env(safe-area-inset-bottom)); pointer-events:none;}
.route-bar-inner{pointer-events:auto; width:100%; max-width:608px; background:var(--ink); color:var(--paper); border-radius:14px; padding:12px 14px; display:flex; align-items:center; gap:12px; box-shadow:0 8px 28px rgba(0,0,0,.28);}
.route-bar-inner span.n{font-family:'IBM Plex Mono',monospace; font-weight:600;}
.route-bar-inner button{margin-left:auto; background:var(--clay); color:#fff; border:none; border-radius:9px; padding:10px 16px; font-weight:600; font-size:14px; cursor:pointer;}
.route-bar-inner .clear{background:none; color:var(--paper); opacity:.7; border:none; font-size:13px; cursor:pointer; padding:6px;}

.sheet-scrim{position:fixed; inset:0; background:rgba(20,17,13,.45); z-index:950; display:flex; align-items:flex-end; justify-content:center; opacity:0; pointer-events:none; transition:opacity .18s ease;}
.sheet-scrim.open{opacity:1; pointer-events:auto;}
.sheet{background:var(--paper); width:100%; max-width:640px; max-height:92vh; max-height:92dvh; border-radius:18px 18px 0 0; overflow-y:auto; overscroll-behavior:contain; transform:translateY(100%); transition:transform .22s cubic-bezier(.2,.8,.2,1); box-shadow:0 -8px 30px rgba(0,0,0,.25);}
.sheet-scrim.open .sheet{transform:translateY(0);}
.sheet-handle{display:flex; justify-content:center; padding:10px 0 4px; position:sticky; top:0; background:var(--paper); z-index:2;}
.sheet-handle i{width:36px; height:4px; border-radius:99px; background:var(--line-strong); display:block;}
.sheet-close{position:sticky; top:8px; float:right; margin-right:12px; margin-top:-2px; background:var(--paper-raised); border:1px solid var(--line); border-radius:99px; width:38px; height:38px; font-size:15px; cursor:pointer; color:var(--ink-dim); z-index:3;}
.sheet-body{padding:2px 18px 32px;}
.sheet-body h2{font-size:20px; font-weight:700; margin-bottom:4px; padding-right:40px;}
.sheet-sub{font-size:13px; color:var(--ink-dim); margin-bottom:14px;}
.sheet-actions{display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap;}
.btn{border:1px solid var(--line-strong); background:var(--paper-raised); color:var(--ink); border-radius:9px; padding:9px 13px; font-size:13.5px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px; text-decoration:none;}
.btn.primary{background:var(--clay); border-color:var(--clay); color:#fff;}
.btn:disabled{opacity:.5; cursor:not-allowed;}

.section-title{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-dim); margin:22px 0 10px;}
.kv{display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:13.5px;}
.kv dt{color:var(--ink-dim);} .kv dd{margin:0; color:var(--ink); font-weight:500;} .kv dd.mono{font-family:'IBM Plex Mono',monospace;}
.tel-link{display:inline-flex; align-items:center; gap:5px; color:var(--slate); font-weight:700; text-decoration:none;}
.tel-link::before{content:"📞"; font-size:12px;}
.tel-link:active{opacity:.6;}

.field{margin-bottom:14px;}
.field-sm{margin-bottom:8px;}
.field-sm label{font-size:11px; margin-bottom:3px;}
.field-sm input{padding:6px 9px; font-size:13.5px;}
.field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-dim); margin-bottom:6px;}
.field-hint{font-weight:400; color:var(--warn); text-transform:none; letter-spacing:0;}
.field-row-compact{display:flex; gap:8px; margin-bottom:14px;}
.field-compact{flex:1; min-width:0;}
.field-compact label{display:block; font-size:11px; font-weight:600; color:var(--ink-dim); margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.field-compact select{padding:10px 4px; font-size:14px; text-align:center;}
.seg{display:flex; gap:6px; flex-wrap:wrap;}
.seg button{flex:1 1 auto; min-width:64px; border:1.5px solid var(--line-strong); background:var(--paper-raised); color:var(--ink); border-radius:9px; padding:9px 6px; font-size:13px; font-weight:600; cursor:pointer;}
.seg button[aria-pressed="true"]{background:var(--slate); border-color:var(--slate); color:#fff;}
input[type="number"], input[type="text"], input[type="email"], input[type="url"], input[type="date"], select, textarea{width:100%; border:1.5px solid var(--line-strong); background:var(--paper-raised); color:var(--ink); border-radius:9px; padding:10px 11px; font-size:16px; font-family:inherit;}
textarea{min-height:72px; resize:vertical;}.field-money{position:relative;}

.notes-history{margin-bottom:12px; display:flex; flex-direction:column; gap:10px; max-height:280px; overflow-y:auto;}
.note-entry{background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:10px 12px;}
.note-entry-head{font-size:12px; color:var(--ink-dim); margin-bottom:4px;}
.note-entry-head b{color:var(--ink); font-weight:600;}
.note-entry-date{font-family:'IBM Plex Mono',monospace;}
.note-pending{color:var(--warn); font-weight:600;}
.note-source{color:var(--slate); font-weight:600;}
.note-entry-text{font-size:13.5px; color:var(--ink); white-space:pre-wrap; word-break:break-word;}
.notes-empty{color:var(--ink-dim); font-size:13px; padding:4px 2px 10px;}

.mention{color:var(--slate); font-weight:600;}
.mention-me{background:var(--warn-bg); color:var(--warn); border-radius:4px; padding:0 3px;}
.mention-input-wrap{position:relative;}
.mention-dropdown{position:absolute; left:0; right:0; bottom:100%; margin-bottom:4px; background:var(--paper-raised); border:1px solid var(--line-strong); border-radius:8px; box-shadow:var(--shadow); max-height:180px; overflow-y:auto; z-index:5;}
.mention-option{padding:8px 12px; font-size:13.5px; cursor:pointer;}
.mention-option:hover, .mention-option:active{background:var(--neutral-bg);}

.photo-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px;}
.photo-thumb{width:74px; height:74px; border-radius:9px; overflow:hidden; border:1px solid var(--line); position:relative; flex:none;}
.photo-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.field-money input[type="number"]{padding-left:26px;}
.field-money .cur{position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--ink-dim); font-size:15px; font-weight:600; pointer-events:none;}
.photo-thumb.uploading{display:flex; align-items:center; justify-content:center; background:var(--neutral-bg);}
.photo-thumb.failed{display:flex; align-items:center; justify-content:center; background:var(--bad-bg); color:var(--bad); font-size:10px; text-align:center; padding:4px;}
.add-photo{width:74px; height:74px; border-radius:9px; border:1.5px dashed var(--line-strong); background:none; color:var(--ink-dim); font-size:22px; cursor:pointer; flex:none; display:flex; align-items:center; justify-content:center;}

.save-row{position:sticky; bottom:0; background:var(--paper); padding:14px 0 4px; margin-top:6px;}
.field-status{font-size:12px; margin-top:8px; min-height:16px;}
.field-status.ok{color:var(--good);} .field-status.err{color:var(--bad);}

.spinner{width:16px; height:16px; border-radius:50%; border:2px solid currentColor; border-right-color:transparent; display:inline-block; animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.toast-wrap{position:fixed; top:14px; left:0; right:0; display:flex; justify-content:center; z-index:970; pointer-events:none;}
.toast{background:var(--ink); color:var(--paper); font-size:13px; font-weight:500; padding:10px 16px; border-radius:99px; box-shadow:var(--shadow); opacity:0; transform:translateY(-8px); transition:opacity .18s ease, transform .18s ease;}
.toast.show{opacity:1; transform:translateY(0);}

/* ---- admin (manage team) ---- */
.admin-scrim{position:fixed; inset:0; background:rgba(20,17,13,.45); z-index:960; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .18s ease;}
.admin-scrim.open{opacity:1; pointer-events:auto;}
.admin-card{background:var(--paper-raised); border-radius:16px; width:100%; max-width:420px; max-height:85vh; max-height:85dvh; overflow-y:auto; padding:20px; box-shadow:var(--shadow);}
.admin-card h3{font-size:17px; margin-bottom:14px;}
.team-row{padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
.team-row-top{display:flex; justify-content:space-between; align-items:center;}
.team-row .muted{color:var(--ink-dim); font-size:12px;}
.team-row button{background:none; border:none; color:var(--bad); font-size:12px; cursor:pointer;}
.team-row-asana{margin-top:6px;}
.team-row-asana label{display:block; font-size:11px; color:var(--ink-dim); margin-bottom:2px;}
.team-row-asana select{width:100%; font-size:12.5px; padding:4px 6px; border-radius:6px; border:1px solid var(--line-strong); background:var(--paper-raised); color:var(--ink);}

/* ---- resources tab (law firms & auction sites) ---- */
#resourcesView{flex:1; padding:12px 16px 120px;}
.res-section{background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:14px; margin-bottom:14px; box-shadow:var(--shadow);}
.res-section-head{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.res-section-head h3{font-size:15.5px;}
.res-add-toggle{background:none; border:1px solid var(--line-strong); color:var(--ink-dim); border-radius:99px; padding:5px 11px; font-size:12px; font-weight:600; cursor:pointer;}
.res-list{margin-top:10px; display:flex; flex-direction:column; gap:2px;}
.res-row{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 2px; border-bottom:1px solid var(--line);}
.res-row:last-child{border-bottom:none;}
.res-link{font-size:14px; font-weight:500; color:var(--slate); text-decoration:none; word-break:break-word;}
.res-link:hover{text-decoration:underline;}
.res-link-nourl{color:var(--ink); cursor:default;}
.res-edit-btn{flex:none; background:none; border:none; color:var(--ink-dim); font-size:14px; cursor:pointer; padding:4px 6px;}
.res-empty{color:var(--ink-dim); font-size:13px; padding:8px 2px;}
.res-add-form{margin-top:10px; padding:10px; background:var(--paper); border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; gap:8px;}
.res-add-form input{margin:0;}
.res-row-edit{flex-direction:column; align-items:stretch; gap:8px; padding:9px 2px;}
.res-row-edit input{margin:0;}
.res-form-actions{display:flex; gap:8px; flex-wrap:wrap;}
.res-form-actions .btn{flex:1 1 auto; justify-content:center;}
.res-del-btn{color:var(--bad); border-color:var(--bad);}

/* ---- PropertyShark sales import ---- */
.upload-results{max-height:260px; overflow-y:auto; margin-top:4px; display:flex; flex-direction:column; gap:6px;}
.upload-row{font-size:12.5px; line-height:1.4; padding:7px 0; border-bottom:1px solid var(--line); display:flex; align-items:baseline; gap:7px; flex-wrap:wrap;}
.upload-row:last-child{border-bottom:none;}

/* ---- status switcher (property detail sheet) ---- */
.status-current{font-size:13px; color:var(--ink-dim); margin-bottom:10px;}
.status-current b{color:var(--ink);}
.status-row{display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; margin-bottom:4px;}
.status-btn{border:1.5px solid var(--line-strong); background:var(--paper-raised); color:var(--ink); border-radius:9px; padding:11px 8px; font-size:13.5px; font-weight:600; cursor:pointer;}
.status-btn[aria-pressed="true"]{background:var(--slate); border-color:var(--slate); color:#fff;}
.status-btn:disabled{opacity:.5; cursor:not-allowed;}
.status-inline-panel{background:var(--neutral-bg); border-radius:12px; padding:12px; margin:10px 0 4px;}
.status-inline-panel .field:last-of-type{margin-bottom:10px;}

/* ---- today strip (pinned atop the List view) ---- */
.today-section{margin-bottom:14px;}
.today-list{background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden;}
.today-row{display:flex; align-items:center; gap:12px; padding:13px 14px; border-bottom:1px solid var(--line);}
.today-row:last-child{border-bottom:none;}
.today-row-tap{cursor:pointer;}
.today-row-main{flex:1; min-width:0;}
.today-row-addr{font-family:'Roboto Slab', serif; font-weight:700; font-size:14.5px; color:var(--ink);}
.today-row-date{font-size:12px; font-weight:600; color:var(--clay-ink); margin-top:2px;}
.today-row-note{font-size:12px; color:var(--ink-dim); margin-top:2px;}
.today-move-btn{flex:none;}
.today-route-btn{width:100%; justify-content:center; margin-bottom:18px;}
.firm-contact{margin-top:4px; font-size:13px;}
.firm-contact .muted{color:var(--ink-dim);}

/* ---- Manage team: members list + person screen ---- */
.member-list{display:flex; flex-direction:column; gap:8px; margin-bottom:6px;}
.member-row{display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-items:center; text-align:left; width:100%; background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:12px 14px; cursor:pointer; color:var(--ink); font:inherit;}
.member-row:active{border-color:var(--line-strong);}
.member-name{font-weight:600; font-size:15px;}
.member-name .muted{color:var(--ink-dim); font-weight:400; font-size:13px;}
.member-sum{grid-column:1; font-size:13px; color:var(--ink-dim); margin-top:3px; line-height:1.35;}
.member-go{grid-column:2; grid-row:1 / span 2; font-size:22px; color:var(--ink-dim); padding-left:10px;}
.back-link{background:none; border:none; color:var(--clay-ink); font:inherit; font-weight:600; font-size:15px; padding:4px 0; margin-bottom:6px; cursor:pointer;}
.person-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px;}
.person-head h3{margin:0;}
.saved-tag{font-size:13px; font-weight:600; min-height:18px;}
.saved-tag.ok{color:var(--good);} .saved-tag.err{color:var(--bad);}
.person-note{color:var(--ink-dim); font-size:14px;}
.preset-row{display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin-bottom:14px;}
.preset-btn{border:1px solid var(--line-strong); background:var(--paper); color:var(--ink); border-radius:10px; padding:12px 6px; font:inherit; font-weight:600; font-size:14px; cursor:pointer;}
.preset-btn[aria-pressed="true"]{background:var(--clay); border-color:var(--clay); color:#fff;}
.switch-list{display:flex; flex-direction:column; gap:8px;}
.access-switch{display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:var(--paper-raised); border:1px solid var(--line); border-radius:12px; padding:14px; min-height:64px; font:inherit; color:var(--ink); cursor:pointer; background:var(--paper);}
.access-switch.static{cursor:default;}
.access-text{flex:1; display:flex; flex-direction:column; gap:3px;}
.access-label{font-weight:600; font-size:16px;}
.access-hint{font-size:13px; color:var(--ink-dim);}
.toggle{flex:none; width:52px; height:30px; border-radius:15px; background:var(--line-strong); position:relative; transition:background .15s;}
.toggle i{position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.25); transition:left .15s;}
.access-switch[aria-checked="true"] .toggle{background:var(--good);}
.access-switch[aria-checked="true"] .toggle i{left:25px;}
.county-pills{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.county-pill{border:1px solid var(--line-strong); background:transparent; color:var(--ink); border-radius:999px; padding:8px 12px; font:inherit; font-size:13px; cursor:pointer;}
.county-pill[aria-pressed="true"]{background:var(--good); border-color:var(--good); color:#fff;}
.person-account{margin-top:18px; font-size:14px;}
.person-account summary{cursor:pointer; color:var(--ink-dim); font-weight:600; padding:6px 0;}
.person-account .muted{color:var(--ink-dim);}
.remove-btn{width:100%; justify-content:center; margin-top:10px; color:var(--bad);}
.undo-bar{position:sticky; bottom:0; margin-top:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--ink); color:var(--paper); border-radius:10px; padding:12px 14px; font-size:14px;}
.undo-bar button{background:none; border:none; color:var(--clay); font:inherit; font-weight:700; font-size:15px; cursor:pointer; padding:4px 6px;}
