:root{
  /* NYC Digital Design System-inspired theme */
  --blue-40:#103fef;--blue-10:#050560;--blue-70:#70baff;--green-40:#00b703;--yellow-40:#ffb320;--red-40:#ec131e;
  --black:#000;--gray-20:#333;--gray-30:#555;--gray-40:#777;--gray-70:#ccc;--gray-80:#ddd;--gray-90:#eee;--white:#fff;
  --bg:var(--gray-90);--card:var(--white);--ink:var(--black);--muted:var(--gray-30);--line:var(--gray-80);--accent:var(--blue-40);--accent-dark:var(--blue-10);--accent-soft:#d7e2ff;--ok:var(--green-40);--warn:var(--red-40);--flash:#fff1d6;--shadow:0 1px 2px rgba(0,0,0,.05),0 8px 24px -12px rgba(0,0,0,.18);font-synthesis:none;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:"Noto Sans",ui-sans-serif,-apple-system,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.5}button,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}

/* Navigation */
.sidebar{background:var(--white);border-right:1px solid var(--line);color:var(--ink);display:flex;flex-direction:column;inset:0 auto 0 0;padding:26px 20px;position:fixed;width:270px;z-index:5}.board-brand{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:0 4px 24px}.board-logo{display:block;height:32px;width:32px}.board-brand div:last-child{display:flex;flex-direction:column;line-height:1.25}.board-brand strong{font-size:18px}.board-brand span{color:var(--gray-30);font-size:14px}nav{display:grid;gap:4px;margin-top:25px}.nav-link{align-items:center;border-left:4px solid transparent;color:var(--gray-20);display:flex;font-weight:600;gap:13px;min-height:50px;padding:11px 12px;text-decoration:none}.nav-link>span{font-size:20px;text-align:center;width:22px}.nav-link b{background:var(--accent);border-radius:0;color:#fff;font-size:12px;margin-left:auto;min-width:25px;text-align:center}.nav-link:hover{background:var(--gray-90);color:var(--ink)}.nav-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--blue-10)}.help-box{border-top:1px solid var(--line);display:flex;flex-direction:column;margin-top:auto;padding:20px 4px 0}.help-box strong{font-size:15px}.help-box span{color:var(--muted);font-size:14px;margin-top:2px}.help-box a{color:var(--accent-dark);font-weight:700;margin-top:7px}.user{align-items:center;display:flex;gap:10px;margin-top:22px;padding:0 4px}.avatar{background:var(--accent);border-radius:50%;color:#fff;display:grid;font-size:15px;font-weight:700;height:36px;place-items:center;width:36px}.user div:last-child{display:flex;flex-direction:column;line-height:1.25}.user strong{font-size:15px}.user span{color:var(--muted);font-size:13px}

/* Page frame */
main{margin-left:270px;max-width:1510px;padding:0 48px 64px}header{align-items:center;border-bottom:1px solid var(--line);display:flex;height:108px}header p{color:var(--gray-30);font-size:12px;font-weight:700;letter-spacing:.09em;margin:0 0 3px}h1{font-size:29px;letter-spacing:-.03em;line-height:1.2;margin:0}h2{font-size:23px;letter-spacing:-.025em;line-height:1.25;margin:0}.primary-button{background:var(--accent);border:2px solid var(--accent);border-radius:0;color:#fff;cursor:pointer;font-weight:700;padding:11px 17px}.primary-button:hover{background:var(--accent-dark);border-color:var(--accent-dark)}header .primary-button{margin-left:auto}.menu-button{display:none}.notice{background:var(--flash);border-left:5px solid var(--yellow-40);font-size:14px;margin-top:22px;padding:10px 14px}.welcome-row{align-items:end;display:flex;justify-content:space-between;margin:35px 0 20px}.welcome-row p,.card-heading p{color:var(--muted);font-size:15px;margin:3px 0 0}.print-button{background:var(--white);border:2px solid var(--ink);border-radius:0;color:var(--ink);cursor:pointer;font-weight:700;padding:8px 12px}.print-button:hover{background:var(--gray-90)}

/* Summary */
.summary-grid{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.summary-card{align-items:center;background:var(--card);border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:0;box-shadow:var(--shadow);color:var(--ink);display:flex;gap:16px;min-height:112px;padding:19px;text-decoration:none}.summary-card:hover{border-color:var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.08),0 10px 25px -12px rgba(0,0,0,.28)}.summary-card.urgent{border-top-color:var(--warn)}.summary-card.good{border-top-color:var(--ok)}.summary-number{color:var(--accent);font-size:39px;font-weight:700;letter-spacing:-.05em;line-height:1}.urgent .summary-number{color:var(--warn)}.good .summary-number{color:var(--ok)}.summary-card strong{font-size:17px}.summary-card p{color:var(--muted);font-size:14px;margin:1px 0 0}.arrow{color:var(--accent);font-size:24px;margin-left:auto}

/* Cards and work queue */
.page-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.5fr) minmax(335px,.75fr);margin-top:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:var(--shadow)}.card-heading{align-items:start;display:flex;gap:16px;justify-content:space-between;padding:22px 23px 17px}.card-heading a{color:var(--accent-dark);font-size:15px;font-weight:700;white-space:nowrap}.card-heading a:hover{color:var(--accent);text-decoration-thickness:2px}.request{background:var(--white);border:0;border-top:1px solid var(--line);color:var(--ink);cursor:pointer;display:grid;gap:14px;grid-template-columns:10px 1fr auto;padding:18px 23px;text-align:left;width:100%}.request:hover{background:var(--accent-soft)}.request-status{background:var(--accent);border-radius:50%;height:10px;margin-top:8px;width:10px}.request.urgent .request-status{background:var(--warn)}.request strong{display:block;font-size:17px;line-height:1.35}.request p{color:var(--muted);font-size:14px;margin:3px 0 9px}.request time{color:var(--gray-30);font-size:13px;white-space:nowrap}.tag{background:var(--accent-soft);border-radius:0;color:var(--blue-10);display:inline-block;font-size:12px;font-weight:700;padding:3px 7px}.urgent .tag{background:#ffe1e2;color:#8f080e}.side-column{display:grid;gap:18px}.meeting-card{border-top:5px solid var(--accent);padding:22px 23px}.section-label{color:var(--accent-dark);font-size:12px;font-weight:700;letter-spacing:.08em;margin:0 0 8px}.meeting-card>p:not(.section-label){color:var(--muted);font-size:15px;margin:7px 0 19px}.meeting-actions{align-items:center;display:flex;gap:17px}.meeting-actions button{background:var(--ink);border:2px solid var(--ink);border-radius:0;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:9px 12px}.meeting-actions button:hover{background:var(--gray-30);border-color:var(--gray-30)}.meeting-actions a{color:var(--accent-dark);font-size:14px;font-weight:700}.topics{list-style:none;margin:0;padding:0 23px 12px}.topics li{align-items:center;display:grid;gap:9px;grid-template-columns:25px 1fr 26px;margin:17px 0}.topics li>span{background:var(--gray-90);border-radius:50%;display:grid;font-size:13px;font-weight:700;height:25px;place-items:center;width:25px}.topics li>div{min-width:0}.topics strong{font-size:15px}.topics b{color:var(--gray-30);font-size:14px;text-align:right}.bar{background:var(--gray-80);border-radius:0;height:6px;margin-top:5px;overflow:hidden}.bar i{background:var(--accent);border-radius:0;display:block;height:100%}.topic-note{background:var(--flash);border-top:1px solid var(--line);color:var(--gray-20);font-size:14px;margin:0;padding:14px 23px}.topic-note span{color:var(--warn);font-weight:700;margin-right:5px}.resolved-card{align-items:center;display:flex;gap:15px;margin-top:18px;padding:19px 23px}.resolved-icon{background:var(--ok);border-radius:50%;color:#fff;display:grid;font-size:22px;font-weight:700;height:39px;place-items:center;width:39px}.resolved-card h2{font-size:19px}.resolved-card p{color:var(--muted);font-size:14px;margin:2px 0 0}.resolved-card button{background:var(--white);border:2px solid var(--ink);border-radius:0;cursor:pointer;font-size:14px;font-weight:700;margin-left:auto;padding:8px 12px}.resolved-card button:hover{background:var(--gray-90)}

/* Request action dialog */
.dialog-backdrop{background:rgba(0,0,0,.62);display:grid;inset:0;place-items:center;padding:30px;position:fixed;z-index:10}.dialog-backdrop[hidden]{display:none}.dialog{background:var(--white);border:1px solid var(--black);border-radius:0;box-shadow:0 18px 60px rgba(0,0,0,.35);padding:29px;position:relative;width:min(600px,100%)}.close-button{background:transparent;border:0;color:var(--ink);cursor:pointer;font-size:31px;line-height:1;position:absolute;right:16px;top:14px}#dialog-body{background:var(--gray-90);border-left:5px solid var(--accent);font-size:15px;margin:18px 0;padding:15px}#dialog-body p{margin:5px 0}.dialog label{display:block;font-weight:700;margin-bottom:6px}.dialog select{background:var(--white);border:2px solid var(--gray-40);border-radius:0;padding:11px;width:100%}.save-button{margin-top:15px;width:100%}.toast{background:var(--ink);border-left:5px solid var(--ok);bottom:24px;color:#fff;padding:13px 18px;position:fixed;right:24px;transform:translateY(100px);transition:transform .2s;z-index:20}.toast.show{transform:translateY(0)}

@media(max-width:1050px){.sidebar{padding-inline:15px;width:225px}main{margin-left:225px;padding-inline:25px}.page-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr}.summary-card{min-height:88px}}
@media(max-width:720px){body{font-size:16px}.sidebar{box-shadow:8px 0 24px rgba(0,0,0,.28);display:flex;transform:translateX(-105%);transition:transform .2s;width:270px;z-index:30}.sidebar.open{transform:translateX(0)}main{margin-left:0;padding:0 16px 40px}header{gap:12px;height:92px}header p{display:none}h1{font-size:23px}.menu-button{background:var(--white);border:2px solid var(--ink);border-radius:0;display:block;font-size:20px;height:42px;width:42px}header .primary-button{font-size:0;padding:10px 12px}header .primary-button::after{content:"+ Add item";font-size:14px}.welcome-row{align-items:start}.print-button{display:none}.request{grid-template-columns:10px 1fr;padding-inline:17px}.request time{grid-column:2;grid-row:2}.card-heading{padding-inline:18px}.resolved-card{align-items:flex-start;flex-wrap:wrap}.resolved-card button{margin-left:0;width:100%}}
@media print{.sidebar,.primary-button,.print-button,.notice{display:none!important}main{margin:0;padding:0}.card,.summary-card{box-shadow:none;break-inside:avoid}}

/* AI insights page */
.insights-intro{align-items:end;display:flex;justify-content:space-between;margin:34px 0 20px}.insights-intro>div>p{color:var(--muted);margin:4px 0 0}.updated{border-left:3px solid var(--accent);display:flex;flex-direction:column;font-size:13px;padding-left:10px}.updated span{color:var(--muted)}.ai-notice{background:var(--accent-soft);border-left-color:var(--accent)}.ai-brief{align-items:flex-start;border-left:5px solid var(--accent);display:grid;gap:16px;grid-template-columns:38px 1fr auto;margin-bottom:26px;padding:22px 23px}.ai-icon{align-items:center;background:var(--accent);color:#fff;display:flex;font-size:20px;font-weight:700;height:36px;justify-content:center;width:36px}.ai-brief h2{font-size:21px}.ai-brief p:not(.section-label){color:var(--gray-20);font-size:15px;margin:7px 0 0;max-width:740px}.ai-brief a{color:var(--accent-dark);font-size:14px;font-weight:700;white-space:nowrap}.section-title{align-items:end;display:flex;justify-content:space-between;margin-bottom:15px}.section-title p{color:var(--muted);font-size:15px;margin:3px 0 0}.info-button,.text-button{background:transparent;border:0;color:var(--accent-dark);cursor:pointer;font-size:14px;font-weight:700;padding:7px 0;text-decoration:underline}.sentiment-grid{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.sentiment-card{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--gray-70);border-radius:0;color:var(--ink);cursor:pointer;min-height:160px;padding:18px;text-align:left}.sentiment-card:hover,.sentiment-card.active{border-color:var(--accent);box-shadow:var(--shadow)}.sentiment-card.negative{border-top-color:var(--warn)}.sentiment-card.neutral{border-top-color:var(--yellow-40)}.sentiment-card.positive{border-top-color:var(--ok)}.sentiment-count{display:block;font-size:38px;font-weight:700;letter-spacing:-.05em;line-height:1}.negative .sentiment-count{color:var(--warn)}.neutral .sentiment-count{color:#a85e00}.positive .sentiment-count{color:#078916}.sentiment-card strong{display:block;font-size:18px;margin-top:7px}.sentiment-card p{color:var(--muted);font-size:14px;line-height:1.35;margin:3px 0 0}.sentiment-detail{background:var(--accent-soft);border-left:5px solid var(--accent);font-size:15px;margin-top:14px;min-height:53px;padding:14px 16px}.insights-grid{display:grid;gap:18px;grid-template-columns:1.2fr .8fr;margin-top:26px}.trend-card .card-heading{padding-bottom:8px}.trend-pill{background:#ffe1e2;color:#8f080e;font-size:14px;font-weight:700;padding:4px 7px;white-space:nowrap}.trend-visual{align-items:end;border-bottom:2px solid var(--gray-70);display:flex;gap:20px;height:175px;margin:8px 23px 0;padding:0 13px}.week{align-items:center;display:flex;flex:1;flex-direction:column;height:100%;justify-content:end;gap:7px}.week i{background:var(--accent-soft);display:block;max-width:80px;width:100%}.week.current i{background:var(--accent)}.week span{color:var(--gray-30);font-size:12px;white-space:nowrap}.trend-caption{background:var(--gray-90);font-size:14px;margin:20px 0 0;padding:14px 23px}.action-card{border-top:5px solid var(--accent);padding:22px 23px}.action-card h2{font-size:21px}.action-card>p:not(.section-label){color:var(--muted);font-size:15px;margin:11px 0 18px}.action-card .text-button{display:block;margin-top:9px}.evidence-card{margin-top:18px}.evidence-list{border-top:1px solid var(--line)}.evidence-list article{display:flex;gap:12px;padding:18px 23px;border-bottom:1px solid var(--line)}.quote-mark{color:var(--accent);font-size:36px;font-weight:700;line-height:.8}.evidence-list p{font-size:16px;margin:0}.evidence-list footer{color:var(--muted);font-size:13px;margin-top:6px}.secondary-button{background:var(--white);border:2px solid var(--ink);border-radius:0;cursor:pointer;font-size:14px;font-weight:700;margin:18px 23px;padding:9px 12px}.secondary-button:hover{background:var(--gray-90)}.transparency-card{align-items:flex-start;display:grid;gap:15px;grid-template-columns:36px 1fr auto;margin-top:18px;padding:20px 23px}.transparency-icon{align-items:center;border:2px solid var(--accent);border-radius:50%;color:var(--accent);display:flex;font-family:serif;font-size:21px;font-weight:700;height:30px;justify-content:center;width:30px}.transparency-card h2{font-size:18px}.transparency-card p{color:var(--muted);font-size:14px;margin:3px 0 0;max-width:700px}.transparency-card a{color:var(--accent-dark);font-size:14px;font-weight:700;white-space:nowrap}
@media(max-width:900px){.insights-grid{grid-template-columns:1fr}.ai-brief{grid-template-columns:38px 1fr}.ai-brief a{grid-column:2}.transparency-card{grid-template-columns:36px 1fr}.transparency-card a{grid-column:2}}@media(max-width:720px){.insights-intro,.section-title{align-items:start;gap:12px;flex-direction:column}.sentiment-grid{grid-template-columns:1fr}.sentiment-card{min-height:115px}.ai-brief{grid-template-columns:36px 1fr;padding:18px}.ai-brief a{grid-column:1 / -1}.trend-visual{gap:8px;margin-inline:18px}.evidence-list article{padding-inline:18px}.secondary-button{margin-inline:18px}.transparency-card{padding:18px}.updated{font-size:12px}}

/* Tell Us: the app's wordmark, display face and board-record cards (as in /app.css) */
:root{--font-display:"Clash Grotesk","Noto Sans",ui-sans-serif,-apple-system,sans-serif;--yellow-40:#ffb320}
h1,h2,.board-brand strong{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}
a.board-brand{color:var(--ink);text-decoration:none}.board-brand strong{font-size:22px}.board-brand .hl{color:var(--accent);font-size:inherit}.board-brand span:not(.hl){font-size:13px}
.help-box a{text-decoration:none}.help-box a:hover{text-decoration:underline}
.request .tag{margin-right:6px}.tag.record{background:var(--flash);color:#6b4600}.urgent .tag.record{background:var(--flash);color:#6b4600}
.dialog{max-height:calc(100vh - 60px);overflow:auto;width:min(720px,100%)}
#dialog-body{background:none;border:0;margin:14px 0 18px;padding:0;display:grid;gap:14px}
.resident-words{border-left:5px solid var(--accent);background:var(--gray-90);font-size:16px;line-height:1.5;margin:0;padding:14px 16px}.resident-words footer{color:var(--muted);font-size:13px;margin-top:6px}
.facts{display:grid;gap:4px 16px;grid-template-columns:auto 1fr;margin:0;font-size:15px}.facts dt{color:var(--muted);font-weight:600}.facts dd{margin:0}
.request-map{aspect-ratio:640/240;background:var(--gray-90);border:1px solid var(--line);display:block;width:100%}
.step-hint{color:var(--muted);font-size:14px;margin:8px 0 0}
.rescard{border:1.5px solid var(--accent);border-radius:10px;padding:16px 18px;background:linear-gradient(var(--accent-soft),var(--white) 70px)}
.rescard p{margin:0}.rescard-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.rescard-title{font-family:var(--font-display);font-size:18px;line-height:1.25;margin-top:4px!important}
.rescard-sub{font-size:13px;color:var(--muted);margin-top:4px!important;line-height:1.45}
.resquote{margin:14px 0 0;padding:2px 0 2px 14px;border-left:4px solid var(--yellow-40)}
.resquote mark,.resall mark{background:#ffe7a8;color:var(--ink);padding:2px 3px;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.resquote mark{font-family:var(--font-display);font-size:19px;line-height:1.5}.resquote footer{font-size:12px;color:var(--muted);margin-top:8px}
.resall{margin-top:12px;font-size:13px}.resall summary{cursor:pointer;font-weight:600;color:var(--accent)}.resall ol{margin:8px 0 0 20px;padding:0;display:flex;flex-direction:column;gap:6px;line-height:1.45;color:var(--gray-20)}
.rescard-foot{margin-top:14px!important;font-size:13px}.rescard-foot a,.related-meta a{color:var(--accent);font-weight:600}
.related{border-top:1px solid var(--line);padding-top:12px}.related p{margin:0}.related-lead{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.related ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.related-title{font-size:14px;line-height:1.4}.related-meta{font-size:12.5px;color:var(--muted);margin-top:2px!important}
.request.done .request-status{background:var(--ok)}.empty{border-top:1px solid var(--line);color:var(--muted);margin:0;padding:18px 23px}
.rescard-what{font-size:15px;line-height:1.45;margin-top:10px!important;padding-left:14px;border-left:4px solid var(--yellow-40)}
.rescard-also{list-style:none;margin:12px 0 0;padding:0;font-size:14px;line-height:1.45;color:var(--gray-20)}.rescard-also li+li{margin-top:6px}
.decision p{margin:6px 0 0!important;line-height:1.45;color:var(--gray-20)}
.decision .decision-label{font-weight:700;color:var(--ink);margin-top:12px!important}.decision .decision-label:first-of-type{margin-top:8px!important}

/* Board record: outcome first, who acts, what the complaint bears on; neighbors collapsed */
.rescard-path { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 8px; font-size: 13px; color: var(--muted); line-height: 1.4; }
.outcome { display: inline-block; font-size: 12px; font-weight: 700; line-height: 1.3; padding: 3px 8px; border-radius: 99px; background: var(--gray-90); color: var(--gray-20); white-space: nowrap; }
.outcome.approve, .outcome.support { background: #DDF5DF; color: #0A5D12; }
.outcome.conditions { background: #FFE7A8; color: #5C3D00; }
.outcome.deny { background: #FFE1E2; color: #8F080E; }
.outcome.request { background: var(--accent-soft); color: var(--accent-dark); }
.rescard-who { font-size: 13px; margin-top: 6px; color: var(--gray-20); }
.resflag-lead { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #5C3D00; margin-top: 14px; }
.resflag-lead + .resquote { margin-top: 6px; }
.resnear { border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.resnear > summary { cursor: pointer; padding: 10px 14px; font-size: 13px; color: var(--muted); }
.resnear[open] > summary { border-bottom: 1px solid var(--line); }
.resnear > .rescard { border: 0; border-radius: 0 0 10px 10px; }

/* Phones: the request opens as a bottom sheet, not a centered dialog */
body.sheet-open{overflow:hidden}
@media(max-width:720px){
 .dialog-backdrop{align-items:end;padding:0;place-items:end stretch}
 .dialog{animation:sheet-up .28s cubic-bezier(.2,.8,.2,1);border:0;border-radius:16px 16px 0 0;max-height:92dvh;padding:26px 18px calc(20px + env(safe-area-inset-bottom));width:100%}
 .dialog::before{background:var(--gray-70);border-radius:2px;content:"";height:4px;left:50%;position:absolute;top:9px;transform:translateX(-50%);width:40px}
 .dialog .close-button{background:var(--white);border-radius:50%;float:right;height:40px;margin:-12px -8px 0 8px;position:sticky;right:auto;top:-12px;width:40px;z-index:2}
 .dialog h2{font-size:21px}
 .facts{font-size:14px}
 .rescard{padding:14px}
 .resquote mark{font-size:17px}
 .request-map{aspect-ratio:16/9}
}
@keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.dialog{animation:none}}
@media(max-width:720px){
 .summary-grid{gap:8px;grid-template-columns:repeat(3,1fr)}
 .summary-card{align-items:flex-start;flex-direction:column;gap:4px;min-height:0;padding:12px}
 .summary-card p,.summary-card .arrow{display:none}
 .summary-number{font-size:30px}
 .summary-card strong{font-size:14px;line-height:1.25}
}
