:root { color-scheme: dark; --bg:#191d1b; --panel:#222724; --panel-2:#262d28; --text:#eeeae1; --muted:#9aaba0; --orange:#d57853; --cream:#ded8c8; --line:#39433d; --green:#9aae91; --focus:#e99973; --mono:Consolas,"Courier New",monospace; font-family:"Segoe UI",Arial,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(ellipse at 50% 0%,#35423955,transparent 55%),var(--bg); color:var(--text); }
button, textarea { font:inherit; }
.shell { width:min(820px,calc(100% - 48px)); margin:0 auto; padding:34px 0 70px; }
.app-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:86px; }
.identity { display:flex; align-items:center; gap:12px; }
.brand-mark { color:var(--orange); font:42px/1 Georgia,serif; transform:rotate(-18deg); display:inline-block; }
.wordmark { margin:0; color:var(--cream); font:700 13px/1 var(--mono); letter-spacing:.18em; }
.wordmark span { color:var(--orange); }
.product-line { margin:7px 0 0; color:var(--muted); font:10px/1 var(--mono); letter-spacing:.22em; }
.boundary { display:flex; align-items:center; gap:8px; color:var(--muted); font:10px var(--mono); letter-spacing:.1em; }
.boundary i { width:6px; height:6px; border-radius:50%; background:#a6d6a9; box-shadow:0 0 12px #91d59555; }
.intro { max-width:670px; margin-bottom:30px; }
.eyebrow { margin:0 0 10px; color:var(--orange); font:10px var(--mono); letter-spacing:.18em; text-transform:uppercase; }
h1 { margin:0; color:var(--text); font:600 clamp(38px,7vw,68px)/.98 Georgia,serif; letter-spacing:-.045em; }
.lede { max-width:540px; margin:21px 0 0; color:var(--muted); font-size:16px; line-height:1.6; }
.prompt-card, .results-card { padding:25px 27px; border:1px solid var(--line); border-radius:7px; background:linear-gradient(145deg,#262d28,#202521); box-shadow:0 20px 70px #00000025; }
.prompt-card { margin-bottom:14px; }
.section-label { display:flex; align-items:center; gap:11px; }
.section-label > span { color:var(--orange); font:11px var(--mono); }
.section-label label { margin:0; color:var(--cream); font:11px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
textarea { display:block; width:100%; min-height:164px; margin-top:18px; resize:vertical; padding:16px; border:1px solid #465249; border-radius:4px; outline:none; background:#171b19; color:var(--text); line-height:1.55; }
textarea::placeholder { color:#69786d; }
textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px #d5785322; }
.prompt-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:14px; }
.hint, .status-message { margin:0; color:var(--muted); font:11px/1.5 var(--mono); }
button { flex:none; padding:11px 16px; border:1px solid var(--orange); border-radius:4px; background:var(--orange); color:#211f1b; font:700 12px var(--mono); cursor:pointer; }
button span { margin-left:10px; font-size:15px; }
button:hover { background:#e38c68; }
button:disabled { opacity:.5; cursor:wait; }
.button-group { display:flex; flex-wrap:wrap; gap:10px; }
.secondary-button { background:transparent; border-color:#58695d; color:var(--cream); }
.secondary-button:hover { background:#354239; }
#monitor-message:empty { display:none; }
.monitor-section { padding:20px 0; border-bottom:1px solid var(--line); }
.monitor-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.monitor-heading h3, .monitor-alerts h3 { margin:0; font-size:14px; font-weight:600; }
.monitor-note { color:var(--muted); font-size:12px; line-height:1.6; margin:9px 0 0; }
.watch-row { padding:17px 0; border-bottom:1px solid var(--line); }
.watch-row:last-child { border-bottom:0; padding-bottom:0; }
.watch-top { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.watch-address { margin:0; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.watch-state { color:var(--muted); font:11px var(--mono); white-space:nowrap; }
.watch-state.active { color:#b9d2b1; }
.watch-state.warning, .monitor-error { color:#efb49a; }
.watch-actions { display:flex; gap:9px; flex-wrap:wrap; margin-top:12px; }
.watch-actions button { padding:7px 11px; font-size:11px; }
.monitor-alerts:not(:empty) { margin-top:22px; }
.alert-card { margin-top:12px; padding:16px; border:1px solid #685444; border-radius:5px; background:#2c2b23; }
.alert-title { margin:0; font-size:13px; font-weight:600; }
.alert-card details { margin-top:12px; font-size:12px; }
.alert-card summary { color:var(--cream); cursor:pointer; }
.alert-permit { padding:12px 0; border-bottom:1px solid var(--line); }
.alert-permit:last-child { border-bottom:0; }
.alert-permit p { margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.alert-card .secondary-button { margin-top:12px; padding:6px 10px; font-size:10px; }
.monitor-alerts .source-link { font-size:12px; }
button:focus-visible { outline:2px solid var(--focus); outline-offset:4px; }
.results-header { display:flex; align-items:start; justify-content:space-between; gap:15px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.results-header .eyebrow { margin:0; color:var(--muted); }
h2 { margin:15px 0 0; color:var(--text); font:600 24px/1.1 Georgia,serif; }
.count { color:var(--orange); font:11px var(--mono); }
.status-message { margin-top:16px; }
.results { margin-top:17px; }
.result-sort { margin-top:20px; padding-block:16px; border-block:1px solid var(--line); }
.sort-fields { display:flex; flex-wrap:wrap; gap:12px 20px; }
.sort-fields label { display:flex; flex:1 1 180px; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
.sort-fields select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:0; background:var(--panel-2); color:var(--text); font:inherit; font-size:14px; cursor:pointer; }
.sort-fields select:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.result-row .permit-sort-date { color:var(--orange); font-size:12px; margin-top:7px; }
.result-row > div { min-width:0; overflow-wrap:anywhere; }
@media (max-width:440px) { .result-row { flex-direction:column; gap:8px; } .result-row .status-pill { align-self:flex-start; } }
.lookup-summary { margin:0 0 5px; padding:14px 15px; border:1px solid #465249; border-radius:4px; background:#171b19; }
.lookup-summary + .lookup-summary { margin-top:18px; }
.lookup-summary p { margin:4px 0 0; color:var(--muted); font:10px/1.55 var(--mono); overflow-wrap:anywhere; }
.lookup-summary .lookup-canonical { margin-top:0; color:var(--cream); font-size:11px; }
.lookup-summary strong { color:var(--text); }
.no-results { padding:15px 0 20px; border-bottom:1px solid var(--line); }
.result-row { display:flex; justify-content:space-between; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
.result-row:last-child { border-bottom:0; padding-bottom:0; }
.result-row strong { display:block; color:var(--text); font:600 14px/1.4 var(--mono); }
.result-row p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.4; }
.source-link { display:inline-block; margin-top:9px; color:var(--orange); font:10px var(--mono); letter-spacing:.04em; text-decoration:none; }
.source-link:hover { color:#efab8f; text-decoration:underline; text-underline-offset:3px; }
.source-link:focus-visible { outline:2px solid var(--focus); outline-offset:4px; }
.status-pill { height:fit-content; padding:5px 8px; border:1px solid #6c8268; border-radius:3px; background:#2a382c; color:#b9d2b1; font:10px var(--mono); text-transform:capitalize; white-space:nowrap; }
.detail-shell { width:min(980px,calc(100% - 48px)); }
.detail-shell .app-header { margin-bottom:48px; }
.back-link { display:inline-block; margin-bottom:24px; color:var(--muted); font:11px var(--mono); text-decoration:none; }
.back-link:hover { color:var(--orange); }
.permit-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:28px; border:1px solid var(--line); border-radius:7px; background:linear-gradient(145deg,#262d28,#202521); box-shadow:0 20px 70px #00000025; }
.permit-kicker { margin:0 0 9px; color:var(--orange); font:10px var(--mono); letter-spacing:.16em; text-transform:uppercase; }
.permit-number { margin:0; color:var(--text); font:600 clamp(30px,5vw,50px)/1 Georgia,serif; letter-spacing:-.035em; }
.permit-address { margin:13px 0 0; color:var(--muted); font-size:15px; }
.permit-status { margin-top:3px; padding:7px 10px; font-size:11px; }
.detail-note { margin:15px 0 0; color:var(--muted); font:11px/1.55 var(--mono); }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:14px; }
.detail-card { padding:23px 25px; border:1px solid var(--line); border-radius:7px; background:var(--panel); }
.detail-card.wide { grid-column:1/-1; }
.detail-card h2 { margin:0 0 18px; font-size:20px; }
.detail-card .description { margin:0; color:var(--text); font-size:15px; line-height:1.65; }
.fact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; margin:0; }
.fact { min-width:0; }
.fact dt { margin:0 0 5px; color:var(--muted); font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.fact dd { margin:0; color:var(--text); font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.source-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.source-actions p { margin:0; color:var(--muted); font:11px/1.5 var(--mono); }
.raw-source-link { flex:none; padding:10px 13px; border:1px solid var(--line); border-radius:4px; color:var(--orange); font:10px var(--mono); text-decoration:none; }
.raw-source-link:hover { border-color:var(--orange); background:#d5785310; }
.detail-error { padding:28px; border:1px solid #734d43; border-radius:7px; background:#332622; color:#f0c1b0; }
@media (max-width:600px) { .shell { width:min(100% - 28px,540px); padding-top:24px; } .app-header { margin-bottom:58px; } .boundary { font-size:9px; } .intro { margin-bottom:24px; } .prompt-card,.results-card { padding:20px; } .prompt-footer { display:block; } button { width:100%; margin-top:16px; } }
@media (max-width:700px) { .detail-shell { width:min(100% - 28px,600px); } .permit-hero { display:block; padding:22px; } .permit-status { display:inline-block; margin-top:18px; } .detail-grid { grid-template-columns:1fr; } .detail-card.wide { grid-column:auto; } .fact-grid { grid-template-columns:1fr; } .source-actions { display:block; } .raw-source-link { display:inline-block; margin-top:16px; } }
@media (max-width:600px) { .button-group { display:grid; grid-template-columns:1fr; margin-top:15px; } .button-group button, .watch-actions button, .alert-card button { margin-top:0; width:auto; } .watch-top { align-items:flex-start; } .prompt-footer .hint { font-size:11px; } }
