/* Generated by tools/design/tokenize_css.py: every hard-coded screen colour mapped to a role token. */
@media screen{:root{
--bd-00000033:transparent;
--bd-00000044:transparent;
--bd-00000055:transparent;
--bd-086279:var(--focus);
--bd-0b4f63:var(--frame);
--bd-0e0b14:var(--frame);
--bd-173c3904:transparent;
--bd-1a7f8c:var(--soft);
--bd-397366:var(--soft);
--bd-51495d:var(--soft);
--bd-81748f:var(--soft);
--bd-8a1f0b:var(--signal);
--bd-8a3a1f:var(--signal);
--bd-958b85:var(--soft);
--bd-a59cb4:var(--hair);
--bd-a64a2b:var(--signal);
--bd-a7afa7:var(--hair);
--bd-a9b9ad:var(--hair);
--bd-abb6ad:var(--hair);
--bd-abbba9:var(--hair);
--bd-aebaa9:var(--hair);
--bd-b4560f:var(--signal);
--bd-b5c1b1:var(--hair);
--bd-b6c3b4:var(--hair);
--bd-bdc8bc:var(--hair);
--bd-d8ddd3:var(--hair);
--bd-d9cfc0:var(--hair);
--bd-d9d3c7:var(--hair);
--bd-dccfb8:var(--hair);
--bd-ddd6c8:var(--hair);
--bd-e0d6c6:var(--hair);
--bd-e4dfd5:var(--hair);
--bd-e5dccd:var(--hair);
--bd-ffffff:var(--hair);
--bg-0e0b14:var(--band);
--bg-0e0b14b3:var(--scrim);
--bg-102d29a6:var(--scrim);
--bg-173c39:var(--band);
--bg-173c39e8:var(--scrim);
--bg-24202b:var(--band);
--bg-275850:var(--band);
--bg-2a2433:var(--band);
--bg-46e6f2:var(--neon);
--bg-a64a2b:var(--signal);
--bg-e0e7de:var(--sheet);
--bg-e1ebdc:var(--sheet);
--bg-e4e9df:var(--sheet);
--bg-e6eadf:var(--sheet);
--bg-e7dac2:var(--sheet);
--bg-e7ebe6:var(--sheet);
--bg-e7ece1:var(--sheet);
--bg-e8e7df:var(--sheet);
--bg-e8eadd:var(--sheet);
--bg-e8eade:var(--sheet);
--bg-e8ecdf:var(--sheet);
--bg-e9eee5:var(--sheet);
--bg-ecebdc:var(--sheet);
--bg-edf0e8:var(--sheet);
--bg-eef6f6:var(--sheet);
--bg-efe7da:var(--sheet);
--bg-f2ede4:var(--sheet);
--bg-f5f0e6:var(--sheet);
--bg-f6efe2:var(--sheet);
--bg-f8f1e3:var(--sheet);
--bg-fbe9d6:var(--sheet);
--bg-fbf4e8:var(--sheet);
--bg-fff3e5:var(--sheet);
--bg-fff7e6:var(--sheet);
--bg-fff9ec:var(--sheet);
--bg-fffdf8:var(--sheet);
--bg-fffefa:var(--sheet);
--bg-ffffff:var(--sheet);
--fg-0b4f63:var(--ink);
--fg-0d5560:var(--ink);
--fg-0e0b14:var(--ink);
--fg-142c28:var(--ink);
--fg-151316:var(--ink);
--fg-1a7f8c:var(--ink);
--fg-23483e:var(--ink);
--fg-244437:var(--ink);
--fg-455a50:var(--soft);
--fg-455d54:var(--soft);
--fg-4a4248:var(--soft);
--fg-53604f:var(--soft);
--fg-536657:var(--soft);
--fg-5b3a2a:var(--soft);
--fg-5e1405:var(--signal);
--fg-8a1f0b:var(--signal);
--fg-8a3218:var(--signal);
--fg-8a3a1f:var(--signal);
--fg-f2e8d6:var(--band-ink);
--fg-ffffff:var(--band-ink);
--bd-1f4d3a:var(--frame);
--bd-4a4248:var(--soft);
--bd-8a3218:var(--signal);
--bd-8a6a1c:var(--soft);
--bg-1f4d3a:var(--band);
--bg-e9e1d3:var(--sheet);
--bg-f2e8d6:var(--sheet);
--bg-f6e3b4:var(--sheet);
--bg-f7d9cf:var(--sheet);
--bg-fffaf0:var(--sheet);
--fg-0b5f6b:var(--soft);
--fg-5c1f0e:var(--signal);
}}
/* ==========================================================================
   Production Fieldbook: design layer ("Title Card").
   Screen only. Print and every printed document keep their own styles.
   One family (Jost, a Futura descendant). Ink on bond paper by day, paper on black by night.
   One accent, neon cyan, used only for "on" states and the main action.
   Not used anywhere: side stripes, gradients, glows, outlined or gradient text,
   frosted panels, depth shadows, hover lifts, rainbow category colours, pill chips.
   ========================================================================== */
@media screen {
:root{
  --paper:#f5f4ef;--sheet:#ffffff;--sunk:#e8e7e0;--ink:#000;--soft:#55534c;--hair:#d0cec5;--field:#7a786f;--frame:#000;
  --band:#000;--band-ink:#f5f4ef;--band-soft:#9a978e;--band-hair:#2a2a28;
  --neon:#46e6f2;--neon-ink:#000;--signal:#b3261e;--focus:#000;--scrim:rgba(0,0,0,.72);
  --t1:14px;--t2:15px;--t3:17px;--t4:22px;--t5:34px;
  --caution:#8a6a1c;--caution-bg:#f6e3b4;
  --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E");
  /* names the older layers use */
  --cream:var(--paper);--cream2:var(--sheet);--night:var(--ink);--green:var(--ink);--muted:var(--soft);
  --line:var(--hair);--rule:var(--hair);--orange:var(--signal);--gold:var(--ink);
  --ui:Jost,Arial,sans-serif;
  color-scheme:light;
}
:root[data-theme=night]{
  --paper:#000;--sheet:#141414;--sunk:#1f1f1e;--ink:#f5f4ef;--soft:#a5a39b;--hair:#45443f;--field:#8a887f;--frame:#f5f4ef;
  --band:#000;--band-ink:#f5f4ef;--band-soft:#8f8d85;--band-hair:#2e2e2c;--signal:#ff7a6b;--focus:#46e6f2;--scrim:rgba(0,0,0,.8);
  --caution:#d9b45a;--caution-bg:#3a2f12;
  --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23f5f4ef' stroke-width='1.6'/%3E%3C/svg%3E");
  color-scheme:dark;
}
}
@media screen and (prefers-color-scheme:dark){
:root:not([data-theme=day]){
  --paper:#000;--sheet:#141414;--sunk:#1f1f1e;--ink:#f5f4ef;--soft:#a5a39b;--hair:#45443f;--field:#8a887f;--frame:#f5f4ef;
  --band:#000;--band-ink:#f5f4ef;--band-soft:#8f8d85;--band-hair:#2e2e2c;--signal:#ff7a6b;--focus:#46e6f2;--scrim:rgba(0,0,0,.8);
  --caution:#d9b45a;--caution-bg:#3a2f12;
  --select-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23f5f4ef' stroke-width='1.6'/%3E%3C/svg%3E");
  color-scheme:dark;
}
}

@media screen {
/* ---------- Base ---------- */
html{background:var(--paper)}
body{background:var(--paper);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased}
.sun-cells dd,.lt-cell,#categories small,.results-heading #count,.fb-facts dd{font-variant-numeric:tabular-nums}
.pk-measure-host,.pk-measure-host *{font-feature-settings:normal;font-variant-numeric:normal;text-rendering:auto}
::selection{background:var(--neon);color:var(--neon-ink)}
a{color:inherit;text-underline-offset:3px}
:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.secondary{color:var(--soft)}
button{border-radius:0;color:inherit;border-color:var(--frame)}
button:hover{background:var(--sunk)}
input,select,textarea{border-radius:0!important;color:var(--ink);background:var(--sheet);border:1px solid var(--field)}
/* Drawn chevron with room from the edge: the native arrow sat against the right border. */
select:not([multiple]):not([size]){-webkit-appearance:none;appearance:none;background-image:var(--select-arrow)!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:12px 8px!important;padding-right:34px!important}
@media (forced-colors:active){select:not([multiple]):not([size]){-webkit-appearance:auto;appearance:auto;background-image:none!important;padding-right:12px!important}}
input[type=checkbox],input[type=radio]{accent-color:var(--ink)}
.primary,button.primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:0;font-weight:500}
.primary:hover,button.primary:hover{background:var(--soft);border-color:var(--soft)}
.text-button{color:var(--ink)}
hr{border:0;border-top:1px solid var(--hair)}
dialog::backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--scrim)}

/* ---------- Header ---------- */
body>header{background:var(--band);color:var(--band-ink);border-bottom:1px solid var(--band-hair);height:84px;padding:0 32px;display:flex;align-items:center;gap:20px}
body>header :focus-visible{outline-color:var(--neon)}
.brand{display:flex;align-items:center;gap:14px;min-height:44px;color:var(--band-ink);text-decoration:none}
.brand-mark{width:40px;height:40px;flex:none;color:var(--band-ink)}
.brand-name{font-weight:600;letter-spacing:.2em;font-size:17px;color:var(--band-ink);text-shadow:none;white-space:nowrap}
.brand-dot{color:var(--band-soft);text-shadow:none}
.brand-product{font-weight:400;letter-spacing:.02em}
.brand small{color:var(--band-soft);font-size:12px;letter-spacing:.02em;margin-top:5px}
.header-right{order:2;margin-left:auto;gap:24px}
.edition{color:var(--band-soft);font-size:var(--t1);letter-spacing:.01em}
#add.primary,.header-right #add{background:var(--neon);color:var(--neon-ink);border:0;border-radius:0;font:600 15px/1 var(--ui);padding:14px 18px;min-height:44px}
#add.primary:hover{background:#8af1f7}
.theme-toggle{order:3;display:inline-flex;align-items:stretch;padding:0;background:transparent;border:1px solid var(--band-hair);color:var(--band-soft)}
.theme-toggle .seg{display:flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;padding:0 12px;margin:0;border:0;border-radius:0;background:transparent;color:var(--band-soft);font:500 14px/1 var(--ui)}
.theme-toggle .seg:hover{background:var(--band-hair);color:var(--band-ink)}
.theme-toggle .seg[aria-pressed=true]{background:var(--band-ink);color:var(--band)}
#hubMenu{order:4;border-radius:0;color:var(--band-ink);border:1px solid var(--band-hair);background:transparent;font:500 14px/1 var(--ui)}

/* ---------- Section tabs ---------- */
.section-nav{background:var(--band);border:0;margin:0 -32px;padding:0 32px;gap:36px;display:flex}
:root[data-theme=night] .section-nav{border-bottom:1px solid var(--band-hair)}
:root[data-theme=night] .lower-third{border-bottom-color:var(--soft)}
.section-nav button{background:transparent;color:var(--band-soft);border:0;border-radius:0;padding:14px 0 15px;font:500 17px/1.2 var(--ui);letter-spacing:.01em;box-shadow:none}
.section-nav button:hover{background:transparent;color:var(--band-ink)}
.section-nav button.active{background:transparent;color:var(--band-ink);border:0;box-shadow:inset 0 -3px 0 var(--neon)}
.section-nav button:focus-visible{outline:2px solid var(--neon);outline-offset:-2px}

/* ---------- Title cards ---------- */
.intro,.template-intro,.permit-heading{border:0;margin:0}
.intro h1,.template-intro h1,.permit-heading h1,#templatesPane .document-heading h1{font-family:var(--ui);font-weight:700;text-transform:uppercase;font-size:clamp(52px,6vw,92px);line-height:.88;letter-spacing:-.012em;margin:0;color:var(--ink)}
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,540px);column-gap:48px;row-gap:14px;align-items:end;padding:36px 0 0}
.intro>div{display:contents}
.intro h1{grid-column:1;grid-row:1;align-self:end}
/* Each sentence on its own line; the line shrinks with its column so it never wraps. */
@media (min-width:761px){.intro h1{container-type:inline-size}}
.intro h1 .h1-line{display:block;font-size:min(1em,11.6cqi)}
.intro>div>p{grid-column:1;grid-row:2;margin:0;font-size:var(--t3);line-height:1.5;color:var(--soft);max-width:58ch}
.intro .coverage-summary{grid-column:2;grid-row:2;text-align:left;margin:0;padding:0;border:0;font-size:var(--t1);color:var(--soft);max-width:none}
.sun-strip{grid-column:2;grid-row:1;margin:0;align-self:end}
.sun-strip-title{font:600 var(--t2)/1.3 var(--ui);margin:0 0 8px;color:var(--ink)}
.sun-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:2px solid var(--frame);margin:0}
.sun-cells>div{padding:10px 14px 12px;border-left:1px solid var(--frame);min-width:0}
.sun-cells>div:first-child{border-left:0}
.sun-cells dt{font:500 var(--t1)/1.2 var(--ui);color:var(--soft);margin:0 0 6px}
.sun-cells dd{margin:0;font:600 24px/1 var(--ui);white-space:nowrap;color:var(--ink)}
.sun-cells>div.is-now dd{display:inline-block;background:var(--neon);color:var(--neon-ink);padding:3px 5px 1px;margin-left:-5px}
.sun-line{position:relative;height:1px;margin:30px 0 0;background:var(--frame)}
.sun-tick{position:absolute;top:-4px;width:1px;height:9px;background:var(--frame)}
.sun-now{position:absolute;top:-7px;width:3px;height:15px;margin-left:-1px;background:var(--neon)}
.sun-end{position:absolute;top:-20px;left:0;font:500 14px/1 var(--ui);color:var(--soft)}
.sun-end-r{left:auto;right:0}
.intro .sun-strip-note{margin:10px 0 0;font-size:var(--t1)!important;line-height:1.4;color:var(--soft);text-wrap:pretty}
.intro .coverage-summary{text-wrap:pretty}
#search{text-overflow:ellipsis}
.template-intro,.permit-heading{padding:48px 0 32px;margin-bottom:0}
.template-intro{border-bottom:2px solid var(--frame)}
.template-intro .eyebrow,.permit-heading .eyebrow{display:none}
.template-intro p,.permit-heading p{font-size:var(--t3);color:var(--soft);max-width:58ch;margin:20px 0 0}
.permit-heading .secondary{font-size:var(--t1);margin-top:8px}
.tc-intro .intro h1{animation:tc-cut .7s cubic-bezier(.2,.7,.1,1) both}
@keyframes tc-cut{from{clip-path:inset(0 0 100% 0);transform:translateY(.18em)}to{clip-path:inset(0);transform:none}}

/* Lower third: the title card cuts to a band once it scrolls away. Informational, never in the way. */
.lower-third{position:fixed;left:0;right:0;top:84px;z-index:99;display:flex;align-items:stretch;height:40px;padding:0 32px;background:var(--band);color:var(--band-ink);border-top:1px solid var(--band-hair);border-bottom:1px solid var(--band-hair);pointer-events:none;transform:translateY(-110%);visibility:hidden;transition:transform .16s ease,visibility 0s .16s}
.lt-on .lower-third{transform:none;visibility:visible;transition:transform .16s ease}
.lt-title{display:flex;align-items:center;font:700 15px/1 var(--ui);text-transform:uppercase;letter-spacing:.02em;margin-right:auto}
.lt-cell{display:flex;align-items:center;gap:8px;padding:0 16px;border-left:1px solid var(--band-hair);font:600 15px/1 var(--ui)}
.lt-cell small{font:500 14px/1 var(--ui);color:var(--band-soft)}
@media (prefers-reduced-motion:reduce){.tc-intro .intro h1{animation:none}.lower-third,.lt-on .lower-third,.workspace>aside{transition:none}}

/* ---------- Directory portals ---------- */
.directory-portals{border:0;border-bottom:1px solid var(--hair);background:transparent;margin:0;padding:12px 0}
.directory-portals summary{font-weight:600}
.directory-portals a{border-radius:0;border-color:var(--frame);background:transparent;color:var(--ink);min-height:44px;display:inline-flex;align-items:center}

/* ---------- Workspace and index ---------- */
.workspace{margin-top:32px;grid-template-columns:220px minmax(0,1fr);gap:48px}
.workspace>aside{background:transparent;color:var(--ink);border:0;border-top:2px solid var(--frame);border-radius:0;padding:14px 0 0;top:104px;box-shadow:none;transition:top .16s ease}
.lt-on .workspace>aside{top:144px}
.workspace>aside>.smallcaps{padding:0 0 12px;font:600 var(--t2)/1.3 var(--ui);letter-spacing:.01em;color:var(--ink);text-transform:lowercase}
.workspace>aside>.smallcaps::first-letter,.project-row label::first-letter{text-transform:uppercase}
#categories button{display:flex;align-items:center;gap:10px;width:100%;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:10px 0;font:400 var(--t2)/1.2 var(--ui);min-height:46px;text-align:left}
#categories button[aria-pressed=true],#categories button.active{background:transparent!important;border:0!important;border-bottom:1px solid var(--hair)!important;font-weight:400}
#categories button:hover{background:transparent;color:var(--soft)}
#categories button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
#categories button::before{order:0;width:32px;flex:none;font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--soft)}
#categories .hub-check{order:-1;width:15px;height:15px;border:1.5px solid var(--ink);border-radius:0;display:inline-grid;place-items:center;font-size:10px;line-height:1;color:transparent;flex:none;background:transparent}
#categories button[aria-pressed=true] .hub-check{background:var(--ink);color:var(--paper)}
#categories small{order:1;margin-left:auto;color:var(--soft);font-size:var(--t1)}
#categories .hub-category-tools{display:flex;gap:8px;padding:0 0 10px}
#categories .hub-category-tools button{border:1px solid var(--frame)!important;justify-content:center;font:500 var(--t2)/1 var(--ui);min-height:44px;padding:4px}
#categories .hub-category-tools button::before{content:none}
.scope-note{color:var(--soft);border-top:1px solid var(--hair);margin:18px 0 0;padding-top:14px}
.scope-note b{color:var(--ink)}

/* Department codes, set like budget account codes. Decorative: the category is also written out. */
[data-hub-group=locations]::before,[data-group=locations] .hub-kind::before{content:"LOC" / ""}
[data-hub-group=studios]::before,[data-group=studios] .hub-kind::before{content:"STG" / ""}
[data-hub-group=rentals]::before,[data-group=rentals] .hub-kind::before{content:"RNT" / ""}
[data-hub-group=crew]::before,[data-group=crew] .hub-kind::before{content:"CRW" / ""}
[data-hub-group=talent]::before,[data-group=talent] .hub-kind::before{content:"TAL" / ""}
[data-hub-group=support]::before,[data-group=support] .hub-kind::before{content:"SUP" / ""}
[data-hub-group=vehicles]::before,[data-group=vehicles] .hub-kind::before{content:"VEH" / ""}
[data-hub-group=permits]::before,[data-group=permits] .hub-kind::before{content:"PRM" / ""}
[data-hub-group=templates]::before,[data-group=templates] .hub-kind::before{content:"TPL" / ""}
[data-group=er] .hub-kind::before{content:"ER" / ""}
[data-group=other] .hub-kind::before{content:"OWN" / ""}

/* ---------- Search, shortlist, results ---------- */
.search-row{gap:16px}
.search{background:transparent;border:0;border-bottom:2px solid var(--frame);border-radius:0;padding:6px 0}
.search input{font-size:22px;background:transparent;color:var(--ink);border:0}
.search input::placeholder{color:var(--soft);opacity:1}
.search-row>select,.city-nav select,#hubCity,.project-row select,#view{background:var(--paper);color:var(--ink);border:1px solid var(--frame);border-radius:0;min-height:48px}
.city-nav label{color:var(--soft)}
.project-row label{font:600 var(--t2)/1.3 var(--ui);letter-spacing:.01em;text-transform:lowercase}
.project-row .text-button{font:500 var(--t2)/1.3 var(--ui)}
.results-heading{border-top:2px solid var(--frame);border-bottom:1px solid var(--frame);padding:12px 0;margin:0}
.results-heading h2{font:600 20px/1.2 var(--ui);letter-spacing:-.005em;text-transform:none}
.results-heading #count{color:var(--soft);font-size:var(--t2)}
.display-switch{border:1px solid var(--frame);border-radius:0;padding:0}
.display-switch button{border-radius:0;font:500 var(--t2)/1 var(--ui);padding:8px 16px;color:var(--ink);min-height:44px}
.display-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.location-refine{border:0;border-bottom:1px solid var(--hair);background:transparent;border-radius:0;padding:12px 0;margin:0}
.location-refine summary{font:600 var(--t3)/1.3 var(--ui)}
.facet-controls select,.shortlist-tools select{border:1px solid var(--frame);border-radius:0;background:var(--paper)}
.comparison-tray{background:var(--sheet);border:1px solid var(--frame);border-radius:0}

/* ---------- Ledger rows ---------- */
.cards{display:block}
#cards .hub-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-auto-flow:row dense;column-gap:24px;min-height:0;background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;box-shadow:none;margin:0 -12px;padding:18px 150px 18px 188px}
#cards .hub-row>*{grid-column:1/-1}
#cards .hub-row>.hub-tags{grid-column:1;align-self:center;margin:10px 0 0}
#cards .hub-row>.hub-row-actions{grid-column:2;align-self:center;margin:10px 0 0;justify-content:flex-end}
#cards .hub-row:not(:has(>.hub-tags))>.hub-row-actions{grid-column:1/-1;justify-content:flex-start}
#cards .hub-row:hover{background:var(--sunk)}
#cards .hub-row-meta{display:block;margin:0}
#cards .hub-kind{position:absolute;left:12px;top:22px;width:160px;display:block;font-size:var(--t1);line-height:1.4;color:var(--soft)}
#cards .hub-kind::before{display:block;width:max-content;font-size:22px;font-weight:600;letter-spacing:.06em;color:var(--ink);line-height:1;margin-bottom:8px}
#cards .hub-place{color:var(--ink);font-weight:500}
#cards .hub-sep{display:none}
#cards .hub-cat{display:block}
#cards .hub-row:has(.save[aria-pressed=true]) .hub-kind::before{background:var(--neon);color:var(--neon-ink);padding:5px 6px 3px;margin-left:-6px}
#cards .hub-row .save{position:absolute;right:12px;top:18px;width:126px;border:1px solid var(--frame);border-radius:0;padding:0 10px;font:500 var(--t2)/1 var(--ui);background:transparent;color:var(--ink);min-height:44px}
#cards .hub-row .save[aria-pressed=true]{background:var(--neon);border-color:var(--neon);color:var(--neon-ink)}
#cards .hub-row-actions>span{position:absolute;right:12px;top:70px;width:126px;text-align:left;font-size:var(--t1);line-height:1.35;color:var(--soft)}
#cards .hub-checked .hub-sep{display:block;height:0;overflow:hidden}
#cards .hub-row-actions>a[href^="tel:"]{order:10}
#cards .hub-row h3{margin:-8px 0 0;font-size:var(--t4);line-height:1.15}
#cards .hub-row h3 button{min-height:44px;letter-spacing:-.01em;color:var(--ink)}
#cards .hub-row h3 button:hover{background:transparent;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
#cards .hub-row .description{color:var(--ink);opacity:.86;margin:-4px 0 0;font-size:var(--t2);-webkit-line-clamp:1}
.hub-tags{gap:6px}
.hub-tags li{border:1px solid var(--hair);border-radius:0;background:transparent;color:var(--ink);font-size:var(--t1);padding:3px 8px}
#cards .hub-tags li:nth-child(n+6){display:none}
.hub-tags .hub-status{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.hub-tags li.hub-match{background:var(--neon);color:var(--neon-ink);border-color:var(--neon)}
.hub-row-actions{gap:8px 20px;margin-top:10px}
.hub-row-actions button{color:var(--ink);font:500 var(--t2)/1.2 var(--ui);text-underline-offset:3px}
.hub-row-actions button:hover{background:transparent}
.hub-row-actions .quick,.hub-media-placeholder .quick{border:1px solid var(--frame);border-radius:0;min-height:44px;padding:0 14px;font:500 var(--t2)/1 var(--ui);background:transparent;color:var(--ink)}
.hub-row-actions .quick[href^="tel:"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.hub-row-actions .quick:hover{background:var(--sunk)}
.hub-row-actions .quick[href^="tel:"]:hover{background:var(--soft);border-color:var(--soft)}
.hub-row-actions span{font-size:var(--t1);color:var(--soft)}
.hub-related,.hub-edit-note{color:var(--soft)}
.hub-badge{border:1px solid var(--frame);padding:0 6px;color:var(--ink);white-space:nowrap}
.hub-map-mode .hub-row.selected-row{background:var(--sunk)!important;box-shadow:none!important;outline:2px solid var(--frame);outline-offset:-2px}

/* Map and photo modes use the stacked row: the list is narrower there. */
.hub-map-mode #cards .hub-row,#cards.hub-photos .hub-row{display:block;margin:0;padding:18px 12px}
.hub-map-mode #cards .hub-kind,#cards.hub-photos .hub-kind{position:static;width:auto;padding-right:136px;margin-bottom:6px}
.hub-map-mode #cards .hub-kind::before,#cards.hub-photos .hub-kind::before{display:inline-block;font-size:var(--t1);letter-spacing:.12em;margin:0 10px 0 0}
.hub-map-mode #cards .hub-cat,#cards.hub-photos .hub-cat{display:inline}
.hub-map-mode #cards .hub-cat::before,#cards.hub-photos .hub-cat::before{content:", "}
.hub-map-mode #cards .hub-row .save,#cards.hub-photos .hub-row .save{right:12px;top:14px}
.hub-map-mode #cards .hub-row-actions>span,#cards.hub-photos .hub-row-actions>span{position:static;width:auto}
.hub-map-mode #cards .hub-row h3,#cards.hub-photos .hub-row h3{margin:0}
.hub-map-mode #cards .hub-row-actions,#cards.hub-photos .hub-row-actions{justify-content:flex-start}
.hub-map-mode #cards .hub-row-actions>a[href^="tel:"],#cards.hub-photos .hub-row-actions>a[href^="tel:"]{order:-1}
#cards.hub-photos{gap:0!important;border-top:1px solid var(--frame);border-left:1px solid var(--hair)}
#cards.hub-photos .hub-row{border:0;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:18px}
#cards.hub-photos .hub-row:hover{background:var(--sunk)}
.hub-media-placeholder{background:transparent!important;border:1px solid var(--hair)!important;border-radius:0!important;height:auto!important;min-height:0!important;padding:14px!important;justify-items:start!important;text-align:left!important}
.hub-media-placeholder p{color:var(--soft)}
.commons-bar{border:1px solid var(--hair);background:var(--sheet);border-radius:0}
.photo-info>span{border-radius:0!important}

/* ---------- Callouts: a full ruled box, never a side stripe ---------- */
.intro-note:not(.pk *),.storage-warning:not(.pk *),.booking-block:not(.pk *),#details .booking-block:not(.pk *),.permit-warning:not(.pk *),.hub-edit-note:not(.pk *),.hub-scout-note:not(.pk *),.fb-er-note:not(.pk *),.hub-role-gap:not(.pk *),.fb-geo-updated:not(.pk *),.hub-vocab-gap:not(.pk *),.fb-pin-warn:not(.pk *),.holds-panel .hold-lead:not(.pk *),.lead-summary:not(.pk *),.tool-backup[data-level]:not(.pk *),.scout-storage[data-level]:not(.pk *),.pin-rename:not(.pk *),.pin-error:not(.pk *),.import-collision:not(.pk *),.notice:not(.pk *){border:1px solid var(--hair)!important;border-left-width:1px!important;border-radius:0!important;background:var(--sheet)!important;box-shadow:none!important;color:var(--ink)}
.storage-warning:not(.pk *),.fb-er-note:not(.pk *),.fb-pin-warn:not(.pk *),.pin-error:not(.pk *),.holds-panel .hold-lead:not(.pk *),.lead-summary:not(.pk *),.tool-backup[data-level=warn]:not(.pk *),.tool-backup[data-level=over]:not(.pk *),.scout-storage[data-level=warn]:not(.pk *),.scout-storage[data-level=high]:not(.pk *),.permit-warning:not(.pk *),.import-collision:not(.pk *){border-color:var(--signal)!important}
.pin-error{color:var(--signal)!important}
.hold-badge[data-status$="hold"] .hold-status{box-shadow:none!important}
.storage-note{border-top:1px solid var(--hair);color:var(--soft)}
.storage-note b{color:var(--ink)}
.pin-add,.pin-typed{border-width:1px 0 0!important;border-style:solid!important;border-color:var(--hair)!important;border-radius:0!important}
.tool-backup{padding:10px 12px}

/* ---------- Dialogs: one grammar, ruled sections ---------- */
dialog{background:var(--paper);color:var(--ink);border:2px solid var(--frame);border-radius:0;box-shadow:none;padding:36px}
dialog .close{border-radius:0;background:var(--ink);color:var(--paper);border:0}
dialog .close:hover{background:var(--soft)}
dialog .eyebrow,#details .eyebrow{color:var(--soft);font:500 var(--t2)/1.3 var(--ui);letter-spacing:.01em;text-transform:none}
#projectToolsDialog>.eyebrow,#comparisonDialog>.eyebrow,#editor>.eyebrow{display:none}
dialog h2{font-size:40px;line-height:1.02;letter-spacing:-.015em;font-weight:600}
dialog h3{font-size:20px;font-weight:600}
dialog input,dialog select,dialog textarea{background:var(--sheet);color:var(--ink);border:1px solid var(--field);border-radius:0}
dialog button,dialog a.quick,dialog .fb-act{border-radius:0}
dialog button:not(.close):not(.primary):not(.text-button):not(.theme-toggle){background:transparent;color:var(--ink);border:1px solid var(--frame);font-weight:500}
dialog button:not(.close):not(.primary):not(.text-button):hover{background:var(--sunk)}
#detailStar,#details .detail-actions button{border-color:var(--frame)!important}
.fb-act{border:1px solid var(--frame)!important;border-radius:0!important;background:transparent!important;color:var(--ink)!important;font-weight:500!important}
.fb-act:hover{background:var(--sunk)!important}
.fb-act.fb-act-primary,.fb-er-actions .fb-act[href^="tel:"]{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important}
.fb-place{color:var(--ink)}
.fb-checked{color:var(--soft)}
.fb-chips li{border-radius:0!important;border:1px solid var(--hair)!important;background:transparent!important;color:var(--ink)!important}
.fb-chips li.fb-look,.fb-chips li.fb-type{border-color:var(--frame)!important}
.fb-block{border:0;border-top:2px solid var(--frame);border-radius:0;background:transparent}
.fb-block>summary{padding:14px 0}
.fb-block-title{font-size:20px;font-weight:600}
.fb-count{color:var(--soft);font-size:var(--t1)}
/* Fact tables set on an end-credits axis: label right, value left. */
.fb-facts .fb-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);column-gap:24px;border-bottom:1px solid var(--hair);padding:10px 0}
.fb-facts dt{text-align:right;color:var(--soft);font-weight:500}
.fb-facts dd{margin:0}
.fb-row.is-unknown dd{color:var(--soft)}
#details .booking-block h3{margin-top:0}
.fb-er-list li{border-bottom:1px solid var(--hair);border-radius:0!important;background:transparent!important}
.fb-er-distance{color:var(--ink);font-weight:400!important}
.my-scout{border-top:2px solid var(--frame)}
.scout-private{border:1px solid var(--frame);border-radius:0;color:var(--ink);background:transparent;letter-spacing:0;text-transform:none;font-size:var(--t1);font-weight:500}
.my-scout .file-button{background:transparent!important;color:var(--ink)!important;border:1px solid var(--frame)!important;border-radius:0!important}
textarea#resourceNotes{border-radius:0}
progress.backup-bar{accent-color:var(--ink)}
.tool-card{background:transparent!important;border:0!important;border-top:2px solid var(--frame)!important;border-radius:0!important;padding:16px 0!important;box-shadow:none!important}
.cmp-group-label{letter-spacing:.01em;text-transform:none;font-size:var(--t1);font-weight:600}

/* ---------- Templates ---------- */
.template-card:hover{background:var(--sunk)}
.template-number{display:none!important}
#templatesPane .document-heading .eyebrow{display:none}
.template-grid{display:block!important;border-left:0;border-top:2px solid var(--frame)}
.template-card{display:grid!important;grid-template-columns:minmax(240px,1fr) minmax(0,2fr) auto;column-gap:32px;row-gap:4px;align-items:baseline;width:100%;background:transparent;border:0;border-radius:0;box-shadow:none;min-height:0;color:var(--ink);border-right:0!important;border-bottom:1px solid var(--hair)!important;padding:22px 12px!important;text-align:left}
.template-card h2{grid-column:1;grid-row:1/span 2;align-self:center}
.template-card .smallcaps{grid-column:2;grid-row:1;margin:0!important}
.template-card p{grid-column:2;grid-row:2;margin:0}
.template-card .template-link{grid-column:3;grid-row:1/span 2;align-self:center}
.template-card .smallcaps{display:block;font:500 var(--t2)/1.3 var(--ui);letter-spacing:.01em;color:var(--soft);text-transform:lowercase;margin:12px 0 0}
.template-card .smallcaps::first-letter{text-transform:uppercase}
.template-card h2{order:-1;font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:-.005em;line-height:.95;margin:0}
.template-card p{color:var(--ink);opacity:.86;font-size:var(--t2)}
.template-link{font:500 var(--t2)/1.3 var(--ui);text-decoration:underline;text-underline-offset:4px;border:0}
#templatesPane .section-stack summary span,#templatesPane summary .pw-num{color:var(--soft)!important;letter-spacing:0}
#backTemplates{padding-left:0;font-size:var(--t2)}
#duplicateTemplate{white-space:nowrap}
.pw-num{color:var(--soft)!important}

/* ---------- Permits ---------- */
.permit-warning{max-width:none!important;margin:24px 0 32px!important;background:var(--sheet)!important;color:var(--ink)}
.permit-card{background:transparent;border:1px solid var(--frame);border-radius:0;box-shadow:none}
.permit-card>.eyebrow{display:none}
.permit-card h2{font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:-.005em;line-height:.95}
.permit-card dt{color:var(--soft)}
.permit-card a:not(.permit-application){color:var(--ink)}
.permit-application{min-height:44px;display:inline-flex!important;align-items:center;background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;border-radius:0;font:500 var(--t2)/1.2 var(--ui)!important;padding:0 14px}
.town-grid{display:block!important;columns:3 340px;column-gap:24px}
#permitsPane :is(dd a,li,details p,details a,.secondary){font-size:max(var(--t1),1em)}
.town-card{break-inside:avoid;margin:0 0 24px!important;border-color:var(--frame)!important;background:transparent!important;border-radius:0!important}
.town-card .eyebrow{letter-spacing:.01em!important;text-transform:none}

/* ---------- Paperwork: documents stay paper in both themes ---------- */
.pw-view,#printArea{--paper:#fff;--sheet:#fff;--sunk:#eee;--ink:#000;--soft:#444;--hair:#bbb;--frame:#000;--cream:#fff;--cream2:#f2f2f2;--night:#000;--rule:#bbb;color-scheme:light}
html .pw-view{--pw-paper:#fff;--pw-line:#d0cec5;--pw-rule:#000;--pw-accent:#000;--pw-soft:#55534c;background:var(--pw-paper);color:var(--pw-ink,#151316);padding:16px}
html .pw-view :is(a.pw-tel,a.pw-maps,a.pw-mail,a.pw-sms,.pw-small a){border-radius:0!important;border-color:#000!important;color:#000!important}
html .pw-view .pw-safety{border-left-width:1px!important;border-top:2px solid #000!important}
html .pw-view :is(.pw-k,.pw-box-h){letter-spacing:0!important;text-transform:none!important;font-weight:600}

/* ---------- Map ---------- */
#resourceMap,#resourceMap.leaflet-container,.leaflet-bar,.leaflet-bar a{border-radius:0!important}
#resourceMap{border:1px solid var(--frame);background:var(--sunk)}
.fb-grid{filter:grayscale(1) brightness(1.06)}
:root[data-theme=night] .fb-grid{filter:grayscale(1) invert(1) brightness(.86)}
.leaflet-control-zoom a,.leaflet-control-attribution,.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--paper)!important;color:var(--ink)!important;border-radius:0!important;box-shadow:none!important}
.leaflet-popup-content-wrapper{border:1px solid var(--frame)}
.leaflet-attribution-flag{display:none!important}
.leaflet-container a:focus-visible,.field-pin:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.map-legend,.map-disclosure,#mapStatus{color:var(--soft)}

/* Literal all-caps labels from older layers read in sentence case. */
.edition,footer>span:first-child{text-transform:lowercase;display:inline-block}
.edition::first-letter,footer>span:first-child::first-letter{text-transform:uppercase}

/* Fills that the older layers paint with --night: readable in both themes. */
.skip-link,#hubMapSelection button,.field-pin.is-selected,.hub-mobile-add,.is-private .hub-badge,.pw-img-add button{color:var(--neon-ink)!important}
.pw-img-add button+button{color:var(--ink)!important}
.pw-done-chip,.pw-shotbar button[aria-pressed=true]{background:var(--ink)!important;color:var(--paper)!important}
.map-legend .lg-short,.field-pin.is-shortlisted::after{background:var(--neon)!important;color:var(--neon-ink)!important}
:root[data-theme=night] .field-pin.town-pin,:root[data-theme=night] .field-pin.addr-pin{background:rgba(0,0,0,.6)!important}
.leaflet-container a{color:var(--ink)}
/* Caution: status chips that ask for a check keep a distinct fill. */
.pw-status[data-status="For review"],.pw-recheck-chip{background:var(--caution-bg)!important;border-color:var(--caution)!important;color:var(--ink)!important}

/* ---------- Footer and toast ---------- */
footer{background:var(--band);color:var(--band-soft);border-top:1px solid var(--band-hair);font-size:var(--t1);letter-spacing:.01em}
#toast{background:var(--ink);color:var(--paper);border-radius:0;box-shadow:none;border-color:var(--ink)}
}

/* Night rules repeated for devices in dark mode with no saved choice. */
@media screen and (prefers-color-scheme:dark){
  :root:not([data-theme=day]) .section-nav{border-bottom:1px solid var(--band-hair)}
  :root:not([data-theme=day]) .lower-third{border-bottom-color:var(--soft)}
  :root:not([data-theme=day]) .fb-grid{filter:grayscale(1) invert(1) brightness(.86)}
  :root:not([data-theme=day]) .field-pin.town-pin,:root:not([data-theme=day]) .field-pin.addr-pin{background:rgba(0,0,0,.6)!important}
}
/* Night: darken street tiles so the map does not glare. */
@media screen{:root[data-theme=night] .leaflet-tile-pane>.leaflet-layer:not(.fb-grid){filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.4)}}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme=day]) .leaflet-tile-pane>.leaflet-layer:not(.fb-grid){filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.4)}}

/* ---------- Narrow screens ---------- */
@media screen and (max-width:360px){.project-row select{max-width:62%}.brand-name{letter-spacing:.06em!important}.theme-toggle .seg{padding:0 6px!important}#hubMenu{padding:8px!important}body>header{gap:8px!important}}
@media screen{html{scroll-padding-top:140px}}
@media screen and (max-width:1240px){
  /* Tablets and small laptops: the stacked row, as in Map mode. */
  #cards .hub-row{display:block;margin:0;padding:18px 12px}
  #cards .hub-kind{position:static;width:auto;padding-right:136px;margin-bottom:6px}
  #cards .hub-kind::before{display:inline-block;font-size:var(--t1);letter-spacing:.12em;margin:0 10px 0 0}
  #cards .hub-row:has(.save[aria-pressed=true]) .hub-kind::before{margin-left:0}
  #cards .hub-cat{display:inline}
  #cards .hub-cat::before{content:", "}
  #cards .hub-row .save{right:12px;top:14px}
  #cards .hub-row-actions>span{position:static;width:auto;flex-basis:100%;order:20}
  #cards .hub-checked .hub-sep{display:inline;height:auto}
  #cards .hub-row h3{margin:0}
  #cards .hub-row .description{-webkit-line-clamp:1;margin:0}
  #cards .hub-row>.hub-row-actions{justify-content:flex-start;gap:8px 18px}
  #cards .hub-row>.hub-tags{display:inline-flex;vertical-align:middle;max-width:100%;margin:10px 16px 0 0}
  #cards .hub-row>.hub-row-actions{display:inline-flex;vertical-align:middle;margin-top:10px}
  #cards .hub-row-actions>span.hub-checked{display:none}
  .hub-map-mode #cards .hub-row-actions>span.hub-checked,#cards.hub-photos .hub-row-actions>span.hub-checked{display:inline}
  #cards .hub-row-actions>a[href^="tel:"]{order:-1}
}
@media screen and (max-width:1100px){.edition{display:none}#add.primary{white-space:nowrap}}
@media screen and (max-width:1180px){
  .intro{grid-template-columns:minmax(0,1fr);padding-top:28px}
  .intro h1,.sun-strip,.intro>div>p,.intro .coverage-summary{grid-column:1;grid-row:auto}
  .intro h1{font-size:48px}
  .sun-strip{margin-top:14px;max-width:620px}
  .sun-line,.intro .sun-strip-note,.intro>div>p{display:none}
  .workspace{margin-top:12px}
  /* two-line title: keep the first result above the fold at 1024x768, as on phones */
  .intro{padding-top:20px}
  .intro .coverage-summary{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media screen and (min-width:761px) and (max-width:1240px){
  .search-row{flex-wrap:nowrap!important}
  .search-row .search{flex:1 1 auto!important;min-width:0}
  .search-row #view{width:170px;max-width:170px}
  .city-nav select,#hubCity{width:140px}
}
@media screen and (max-width:760px){
  body>header{height:78px;padding:0 20px;gap:10px}
  .brand{gap:10px}
  .brand-mark{width:32px;height:32px}
  .brand-name{font-size:14px;letter-spacing:.1em}
  .brand-pre{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .header-right{display:none}
  .theme-toggle{margin-left:auto}
  .theme-toggle .seg{padding:0 8px;min-width:44px;font-size:14px}
  #hubMenu{font-size:14px;padding:8px 10px}
  body:has(#templatesTab.active) #hubMenu,body:has(#permitsTab.active) #hubMenu{display:none}
  .section-nav{margin:0 -20px;padding:0 20px;gap:24px;flex-wrap:nowrap;overflow-x:auto}
  .section-nav button{flex:none;font-size:var(--t2);padding:12px 0}
  .intro{display:flex;flex-direction:column;align-items:stretch;padding:12px 0 0}
  .intro>*,.sun-strip{align-self:stretch}
  .lt-on .workspace>aside{top:auto}
  .intro h1{order:0;align-self:stretch}.sun-strip{order:1}.intro>div>p{order:2}.intro .coverage-summary{order:3}
  .intro h1,.template-intro h1,.permit-heading h1,#templatesPane .document-heading h1{font-size:40px;overflow-wrap:anywhere}
  .intro h1{font-size:30px}
  .sun-strip{margin-top:8px}
  .sun-strip-title{font-size:14px;margin-bottom:6px}
  .sun-cells>div{padding:6px 8px 6px}
  .sun-cells dt{font-size:14px;margin-bottom:4px;white-space:nowrap}
  .sun-cells dt .dt-full{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sun-cells dt::after{content:attr(data-short)}
  .sun-cells dd{font-size:16px}
  .sun-line,.intro .sun-strip-note{display:none}
  .intro>div>p{display:none}
  .intro .coverage-summary{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .workspace{margin-top:6px}
  .search input{font-size:19px}
  .results-heading{padding:8px 0}
  .workspace>aside.menu-open{background:var(--paper);border:2px solid var(--frame);padding:14px 16px;box-shadow:none;left:20px!important;right:20px!important}
  .template-intro,.permit-heading{padding:32px 0 24px}
  html{scroll-padding-top:90px}
  .lower-third{display:none!important}
  #cards .hub-row{display:block;margin:0;padding:18px 0}
  #cards .hub-row:hover{background:transparent}
  #cards .hub-kind{position:static;width:auto;padding-right:136px;margin-bottom:6px}
  #cards .hub-kind::before{display:inline-block;font-size:var(--t1);letter-spacing:.12em;margin:0 10px 0 0}
  #cards .hub-row:has(.save[aria-pressed=true]) .hub-kind::before{margin-left:0}
  #cards .hub-kind{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #cards .hub-cat{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  #cards .hub-row .save{right:0;top:12px;width:auto;padding:0 10px;font-size:14px}
  #cards .hub-row h3{margin:0}
  #cards .hub-row .description{-webkit-line-clamp:1;margin:0}
  #cards .hub-tags{flex-wrap:nowrap;overflow:hidden}
  #cards .hub-row-actions>span.hub-checked{display:none}
  #cards .hub-row-actions{justify-content:flex-start}
  #cards .hub-row-actions>span{position:static;width:auto}
  #cards .hub-tags li:nth-child(n+4){display:none}
  dialog{padding:24px 20px}
  dialog h2{font-size:32px}
  .template-card h2,.permit-card h2{font-size:26px}
  .template-card{grid-template-columns:1fr!important;row-gap:6px}
  .template-card h2,.template-card .smallcaps,.template-card p,.template-card .template-link{grid-column:1!important;grid-row:auto!important}
  .town-grid{columns:1}
  .fb-facts .fb-row{grid-template-columns:1fr;row-gap:2px}
  .fb-facts dt{text-align:left}
}

/* Print: the design layer adds nothing to paper. */
@media print{.sun-strip,.lower-third,.theme-toggle,.brand-mark{display:none!important}}
