/* Readable theme override for the recovered frontend bundle. */
:root {
  --canvas: #f8fcff;
  --ink: #122c40;
  --ink-secondary: #385468;
  --muted: #5c7282;
  --primary-green: #176bd1;
  --hero-green: #e3f3ff;
  --pale-green: #edf7ff;
  --media-pale: #e1f0fa;
  --line: #dce9f2;
  --soft-green: #e3f2fc;
  --soft-green-2: #eaf6ff;
  --district-max: 76rem;
  --district-copy: 68rem;
  --space-1: .5rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4.5rem;
  --type-display: clamp(2.625rem, 4.45vw, 4rem);
  --type-page: clamp(2rem, 3.35vw, 3rem);
  --type-section: clamp(1.625rem, 2.35vw, 2.125rem);
  --type-subhead: clamp(1.25rem, 1.6vw, 1.5rem);
  --type-card: clamp(1.125rem, 1.25vw, 1.375rem);
  --type-body: clamp(1rem, .22vw + .96rem, 1.125rem);
  --type-secondary: clamp(.9375rem, .16vw + .91rem, 1rem);
  --type-meta: .875rem;
  --type-control: .9375rem;
  --leading-title: 1.08;
  --leading-heading: 1.18;
  --leading-card: 1.3;
  --leading-body: 1.56;
  --leading-secondary: 1.5;
  --leading-meta: 1.42;
  --weight-regular: 500;
  --weight-medium: 620;
  --weight-strong: 760;
  --section-gap: clamp(2.5rem, 4vw, 3.5rem);
  --card-padding: clamp(1.25rem, 2vw, 1.5rem);
  --control-height: 2.875rem;
  --radius-card: 1rem;
  --radius-control: .75rem;
}

/* Admin operations: permission-aware registries, moderation and audit. */
.admin-record-link{appearance:none;background:none;border:0;padding:0;color:#111b2b;font:inherit;font-weight:750;text-align:left;text-decoration:underline;text-decoration-color:rgba(23,107,209,.28);text-underline-offset:3px;cursor:pointer}.admin-record-link:hover{color:#176bd1;text-decoration-color:#176bd1}.admin-role-cards{display:grid;gap:12px;padding:18px}.admin-role-cards article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid #dce4ed;border-radius:14px;background:#fff}.admin-role-cards article>div{display:grid;gap:4px}.admin-role-cards small{color:#657386}.admin-role-editor{max-width:880px}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-column:1/-1}.permission-groups fieldset{margin:0;padding:14px;border:1px solid #dce4ed;border-radius:12px}.permission-groups legend{padding:0 6px;font-weight:800}.permission-groups label{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:14px}.permission-groups input{width:18px;height:18px}.moderation-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.moderation-tabs button{display:flex;align-items:center;gap:8px;border:1px solid #d7e0ea;background:#fff;border-radius:999px;padding:9px 13px;color:#324154;cursor:pointer}.moderation-tabs button.active{background:#eaf3ff;border-color:#176bd1;color:#0d5ebf}.moderation-tabs b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#edf1f5;font-size:12px}.moderation-list{display:grid;gap:10px}.moderation-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 20px;border:1px solid #dce4ed;border-radius:14px;background:#fff}.moderation-list article>div{display:grid;gap:6px}.moderation-list article>div:last-child{justify-items:end}.moderation-title{color:#111b2b;font-size:17px;font-weight:800;text-decoration:none}.moderation-title:hover{color:#176bd1;text-decoration:underline}.moderation-list small,.moderation-list time{color:#667386}.moderation-list select,.audit-filters select,.audit-filters input{min-height:42px;border:1px solid #cfd9e5;border-radius:9px;background:#fff;padding:0 11px}.audit-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.audit-table td strong{display:block}.audit-table td small{display:block;color:#718096;margin-top:3px}.audit-table td div+div{margin-top:5px}.admin-status:not(.admin-status-error):not(.admin-status-success){padding:12px;border-radius:10px;background:#edf5ff;color:#174d87}
@media(max-width:900px){.permission-groups,.audit-filters{grid-template-columns:1fr 1fr}.moderation-list article{grid-template-columns:1fr}.moderation-list article>div:last-child{justify-items:start}}
@media(max-width:600px){.permission-groups,.audit-filters{grid-template-columns:1fr}.admin-role-cards article{align-items:flex-start}.moderation-tabs{flex-wrap:nowrap;overflow:auto;padding-bottom:5px}.moderation-list article{padding:15px}}

/* Neutral newsroom Wave 1 */
.newsroom-source-page{display:grid;gap:24px}.newsroom-source-overview{padding-bottom:0}.newsroom-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.newsroom-source-card{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px;border:1px solid #d9dfd5;background:#fff}.newsroom-source-card>div{display:grid;gap:5px}.newsroom-source-card strong{font-size:16px}.newsroom-source-card span,.newsroom-source-card small{color:#5d675c}.newsroom-source-health{justify-items:end}.newsroom-source-health .health{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef4ec;color:#23651f;font-size:12px;font-weight:800;text-transform:uppercase}.newsroom-source-health .health-error{background:#fff0ed;color:#a32a20}.newsroom-source-health button,.newsroom-filter-row button,.newsroom-inbox-card footer button{border:1px solid #cbd5c8;background:#fff;color:#172016;padding:9px 12px;font:inherit;font-weight:700;cursor:pointer}.newsroom-source-health button:disabled{opacity:.45;cursor:not-allowed}.newsroom-filter-stack{display:grid;gap:10px;margin:0 0 18px}.newsroom-filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px}.newsroom-filter-row button{white-space:nowrap;border-radius:999px}.newsroom-filter-row button.active{background:#247c1e;border-color:#247c1e;color:#fff}.newsroom-manual-import{margin-bottom:20px}.newsroom-inbox-list{display:grid;gap:18px}.newsroom-inbox-card{display:grid;gap:15px;padding:22px;border:1px solid #d7ded4;background:#fff}.newsroom-inbox-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.newsroom-inbox-card time{color:#637060;font-size:14px}.newsroom-badges{display:flex;flex-wrap:wrap;gap:6px}.newsroom-badges span{padding:5px 8px;border-radius:999px;background:#edf6e9;color:#276f21;font-size:11px;font-weight:900;letter-spacing:.06em}.newsroom-inbox-card h2{margin:0;font-size:clamp(20px,2vw,26px);line-height:1.18}.newsroom-score-grid{display:flex;flex-wrap:wrap;gap:8px}.newsroom-score-grid span{padding:7px 9px;background:#f5f7f3;font-size:13px}.newsroom-text-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}.newsroom-text-compare section{display:grid;align-content:start;gap:9px;padding:16px;background:#f7f8f6;border:1px solid #e2e6df}.newsroom-text-compare section:last-child{background:#f2f8ef}.newsroom-text-compare p{margin:0;line-height:1.55}.newsroom-text-compare a{color:#247c1e;font-weight:800}.newsroom-inbox-card footer{display:flex;flex-wrap:wrap;gap:8px}.newsroom-inbox-card footer .danger{border-color:#e3b6b1;color:#a1281e}
@media(max-width:760px){.newsroom-source-card,.newsroom-inbox-card header{display:grid}.newsroom-source-health{justify-items:start}.newsroom-text-compare{grid-template-columns:1fr}.newsroom-inbox-card{padding:16px}.newsroom-inbox-card footer button{flex:1 1 46%}}

/* Editorial workflow: sources, own drafts and moderation decisions are separate workspaces. */
.editorial-workspace{--editorial-blue:#176bd1;--editorial-ink:#132033;--editorial-muted:#647286;--editorial-border:#dce4ed;--editorial-tint:#f5f8fc}.editorial-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.editorial-tabs button{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid var(--editorial-border);border-radius:999px;background:#fff;padding:8px 13px;color:#334155;font:inherit;font-weight:700;cursor:pointer}.editorial-tabs button.active{border-color:var(--editorial-blue);background:#eaf3ff;color:#0d5ebf}.editorial-tabs b{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#edf1f5;font-size:12px}.editorial-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.editorial-summary article{display:grid;gap:6px;padding:18px;border:1px solid var(--editorial-border);border-radius:14px;background:#fff}.editorial-summary strong{font-size:clamp(25px,2.4vw,34px);line-height:1;color:var(--editorial-ink)}.editorial-summary span{color:var(--editorial-muted);font-size:14px}.editorial-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(160px,1fr));gap:10px;margin:0 0 16px}.editorial-filters-wide{grid-template-columns:minmax(200px,1.5fr) repeat(4,minmax(140px,1fr))}.editorial-filters input,.editorial-filters select{width:100%;min-height:44px;border:1px solid #cfd9e5;border-radius:10px;background:#fff;padding:0 12px;color:var(--editorial-ink);font:inherit}.editorial-hint{margin:-3px 0 16px;color:var(--editorial-muted);font-size:14px}.editorial-card-list{display:grid;gap:12px}.editorial-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:22px;padding:20px;border:1px solid var(--editorial-border);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(15,34,58,.035)}.editorial-card-main{display:grid;align-content:start;gap:9px;min-width:0}.editorial-meta{display:flex;flex-wrap:wrap;gap:6px}.editorial-meta span{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;background:#eef3f8;padding:4px 8px;color:#536174;font-size:12px;font-weight:800}.editorial-meta .status{background:#eaf3ff;color:#0d5ebf}.editorial-meta .danger{background:#fff0ed;color:#a1281e}.editorial-title{appearance:none;border:0;background:none;padding:0;color:var(--editorial-ink);font:inherit;font-size:clamp(18px,1.6vw,22px);font-weight:820;line-height:1.25;text-align:left;cursor:pointer}.editorial-title:hover{color:var(--editorial-blue);text-decoration:underline;text-underline-offset:3px}.editorial-excerpt{display:-webkit-box;overflow:hidden;margin:0;color:#445268;line-height:1.55;-webkit-line-clamp:2;-webkit-box-orient:vertical}.editorial-card small{color:var(--editorial-muted);line-height:1.4}.editorial-levels{display:flex;flex-wrap:wrap;gap:7px}.editorial-levels span{padding:6px 8px;background:var(--editorial-tint);color:#526074;font-size:13px}.editorial-levels b{color:#223149}.editorial-card details>summary{color:#526074;font-size:13px;font-weight:750;cursor:pointer}.editorial-card details p{margin:8px 0 0;color:#667386;font-size:13px}.editorial-card>footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:390px}.editorial-card>footer>a,.editorial-card>footer>button,.editorial-drawer-actions>a,.editorial-drawer-actions>button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid #cbd6e2;border-radius:9px;background:#fff;padding:8px 12px;color:#26364b;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}.editorial-card button.admin-primary,.editorial-card a.admin-primary,.editorial-drawer-actions .admin-primary{border-color:var(--editorial-blue);background:var(--editorial-blue);color:#fff}.editorial-card .danger,.editorial-drawer-actions .danger{border-color:#e7bbb6;color:#a1281e}.editorial-more{position:relative}.editorial-more>summary{list-style:none;display:inline-flex;align-items:center;min-height:40px;border:1px solid #cbd6e2;border-radius:9px;background:#fff;padding:8px 12px;color:#26364b!important;font-size:14px!important;cursor:pointer}.editorial-more>summary::-webkit-details-marker{display:none}.editorial-more>div{position:absolute;right:0;z-index:4;display:grid;min-width:190px;margin-top:6px;padding:6px;border:1px solid var(--editorial-border);border-radius:10px;background:#fff;box-shadow:0 12px 34px rgba(15,34,58,.18)}.editorial-more>div button{border:0;background:#fff;padding:10px;text-align:left;cursor:pointer}.editorial-empty{padding:48px 24px;border:1px dashed #cbd5e1;border-radius:15px;background:#fafcff;color:#59677a;text-align:center}.editorial-drawer-backdrop{position:fixed;inset:0;z-index:120;background:rgba(10,19,32,.34)}.editorial-drawer{position:absolute;inset:0 0 0 auto;width:min(50vw,760px);overflow:auto;background:#fff;box-shadow:-16px 0 50px rgba(10,24,43,.2)}.editorial-drawer>header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px;border-bottom:1px solid var(--editorial-border);background:rgba(255,255,255,.97)}.editorial-drawer h2{margin:5px 0 0;font-size:clamp(24px,2.5vw,34px);line-height:1.18}.editorial-drawer>header>button{border:0;background:#eef2f6;width:40px;height:40px;border-radius:50%;font-size:27px;cursor:pointer}.editorial-kicker{color:var(--editorial-blue);font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.editorial-drawer-body{display:grid;gap:18px;padding:24px}.editorial-drawer-body>img{width:100%;max-height:320px;object-fit:cover;border-radius:12px}.editorial-drawer-body section{padding:18px;border:1px solid var(--editorial-border);border-radius:12px;background:#f8fafc}.editorial-drawer-body h3{margin:0 0 9px;font-size:16px}.editorial-drawer-body p{margin:0;color:#435168;line-height:1.65}.editorial-source{color:#657386!important}.editorial-drawer-actions{display:flex;gap:8px;flex-wrap:wrap}.editorial-drawer-actions a,.editorial-drawer-actions button{flex:1 1 150px}
@media(max-width:1180px){.editorial-filters-wide{grid-template-columns:repeat(3,minmax(0,1fr))}.editorial-summary{grid-template-columns:1fr 1fr}.editorial-card{grid-template-columns:1fr}.editorial-card>footer{justify-content:flex-start;max-width:none}}
@media(max-width:760px){.editorial-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.editorial-tabs button{white-space:nowrap}.editorial-filters,.editorial-filters-wide{grid-template-columns:1fr}.editorial-summary{grid-template-columns:1fr 1fr}.editorial-card{padding:16px}.editorial-card>footer>*{flex:1 1 44%}.editorial-more>div{right:auto;left:0}.editorial-drawer{width:100%}.editorial-drawer>header,.editorial-drawer-body{padding:18px}}
@media(max-width:430px){.editorial-summary{grid-template-columns:1fr 1fr;gap:8px}.editorial-summary article{padding:14px}.editorial-card>footer>*{flex-basis:100%}.editorial-levels{display:grid}.editorial-drawer-actions{display:grid}.editorial-drawer-actions>*{width:100%}}
.site-shell { font-size: clamp(1rem, .35vw + .92rem, 1.1875rem); }
.site-shell h1 { font-size: clamp(2.125rem, 4vw, 3.75rem); letter-spacing: -.045em; }
.site-shell h2 { font-size: clamp(2rem, 3vw, 2.5rem); letter-spacing: -.035em; }
.site-shell h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
.site-shell :focus-visible { outline: 3px solid #176bd1; outline-offset: 3px; }
.site-shell button, .site-shell a { min-height: 44px; }
.district-passport { max-width: var(--district-max); margin: 0 auto var(--space-7); }
.district-passport > section, .district-passport > div > section { margin-block: var(--space-7); }
.district-passport h2 { margin: 0 0 var(--space-4); }
.district-profile-card, .district-grid article, .district-stats article { border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 12px 32px rgba(29,77,109,.06); }
.district-profile-card { display: grid; gap: var(--space-4); padding: clamp(1.5rem,3vw,3rem); background: linear-gradient(125deg,#edf8ff,#fff); }
.district-profile-card p, .district-grid p { max-width: var(--district-copy); line-height: 1.65; color: var(--ink-secondary); }
.district-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,20rem),1fr)); gap: var(--space-3); }
.district-grid article { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-4); }
.district-grid h3 { margin: 0; }
.district-grid strong { color: var(--ink-secondary); }
.district-grid a:not(.button) { color: #135cae; font-weight: 650; text-decoration-thickness: 1.5px; }
.district-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(12rem,1fr)); gap: var(--space-3); }
.district-stats article { display: grid; grid-template-rows: auto auto auto 1fr; align-content: start; gap: var(--space-2); min-height: 15.5rem; padding: clamp(1.25rem,2vw,1.75rem); }
.district-stats article > span:first-child { color: var(--ink-secondary); font-size: .95rem; font-weight: 700; letter-spacing: .01em; }
.district-stat-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: .18em; margin-top: .1rem; font-size: clamp(2rem,3.1vw,2.7rem); color: var(--ink); line-height: 1.05; letter-spacing: -.035em; }
.district-stat-value span { font-size: .58em; font-weight: 650; letter-spacing: -.01em; color: var(--ink-secondary); }
.district-stats small, .district-source { color: var(--muted); font-size: .88rem; line-height: 1.45; }
.district-source { margin: auto 0 0; padding-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
.civic-hero { background: #dcefff; }
.civic-hero-image { object-position: center 52%; }
.civic-hero-overlay {
  background: linear-gradient(90deg, rgba(231,246,255,.94) 0%, rgba(231,246,255,.78) 32%, rgba(231,246,255,.16) 68%, rgba(231,246,255,.05) 100%);
}
.problem-detail p { white-space: pre-wrap; overflow-wrap: anywhere; }
.problem-summary p { line-height: 1.7; }
.home-presentation .civic-hero-inner { align-items:flex-start; padding-top:clamp(5.25rem,9vh,6rem); }
.home-presentation .civic-hero-copy { padding-top:0; }
.civic-hero-content { align-content:start; padding-top:0; }
.civic-hero-content h1 { font-size:clamp(3rem,4.4vw,4rem); line-height:1.02; }
.civic-hero-content p { font-size:clamp(1.0625rem,.5vw + .95rem,1.125rem); line-height:1.5; }
.daily-dashboard { display:none; }
.daily-greeting { display:grid; align-content:center; gap:.25rem; padding:.85rem 1rem; border-radius:14px; background:#122c40; color:#fff; }
.daily-greeting strong { font-size:clamp(1rem,1.2vw,1.25rem); }
.daily-greeting span,.daily-facts span { font-size:.82rem; line-height:1.35; }
.daily-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--line); }
.daily-facts a { display:grid; gap:.2rem; align-content:center; min-height:68px; padding:.75rem .85rem; background:#fff; color:var(--ink); text-decoration:none; }
.daily-facts a:hover { background:#edf7ff; }.daily-facts b { font-size:1rem; white-space:nowrap; }
.daily-notice { grid-column:1/-1; display:grid; gap:.15rem; padding:.75rem 1rem; border-radius:12px; color:var(--ink); text-decoration:none; border:1px solid #cdddec; background:#edf7ff; }.daily-notice-warning { background:#fff8e4; border-color:#efd692; }.daily-notice-critical { background:#fff0ee; border-color:#e9b6af; }
.home-presentation .civic-hero { min-height:clamp(28rem,48vw,38rem); }.home-presentation .home-section { margin-block:clamp(2.5rem,5vw,4.5rem); }.home-presentation .home-section-heading { margin-bottom:1.25rem; }.home-presentation .home-section-subtitle { margin-block:.4rem 1.1rem; }.home-news-copy,.district-card,.home-event-card>div { padding:clamp(1rem,1.8vw,1.5rem); }.listing-page { padding-block:clamp(1.5rem,3vw,3rem); }.page-header { min-height:0; padding-block:clamp(2rem,4vw,4rem) 1.25rem; }.filter-bar { margin-block:0 1.25rem; }
@media (max-width:900px){.daily-dashboard{grid-template-columns:1fr}.daily-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 760px) {
  .civic-hero-image { object-position: 62% center; }
  .civic-hero-overlay { background: rgba(230,245,255,.78); }
  .district-passport { padding-inline: 1rem; }
  .district-passport > section, .district-passport > div > section { margin-block: var(--space-6); }
  .district-stats article { min-height: 0; }
  .home-presentation .civic-hero-inner { padding-top:7rem; }
  .civic-hero-content { padding-top:0; }.home-presentation .civic-hero{min-height:30rem}
}

.catalogue-filter-bar { display:flex; gap:.55rem; overflow-x:auto; padding-bottom:.75rem; scrollbar-width:thin; }
.catalogue-filter-bar a { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink-secondary); padding:.55rem .9rem; font-size:.95rem; font-weight:750; text-decoration:none; }
.catalogue-filter-bar a.active,.catalogue-filter-bar a:hover { border-color:var(--primary-green); background:var(--pale-green); color:var(--primary-green); }
.safe-video-embed { width:100%; overflow:hidden; border-radius:16px; background:#0d1b27; aspect-ratio:16/9; }
.safe-video-embed iframe { width:100%; height:100%; border:0; }
.portal-footer-channel { display:block; color:inherit; font:inherit; line-height:1.6; }
.hero-important { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.7rem; max-width:38rem; margin-top:1rem; border:1px solid rgba(23,107,209,.2); border-radius:14px; background:rgba(255,255,255,.82); color:var(--ink); padding:.7rem .85rem; text-decoration:none; backdrop-filter:blur(8px); }
.hero-important span { color:var(--primary-green); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.hero-important strong { overflow:hidden; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }

/* Classifieds catalogue: a responsive internal marketplace, not a feed. */
.ads-catalogue { padding: 0 0 clamp(3rem, 6vw, 5rem); }
.ads-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; margin-bottom:1rem; }
.ads-search-row input,.ads-filter-panel input,.ads-filter-panel select,.ads-toolbar select { width:100%; min-height:48px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); padding:.7rem .9rem; }
.ads-search-row input { min-height:54px; font-size:1rem; }
.ads-search-row > * { min-width:0; max-width:100%; }
.ads-search-row input { box-sizing:border-box; width:100%; }
.ads-search-row input:focus-visible { outline:2px solid var(--accent,#176bd1); outline-offset:-3px; }
/* Existing district CMS, compact editorial navigation and verified governance. */
#district-passport { scroll-margin-top:110px; }
.district-navigation-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.district-navigation-groups section { min-width:0; padding:16px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.site-shell .district-navigation-groups h2 { font-size:18px; line-height:1.3; margin:0 0 8px; }
.district-navigation-groups a { display:flex; align-items:center; min-height:44px; font-size:15px; line-height:1.4; overflow-wrap:anywhere; }
.district-governance > section { margin-block:28px; scroll-margin-top:110px; }
.governance-card { min-width:0; overflow-wrap:anywhere; }
.governance-card a { display:flex; align-items:center; min-height:44px; }
.governance-relationship { color:var(--accent,#176bd1); font-weight:600; }
.governance-directions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.governance-directions details { padding:12px 16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.governance-directions summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
@media(max-width:900px) { .district-navigation-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }.district-navigation-groups section { padding:12px; } }
@media(max-width:430px) { .district-navigation-groups { gap:10px; }.site-shell .district-navigation-groups h2 { font-size:16px; }.district-navigation-groups a { font-size:14px; }.governance-directions { grid-template-columns:1fr; } }
.editorial-story-strip { display:grid; grid-auto-flow:column; grid-auto-columns:220px; gap:16px; overflow-x:auto; overscroll-behavior-x:contain; padding:4px 4px 12px; scroll-snap-type:x proximity; }
.editorial-story-card { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:10px; min-width:0; padding:12px; border:1px solid var(--line); border-radius:16px; background:#fff; color:var(--ink); text-align:left; scroll-snap-align:start; cursor:pointer; }
.editorial-story-card img,.editorial-story-type { width:100%; height:130px; object-fit:cover; border-radius:10px; }
.editorial-story-type { display:flex; align-items:center; justify-content:center; background:#eaf3ff; color:#176bd1; padding:12px; font-size:20px; font-weight:700; }
.editorial-story-card strong { font-size:18px; line-height:1.35; overflow-wrap:anywhere; }
.editorial-story-card small { font-size:14px; line-height:1.4; }
.editorial-story-card:focus-visible,.editorial-story-viewer button:focus-visible { outline:3px solid #176bd1; outline-offset:2px; }
.editorial-story-backdrop { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(13,30,44,.6); }
.editorial-story-viewer { width:min(100%,680px); max-height:calc(100dvh - 40px); overflow:auto; touch-action:pan-y; background:#fff; border-radius:20px; box-shadow:0 20px 80px #0004; color:var(--ink); }
.editorial-story-viewer header,.editorial-story-viewer nav { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 20px; }
.editorial-story-viewer button { min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); cursor:pointer; font-size:14px; line-height:1.4; }
.editorial-story-viewer button:disabled { cursor:default; opacity:.55; }
.editorial-story-image { width:100%; height:240px; object-fit:cover; }
.editorial-story-typographic { display:flex; align-items:center; justify-content:center; min-height:160px; padding:24px; background:#eaf3ff; color:#176bd1; font-size:clamp(26px,5vw,40px); font-weight:700; }
.editorial-story-copy { padding:20px; overflow-wrap:anywhere; }
.editorial-story-copy h2 { font-size:clamp(24px,4vw,32px); line-height:1.2; margin:10px 0; }
.editorial-story-copy p { font-size:17px; line-height:1.6; }
.editorial-story-copy .button-blue { min-height:44px; background:#176bd1; color:#fff; border:1px solid #176bd1; }
@media(max-width:430px) { .editorial-story-strip { grid-auto-columns:180px; gap:12px; }.editorial-story-backdrop { padding:12px 12px calc(12px + env(safe-area-inset-bottom)); }.editorial-story-viewer { max-height:calc(100dvh - 24px - env(safe-area-inset-bottom)); }.editorial-story-viewer header,.editorial-story-viewer nav { padding:12px; }.editorial-story-copy { padding:16px; }.editorial-story-image { height:190px; } }
@media(prefers-reduced-motion:reduce) { .editorial-story-strip,.editorial-story-viewer { scroll-behavior:auto; animation:none; transition:none; } }
.ads-inline-cta { width:auto; white-space:nowrap; }
.ads-category-row { display:flex; gap:.5rem; overflow-x:auto; padding:0 0 .75rem; scrollbar-width:thin; }
.ads-category-row button,.ads-filter-toggle { flex:0 0 auto; min-height:42px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink-secondary); padding:.55rem .9rem; font-size:.9rem; font-weight:700; cursor:pointer; }
.ads-category-row button.active,.ads-category-row button:hover,.ads-filter-toggle:hover { border-color:var(--primary-green); background:var(--pale-green); color:var(--primary-green); }
.ads-toolbar { display:flex; align-items:end; gap:1rem; margin:0 0 1.25rem; padding-top:.5rem; border-top:1px solid var(--line); }
.ads-toolbar label { display:grid; gap:.3rem; color:var(--muted); font-size:.82rem; font-weight:700; }
.ads-toolbar select { min-width:170px; min-height:42px; }
.ads-count { margin-left:auto; padding-bottom:.65rem; color:var(--muted); font-size:.9rem; }
.ads-filter-panel { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; align-items:end; margin:0 0 1.25rem; padding:1rem; border:1px solid var(--line); border-radius:16px; background:var(--pale-green); }
.ads-filter-panel label { display:grid; gap:.35rem; color:var(--ink-secondary); font-size:.82rem; font-weight:700; }
.ads-filter-panel .ads-checkbox { display:flex; align-items:center; min-height:48px; gap:.55rem; }
.ads-checkbox input { width:18px; min-height:18px; accent-color:var(--primary-green); }
.ads-filter-panel .button { min-height:48px; }
.ads-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.ads-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; color:var(--ink); text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.ads-card:hover { border-color:#9ac4eb; box-shadow:0 12px 28px rgba(29,77,109,.11); transform:translateY(-2px); }
.ads-card-image,.ads-card-placeholder { width:100%; aspect-ratio:4/3; object-fit:cover; background:linear-gradient(135deg,#edf7ff,#dcefff); }
.ads-card-placeholder { display:grid; place-items:center; align-content:center; gap:.35rem; color:var(--primary-green); }
.ads-card-placeholder span { font-size:2.2rem; line-height:1; }
.ads-card-placeholder small { color:var(--ink-secondary); font-size:.82rem; font-weight:700; }
.ads-card-copy { display:flex; min-height:0; flex:1; flex-direction:column; align-items:stretch; padding:1rem; }
.ads-card-topline,.ads-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.ads-card-topline time { color:var(--muted); font-size:.78rem; white-space:nowrap; }
.ads-category { display:inline-flex; align-items:center; min-height:25px; border-radius:999px; background:var(--pale-green); color:var(--primary-green); padding:.2rem .55rem; font-size:.73rem; font-weight:800; }
.ads-card h2 { margin:.8rem 0 .45rem; font-size:clamp(1.15rem,1.55vw,1.35rem); line-height:1.18; letter-spacing:-.025em; }
.ads-params { min-height:1.3em; margin:0 0 .6rem; color:var(--ink-secondary); font-size:.86rem; line-height:1.35; }
.ads-description { display:-webkit-box; overflow:hidden; margin:0 0 1rem; color:var(--muted); font-size:.9rem; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.ads-card-bottom { margin-top:auto; padding-top:.7rem; border-top:1px solid var(--line); }
.ads-card-bottom strong,.ads-detail-price { color:var(--primary-green); font-size:1.04rem; }
.ads-card-bottom span { overflow:hidden; color:var(--muted); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
.ads-loading { padding:2rem 0; color:var(--muted); }
.ads-empty { padding-block:2rem 4rem; }
.ads-detail { padding-block:1.5rem 5rem; }
.ads-detail-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(20rem,.92fr); gap:clamp(1.5rem,4vw,4rem); margin-top:1.25rem; }
.ads-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; align-content:start; }
.ads-gallery img,.ads-gallery .ads-card-placeholder { width:100%; aspect-ratio:4/3; border-radius:14px; object-fit:cover; }
.ads-gallery img:first-child,.ads-gallery .ads-card-placeholder:first-child { grid-column:1/-1; }
.ads-detail-copy { display:flex; flex-direction:column; align-items:flex-start; }
.ads-detail-copy h1 { margin:.8rem 0 1rem; font-size:clamp(2.2rem,4.2vw,3.65rem); line-height:1.01; }
.ads-detail-price { font-size:clamp(1.35rem,2.2vw,1.8rem); }
.ads-location,.ads-detail-date,.ads-contact-note { margin:.6rem 0 0; color:var(--muted); font-size:.92rem; }
.ads-detail-description { margin:1.35rem 0 0; font-size:1.05rem; line-height:1.65; white-space:pre-wrap; }
.ads-detail-params { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; padding:0; list-style:none; }
.ads-detail-params li { border:1px solid var(--line); border-radius:999px; padding:.35rem .65rem; color:var(--ink-secondary); font-size:.88rem; }
.ads-detail-extra { margin:.25rem 0 1rem; color:var(--ink-secondary); }
.ads-contact-button { width:auto; margin-top:1.25rem; border:0; cursor:pointer; }
.ads-contact-reveal { display:grid; gap:.3rem; margin-top:1.25rem; padding:1rem; border:1px solid #9ac4eb; border-radius:12px; background:var(--pale-green); }
.ads-contact-reveal span { overflow-wrap:anywhere; }
.ads-similar { margin-top:clamp(3rem,6vw,5rem); }
.ads-similar h2 { margin-bottom:1.25rem; }
@media (min-width:1440px) { .ads-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:900px) { .ads-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.ads-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); }.ads-detail-layout { grid-template-columns:1fr; }.ads-gallery { max-width:720px; } }
@media (max-width:600px) { .ads-header-cta,.ads-inline-cta { width:100%; }.ads-search-row { grid-template-columns:1fr; }.ads-toolbar { flex-wrap:wrap; align-items:end; }.ads-toolbar label { flex:1; }.ads-toolbar select { min-width:0; }.ads-count { width:100%; margin-left:0; padding-bottom:0; }.ads-filter-panel { grid-template-columns:1fr; }.ads-grid { grid-template-columns:1fr; }.ads-card h2 { font-size:1.2rem; }.ads-detail { padding-top:1rem; }.ads-gallery { grid-template-columns:1fr; }.ads-gallery img:first-child,.ads-gallery .ads-card-placeholder:first-child { grid-column:auto; }.ads-contact-button { width:100%; }.ads-detail-copy h1 { font-size:clamp(2rem,11vw,2.7rem); } }

/* Shared public typography and density system. */
.site-shell {
  color: var(--ink);
  font-size: var(--type-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
}
.site-shell h1,
.site-shell h2,
.site-shell h3 { text-wrap: balance; }
.site-shell h1 { font-size: var(--type-page); line-height: var(--leading-title); }
.site-shell h2 { font-size: var(--type-section); line-height: var(--leading-heading); }
.site-shell h3 { font-size: var(--type-subhead); line-height: var(--leading-card); }
.site-shell p { line-height: var(--leading-body); }
.page-header { min-height: clamp(14rem, 21vw, 18rem); padding-block: clamp(2.5rem, 5vw, 4.5rem) 1.5rem; }
.page-header h1 { margin: .45rem 0 .75rem; font-size: var(--type-page); line-height: var(--leading-title); }
.page-intro { max-width: 48rem; margin: 0; color: var(--ink-secondary); font-size: var(--type-body); line-height: var(--leading-secondary); }
.eyebrow,
.site-shell time,
.site-shell small,
.status,
.ads-category { font-size: var(--type-meta); line-height: var(--leading-meta); }
.home-presentation .home-section { margin-block: 0; padding-block: var(--section-gap); }
.home-presentation .home-section-heading { min-height: 0; margin-bottom: 1.25rem; }
.home-presentation .home-section-subtitle { margin-block: .4rem 1.25rem; font-size: var(--type-secondary); line-height: var(--leading-secondary); }
.home-section-heading h2,
.about-district-copy h2 { font-size: var(--type-section); line-height: var(--leading-heading); }
.home-news-card h3,
.district-card h3,
.home-event-card h3,
.news-row h3,
.event-row h3,
.problem-row h3,
.public-video-card h2,
.ads-card h2 { font-size: var(--type-card); line-height: var(--leading-card); }
.home-news-copy,
.district-card,
.home-event-card > div,
.public-video-card > div,
.places-list article { padding: var(--card-padding); }
.district-card,
.home-event-card,
.home-news-card,
.public-video-card,
.places-list article,
.ads-card { align-content: start; border-radius: var(--radius-card); }
.district-card,
.home-event-card > div,
.home-news-copy,
.public-video-card > div,
.places-list article,
.ads-card-copy { align-items: flex-start; }
.listing-page { padding-block: 1rem var(--section-gap); }
.filter-bar { margin-block: 0 1rem; }
.news-row,
.event-row,
.problem-row { align-items: start; padding-block: clamp(1.25rem, 2.5vw, 2rem); }
.news-row p,
.event-row p,
.problem-row p { font-size: var(--type-secondary); line-height: var(--leading-secondary); }
.empty-state { min-height: 11rem; padding: clamp(1.5rem, 3vw, 2.25rem); }
.empty-state h2 { margin: .75rem 0 .5rem; font-size: var(--type-subhead); line-height: var(--leading-card); }
.problem-form-page { padding-block: 2rem var(--section-gap); }
.not-found { min-height: min(62vh, 34rem); padding-block: var(--section-gap); }
.not-found > span { font-size: clamp(4.5rem, 10vw, 7.5rem); }
.not-found h1 { font-size: var(--type-page); }
.article-body p,
.page-content p,
.news-detail-body p { margin-block: 0; }
.article-body p + p,
.page-content p + p,
.news-detail-body p + p { margin-top: 1rem; }
.article-body :is(h2,h3),
.page-content :is(h2,h3),
.news-detail-body :is(h2,h3) { margin: 1.75rem 0 .65rem; }

/* Consistent controls: shapes may vary by role, sizing and type do not. */
.civic-button,
.button,
.portal-report-button,
.catalogue-filter-bar a,
.ads-category-row button,
.ads-filter-toggle,
.home-filter-links a,
.text-link {
  font-size: var(--type-control);
  font-weight: var(--weight-strong);
  line-height: 1.2;
}
.civic-button,
.button,
.portal-report-button { min-height: var(--control-height); border-radius: var(--radius-control); }
.catalogue-filter-bar { gap: .5rem; padding-bottom: .6rem; }
.catalogue-filter-bar a,
.ads-category-row button,
.ads-filter-toggle { min-height: 2.625rem; padding: .55rem .85rem; }

/* Home hero: keep the composition while removing dead vertical space. */
.home-presentation .civic-hero { height: auto; min-height: clamp(32rem, 44vw, 38rem); }
.home-presentation .civic-hero-inner { min-height: inherit; padding-block: clamp(5.25rem, 8vh, 6rem) 2.5rem; }
.civic-hero-content h1,
.civic-hero h1 { margin-bottom: 1rem; font-size: var(--type-display); line-height: 1.02; }
.civic-hero-copy > p { margin-bottom: 1.5rem; font-size: var(--type-body); line-height: var(--leading-secondary); }
.civic-actions { gap: .625rem; }
.civic-actions a { min-height: 3rem; padding: .7rem .8rem; border-radius: var(--radius-control); font-size: var(--type-control); }
.civic-context { gap: .5rem; margin-top: .75rem; }
.civic-context > span { min-height: 2.375rem; padding: .5rem .75rem; border-radius: var(--radius-control); font-size: var(--type-meta); line-height: 1.2; }
.currency-symbol { color: var(--primary-green); font-size: 1rem; font-weight: 800; line-height: 1; }
.hero-important { margin-top: .75rem; padding: .65rem .8rem; }
.hero-important strong {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--type-secondary);
  line-height: var(--leading-card);
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* District cards follow the same density and hierarchy. */
.district-passport { margin-bottom: var(--section-gap); }
.district-passport > section,
.district-passport > div > section { margin-block: var(--section-gap); }
.district-profile-card { padding: var(--card-padding); }
.district-grid article,
.district-stats article { gap: .75rem; padding: var(--card-padding); }
.district-stats article { min-height: 12rem; }
.district-profile-card p,
.district-grid p { line-height: var(--leading-body); }

/* Classifieds use the same public type and spacing scale. */
.ads-catalogue { padding-bottom: var(--section-gap); }
.ads-card-copy { padding: var(--card-padding); }
.ads-card h2 { margin: .7rem 0 .4rem; }
.ads-description { margin-bottom: .8rem; font-size: var(--type-secondary); line-height: var(--leading-secondary); }
.ads-params,
.ads-card-bottom span,
.ads-card-topline time { font-size: var(--type-meta); line-height: var(--leading-meta); }
.ads-detail-description { font-size: var(--type-body); line-height: var(--leading-body); }
.ads-similar { margin-top: var(--section-gap); }

@media (max-width: 760px) {
  :root {
    --type-display: clamp(2.625rem, 11.6vw, 3rem);
    --type-page: clamp(2rem, 9vw, 2.25rem);
    --type-section: clamp(1.625rem, 7vw, 1.875rem);
    --type-subhead: clamp(1.25rem, 5.6vw, 1.5rem);
    --type-card: clamp(1.125rem, 5vw, 1.25rem);
    --type-body: clamp(1rem, 4.35vw, 1.0625rem);
    --type-secondary: .9375rem;
    --type-meta: .8125rem;
    --type-control: .9375rem;
    --section-gap: 2.25rem;
    --card-padding: 1rem;
  }
  body { padding-bottom: calc(4.75rem + env(safe-area-inset-bottom)); }
  .portal-header { padding-block: .625rem; }
  .portal-header-inner {
    width: calc(100% - 2.5rem);
    min-height: 3.75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    margin-inline: auto;
    padding: .5rem .625rem;
  }
  .portal-brand { width: 100%; min-width: 0; gap: .5rem; }
  .portal-brand img { width: 2.125rem; height: 2.125rem; flex: 0 0 auto; }
  .portal-brand span { min-width: 0; }
  .portal-brand strong { max-width: none; overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
  .portal-header-actions { justify-self: end; gap: .75rem; }
  .portal-search-button { display: none; }
  .portal-report-button,
  .portal-menu-button { width: 2.75rem; min-width: 2.75rem; height: 2.75rem; padding: 0; }
  .portal-mobile-menu {
    width: calc(100% - 2.5rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
    max-height: calc(100dvh - 5.5rem);
    margin: .5rem auto 0;
    padding: .5rem;
    overflow-y: auto;
  }
  .portal-mobile-menu a { min-height: 2.75rem; padding: .65rem .75rem; font-size: var(--type-control); }
  .page-header { min-height: 0; padding-block: 1.5rem 1rem; }
  .page-header h1 { margin-block: .35rem .6rem; }
  .page-header-action { margin-top: 1rem; padding-bottom: 0; }
  .filter-bar { margin-bottom: .75rem; }
  .listing-page { padding-block: .5rem var(--section-gap); }
  .news-row,
  .event-row,
  .problem-row { gap: 1rem; padding-block: 1.25rem; }
  .empty-state { min-height: 9rem; padding: 1.25rem 1rem; }
  .problem-form-page { padding-block: 1.5rem var(--section-gap); }
  .not-found { min-height: 56vh; }
  .home-presentation .civic-hero { min-height: 0; }
  .home-presentation .civic-hero-inner { min-height: 0; padding-block: 6.75rem 2rem; }
  .civic-hero-copy > p { margin-bottom: 1.25rem; }
  .civic-actions { gap: .625rem; }
  .civic-actions a { min-height: 3rem; padding: .65rem .7rem; font-size: .875rem; }
  .civic-context {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .5rem;
    overflow: visible;
  }
  .civic-context > span { grid-column: span 3; justify-content: flex-start; min-width: 0; padding-inline: .625rem; font-size: .8125rem; white-space: nowrap; }
  .civic-context > .currency-chip { grid-column: span 2; justify-content: center; gap: .3rem; padding-inline: .35rem; }
  .hero-important { grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .5rem; }
  .hero-important span,
  .hero-important strong { grid-column: 1; }
  .hero-important svg { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .home-presentation .home-section { padding-block: var(--section-gap); }
  .home-presentation .home-section-heading { margin-bottom: 1rem; }
  .district-passport { padding-inline: 1.25rem; }
  .district-passport > section,
  .district-passport > div > section { margin-block: var(--section-gap); }
  .district-stats article { min-height: 0; }
  .ads-inline-cta { display: none; }
  .ads-search-row input { min-height: var(--control-height); }
  .ads-toolbar { gap: .75rem; margin-bottom: 1rem; }
  .portal-bottom-nav { height: calc(4.25rem + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }
  .portal-bottom-nav a { gap: .2rem; font-size: .625rem; }
}

@media (max-width: 390px) {
  .portal-header-inner,
  .portal-mobile-menu { width: calc(100% - 2.25rem); }
  .portal-header-actions { gap: .625rem; }
  .civic-context > span { font-size: clamp(.8125rem, 3.6vw, .875rem); }
  .currency-symbol { font-size: .9375rem; }
}

.portal-sitemap {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  padding-block: 1rem var(--section-gap);
}
.portal-sitemap section {
  padding: 1.5rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--white);
}
.portal-sitemap h2 { margin-bottom: 1rem; font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
.portal-sitemap nav { display: grid; }
.portal-sitemap a {
  min-height: 3rem;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--line);
  color: var(--ink-secondary);
  font-size: var(--type-control);
  font-weight: 700;
  text-decoration: none;
}
.portal-sitemap a:hover { color: var(--primary-green); }

@media (max-width: 820px) {
  body { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }

  .portal-bottom-nav {
    z-index: 310;
    height: calc(4.5rem + env(safe-area-inset-bottom));
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 0 .25rem env(safe-area-inset-bottom);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -8px 28px rgba(20, 26, 20, .08);
  }

  .portal-bottom-nav > a,
  .portal-bottom-nav > button {
    position: relative;
    min-width: 0;
    height: 4.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    margin: 0;
    padding: .35rem .1rem .3rem;
    border: 0;
    border-radius: .7rem;
    background: transparent;
    color: var(--muted);
    font-size: clamp(13px, 3.25vw, 14px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.02em;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
  }

  .portal-bottom-nav > a svg,
  .portal-bottom-nav > button svg { width: 25px; height: 25px; }

  .portal-bottom-nav > :is(a, button).active {
    background: rgba(31, 115, 235, .07);
    color: var(--focus);
  }

  .portal-bottom-nav > :is(a, button).active::before {
    content: "";
    position: absolute;
    top: 0;
    width: 1.75rem;
    height: 2px;
    border-radius: 0 0 999px 999px;
    background: var(--focus);
  }

  .portal-bottom-action {
    width: auto;
    height: auto;
    display: contents;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
  }

  .portal-more-backdrop {
    position: fixed;
    z-index: 300;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 1rem 1rem calc(5.25rem + env(safe-area-inset-bottom));
    background: rgba(20, 26, 20, .42);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
  }

  .portal-more-sheet {
    width: min(100%, 32rem);
    max-height: min(70vh, 36rem);
    overflow-y: auto;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 1.25rem;
    background: var(--white);
    box-shadow: 0 24px 64px rgba(20, 26, 20, .24);
  }

  .portal-more-sheet > header {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 .25rem .75rem;
  }

  .portal-more-sheet h2 { margin: 0; font-size: 1.5rem; letter-spacing: -.035em; }
  .portal-more-close {
    min-height: 2.5rem;
    padding: .5rem .75rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--canvas);
    color: var(--ink-secondary);
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
  }

  .portal-more-sheet nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .portal-more-link {
    min-height: 3.25rem;
    display: flex;
    align-items: center;
    padding: .7rem .8rem;
    border: 1px solid var(--line);
    border-radius: .8rem;
    background: var(--canvas);
    color: var(--ink-secondary);
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
  }
  .portal-more-link-primary { border-color: rgba(43, 125, 31, .24); background: var(--pale-green); color: var(--primary-green); }

  .portal-sitemap { grid-template-columns: 1fr; gap: .75rem; }
}

@media (max-width: 390px) {
  .portal-bottom-nav { padding-inline: .1rem; }
  .portal-bottom-nav > a,
  .portal-bottom-nav > button { font-size: 13px; }
  .portal-more-backdrop { padding-inline: .75rem; }
  .portal-more-sheet nav { grid-template-columns: 1fr; }
}

/* Final public-route density and event detail pass. */
.page-header {
  min-height: 0;
  padding-block: clamp(2rem, 4vw, 3.5rem) 1rem;
}
.event-row h3 a { color: inherit; text-decoration: none; }
.event-row h3 a:hover,
.event-row h3 a:focus-visible { color: var(--primary-green); }
.event-row .text-link { margin-top: .65rem; }
.event-detail {
  max-width: 58rem;
  padding-block: clamp(2rem, 5vw, 4.5rem) var(--section-gap);
}
.event-detail > header { display: grid; gap: .9rem; margin-top: 1.25rem; }
.event-detail h1 {
  max-width: 18ch;
  margin: 0;
  font-size: var(--type-page);
  line-height: var(--leading-title);
}
.event-detail-meta { display: grid; gap: .45rem; color: var(--ink-secondary); font-size: var(--type-secondary); }
.event-detail-image {
  width: 100%;
  max-height: 34rem;
  margin-top: 1.75rem;
  border-radius: var(--radius-card);
  object-fit: cover;
}
.event-detail-body { max-width: 46rem; margin-top: 2rem; }
.event-detail-body p { margin: 0; font-size: var(--type-body); line-height: var(--leading-body); }
.event-detail-source { margin: 1rem 0 0; color: var(--muted); font-size: var(--type-meta); }
.daily-fact { display: grid; gap: .2rem; }

@media (max-width: 760px) {
  .page-header { padding-block: 1.5rem 1rem; }
  .event-detail { padding-block: 1.25rem var(--section-gap); }
  .event-row { grid-template-columns: 3.5rem minmax(0, 1fr); }
  .event-row .event-price { grid-column: 2; justify-self: start; }
}

/* The inherited production bundle references Inter files that are not shipped.
   Keep rendering deterministic and avoid failed font requests. */
html,
body,
body * {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Editorial UI contract: controls introduced by deterministic overrides use
   the same explicit button/input primitives as the recovered admin bundle. */
.admin-main .admin-secondary,
.admin-editor .admin-secondary,
.editorial-workspace .admin-secondary {
  appearance: none;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border: 1px solid #cbd7e5;
  border-radius: 10px;
  background: #fff;
  color: #18324f;
  font-size: 14px;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}
.admin-main .admin-secondary:hover,
.admin-editor .admin-secondary:hover,
.editorial-workspace .admin-secondary:hover { border-color: #176bd1; color: #0d5ebf; background: #f5f9ff; }
.admin-role-cards article > .admin-secondary { flex: 0 0 auto; }
.permission-groups label > span { display: grid; gap: 2px; color: #1b2b3d; font-weight: 700; }
.permission-groups label > span small { color: #708096; font-family: ui-monospace, SFMono-Regular, Consolas, monospace !important; font-size: 11px; font-weight: 500; }
.editorial-filters select,
.admin-editor select {
  appearance: none;
  padding-right: 38px;
  background-color: #fff;
  background-image: linear-gradient(45deg, transparent 50%, #607086 50%), linear-gradient(135deg, #607086 50%, transparent 50%);
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.admin-editor-editorial { width: min(1040px, calc(100vw - 48px)); }
.admin-editor-editorial form { display: grid; gap: 18px; }
.admin-form-section {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid #dce4ed;
  border-radius: 14px;
  background: #fff;
}
.admin-form-section > h3 { margin: 0; color: #162538; font-size: 16px; }
.admin-form-section .admin-form-grid { padding: 0; }
.admin-form-advanced { padding: 0; overflow: hidden; }
.admin-form-advanced > summary {
  padding: 16px 18px;
  color: #324154;
  font-weight: 750;
  cursor: pointer;
}
.admin-form-advanced[open] > summary { border-bottom: 1px solid #dce4ed; }
.admin-form-advanced > .admin-form-grid { padding: 18px; }
.admin-record-preview { display: grid; grid-template-columns: minmax(0, 1fr) 390px; align-items: start; gap: 18px; padding: 18px; overflow: auto; }
.admin-record-preview section { display: grid; gap: 8px; min-width: 0; }
.admin-record-preview section > span { color: #667386; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.admin-record-preview iframe { width: 100%; min-height: min(720px, 75vh); border: 1px solid #dce4ed; border-radius: 12px; background: #fff; }
.admin-record-preview-mobile { width: 390px; max-width: 100%; }
.editorial-review-checks { display: grid; gap: 8px; padding: 14px; border-radius: 12px; background: #f4f7fb; color: #324154; font-size: 14px; }
.editorial-drawer-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.editorial-drawer-actions > * { min-height: 42px; }

.article-action-cta,
.event-action-cta { margin-top: 24px; width: fit-content; }
.source-box > a { color: #176bd1; font-weight: 700; text-underline-offset: 3px; }

@media (max-width: 760px) {
  .admin-editor-editorial { width: 100vw; }
  .admin-form-section { padding: 14px; }
  .admin-record-preview { grid-template-columns: 1fr; }
  .admin-record-preview-mobile { width: 100%; }
  .article-action-cta,
  .event-action-cta { width: 100%; justify-content: center; }
}
/* Community directory reuses portal cards and rhythm. */
.community-directory,.community-place-detail{padding-block:32px 48px}
.community-search{width:100%;padding:14px 16px;border:1px solid #d9e1e7;border-radius:12px;background:#fff;font:inherit;margin-bottom:20px}
.community-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.community-place-card{display:flex;flex-direction:column;align-items:flex-start;padding:22px;background:#fff;border:1px solid #d9e1e7;border-radius:16px;color:inherit;text-decoration:none;min-width:0}
.community-place-card h2{font-size:clamp(20px,2vw,24px);line-height:1.3;margin:10px 0}
.community-place-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin-bottom:16px}
.community-place-detail{max-width:960px}.community-place-detail>span{display:block;margin-top:20px}.community-place-detail>img{width:100%;max-height:520px;object-fit:cover;border-radius:16px;margin-block:16px}.community-place-detail p{white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:900px){.community-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.community-place-grid{grid-template-columns:1fr}.community-directory,.community-place-detail{padding-block:24px 32px}}
.community-ad-form { display:grid; gap:18px; max-width:780px; margin:24px auto 40px; padding:clamp(18px,3vw,32px); background:#fff; border:1px solid #dce5ed; border-radius:18px; }
.community-ad-form label { display:flex; flex-direction:column; gap:8px; font-size:16px; line-height:1.5; font-weight:600; }
.community-ad-form input:not([type=checkbox]), .community-ad-form select, .community-ad-form textarea { box-sizing:border-box; width:100%; min-width:0; padding:12px; border:1px solid #bccbd8; border-radius:9px; background:#fff; color:#193247; font:inherit; }
.community-ad-form input[type=checkbox] { width:20px; height:20px; min-height:20px; margin:0; accent-color:#176bd1; flex:none; }
.community-ad-form label:has(input[type=checkbox]) { display:flex; flex-direction:row; align-items:flex-start; font-weight:400; }
.community-ad-form fieldset { min-width:0; padding:16px; display:grid; gap:16px; border:1px solid #dce5ed; border-radius:12px; }
.community-ad-form button { min-height:48px; border-radius:10px; }
.community-directory .directory-categories { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0; }
.community-directory .directory-categories a { flex:0 1 auto; min-height:42px; padding:9px 14px; border:1px solid #dce5ed; border-radius:999px; background:#fff; font-size:15px; line-height:1.4; }
.community-directory .directory-categories a.active { color:#176bd1; border-color:#176bd1; background:#eaf3ff; }
/* Density pass: only public page components, never admin or the home hero. */
.directory-primary-categories { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.directory-primary-categories :is(a,button),.directory-all-categories a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:9px 13px; border:1px solid #dce5ed; border-radius:999px; background:#fff; color:var(--ink); font:inherit; font-size:15px; line-height:1.35; text-decoration:none; cursor:pointer; overflow-wrap:anywhere; }
.directory-filter-disclosure .active { color:#176bd1; border-color:#176bd1; background:#eaf3ff; }
.directory-all-categories { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; padding:12px; margin:0 0 12px; border:1px solid var(--line); border-radius:14px; background:#f5f9ff; }
.directory-selected-category { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:8px 0; font-size:14px; }
.directory-selected-category a { display:inline-flex; align-items:center; min-height:44px; flex-shrink:0; color:#176bd1; font-weight:700; }
.community-place-detail > h1 { margin:10px 0 18px; overflow-wrap:anywhere; }
.community-place-detail > p { margin:10px 0; }
.community-place-detail .place-phone a { display:inline-flex; align-items:center; min-height:44px; color:#176bd1; text-underline-offset:3px; }
.event-row { grid-template-columns:90px minmax(0,1fr); }
.event-row-content { min-width:0; }
.event-row-meta { display:flex; align-items:flex-start; flex-wrap:wrap; gap:8px 18px; color:var(--muted); font-size:var(--type-secondary); line-height:1.45; }
.event-row-meta > span { display:flex; align-items:flex-start; gap:6px; min-width:0; }
.event-row-meta svg { flex-shrink:0; margin-top:3px; }
.event-row-time { white-space:nowrap; }
.event-row-place { flex:1 1 180px; overflow-wrap:anywhere; }
.event-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; margin-top:8px; }
.event-row-actions .text-link { display:inline-flex; align-items:center; min-height:44px; }
.event-row .event-price { font-size:14px; line-height:1.4; }
.news-source-attribution { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.news-source-attribution a { display:inline-flex; align-items:center; min-height:44px; }
.portal-footer-grid { grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr)); gap:28px; margin-bottom:28px; }
.portal-footer-grid:has(> div:nth-child(4)) { grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr)); }
.portal-footer-grid > div { min-width:0; }
.portal-footer-grid > .portal-footer-links a { min-height:44px; padding-block:7px; font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.portal-footer-intro p { font-size:15px; line-height:1.6; }
.portal-footer-label { font-size:13px; margin-bottom:8px; }
.portal-footer-bottom { font-size:13px; text-transform:none; }
.editorial-footer .portal-footer-grid,.editorial-footer .portal-footer-grid:has(> div:nth-child(4)) { grid-template-columns:minmax(0,1.15fr) repeat(3,minmax(0,1fr)); gap:24px; margin-bottom:16px; }
.editorial-footer .portal-footer-brand { font-size:20px; line-height:1.3; text-transform:none; }
.editorial-footer .portal-footer-intro p { margin-top:10px; max-width:28ch; }
.editorial-footer .portal-footer-links { display:flex; flex-direction:column; min-width:0; }
.editorial-footer .portal-footer-links a { display:flex; align-items:center; min-height:44px; padding:6px 0; font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.editorial-footer-service { display:flex; flex-wrap:wrap; gap:4px 24px; padding-block:8px; border-top:1px solid var(--line); }
.editorial-footer-service a { display:flex; align-items:center; min-height:44px; font-size:14px; }
.editorial-search-alternatives { display:flex; flex-wrap:wrap; gap:12px; padding-bottom:32px; }
@media(max-width:900px) {
  .editorial-footer .portal-footer-grid,.editorial-footer .portal-footer-grid:has(> div:nth-child(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
  .editorial-footer .portal-footer-intro { grid-column:1/-1; }
  .editorial-footer .portal-footer-intro p { max-width:44ch; }
}
@media(max-width:900px) {
  .portal-footer-grid,.portal-footer-grid:has(> div:nth-child(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-footer-intro { grid-column:1/-1; }
}
@media(max-width:760px) {
  .site-shell .public-main { --type-page:clamp(2rem,8.7vw,2.5rem); --type-section:clamp(1.5rem,6.5vw,1.875rem); --type-subhead:clamp(1.25rem,5.3vw,1.5rem); --type-meta:.875rem; --type-secondary:1rem; }
  .public-main :is(h1,h2,h3) { overflow-wrap:anywhere; }
  .public-main > .page-header { min-height:0; padding-block:18px 14px; }
  .public-main > .page-header h1 { margin:6px 0 10px; font-size:var(--type-page); }
  .public-main > .page-header .eyebrow { margin-bottom:6px; font-size:13px; }
  .public-main > .page-header .page-intro { font-size:16px; line-height:1.5; }
  .public-main > .listing-page { padding-block:4px 28px; }
  .public-main .catalogue-filter-bar a { min-height:44px; font-size:15px; }
  .public-main .news-row { gap:14px; padding-block:18px; }
  .public-main .news-meta { font-size:13px; line-height:1.5; letter-spacing:0; }
  .public-main .event-row { grid-template-columns:52px minmax(0,1fr); gap:12px; padding-block:16px; }
  .public-main .event-date { padding:4px 8px 4px 0; }
  .public-main .event-date strong { font-size:30px; line-height:1.1; }
  .public-main .event-date span { font-size:13px; line-height:1.5; }
  .public-main .event-row h3 { margin:6px 0 8px; font-size:20px; line-height:1.3; }
  .public-main .event-row .tag { font-size:13px; }
  .event-row-meta { display:grid; gap:6px; font-size:15px; }
  .event-row-actions { gap:4px 14px; margin-top:4px; }
  .public-main .problem-form-page { padding-block:12px 28px; }
  .problem-form-page > .back-link { min-height:44px; margin-bottom:4px; font-size:14px; }
  .problem-form-page .form-heading { gap:12px; padding-bottom:16px; align-items:start; }
  .problem-form-page .form-progress { margin:0; }
  .problem-form-page .form-progress span { width:32px; height:32px; font-size:14px; }
  .problem-form-page .form-heading .eyebrow { margin:0 0 8px; font-size:13px; line-height:1.4; }
  .problem-form-page .form-heading h1 { margin:0 0 10px; font-size:var(--type-page); }
  .problem-form-page .form-heading > div:first-child > p:last-child { margin:0; font-size:16px; line-height:1.5; }
  .problem-form-page .problem-form { margin-top:16px; padding-block:0 20px; }
  .problem-form-page .form-step { gap:16px; }
  .problem-form-page .step-kicker { margin:0; padding-bottom:8px; font-size:13px; }
  .problem-form-page .form-step > label { font-size:16px; }
  .problem-form-page .form-step :is(button,select,input:not([type=checkbox])) { min-height:44px; }
  .public-main .community-directory { padding-block:14px 28px; }
  .community-directory .community-search { min-height:48px; margin-bottom:0; padding:12px 14px; font-size:16px; }
  .directory-primary-categories { gap:6px; }
  .directory-all-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:10px; }
  .directory-all-categories a { border-radius:10px; }
  .community-directory .directory-categories a { min-height:44px; }
  .community-place-grid { gap:14px; margin-top:16px; }
  .community-place-card { padding:16px; }
  .community-place-card h2 { margin:8px 0; font-size:21px; }
  .community-place-card > span { font-size:14px; }
  .community-place-card > p { margin:0; font-size:16px; }
  .public-main .community-place-detail { padding-block:18px 28px; }
  .community-place-detail > .text-link { display:inline-flex; align-items:center; min-height:44px; }
  .community-place-detail > span { margin-top:8px; font-size:14px; }
  .community-place-detail > h1 { font-size:var(--type-page); line-height:1.15; margin:8px 0 16px; }
  .community-place-detail > p { font-size:16px; line-height:1.55; }
  .public-main .article-page { padding-block:12px 28px; }
  .article-page > .back-link { min-height:44px; margin-bottom:12px; font-size:14px; }
  .article-page > header { margin-bottom:20px; }
  .site-shell .article-page h1 { font-size:var(--type-page); line-height:1.15; margin:12px 0 16px; }
  .article-page .article-lead { font-size:18px; line-height:1.55; margin:0; }
  .article-page > figure { margin-bottom:24px; }
  .article-page figcaption { font-size:13px; line-height:1.5; }
  .article-page .article-layout { gap:24px; }
  .article-page .article-body { font-size:17px; line-height:1.65; }
  .article-layout aside > span { font-size:13px; }
  .article-page .source-box { margin-top:12px; padding:12px; }
  .portal-mobile-menu { gap:4px; margin-top:6px; padding:8px; max-height:calc(100dvh - 160px - env(safe-area-inset-bottom)); }
  .portal-mobile-menu a { min-height:44px; font-size:15px; line-height:1.35; padding:8px 10px; overflow-wrap:anywhere; }
  .portal-footer { padding-block:28px 18px; }
  .portal-footer-grid { gap:20px 16px; margin-bottom:20px; }
  .portal-footer-brand { font-size:20px; }
  .portal-footer-intro p { max-width:32rem; margin:12px 0 0; font-size:14px; }
  .portal-footer-grid > .portal-footer-links a { font-size:14px; }
  .portal-footer-bottom { gap:10px; font-size:13px; line-height:1.5; }
  .portal-footer-bottom span { align-items:flex-start; }
  .portal-footer-bottom svg { flex-shrink:0; margin-top:2px; }
}
.district-collection { padding-top:38px; padding-bottom:40px; }
.district-content-filters { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.district-content-filters.section-wrap { margin-inline:auto; }

/* Mobile hotfix: only home utility chips/actions and ad category disclosure. */
.home-presentation .civic-context > .hero-weather-chip { max-width:100%; min-width:0; white-space:normal; align-items:center; }
.hero-weather-chip > svg,.hero-weather-temperature { flex-shrink:0; }
.hero-weather-temperature { white-space:nowrap; font:inherit; font-weight:760; }
.hero-weather-description { min-width:0; white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
.ads-category-controls { display:flex; align-items:flex-start; gap:.5rem; min-width:0; }
.ads-category-controls .ads-category-row { flex:1; min-width:0; }
.ads-category-more,.ads-extra-categories button,.ads-selected-category button { min-height:44px; border:1px solid var(--line); border-radius:var(--radius-control); background:#fff; color:var(--ink-secondary); padding:.55rem .85rem; font:inherit; font-size:var(--type-control); font-weight:700; cursor:pointer; }
.ads-category-more { flex:0 0 auto; }
.ads-category-more.active,.ads-extra-categories button.active { border-color:var(--primary-green); background:var(--pale-green); color:var(--primary-green); }
.ads-extra-categories { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:.5rem; margin:0 0 1rem; padding:.75rem; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--pale-green); }
.ads-extra-categories button { white-space:normal; overflow-wrap:anywhere; text-align:left; }
.ads-selected-category { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin:0 0 1rem; font-size:var(--type-secondary); }
@media(max-width:600px){
  .ads-extra-categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ads-extra-categories button { min-width:0; min-height:48px; padding:.5rem .65rem; }
  .home-presentation .civic-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-presentation .civic-actions a { width:100%; min-width:0; min-height:48px; justify-content:center; }
  .home-presentation .civic-context > .hero-weather-chip { grid-column:span 3; width:auto; }
}
.district-content-filters a { display:inline-flex; align-items:center; min-height:42px; padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); text-decoration:none; font-size:15px; }
.district-content-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.district-content-card { display:grid; align-content:start; gap:10px; padding:20px; border:1px solid var(--line); border-radius:16px; background:#fff; color:var(--ink); text-decoration:none; }
.district-content-card img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:10px; }
.district-content-card h2 { margin:0; font-size:clamp(21px,2vw,26px); line-height:1.25; }
.district-content-card p { margin:0; font-size:17px; line-height:1.6; }
.district-route-detail { max-width:900px; padding-top:40px; padding-bottom:40px; }
.district-route-detail > img { width:100%; border-radius:16px; }
.district-route-detail li { margin:18px 0; }
.district-photo-pair { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.district-photo-pair figure { margin:0; }
.district-photo-pair img { width:100%; height:auto; border-radius:12px; }
.district-source-note { font-size:14px; color:var(--muted); }
@media(max-width:900px) { .district-content-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .district-content-grid,.district-photo-pair { grid-template-columns:1fr; } }
.civic-participation{max-width:1000px;padding-block:36px 48px}.civic-participation h1{margin:18px 0}.civic-disclaimer{font-size:16px;color:#52616c;line-height:1.6}.civic-tools,.civic-vote-options{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.civic-community-form{max-width:720px;display:grid;gap:18px;margin-top:24px}.civic-community-form label{display:grid;gap:8px;font-size:17px}.civic-community-form input,.civic-community-form textarea,.civic-community-form select,.civic-tools input{width:100%;max-width:100%;box-sizing:border-box;border:1px solid #d7dfe6;border-radius:10px;background:white;padding:12px 14px;font:inherit}.civic-community-form .civic-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.5}.civic-consent input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;margin-top:3px;padding:0}.civic-initiative-detail img{max-width:100%;border-radius:14px}.civic-community-form button:disabled{opacity:.65}.civic-qa-tools{display:grid;gap:12px}.civic-qa-tools input{margin-left:12px;max-width:160px}.civic-qa-tools button{justify-self:start}@media(max-width:600px){.civic-participation{padding-block:24px 36px}.civic-tools{flex-direction:column}.civic-tools .civic-button{justify-content:center}.civic-vote-options{flex-direction:column}}
.civic-community-form button.civic-button,.civic-vote-options button.civic-button{appearance:none;border:1px solid #d7dfe6;font:inherit;cursor:pointer;min-height:46px;border-radius:10px}.civic-community-form button.civic-button-primary{border-color:transparent}.civic-vote-options button:disabled{opacity:.6;cursor:default}

/* Editorial-only page shell: one document scroll, not a modal over a registry. */
/* Scope box sizing to legacy modal: grid min-content plus content-box padding
   previously pushed the right edge outside narrow viewports. */
.admin-editor-backdrop { box-sizing:border-box; grid-template-columns:minmax(0,1fr); min-width:0; }
.admin-editor-backdrop > .admin-editor { box-sizing:border-box; width:min(100%,980px); max-width:100%; min-width:0; justify-self:center; }
.admin-editor-backdrop > .admin-editor *, .admin-editor-backdrop > .admin-editor *::before, .admin-editor-backdrop > .admin-editor *::after { box-sizing:border-box; }
.admin-editor-backdrop .admin-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.admin-editor-backdrop .admin-field, .admin-editor-backdrop header > div { min-width:0; overflow-wrap:anywhere; }
.admin-editor-backdrop :is(input,select,textarea) { min-width:0; max-width:100%; }
.admin-editor-backdrop footer { flex-wrap:wrap; }
.admin-editor-backdrop footer > button { min-width:0; min-height:44px; white-space:normal; }
.editorial-home-selection > nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.portal-version-notice { position:fixed; z-index:1000; top:12px; inset-inline:12px; margin-inline:auto; max-width:680px; padding:14px; display:flex; align-items:center; gap:12px; border:1px solid #8bb6e8; border-radius:10px; color:#173345; background:#fff; box-shadow:0 8px 25px #17334522; font:16px/1.5 system-ui; box-sizing:border-box; }
.portal-version-notice button { min-height:44px; padding:8px 12px; background:#edf5ff; color:#173345; border:1px solid #8bb6e8; border-radius:8px; cursor:pointer; font:inherit; }
@media(max-width:600px){.admin-editor-backdrop { padding:12px; }.admin-editor-backdrop > .admin-editor { max-height:calc(100dvh - 24px); }.admin-editor-backdrop .admin-form-grid { grid-template-columns:minmax(0,1fr); }.admin-editor-backdrop > .admin-editor > header { padding:14px; gap:10px; }.admin-editor-backdrop footer > button { flex:1 1 150px; }}
.unified-editorial-workspace{padding:28px clamp(18px,3vw,42px);max-width:1360px;margin:auto;min-width:0}
.editorial-workspace-header h1{font-size:clamp(28px,3vw,40px);margin:0 0 8px;line-height:1.15}.editorial-workspace-header p{color:#52616c;margin:0 0 20px;font-size:16px}
.editorial-workspace-tabs,.editorial-queue-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.editorial-workspace-tabs a,.editorial-queue-tabs a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #d9e2e9;border-radius:10px;color:#253d50;background:white;text-decoration:none;font-size:16px}.editorial-workspace-tabs a.active,.editorial-queue-tabs a.active{color:#086ad8;border-color:#086ad8;background:#edf5ff;font-weight:700}.editorial-workspace-tabs a:focus-visible,.editorial-queue-tabs a:focus-visible,.editorial-material-types a:focus-visible{outline:3px solid #72abf0;outline-offset:2px}
.editorial-material-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.editorial-material-types a{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:72px;padding:16px;border:1px solid #d9e2e9;border-radius:12px;background:white;text-decoration:none;color:#253d50}.editorial-material-types strong{font-size:17px}.editorial-material-types span{font-size:14px;color:#52616c;line-height:1.4}.editorial-material-types a.active{border-color:#086ad8;background:#edf5ff}.unified-editorial-workspace>.admin-content,.unified-editorial-workspace>.editorial-workspace{padding:0}.unified-editorial-workspace .editorial-empty{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){.editorial-material-types{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.unified-editorial-workspace{padding:20px 16px}.editorial-workspace-tabs a{flex:1;padding:10px 12px}.editorial-material-types{gap:8px}.editorial-material-types a{padding:12px}.editorial-material-types strong{font-size:15px}.editorial-material-types span{font-size:13px}.unified-editorial-workspace .editorial-filters{grid-template-columns:minmax(0,1fr)}}
.admin-editor.editorial-editor-page{position:relative;inset:auto;width:100%;max-width:1040px;height:auto;max-height:none;margin:0 auto;overflow:visible;box-sizing:border-box;border:1px solid #d9e2e9;border-radius:14px;box-shadow:none;background:#fff}
.editorial-editor-page>header{position:static;gap:16px;align-items:flex-start;padding:24px;border-radius:14px 14px 0 0}
.editorial-editor-page h2{overflow-wrap:anywhere;font-size:clamp(25px,2.2vw,34px);line-height:1.15;margin:4px 0 10px}
.editorial-editor-page header small{display:block;color:#52616c;font-size:14px}
.editorial-editor-page .admin-editor-header-actions{flex-wrap:wrap;flex-shrink:0;gap:8px}
.editorial-editor-page form{display:block;overflow:visible;max-height:none;padding:24px}
.editorial-editor-page form>footer{position:static;inset:auto;display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin:24px -24px -24px;padding:20px 24px;border-radius:0 0 14px 14px}
.editorial-editor-page .admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.editorial-editor-page .admin-field{min-width:0;font-size:15px}
.editorial-editor-page input,.editorial-editor-page select,.editorial-editor-page textarea{box-sizing:border-box;max-width:100%;min-height:44px;font-size:16px}
.editorial-editor-page button{min-height:44px}
.editorial-editor-page .admin-rich-surface{min-height:180px;overflow-wrap:anywhere}
.editorial-editor-page .admin-form-error{overflow-wrap:anywhere}
.editorial-editor-page .admin-form-error button{display:block;margin-top:8px}
.editorial-compact-editor{max-width:1100px;margin-inline:auto;min-width:0}
.editorial-compact-editor .admin-form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.editorial-compact-editor .admin-form-section{margin:18px 0;padding:16px;border:1px solid #dce4e9;border-radius:10px}
.editorial-compact-editor summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.editorial-compact-editor .editorial-save-notice{padding:14px 24px;background:#edf8f1;color:#225b36}
.editorial-compact-editor .editorial-save-notice p{margin:0}
.editorial-compact-editor .editorial-save-notice nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:8px}
.editorial-compact-editor .editorial-save-notice a{display:inline-flex;align-items:center;min-height:44px}
.editorial-compact-editor .admin-form-grid{padding:0}
.editorial-compact-editor .editorial-destination{margin:18px 0;padding:14px;border:1px solid #dce4e9;border-radius:10px;background:#f7faff}
.editorial-compact-editor .editorial-target-section{margin:0 0 12px;font-size:16px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.editorial-compact-editor .editorial-simple-text .admin-rich-surface{font-size:16px;font-weight:400;line-height:1.65;padding:14px}
.editorial-compact-editor .editorial-simple-text .admin-rich-toolbar{display:flex;flex-wrap:wrap;gap:8px}
.editorial-compact-editor .editorial-saved-identity{margin:12px 24px;font-size:14px;line-height:1.5}
.editorial-compact-editor .editorial-preview-stage{padding:24px;min-width:0}
.editorial-public-preview{background:#fff;border:1px solid #dce4e9;border-radius:12px;overflow-wrap:anywhere;min-width:0}
.editorial-public-preview.is-mobile{max-width:390px;margin-inline:auto}
.editorial-public-preview.is-mobile .public-main{--type-page:clamp(2rem,8.7vw,2.5rem);--type-section:1.875rem;--type-subhead:1.5rem;--type-meta:.875rem;--type-secondary:1rem}
.editorial-public-preview.is-mobile .article-layout{grid-template-columns:minmax(0,1fr);gap:24px}
.editorial-public-preview.is-mobile .article-layout aside{position:static}
.editorial-public-preview.is-mobile .article-page h1{font-size:var(--type-page);line-height:1.15}
.admin-main>.admin-topbar>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.admin-main>.admin-topbar{gap:12px;height:auto;min-height:76px;padding-block:12px}.admin-main>.admin-topbar>div{min-width:0;flex:1;flex-wrap:wrap;gap:8px}.admin-main>.admin-topbar>span{flex:1;text-align:right;font-size:14px}}
.editorial-public-preview .container{max-width:100%;padding-inline:20px}
.editorial-public-preview .article-page,.editorial-public-preview .event-detail{padding-block:24px}
.editorial-preview-stage>nav,.editorial-preview-stage>footer{display:flex;gap:12px;flex-wrap:wrap;margin-block:16px}
.editorial-media-choice{display:flex;flex-wrap:wrap;gap:10px;margin-block:18px}
.editorial-media-choice>div{width:100%}
.editorial-category-management{padding:16px;background:#fff;border:1px solid #dce4e9;border-radius:12px;margin-bottom:18px}
.editorial-category-toggle{display:flex;gap:10px;align-items:center;min-height:44px}
.editorial-change-type{display:inline-flex;align-items:center;min-height:44px;margin-bottom:12px;color:#086ad8;text-decoration:none}
.editorial-compact-editor>header button,.editorial-compact-editor>button,.editorial-compact-editor form button,.editorial-preview-stage>footer button,.editorial-preview-stage>nav button,.editorial-preview-stage>details button,.editorial-category-management button{padding:10px 16px;border:1px solid #cedae4;border-radius:8px;background:#fff;color:#253d50;font:inherit;font-size:16px;cursor:pointer;min-height:44px}
.editorial-compact-editor button.admin-primary{background:#086ad8;color:#fff;border-color:#086ad8}
.editorial-compact-editor button:disabled,.editorial-category-management button:disabled{opacity:.6;cursor:not-allowed}
.editorial-compact-editor button:focus-visible{outline:3px solid #72abf0;outline-offset:2px}
.editorial-compact-editor>header h2:focus{outline-offset:4px;border-radius:4px}
.editorial-category-management form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
/* Responsive Wave A: intrinsic sizing, not document-level clipping. */
:root { --portal-control-min: 44px; }
body { min-width: 0; }
.admin-role-cards { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.admin-role-cards article { min-width: 0; }
.admin-role-cards article > div { min-width: 0; overflow-wrap: anywhere; }
.newsroom-source-page { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.newsroom-source-page > *,
.newsroom-source-overview,
.newsroom-source-grid,
.newsroom-source-card > div { min-width: 0; }
.newsroom-source-page > .admin-content { width: 100%; max-width: min(100%, 1440px); justify-self: stretch; }
.newsroom-source-grid { grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
.newsroom-source-card { overflow-wrap: anywhere; }
.newsroom-source-page .admin-table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; }
.newsroom-source-page .admin-table-scroll:focus-visible { outline: 3px solid #72abf0; outline-offset: 2px; }
/* Text actions size to their label; icon actions keep their square target. */
.admin-editor > header button { width: auto; min-width: var(--portal-control-min); min-height: var(--portal-control-min); height: auto; padding: 10px 14px; flex-shrink: 0; }
.admin-editor > header button:has(svg) { width: var(--portal-control-min); height: var(--portal-control-min); padding: 0; }
.ads-category-row button,
.ads-filter-toggle,
.ads-toolbar select,
.catalogue-filter-bar a,
.district-content-filters a,
.community-directory .directory-categories a,
.admin-main .admin-secondary,
.admin-editor .admin-secondary,
.editorial-card > footer > :is(a, button),
.editorial-drawer-actions > :is(a, button),
.editorial-more > summary { min-height: var(--portal-control-min); }
.editorial-drawer > header > button { width: var(--portal-control-min); height: var(--portal-control-min); }
@media (max-width: 600px) {
  .home-presentation .civic-context { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
  .home-presentation .civic-context > span { min-width:0; width:auto; padding:10px; }
  .home-presentation .civic-context > span:not(.currency-chip) { grid-column:span 3; white-space:normal; overflow-wrap:normal; font-size:clamp(13px,3.5vw,15px); gap:6px; }
  .home-presentation .civic-context > .currency-chip { grid-column:span 2; justify-content:center; }
  .home-presentation .civic-context > span > svg { flex-shrink:0; }
  .portal-bottom-nav > :is(a, button) { justify-content: flex-start; padding-top: 9px; gap: 4px; }
  .portal-bottom-nav > :is(a, button) svg { flex-shrink: 0; }
  .portal-bottom-nav > :is(a, button) > span { width:auto; min-width:0; white-space:nowrap; overflow-wrap:normal; font-family:Arial,sans-serif !important; font-size:clamp(13px,3.2vw,14px); font-weight:400; letter-spacing:-.035em; line-height:1.2; text-align:center; }
}
.editorial-category-management li{display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:44px}
.unified-editorial-workspace .editorial-workspace .admin-page-header h1{font-size:clamp(28px,3vw,38px);line-height:1.2}
@media(max-width:700px){.editorial-workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.editorial-workspace-tabs a{font-size:15px;padding:10px 8px;text-align:center}.editorial-compact-editor .editorial-preview-stage{padding:16px}.editorial-public-preview .container{padding-inline:14px}.editorial-preview-stage>footer button{width:100%}.editorial-compact-editor h2{font-size:28px;overflow-wrap:anywhere}}
@media(max-width:700px){.admin-editor.editorial-editor-page{border-radius:10px}.editorial-editor-page>header{display:flex;flex-direction:column;padding:18px}.editorial-editor-page form{padding:18px}.editorial-editor-page .admin-form-grid{grid-template-columns:minmax(0,1fr)}.editorial-editor-page form>footer{margin:18px -18px -18px;padding:18px;justify-content:stretch}.editorial-editor-page form>footer button{flex:1}.editorial-editor-page .admin-record-preview-mobile{max-width:100%}}
.editorial-compact-list { --editorial-blue:#176bd1; --editorial-ink:#132033; --editorial-muted:#647286; --editorial-border:#dce4ed; --editorial-tint:#f5f8fc; }
.editorial-compact-list > h2 { font-size:clamp(28px,2.5vw,36px); line-height:1.2; margin:18px 0; }
.editorial-compact-list button,.editorial-compact-list .editorial-card-actions > a { border:1px solid #cbd6e2; border-radius:9px; background:#fff; color:#26364b; font:inherit; text-decoration:none; cursor:pointer; }
.editorial-compact-list button.admin-primary { background:#176bd1; color:#fff; border-color:#176bd1; }
.editorial-compact-list .editorial-queue-tabs button[aria-pressed="true"] { background:#edf5ff; border-color:#086ad8; color:#086ad8; font-weight:700; }
.editorial-compact-list :is(button,a,input,summary):focus-visible { outline:3px solid #72abf0; outline-offset:2px; }
.editorial-compact-list > input[type="search"] { width:100%; min-width:0; min-height:44px; margin:12px 0; border:1px solid #cfd9e5; border-radius:9px; background:#fff; padding:10px 12px; font:inherit; }
.editorial-compact-list .editorial-compact-card { display:flex; align-items:flex-start; gap:16px; padding:16px; margin:12px 0; }
.editorial-compact-card .editorial-card-main { flex:1; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.editorial-compact-card h3 { font-size:clamp(19px,1.5vw,23px); line-height:1.3; margin:6px 0; overflow-wrap:anywhere; }
.editorial-compact-card h3 .editorial-card-title { color:inherit; font:inherit; text-align:left; padding:0; background:none; border:0; }
.editorial-compact-card p { margin:6px 0; line-height:1.5; }
.editorial-compact-card .editorial-card-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px; max-width:340px; }
.editorial-compact-list button,.editorial-compact-list .editorial-card-actions > a,.editorial-compact-list summary { min-height:44px; display:inline-flex; align-items:center; padding:8px 12px; }
.editorial-list-preview { padding:16px; outline-offset:4px; }
/* News quality: no vacant media track, same readable card on all widths. */
.news-row.news-row-text { display:block; }
.news-row-text .news-copy { width:100%; min-width:0; padding:0; }
.news-row-text h3 { overflow-wrap:anywhere; }
.news-pinned { margin-top:24px; border-bottom:1px solid #dce5eb; }
.news-pinned > h2,.news-chronological > h2 { font-size:clamp(24px,2vw,30px); margin:16px 0; }
.news-card-source { font-weight:400; text-transform:none; letter-spacing:normal; }
/* Scoped topic catalogue: no 35-item horizontal navigation. */
.news-topic-nav { display:flex; flex-wrap:wrap; gap:8px; }
.news-topic-nav button { min-height:44px; padding:10px 16px; border:1px solid #d7e3ec; border-radius:24px; background:#fff; font:inherit; color:inherit; cursor:pointer; }
.news-topic-catalogue { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:16px; padding-block:20px; border-block:1px solid #d7e3ec; }
.news-topic-catalogue > a { grid-column:1/-1; }
.news-topic-catalogue h2 { font-size:20px; margin:0 0 8px; }
.news-topic-catalogue nav { display:flex; flex-wrap:wrap; gap:6px; }
.news-topic-catalogue nav a { display:flex; align-items:center; min-height:44px; padding:8px 12px; border-radius:10px; overflow-wrap:anywhere; }
.news-topic-catalogue a.active { color:#1265ca; background:#eaf3ff; font-weight:700; }
.news-selected-topic { margin-top:16px; margin-bottom:0; font-weight:600; }
.editorial-topic-settings { padding:12px 0; border-bottom:1px solid #d7e3ec; }
.editorial-topic-settings summary { min-height:44px; display:list-item; padding-block:10px; cursor:pointer; }
.editorial-topic-settings form { display:grid; gap:12px; max-width:720px; }
@media (max-width:767px) { .news-topic-catalogue { grid-template-columns:1fr; gap:16px; } .news-topic-nav { flex-wrap:wrap; } }
.about-project-layout { display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); align-items:start; gap:clamp(24px,4vw,48px); padding-bottom:40px; }
.about-project-layout .managed-page-body { padding:0; margin:0; min-width:0; max-width:760px; overflow-wrap:anywhere; }
.about-founder-photo { margin:0; min-width:0; }
.about-founder-photo img { display:block; width:100%; height:auto; border-radius:20px; }
.about-founder-photo figcaption { margin-top:12px; color:#52677a; font-size:15px; line-height:1.5; }
@media(max-width:767px) {
  .about-project-layout { grid-template-columns:minmax(0,1fr); gap:24px; padding-bottom:28px; }
  .about-founder-photo { width:100%; max-width:320px; }
}
.editorial-list-preview .editorial-public-preview { max-height:none; overflow:visible; }
.editorial-list-preview footer { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.editorial-compact-list .editorial-more { margin:8px 0; }
.editorial-compact-list .editorial-more label { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; margin:8px; }
.editorial-compact-list > .editorial-more { min-width:0; max-width:100%; }
.editorial-compact-list > .editorial-more label { box-sizing:border-box; max-width:calc(100% - 16px); min-width:0; }
.editorial-compact-list > .editorial-more select { box-sizing:border-box; min-width:0; max-width:100%; min-height:44px; font:inherit; }
@media(max-width:767px){.editorial-compact-list > .editorial-more label{display:flex;flex-direction:column;align-items:stretch}.editorial-compact-list > .editorial-more select{width:100%}}
@media(max-width:767px){.editorial-compact-list .editorial-compact-card{flex-direction:column;gap:10px}.editorial-compact-card .editorial-card-actions{max-width:100%;width:100%}.editorial-compact-list .editorial-queue-tabs{flex-wrap:wrap;overflow:visible}.editorial-list-preview{padding:8px}}
/* Editorial dashboard: scoped to its attention cards, not public page headings. */
.admin-content:has(> .attention-grid) > h1 {
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  line-height: 1.15;
  margin: 0 0 1.5rem;
  overflow-wrap: anywhere;
}
.admin-content > .attention-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.attention-grid > .stat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 20px;
  border: 1px solid #d4e1e9;
  border-radius: 14px;
  background: #fff;
  color: #163247;
  text-decoration: none;
}
.attention-grid > .stat-card strong { font-size: 32px; line-height: 1.1; }
.attention-grid > .stat-card span { font-size: 16px; line-height: 1.4; }
.attention-grid > .stat-card:hover,
.attention-grid > .stat-card:focus-visible { border-color: #176bd1; background: #f0f7ff; }

/* Homepage public-data provenance: scoped; never style unrelated spans. */
.home-presentation .civic-context > .currency-chip { flex-wrap: wrap; }
.home-presentation .civic-context > .currency-chip > small { flex-basis: 100%; text-align: center; font-size: 11px; line-height: 1.2; color: #486174; }
.home-presentation .civic-context > .hero-data-stamp { font-size: 12px; white-space: normal; }
.editorial-record-actions { display: flex; flex-wrap: wrap; gap: 8px; max-width: 100%; }
.editorial-record-actions > [role="group"] { flex-basis: 100%; padding: 12px; border: 1px solid #cbd8df; border-radius: 10px; background: #f7fafc; overflow-wrap: anywhere; }
.editorial-record-actions > [role="group"] > p { margin: 0 0 10px; }
.editorial-record-actions button, .editorial-home-selection button { min-height: 44px; padding: 10px 14px; border: 1px solid #cbd8df; border-radius: 10px; background: #fff; color: inherit; font: inherit; cursor: pointer; }
.editorial-record-actions button:focus-visible, .editorial-home-selection button:focus-visible { outline: 3px solid #176bd1; outline-offset: 2px; }
.editorial-record-actions button:disabled, .editorial-home-selection button:disabled { opacity: .55; cursor: default; }
.editorial-home-selection li { margin-block: 12px; overflow-wrap: anywhere; }
.editorial-home-selection li > span { display: block; margin-bottom: 8px; }
/* Editorial list guidance is not an empty state. Keep it compact at every width. */
.editorial-compact-list .editorial-list-note { margin: 8px 0 12px; padding: 0; color: #486174; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.editorial-compact-list .editorial-active-filters { margin: 10px 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.editorial-active-filters ul { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; max-width: 100%; padding: 0; margin: 0; list-style: none; }
.editorial-active-filters li { max-width: 100%; min-width: 0; border: 1px solid #cbd8df; border-radius: 8px; padding: 6px 10px; background: #edf5ff; color: #203e59; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.editorial-active-filters button { min-height: 44px; padding: 10px 14px; border: 1px solid #cbd8df; border-radius: 10px; background: #fff; color: #183044; font: inherit; cursor: pointer; }
.editorial-active-filters button:focus-visible { outline: 3px solid #176bd1; outline-offset: 2px; }
.editorial-compact-card .editorial-archive-note { margin: 12px 0; padding-left: 10px; border-left: 2px solid #cbd8df; color: #486174; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.editorial-compact-card .editorial-archive-note p { margin: 4px 0; }
@media (max-width: 640px) {
  .home-presentation .civic-context > .hero-data-stamp { grid-column: 1 / -1; min-height: 30px; justify-content: center; }
}
/* Compact context only: no new hero, navigation or editorial content. */
.home-presentation .civic-context.home-daily-compact { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; max-width:540px; }
.home-presentation .civic-context.home-daily-compact > .hero-date-chip,
.home-presentation .civic-context.home-daily-compact > .hero-weather-chip { grid-column:span 3; width:auto; min-width:0; min-height:46px; padding:10px 12px; font-size:14px; line-height:1.35; white-space:normal; }
.home-daily-compact .hero-weather-temperature { flex-shrink:0; }
.home-daily-compact .hero-weather-description { min-width:0; overflow-wrap:anywhere; }
.home-presentation .civic-context.home-daily-compact > .hero-currency-tile { grid-column:span 2; display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; min-height:46px; padding:10px 8px; border:1px solid #dce5eb; border-radius:12px; background:#ffffffdf; color:var(--ink); font-size:14px; white-space:nowrap; }
.hero-currency-tile b { color:#176bd1; font-size:12px; }
.hero-currency-tile strong { font-weight:650; font-variant-numeric:tabular-nums; }
.weather-credit { display:block; margin-top:14px; color:#617789; font-size:12px; }
.weather-credit a { color:inherit; text-underline-offset:3px; }
.home-topic-links { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.home-topic-links a { display:inline-flex; align-items:center; min-height:40px; max-width:100%; padding:8px 14px; border:1px solid #d7e4ed; border-radius:20px; background:#fff; color:var(--ink); font-size:14px; line-height:1.35; text-decoration:none; }
.home-topic-links a:hover { border-color:#176bd1; color:#176bd1; }
.home-topic-links a:focus-visible { outline:3px solid #176bd1; outline-offset:3px; }
@media(max-width:360px) {
 .home-presentation .civic-context.home-daily-compact > .hero-date-chip,
 .home-presentation .civic-context.home-daily-compact > .hero-weather-chip { font-size:13px; padding-inline:8px; }
 .home-presentation .civic-context.home-daily-compact { gap:7px; }
 .home-presentation .civic-context.home-daily-compact > .hero-currency-tile { flex-direction:column; gap:2px; font-size:13px; }
}
.district-card { min-width:0; }
#district-now .district-card-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); }
#district-now .district-card h3 { display:block;-webkit-line-clamp:unset;overflow:visible;line-height:1.35;overflow-wrap:anywhere; }
#district-now .district-card p { display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;line-height:1.55; }
#district-now .district-card time { margin-top:auto;padding-top:12px; }
.event-availability { color:#68440d;background:#fff4d8;border:1px solid #e4c88b;border-radius:9px;padding:9px 12px;font-size:14px;line-height:1.5;font-weight:600; }
.event-price .event-availability { max-width:230px;white-space:normal;text-align:left; }
.service-split .resolved-summary { min-height:0;padding:24px; }
.service-split.service-split-single { grid-template-columns:minmax(0,1fr); }

/* A single report card follows its content after the empty results column is hidden. */
.service-split-single .problem-summary { min-height:0; }

.community-directory .empty-state button.text-link { appearance:none;border:0;border-radius:10px;background:#156bd8;color:#fff;font:inherit;font-weight:700;padding:12px 18px;min-height:44px;cursor:pointer;text-decoration:none; }
.community-directory .empty-state button.text-link:focus-visible { outline:2px solid #156bd8;outline-offset:3px; }

.public-preview { padding-block:24px;line-height:1.65; }
.public-preview nav { display:flex;flex-wrap:wrap;gap:12px;margin:18px 0; }
.public-preview h1 { font-size:clamp(28px,4vw,44px);line-height:1.2; }
.public-preview-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px; }
.public-preview article { border:1px solid #d5e4ee;border-radius:14px;padding:20px;margin-block:16px;overflow-wrap:anywhere; }
.public-preview time { color:#526c80;font-size:14px; }
