:root {
  color-scheme: dark;
  --bg: #0e1013;
  --glow-left: #172332;
  --glow-right: #182724;
  --card-top: #181a1d;
  --card-bottom: #131518;
  --border: #ffffff14;
  --text: #e9ecf4;
  --muted: #a8b6ce;
  --accent: #5bc3df;
  --icon: linear-gradient(135deg, #253c52, #263a39);
  --dialog: #151822;
  --dialog-header: #1c2030;
  --button: #242832;
  --shadow: #00000020;
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f2f5f8;
  --glow-left: #dde9f5;
  --glow-right: #e0efe9;
  --card-top: #ffffff;
  --card-bottom: #f8fafc;
  --border: #233c591f;
  --text: #1d2b3f;
  --muted: #53677f;
  --accent: #1688ac;
  --icon: linear-gradient(135deg, #deedf9, #dceee9);
  --dialog: #ffffff;
  --dialog-header: #edf2f8;
  --button: #eaf0f6;
  --shadow: #20334d0d;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 32px 24px;
  color: var(--text);
  background: radial-gradient(ellipse at 9% 0%, var(--glow-left), transparent 49%), radial-gradient(ellipse at 91% 8%, var(--glow-right), transparent 44%), var(--bg);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; color: inherit; }
button, a { touch-action: manipulation; }
a { color: inherit; text-decoration: none; }
.shell { width: min(980px, 100%); }
.brand-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.appearance-controls { display: flex; align-items: center; gap: 8px; }
.language-toggle { display: flex; padding: 3px; gap: 2px; border: 1px solid var(--border); border-radius: 11px; background: var(--card-bottom); }
.language-option { border: 0; border-radius: 8px; padding: 8px; background: transparent; color: var(--muted); font-weight: bold; font-size: 11px; cursor: pointer; }
.language-option[aria-pressed="true"] { background: var(--icon); color: var(--text); }
.brand { display: flex; align-items: center; gap: 12px; }
.brand strong { display: block; font-size: 18px; line-height: 24px; }
.brand-subtitle { display: block; color: var(--muted); line-height: 20px; }
.brand-dot { width: 12px; height: 12px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 0 6px #55bde315; }
.theme-toggle { display: flex; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px; background: var(--card-bottom); color: var(--muted); cursor: pointer; }
.theme-toggle svg { width: 18px; height: 18px; }
.moon, [data-theme="light"] .sun { display: none; }
[data-theme="light"] .moon { display: block; }
.tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tile { display: block; width: 100%; min-height: 148px; text-align: left; padding: 22px; border: 1px solid var(--border); border-radius: 17px; background: linear-gradient(180deg, var(--card-top), var(--card-bottom)); box-shadow: 0 10px 24px var(--shadow); }
button.tile:not(:disabled), a.tile { cursor: pointer; transition: border-color .15s, transform .15s; }
button.tile:not(:disabled):hover, a.tile:hover { border-color: var(--accent); transform: translateY(-2px); }
.tile:disabled { opacity: .48; cursor: not-allowed; }
.tile-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: var(--icon); border: 1px solid var(--border); font-size: 16px; font-weight: 800; }
.tile h1, .tile h2 { font-size: 18px; margin: 12px 0 10px; line-height: 22px; }
.tile p { color: var(--muted); margin: 0; line-height: 18px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
dialog { width: min(520px, calc(100% - 32px)); padding: 0; color: var(--text); background: var(--dialog); border: 1px solid var(--border); border-radius: 17px; box-shadow: 0 24px 80px #00000040; }
dialog::backdrop { background: #000b; }
.dialog-header { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; background: var(--dialog-header); border-bottom: 1px solid var(--border); }
.dialog-header h2 { font-size: 16px; margin: 0; }
.close-button, .ok-button { background: var(--button); border: 1px solid var(--border); border-radius: 13px; cursor: pointer; }
.close-button { width: 34px; height: 34px; font-size: 23px; font-weight: 300; }
.dialog-body { padding: 18px 16px 16px; }
dl { display: grid; grid-template-columns: 152px 1fr; row-gap: 12px; margin: 0; }
dt { color: var(--muted); }
dd { margin: 0; }
.dialog-body form { display: flex; justify-content: flex-end; margin-top: 30px; }
.ok-button { padding: 10px 15px; }
.close-button:hover, .ok-button:hover, .theme-toggle:hover { border-color: var(--accent); }
.creator-placeholder { padding: 28px; border: 1px solid var(--border); border-radius: 17px; background: var(--card-bottom); }
.creator-placeholder h1 { font-size: 22px; }
.creator-placeholder p { color: var(--muted); }
.back-link { display: inline-block; margin-top: 20px; color: var(--accent); }
@media (max-width: 600px) { .tiles { grid-template-columns: 1fr; gap: 14px; } .theme-label { display: none; } body { padding: 28px 18px; } .brand strong { font-size: 17px; } .tile { min-height: 140px; } }
@media (prefers-reduced-motion: reduce) { .tile { transition: none !important; } }

.account-controls { display:flex; align-items:center; gap:7px; }
.account-controls form { margin:0; }
.account-controls .account-button { height:38px; box-sizing:border-box; }
.account-controls .account-settings-link { width:38px; height:38px; padding:0; }
.account-name { font-size:11px; color:var(--muted); max-width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-button { display:inline-flex; justify-content:center; align-items:center; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); padding:8px 12px; font:inherit; cursor:pointer; white-space:nowrap; }
.account-button:hover { border-color:var(--accent); }
.account-button.primary { background:color-mix(in srgb,var(--accent) 16%,var(--button)); border-color:var(--accent); }
.account-panel { max-width:440px; margin:0 auto; padding:24px; border:1px solid var(--border); border-radius:16px; background:var(--dialog); }
.account-panel h1,.catalog-heading h1 { font-size:22px; margin:16px 0 8px; }
.account-note { color:var(--muted); font-size:12px; line-height:1.6; }
.account-form { display:grid; gap:13px; }
.account-form label { display:grid; gap:7px; }
.account-form input,.account-form textarea { padding:10px; width:100%; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); font:inherit; }
.account-form .account-note { margin:0; }
.account-error { border:1px solid #dc657566; color:#db7381; background:#d54b5912; padding:12px; border-radius:8px; }
.account-success { color:var(--accent); padding:12px; border:1px solid var(--border); border-radius:8px; }
.account-form textarea { resize:vertical; min-height:110px; }
.account-settings-page { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; max-width:1040px; margin:0 auto; align-items:stretch; }
.account-settings-page > .account-panel { width:100%; max-width:none; box-sizing:border-box; }
.account-section-title { margin:18px 0 10px; font-size:15px; }
.account-access-card { width:100%; box-sizing:border-box; padding:22px 24px; border:1px solid var(--border); border-radius:16px; background:var(--dialog); }
.account-access-card h2 { margin:0 0 6px; font-size:17px; }
.account-access-list { display:grid; gap:8px; padding:0; margin:16px 0 0; list-style:none; }
.account-access-list li { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 10px; border:1px solid var(--border); border-radius:9px; background:var(--button); font-size:12px; }
.admin-panel-link { gap:7px; }
.account-access-status { flex:0 0 auto; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:700; white-space:nowrap; }
.account-access-public,.account-access-granted,.account-access-admin { color:#087957; background:#e6f7ef; border:1px solid #a9e5c7; }
.account-access-denied { color:#a52c38; background:#fff0f0; border:1px solid #f0b6bc; }
.admin-page { display:block; }
.admin-page .shell { width:min(1180px,100%); margin:0 auto; }
.admin-page .brand-row { margin-bottom:18px; }
.admin-heading,.admin-card { border:1px solid var(--border); border-radius:14px; background:linear-gradient(180deg,var(--card-top),var(--card-bottom)); box-shadow:0 8px 20px var(--shadow); }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 24px; margin:12px 0 14px; }
.admin-heading h1 { margin:4px 0 6px; font-size:25px; }
.admin-heading p,.admin-card-heading p { margin:0; color:var(--muted); line-height:1.5; }
.admin-summary,.admin-count { display:grid; justify-items:center; gap:4px; min-width:82px; padding:10px 14px; border:1px solid var(--border); border-radius:12px; background:var(--button); color:var(--muted); font-size:11px; }
.admin-summary strong { color:var(--accent); font-size:22px; }
.admin-card { margin:14px 0; padding:18px; }
.admin-card h2 { font-size:17px; margin:0 0 5px; }
.admin-card-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.admin-request { padding:15px 0; border-top:1px solid var(--border); }
.admin-request>header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.admin-request>header>div { display:grid; gap:4px; }
.admin-request time,.admin-table small,.admin-audit time { display:block; color:var(--muted); font-size:10px; }
.admin-request>p { white-space:pre-wrap; line-height:1.55; margin:12px 0; }
.admin-permissions fieldset,.admin-create-form fieldset { min-width:0; border:1px solid var(--border); border-radius:10px; padding:12px; margin:0 0 12px; }
.admin-permissions legend,.admin-create-form legend { padding:0 5px; color:var(--muted); font-size:11px; }
.admin-permission-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:9px 12px; }
.admin-permission-grid label { display:flex; align-items:center; gap:8px; min-width:0; }
.admin-permission-grid input { accent-color:var(--accent); }
.admin-actions { display:flex; align-items:flex-end; gap:9px; flex-wrap:wrap; }
.admin-actions form { margin:0; }
.admin-permissions { flex:1 1 560px; }
.admin-user-permissions { margin-top:8px; min-width:180px; }
.admin-user-permissions summary { color:var(--accent); cursor:pointer; font-size:11px; }
.admin-user-permissions form { min-width:270px; padding:10px; margin-top:6px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.admin-user-permissions .admin-permission-grid { grid-template-columns:1fr; }
.admin-user-permissions .account-button { margin-top:9px; }
.admin-create-form { display:grid; gap:12px; }
.admin-create-form>label { display:grid; gap:6px; max-width:520px; }
.admin-create-form input[type=email] { padding:9px 11px; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); font:inherit; }
.admin-warning { border:1px solid #d89b34; border-radius:10px; padding:12px 14px; color:var(--text); background:color-mix(in srgb,#d89b34 12%,var(--dialog)); line-height:1.5; }
.admin-warning strong { display:block; margin-bottom:5px; }
.admin-warning p { margin:0; }
.admin-public-access-form fieldset { min-width:0; border:1px solid var(--border); border-radius:10px; padding:12px; margin:0 0 12px; }
.admin-public-access-form legend { padding:0 5px; color:var(--muted); font-size:11px; }
.admin-empty { color:var(--muted); }
.admin-status,.permission-chip { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:4px 8px; border-radius:999px; border:1px solid var(--border); background:var(--button); font-size:10px; white-space:nowrap; }
.admin-status.active { color:#23815d; }.admin-status.suspended { color:#bb4650; }.admin-status.pending { color:#946400; }.admin-status.admin { color:var(--accent); margin-left:7px; }
.permission-chip { margin:2px 4px 2px 0; white-space:normal; }
.admin-table-wrap { overflow:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:12px; }
.admin-table th,.admin-table td { padding:10px 9px; text-align:left; vertical-align:top; border-bottom:1px solid var(--border); }
.admin-table th { color:var(--muted); font-size:10px; font-weight:600; }
.admin-table td:first-child strong { overflow-wrap:anywhere; }
.admin-table td:first-child small,.admin-table td:nth-child(3) small { margin-top:5px; }
.admin-audit { max-height:260px; overflow:auto; }
.admin-audit p { margin:9px 0; line-height:1.5; }
.admin-audit time { display:inline; }
.credential-reveal { border-color:var(--accent); }
.credential-reveal dl { margin-top:12px; }
.credential-reveal code { overflow-wrap:anywhere; font-size:13px; }
.home-account-callout { grid-column:1/-1; max-width:none; margin:0; display:grid; gap:10px; }
.home-account-callout h2,.home-account-callout p { margin:0; }
@media(max-width:700px) { .admin-heading { align-items:flex-start; padding:17px; }.admin-summary { min-width:65px; }.admin-card { padding:14px; }.admin-table th,.admin-table td { padding:8px 6px; } }
.catalog-upload,.catalog-guest,.catalog-model,.catalog-empty { background:var(--dialog); border:1px solid var(--border); border-radius:12px; margin:16px 0; padding:16px; }
.catalog-upload summary { color:var(--accent); font-weight:bold; cursor:pointer; }
.catalog-upload[open] summary { margin-bottom:16px; }
.catalog-guest,.catalog-model-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.catalog-model h2 { font-size:16px; margin:0; overflow-wrap:anywhere; }
.catalog-model p { white-space:pre-wrap; line-height:1.5; overflow-wrap:anywhere; }
.catalog-meta { display:flex; flex-wrap:wrap; gap:14px; font-size:11px; color:var(--muted); }
@media(max-width:650px) { .brand-row { flex-wrap:wrap; } .appearance-controls { flex-wrap:wrap; } .account-panel { padding:18px; } .account-name { max-width:65px; } .account-settings-page { grid-template-columns:1fr; } .account-settings-page > .account-panel,.account-access-card { min-height:0; height:auto; } .account-access-card { padding:18px; } .account-access-list li { align-items:flex-start; flex-direction:column; } }

.site-page:not(.creator-page) { padding-top:72px; }
.site-page:not(.creator-page) .brand-row { position:fixed; inset:0 0 auto; min-height:48px; margin:0; padding:8px 14px; background:var(--dialog); border-bottom:1px solid var(--border); z-index:20; gap:12px; }
.site-page:not(.creator-page) .brand strong { font-size:16px; }
.site-page:not(.creator-page) .brand-subtitle { display:none; }
.site-page:not(.creator-page) .theme-toggle { padding:6px 8px; border-radius:8px; }
.site-page:not(.creator-page) .account-button { padding:6px 8px; }
@media(max-width:600px) { .site-page:not(.creator-page) { padding-top:116px; } .site-page:not(.creator-page) .brand-row { gap:8px; } .site-page:not(.creator-page) .appearance-controls { margin-left:auto; } }

.catalog-model-link { display:block; transition:border-color .15s,transform .15s; }
.catalog-model-link:hover { border-color:var(--accent); transform:translateY(-2px); }
.catalog-model-link:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.catalog-thumbnail { width:100%; height:190px; object-fit:contain; background:#f5f8fc; border-radius:10px; margin-bottom:14px; }
.catalog-card-arrow { color:var(--accent); font-size:23px; }
.catalog-variant-card > p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.model-card-page { padding:12px 0 30px; }
.model-card-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:20px 0 14px; }
.model-card-heading h1 { font-size:28px; margin:7px 0; overflow-wrap:anywhere; }
.model-card-eyebrow { color:var(--accent); font-size:11px; text-transform:uppercase; letter-spacing:1.3px; }
.model-description { white-space:pre-wrap; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.model-downloads { display:flex; flex-wrap:wrap; gap:8px; }
.model-gallery { border:1px solid var(--border); border-radius:16px; background:var(--dialog); padding:12px; margin:22px 0; }
.model-gallery img { display:block; width:100%; height:440px; object-fit:contain; background:#f5f8fc; border-radius:10px; }
.gallery-controls { display:flex; align-items:center; gap:12px; margin:12px 0; }
#preview-caption { flex:1; font-weight:bold; }
#preview-number { color:var(--muted); font-size:11px; }
.gallery-tabs { display:flex; gap:5px; flex-wrap:nowrap; }
.gallery-tabs .account-button { flex:1 1 auto; min-width:0; padding:6px 5px; font-size:10px; white-space:nowrap; text-align:center; }
.gallery-tabs [aria-pressed="true"] { border-color:var(--accent); color:var(--accent); background:var(--icon); }
.catalog-statistics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:22px 0; }
.catalog-stat { display:flex; flex-direction:column; align-items:center; gap:9px; padding:18px 10px; border:1px solid var(--border); background:var(--dialog); border-radius:12px; text-align:center; }
.catalog-stat span { color:var(--muted); font-size:12px; }.catalog-stat strong { font-size:24px; }
.catalog-verification { border:1px solid var(--border); border-radius:12px; background:var(--dialog); padding:18px; }
.catalog-verification h2 { font-size:16px; margin:0 0 14px; }
@media(max-width:600px) { .model-card-heading { align-items:flex-start; flex-direction:column; } .model-gallery img { height:280px; } .catalog-statistics { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.catalog-warning { color:#d9a23c; line-height:1.6; }

.brand-leading { display:flex; align-items:center; gap:12px; min-width:0; }
.header-back { display:inline-flex; flex-shrink:0; align-items:center; justify-content:center; width:28px; height:28px; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); }
.header-back svg { width:18px; height:18px; }.header-back:hover { border-color:var(--accent); }
.model-card-columns { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:stretch; gap:18px; margin:22px 0; }
.model-card-columns .model-gallery { margin:0; min-width:0; }
.model-card-columns .model-gallery img { height:330px; }
.model-card-columns .catalog-statistics { margin:0; gap:8px; grid-template-columns:repeat(3,minmax(0,1fr)); align-content:stretch; }
.model-card-columns .catalog-stat { padding:10px 6px; gap:5px; justify-content:center; }
.model-card-columns .catalog-stat strong { font-size:21px; }.model-card-columns .catalog-stat span { font-size:11px; }
.model-description-panel { padding:20px; margin:0 0 18px; border:1px solid var(--border); border-radius:14px; background:var(--dialog); }
.model-description-panel h2 { margin:0 0 14px; font-size:17px; }
.model-technical-info { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; }
.model-technical-info div { min-width:0; }.model-technical-info dt { font-size:11px; margin-bottom:7px; }.model-technical-info dd { font-weight:bold; }
@media(max-width:760px) { .model-card-columns { grid-template-columns:1fr; } .model-card-columns .model-gallery img { height:300px; } .model-technical-info { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.catalog-city-group { border:1px solid var(--border); border-radius:14px; padding:0 16px 16px; margin:20px 0; background:var(--card-bottom); }
.catalog-city-group:not([open]) { padding-bottom:0; }
.catalog-city-group > summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 0; font-size:18px; font-weight:bold; cursor:pointer; }
.catalog-city-group > summary::before { content:'▸'; color:var(--accent); }.catalog-city-group[open] > summary::before { content:'▾'; }
.catalog-city-group > summary > span:first-child { flex:1; }
.catalog-variant-count { font-size:11px; font-weight:normal; color:var(--muted); }
.catalog-city-models { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.catalog-variant-card { margin:0; padding:10px; display:flex; flex-direction:column; min-width:0; }
.catalog-variant-card .catalog-thumbnail { height:120px; }
.catalog-variant-card h2 { font-size:14px; }
.catalog-variant-card p { font-size:12px; margin:10px 0; }
.catalog-variant-card .catalog-meta { gap:6px; font-size:10px; }
.catalog-variant-card .catalog-meta > span:first-child { flex-basis:100%; overflow-wrap:anywhere; }
.catalog-variant-card .account-button { padding:6px 7px; font-size:10px; }
.catalog-variant-open:hover h2 { color:var(--accent); }
.catalog-variant-downloads { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:10px; }
.model-city-name { color:var(--accent); font-weight:bold; margin:12px 0 0; }
.model-sibling-variants { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:18px 0; }
.model-sibling-variants > span { color:var(--muted); font-size:11px; margin-right:5px; }
@media(max-width:850px) { .catalog-city-models { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .catalog-city-models { grid-template-columns:1fr; } }

.catalog-filters { background:var(--dialog); border:1px solid var(--border); border-radius:14px; padding:16px; margin:18px 0; }
.catalog-filter-primary { display:grid; grid-template-columns:minmax(200px,2fr) repeat(2,minmax(100px,1fr)) auto auto; gap:10px; align-items:end; }
.catalog-filters label { display:flex; flex-direction:column; gap:6px; font-size:11px; color:var(--muted); min-width:0; }
.catalog-filters input,.catalog-filters select { width:100%; min-width:0; padding:9px; background:var(--button); color:var(--text); border:1px solid var(--border); border-radius:7px; font:inherit; }
.catalog-more-filters { margin-top:14px; }.catalog-more-filters summary { cursor:pointer; color:var(--accent); }
.catalog-filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:14px; }
.catalog-filter-grid fieldset { min-width:0; border:1px solid var(--border); border-radius:8px; display:flex; gap:8px; padding:10px; }.catalog-filter-grid legend { color:var(--muted);font-size:11px; }.catalog-filter-grid label { flex:1; }
.model-card-columns .catalog-statistics { grid-template-columns:1fr; }
.catalog-stat-group { border:1px solid var(--border); border-radius:12px; padding:14px; background:var(--dialog); }
.catalog-stat-group > header { display:flex; align-items:center; justify-content:space-between; font-weight:bold; padding-bottom:10px; }
.catalog-stat-group > header > strong { color:var(--accent); font-size:24px; }
.catalog-stat-breakdown { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.catalog-stat-breakdown > div { display:flex; flex-direction:column; gap:5px; padding:8px; background:var(--button); border-radius:7px; text-align:center; }
.catalog-stat-breakdown span { font-size:11px; color:var(--muted); }.catalog-stat-breakdown strong { font-size:17px; }
.catalog-inspection { margin:18px 0; }.inspection-section { background:var(--dialog); border:1px solid var(--border); border-radius:12px; margin:12px 0; overflow:hidden; }
.inspection-section > summary { padding:15px 18px; cursor:pointer; font-weight:bold; }
.inspection-content { padding:0 18px 18px; }.inspection-item { border-top:1px solid var(--border); padding:12px 0; }.inspection-item h3 { margin:7px 0; }
.inspection-chart { display:block; width:100%; max-height:220px; color:var(--muted); background:var(--button); border-radius:8px; padding:10px; }
.inspection-scroll { overflow-x:auto; max-height:320px; overflow-y:auto; margin-top:12px; }
.inspection-scroll table { border-collapse:collapse; width:100%; font-size:12px; }.inspection-scroll td,.inspection-scroll th { padding:9px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap; }.inspection-scroll th { color:var(--muted); }
.inspection-properties { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.inspection-properties div { min-width:0; }.inspection-properties dd { margin-top:6px; overflow-wrap:anywhere; }
@media(max-width:760px) { .catalog-filter-primary { grid-template-columns:repeat(2,minmax(0,1fr)); }.catalog-filter-primary label:first-child { grid-column:1/-1; }.catalog-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.catalog-description-edit { margin:12px 0 18px; }.catalog-description-edit summary { cursor:pointer; color:var(--accent); }
.catalog-description-edit form { display:flex; flex-direction:column; gap:10px; margin-top:12px; }.catalog-description-edit textarea { width:100%; padding:10px; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); font:inherit; resize:vertical; }.catalog-description-edit button { align-self:flex-end; }
.results-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; align-items:end; padding-top:12px; }.results-controls label,.results-body > label { display:flex; flex-direction:column; gap:6px; font-size:11px; color:var(--muted); }
.results-controls select,.results-controls input { width:100%; min-width:0; padding:8px; background:var(--button); color:var(--text); border:1px solid var(--border); border-radius:7px; }
.results-legend { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }.results-chart { width:100%; min-height:200px; color:var(--muted); background:var(--button); border-radius:10px; cursor:crosshair; }
.results-time-readout { min-height:20px; color:var(--accent); font-size:12px; }.results-body input[type="range"] { width:100%; accent-color:var(--accent); }
.results-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0; }.results-summary > div { display:flex; flex-direction:column; gap:8px; border:1px solid var(--border); border-radius:9px; padding:12px; }.results-summary span { font-size:11px; color:var(--muted); }
.results-pagination { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding:12px; font-size:11px; color:var(--muted); }.results-object-link { border:0; background:transparent; color:var(--accent); cursor:pointer; font:inherit; }
@media(max-width:650px) { .results-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Compact catalog controls, preserving comfortable inputs and narrow-screen reflow. */
.catalog-filters { padding:12px 14px; }
.catalog-filter-primary { grid-template-columns:minmax(200px,1fr) 110px 110px 145px auto auto; gap:8px; }
.catalog-filters input,.catalog-filters select { padding:7px 8px; height:32px; }
.catalog-filter-primary .account-button { height:32px; padding:6px 10px; }
.catalog-filter-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; padding-top:10px; }
.catalog-filter-grid fieldset { padding:7px; gap:6px; }
.catalog-filter-grid fieldset label { flex:0 1 78px; gap:4px; }
.catalog-filter-grid input { padding:5px 6px; height:29px; }
.catalog-filters > .account-note { margin-bottom:0; }
.results-controls { grid-template-columns:minmax(100px,1fr) minmax(90px,.8fr) minmax(160px,1.6fr) minmax(80px,.7fr) 64px 145px; gap:8px; }
.results-controls select,.results-controls input { height:32px; padding:6px 7px; font-size:12px; }
.results-controls .account-button { height:32px; padding:6px 8px; white-space:nowrap; font-size:12px; }
@media(max-width:900px) { .catalog-filter-primary { grid-template-columns:minmax(180px,1fr) 100px 100px; }.catalog-filter-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.results-controls { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { .catalog-filter-primary,.results-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }.catalog-filter-primary label:first-child { grid-column:1/-1; }.catalog-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.catalog-description-edit label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
.catalog-variant-name-input { width:100%; padding:9px 10px; border:1px solid var(--border); border-radius:8px; background:var(--button); color:var(--text); font:inherit; }

.catalog-variant-downloads { flex-wrap:nowrap; }
.catalog-variant-downloads .account-button { display:inline-flex; align-items:center; justify-content:center; gap:4px; white-space:nowrap; }

.results-id-picker { position:relative; }
.results-id-options { position:absolute; top:100%; left:0; right:0; z-index:30; max-height:190px; overflow-y:auto; overscroll-behavior:contain; background:var(--dialog); border:1px solid var(--border); border-radius:7px; box-shadow:0 5px 15px #0003; margin-top:4px; }
.results-id-options [role="option"] { padding:7px 9px; cursor:pointer; color:var(--text); font-size:12px; }
.results-id-options [role="option"]:hover,.results-id-options [aria-selected="true"] { background:var(--icon); color:var(--accent); }

.catalog-variant-downloads { display:grid; grid-template-columns:28px minmax(0,1fr) 42px; gap:5px; width:100%; }
.catalog-variant-downloads .account-button { min-width:0; max-width:100%; padding:6px 3px; font-size:10px; overflow:hidden; }

.catalog-variant-downloads { grid-template-columns:repeat(3,minmax(0,1fr)); }
.catalog-variant-downloads .account-button { height:32px; padding:5px; }
.catalog-variant-downloads svg { flex:none; }

.workbench-shell { width:min(1600px,100%); margin:0 auto; padding:12px 0 20px; }
.workbench-toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.workbench-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:16px; }
#wb-map { height:65vh; min-height:350px; border-radius:12px; }
.workbench-panel { max-height:75vh; overflow-y:auto; }
.workbench-panel .inspection-content { display:flex; flex-direction:column; gap:10px; }
.workbench-panel label { display:flex; flex-direction:column; gap:5px; font-size:12px; }
.workbench-panel label:has(input[type="checkbox"]) { flex-direction:row; align-items:center; }
.workbench-panel input,.workbench-panel select,.workbench-toolbar input,.workbench-toolbar select { padding:8px; background:var(--button); color:var(--text); border:1px solid var(--border); border-radius:7px; min-width:0; }
#wb-chart { width:100%; background:var(--button); border-radius:8px; }
@media(max-width:850px) { .workbench-layout { grid-template-columns:1fr; }.workbench-panel { max-height:none; } }

.site-page.workbench-editor { display:block; height:100svh; overflow:hidden; padding:0; }
.workbench-editor .workbench-shell { width:100%; max-width:none; height:100svh; padding:60px 10px 10px; overflow:hidden; }
.editor-workspace { display:grid; grid-template-columns:minmax(0,1fr) clamp(280px,28vw,440px); gap:12px; height:100%; min-height:0; }
.editor-left { display:grid; grid-template-rows:auto minmax(0,1fr) auto clamp(130px,25svh,240px); min-height:0; min-width:0; }
.editor-toolbar { display:flex; align-items:center; gap:7px; padding:8px 10px; margin-bottom:10px; border:1px solid var(--border); border-radius:13px; background:var(--dialog); }
.editor-toolbar .account-button { display:inline-flex; gap:6px; align-items:center; justify-content:center; min-height:32px; cursor:pointer; }
.editor-toolbar svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.editor-tool-divider { height:25px; border-left:1px solid var(--border); margin:0 5px; }
.editor-map-wrap { min-height:0; overflow:hidden; border-radius:13px; border:1px solid var(--border); }
.workbench-editor #wb-map { height:100%; min-height:0; }
.editor-map-status { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:30px; font-size:11px; color:var(--muted); }
.editor-map-status #wb-status { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.editor-objects { display:flex; flex-direction:column; min-height:0; overflow:hidden; background:var(--dialog); border:1px solid var(--border); border-radius:13px; }
.editor-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; background:var(--dialog-header); padding:7px 12px; font-size:12px; }
.editor-panel-heading input { width:100px; }.editor-panel-heading input,.editor-panel-heading select { padding:4px 6px; font-size:11px; }
.editor-objects .inspection-scroll { margin:0; max-height:none; min-height:0; flex:1; overflow:auto; }
.editor-objects td,.editor-objects th { padding:5px 10px; font-size:11px; }
.editor-sidebar { display:flex; flex-direction:column; gap:10px; min-height:0; min-width:0; }
.editor-ribbons { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; padding:8px; background:var(--dialog); border:1px solid var(--border); border-radius:13px; }
.editor-ribbons button { height:38px; font-size:21px; cursor:pointer; }
.editor-ribbons [aria-pressed="true"] { color:var(--accent); border-color:var(--accent); background:var(--icon); }
.editor-ribbon-panel { display:flex; flex-direction:column; flex:1; min-height:0; border:1px solid var(--border); background:var(--dialog); border-radius:13px; overflow:hidden; }
.editor-ribbon-panel[hidden] { display:none; }
.editor-ribbon-panel h2 { margin:0; padding:13px 14px; background:var(--dialog-header); font-size:14px; }
.editor-panel-body { display:flex; flex-direction:column; gap:12px; padding:14px; overflow-y:auto; min-height:0; flex:1; overscroll-behavior:contain; font-size:12px; }
.editor-panel-body p { line-height:1.6; margin:0; color:var(--muted); }
.editor-panel-body label { display:flex; flex-direction:column; gap:5px; font-size:11px; }
.editor-panel-body input,.editor-panel-body select { width:100%; padding:7px; background:var(--button); color:var(--text); border:1px solid var(--border); border-radius:7px; }
.editor-panel-body .inspection-content { display:flex; flex-direction:column; gap:10px; padding:10px; }
.editor-panel-body .inspection-section { margin:0; }
.editor-object-list { display:grid; gap:5px; max-height:190px; overflow-y:auto; }
.editor-network-counts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.editor-network-counts div { text-align:center; padding:9px 4px; border:1px solid var(--border); border-radius:7px; font-size:11px; }
#wb-network-lists { display:grid; gap:9px; }#wb-catalog-list { display:grid; gap:8px; }
.editor-catalog-model { text-align:left; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:760px) { .editor-workspace { grid-template-columns:minmax(0,1fr) 250px; gap:6px; }.editor-toolbar { flex-wrap:wrap; gap:4px; }.editor-panel-heading { flex-wrap:wrap; }.workbench-editor .workbench-shell { padding-top:100px; } }

.segment-map-id { background:transparent; border:0; text-align:center; font-size:11px; font-weight:700; color:#183445; text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 4px #fff; pointer-events:none; }
#wb-segment-width-field[hidden] { display:none; }

.workbench-editor .workbench-shell { padding:0; }
.workbench-editor .creator-header { height:60px; padding:9px 16px; }
.workbench-editor .editor-workspace { height:calc(100svh - 60px); padding:10px; }
.workbench-editor .editor-ribbons { grid-template-columns:repeat(4,minmax(0,1fr)); }
.workbench-editor .editor-ribbons button { position:relative; height:42px; padding:8px; }
.workbench-editor .editor-ribbons svg { width:21px; height:21px; }
.workbench-editor #wb-lock[aria-pressed="true"] { background:var(--icon); color:var(--accent); border-color:var(--accent); }
.workbench-editor .editor-toolbar .tool-group { gap:3px; }
.workbench-editor .editor-toolbar .tool-button[aria-pressed="true"] { color:var(--accent); border-color:var(--accent); background:var(--icon); }
.workbench-editor #wb-network-lists { display:block; }
#wb-catalog-dialog { width:min(680px,calc(100vw - 30px)); max-height:80svh; padding:0; }
#wb-catalog-dialog .editor-panel-body { max-height:calc(80svh - 65px); }
.editor-node-marker { color:#217aa4; background:transparent; border:0; }
.editor-node-marker svg { width:100%; height:100%; background:var(--dialog); border-radius:3px; }
.editor-node-marker.selected { filter:drop-shadow(0 0 4px #f5a000); }
.workbench-editor .editor-sidebar .object-search { font:inherit; }

.workbench-editor .editor-map-wrap { position:relative; }
.workbench-editor .editor-toolbar { gap:12px; }
.workbench-editor .editor-toolbar .tool-group + .tool-group { border-left:1px solid var(--border); padding-left:12px; }
.workbench-editor .map-layers { top:85px; }
.link-isolation .link-symbol-body { border-color:#b32d42; color:#b32d42; background:#fff4f4; border-radius:5px; }
.workbench-editor .network-node.selected .node-symbol { outline:3px solid #ffc460;outline-offset:2px; }

/* At overview scales retain a compact source dot, revealing icons on zoom or selection. */
#wb-map:not(.zoom-symbols) .network-node:not(.selected) .node-tank,
#wb-map:not(.zoom-symbols) .network-node:not(.selected) .node-reservoir { transform:scale(calc(var(--network-scale,.5)*.35)); background:currentColor; box-shadow:none; }
#wb-map:not(.zoom-symbols) .network-node:not(.selected) .node-tank svg,
#wb-map:not(.zoom-symbols) .network-node:not(.selected) .node-reservoir svg,
#wb-map:not(.zoom-symbols) .network-node:not(.selected):has(.node-tank) .network-label,
#wb-map:not(.zoom-symbols) .network-node:not(.selected):has(.node-reservoir) .network-label { display:none; }
#wb-map:not(.zoom-symbols) .link-symbol:not(.selected) { visibility:hidden; pointer-events:none; }

.workbench-editor .editor-ribbons { grid-template-columns:repeat(6,minmax(0,1fr)); }
.workbench-editor .editor-objects .panel-content { overflow:auto; padding:9px 12px; flex:1; }
.editor-bulk-objects { border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.editor-bulk-objects .editor-panel-heading { flex-direction:column; align-items:stretch; }
.editor-bulk-objects .inspection-scroll { max-height:200px; margin:0; }
.editor-bulk-objects input[type="checkbox"] { width:15px; }
.editor-bulk-objects .workbench-toolbar { gap:5px; }.editor-bulk-objects .workbench-toolbar input { width:80px; }
#wb-project-files .settings-button { cursor:pointer; }

#wb-map .link-isolation { pointer-events:none!important; }
#wb-map .link-isolation .link-symbol-body { pointer-events:auto; }

.editor-bulk-objects .workbench-toolbar { display:grid; grid-template-columns:80px minmax(0,1fr); gap:6px; width:100%; }
.editor-bulk-objects .workbench-toolbar input,.editor-bulk-objects .workbench-toolbar select { width:100%; min-width:0; }
.editor-bulk-objects #wb-select { grid-column:1/-1; }
.editor-panel-body #wb-value-host { display:block; }
.editor-panel-body #wb-value[type="checkbox"] { width:18px; height:18px; }

.editor-bulk-objects .workbench-toolbar input,.editor-bulk-objects .workbench-toolbar select { height:32px; align-self:stretch; }

.editor-bulk-objects .bulk-attributes-summary { white-space:normal; min-width:180px; line-height:1.6; }
.editor-bulk-objects th { font-size:10px; }

.editor-bulk-objects #wb-table { table-layout:fixed; width:100%; min-width:0; }
.editor-bulk-objects #wb-table.bulk-wide { min-width:410px; }
.editor-bulk-objects #wb-table .bulk-check-column { width:28px; }
.editor-bulk-objects #wb-table .bulk-id-column { width:44px; }
.editor-bulk-objects #wb-table th,.editor-bulk-objects #wb-table td { padding:6px 5px; font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.editor-bulk-objects #wb-table td.bulk-attributes-summary { white-space:normal; }
.editor-bulk-objects #wb-table thead { position:sticky; top:0; background:var(--dialog-header); z-index:1; }
.editor-bulk-objects #wb-table input[type="checkbox"] { width:14px; height:14px; margin:0; cursor:pointer; accent-color:var(--accent); }
.editor-bulk-objects .bulk-district-filter { padding:7px 10px; background:var(--dialog-header); }
.editor-bulk-objects .bulk-district-filter select { height:30px; font-size:11px; }
.bulk-district-filter small { color:var(--muted); font-size:10px; line-height:1.4; }

.editor-bulk-objects .bulk-district-filter { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:6px 8px; }
.editor-bulk-objects .bulk-district-filter > span { white-space:nowrap; }
.editor-bulk-objects .bulk-district-filter > small { grid-column:1/-1; }

.bulk-selection-count { padding:7px 10px; color:var(--accent); background:var(--button); font-size:11px; border-top:1px solid var(--border); }
.editor-bulk-objects .bulk-value-filter { margin:5px 7px; }
.bulk-filter-row { display:grid; grid-template-columns:65px minmax(0,1fr); gap:6px; margin-top:6px; }
.editor-panel-body .bulk-value-filter .settings-content { padding:7px; }
.bulk-map-draw-actions { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:850; display:flex; gap:6px; background:var(--dialog); border:1px solid var(--border); border-radius:9px; padding:6px; }
.bulk-map-draw-actions[hidden] { display:none; }
#wb-preview-dialog { width:min(700px,calc(100vw - 24px)); padding:0; max-height:85svh; }
#wb-preview-dialog .editor-panel-body { max-height:calc(85svh - 65px); }
#wb-preview-dialog .inspection-scroll { max-height:45svh; }
.bulk-preview-actions { display:flex; justify-content:flex-end; gap:8px; }
.workbench-editor .editor-toolbar { flex-wrap:wrap; row-gap:6px; }

#wb-area-actions { left:60px; bottom:33px; transform:none; z-index:550; flex-wrap:wrap; gap:5px; background:transparent; border:0; padding:0; }
#wb-area-actions button { border:1px solid var(--border); border-radius:9px; padding:8px 10px; background:var(--dialog); color:var(--text); box-shadow:0 2px 8px #0002; }

#wb-delete-dialog { width:min(420px,calc(100vw - 32px)); padding:0; }
#wb-delete-dialog .editor-panel-body { padding:20px; }
.delete-dialog-icon { width:44px; height:44px; padding:10px; border-radius:12px; background:rgba(211,62,68,.12); color:#cf4149; }
.delete-dialog-icon svg { width:24px; height:24px; }
.delete-dialog-note { font-size:12px; opacity:.75; }
.account-button.delete-confirm-button { background:#c83d47; border-color:#c83d47; color:white; }
.account-button.delete-confirm-button:hover { background:#ae303a; }

.segment-generation-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; align-items:end; }
.segment-generation-row label { min-width:0; margin:0; }
.segment-generation-row button { margin:0; height:32px; padding:5px 10px; white-space:nowrap; }

.editor-map-wrap #wb-map { background:var(--card-top); }
.workbench-editor #wb-map.hide-basemap .leaflet-tile-pane { display:none !important; }

/* Homepage branding and a quiet, full-page hydraulic network illustration. */
.home-page .shell { position:relative; z-index:1; }
.home-brand-copy { display:flex; flex-direction:row; align-items:center; gap:14px; min-width:0; white-space:nowrap; }
.watermark-logo { display:block; flex:none; width:39px; height:46px; overflow:visible; filter:drop-shadow(0 3px 5px color-mix(in srgb,var(--accent) 18%,transparent)); }
.watermark-drop { fill:color-mix(in srgb,var(--accent) 12%,var(--card-top)); stroke:var(--accent); stroke-width:1.7; stroke-linejoin:round; }
.watermark-symbol circle { stroke:var(--card-top); stroke-width:1.1; }
.watermark-symbol path,.watermark-symbol > circle:not(:first-child) { fill:none; stroke:#fff; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.watermark-symbol .symbol-cutout { fill:none; }
.symbol-analysis circle:first-child { fill:#4c91bd; }
.symbol-testing circle:first-child { fill:#279b8c; }
.symbol-engineering circle:first-child { fill:#d0903d; }
.symbol-reliability circle:first-child { fill:#588e69; }
.home-brand-acronym { color:var(--accent); font-size:17px !important; line-height:20px !important; font-weight:800; letter-spacing:.28em; }
.home-brand-separator { flex:none; width:1px; height:25px; background:var(--border); }
.home-brand-expansion { color:var(--muted); font-size:17px; line-height:22px; white-space:nowrap; }
.home-brand-expansion b { color:var(--accent); font-weight:800; }
.home-network-background { position:fixed; z-index:-1; inset:0; width:100vw; height:100vh; pointer-events:none; opacity:.72; }
.home-background-pipes { stroke:url(#network-pressure); stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; opacity:.3; }
.home-background-pipes path+path { stroke-width:1.1; opacity:.55; }
.home-background-nodes circle { stroke-width:2; }
.home-background-nodes .pressure-cool { fill:color-mix(in srgb,#4bb8ed 45%,var(--card-top)); stroke:#4bb8ed; }
.home-background-nodes .pressure-mid { fill:color-mix(in srgb,#54d2ad 45%,var(--card-top)); stroke:#54d2ad; }
.home-background-nodes .pressure-warm { fill:color-mix(in srgb,#eacb62 48%,var(--card-top)); stroke:#eacb62; }
.home-background-nodes .pressure-hot { fill:color-mix(in srgb,#f08a67 50%,var(--card-top)); stroke:#f08a67; }
.home-tiles { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-tiles .tile { background:color-mix(in srgb,var(--card-top) 88%,transparent); backdrop-filter:blur(5px); }
.home-tiles .home-module-tile { position:relative; }
.home-tiles .home-access-status { position:absolute; top:12px; right:14px; max-width:calc(100% - 76px); overflow:hidden; padding:4px 8px; border:1px solid var(--border); border-radius:999px; color:var(--muted); background:var(--card-bottom); font-size:10px; font-weight:700; letter-spacing:.02em; text-overflow:ellipsis; white-space:nowrap; }
.home-tiles .home-access-status.access-public { color:#087957; background:#e6f7ef; border-color:#a9e5c7; }
.home-tiles .home-access-status.access-login { color:#8a5a00; background:#fff5d8; border-color:#edcf7a; }
.home-tiles .home-access-status.access-denied { color:#a52c38; background:#fff0f0; border-color:#f0b6bc; }
.home-tiles .tile-needs-login { border-style:dashed; }
.home-tiles .tile-no-access { opacity:.65; cursor:not-allowed; }
.home-tiles .home-editor h2 { font-size:15px; letter-spacing:-.2px; white-space:nowrap; }
.home-tiles .home-catalog { position:relative; grid-column:1 / -1; display:grid; grid-template-columns:56px minmax(0,1fr); column-gap:18px; align-content:center; min-height:150px; border-color:color-mix(in srgb,var(--accent) 35%,var(--border)); }
.home-catalog .tile-icon { grid-row:1 / 3; width:56px; height:56px; align-self:center; }
.home-catalog .tile-icon svg { width:30px; height:30px; }
.home-catalog h2 { margin:0 0 8px; font-size:23px; line-height:1.25; }
.home-tiles .information { grid-column:1 / -1; display:grid; grid-template-columns:42px minmax(0,1fr); column-gap:16px; align-content:center; min-height:88px; padding:18px 22px; }
.home-tiles .information .tile-icon { grid-row:1 / 3; align-self:center; }
.home-tiles .information h2 { margin:0 0 5px; font-size:16px; }
@media(max-width:700px) { .home-tiles { grid-template-columns:1fr; } .home-tiles .tile { min-height:130px; } .home-tiles .information { min-height:88px; } .home-catalog h2 { font-size:20px; } .home-brand-copy { gap:clamp(5px,2vw,10px); } .home-brand-acronym { font-size:clamp(12px,3vw,15px) !important; letter-spacing:.16em; } .home-brand-expansion { font-size:clamp(9px,2.5vw,12px); line-height:16px; } .home-brand-separator { height:20px; } .watermark-logo { width:34px; height:40px; } .home-background-pipes { opacity:.22; } }

.home-divider { grid-column:1 / -1; width:100%; height:1px; margin:1px 0; border:0; background:var(--border); }
.home-tiles .home-placeholder { display:flex; align-items:center; min-height:148px; box-shadow:none; }
.home-placeholder h2 { margin:0; color:var(--muted); font-size:16px; font-weight:500; }
.home-tiles .home-inactive { position:relative; opacity:.66; cursor:not-allowed; }
.home-tiles .home-inactive .tile-status { position:absolute; top:20px; right:18px; padding:4px 8px; border:1px solid var(--border); border-radius:999px; color:var(--muted); background:var(--card-bottom); font-size:10px; font-weight:700; letter-spacing:.02em; }
.header-info { display:grid; place-items:center; width:32px; height:32px; padding:6px; border:1px solid var(--border); border-radius:9px; background:var(--card-bottom); cursor:pointer; }
.header-info svg { width:19px; height:19px; }
.header-info:hover { color:var(--accent); border-color:var(--accent); }

.simulator-left { display:grid; grid-template-rows:auto minmax(180px,1fr) auto minmax(180px,32svh); min-width:0; min-height:0; gap:8px; }
.simulator-left .editor-toolbar { margin:0; }
.sim-model-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--muted); }
.workbench-simulator .editor-ribbons { grid-template-columns:repeat(5,minmax(0,1fr)); }
.workbench-simulator .map-layers { top:85px; max-height:calc(100% - 70px); }
.sim-timeline { display:flex; align-items:center; gap:10px; padding:7px 10px; background:var(--dialog); border:1px solid var(--border); border-radius:10px; min-width:0; }
.sim-timeline input[type=range] { min-width:40px; flex:1; accent-color:var(--accent); }
.sim-timeline output { min-width:44px; font-variant-numeric:tabular-nums; }
.sim-timeline #wb-legend { font-size:10px; white-space:nowrap; }
.sim-color-legend::before { content:''; display:inline-block; width:55px; height:7px; margin-right:6px; border-radius:4px; background:linear-gradient(90deg,hsl(230,75%,47%),hsl(115,75%,47%),hsl(0,75%,47%)); }
.sim-chart-panel { display:flex; flex-direction:column; min-height:0; padding:10px 12px; border:1px solid var(--border); border-radius:13px; background:var(--dialog); overflow:auto; }
.sim-chart-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; }
.sim-chart-heading label { display:flex; align-items:center; gap:8px; }
.sim-chart-heading select { max-width:300px; padding:5px; color:var(--text); background:var(--button); border:1px solid var(--border); border-radius:7px; }
#wb-chart { width:100%; min-height:110px; flex:1; color:var(--muted); cursor:crosshair; }
#sim-chart-legend { display:flex; flex-wrap:wrap; gap:5px 12px; max-height:35px; overflow:auto; font-size:10px; }
#sim-current-values { font-size:10px; color:var(--muted); max-height:28px; overflow:auto; }
.sim-import-row,.sim-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.sim-timing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.editor-panel-body .sim-inline-check { display:flex; flex-direction:row; align-items:center; gap:8px; }
.editor-panel-body input[type=checkbox] { width:auto; }
.sim-object-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
.sim-object-table { flex:1; max-height:none; min-height:100px; }
.workbench-simulator #wb-status { white-space:pre-wrap; line-height:1.6; }
.workbench-simulator .validation-warning { color:#c18415; }
@media(max-height:650px) { .simulator-left { grid-template-rows:auto minmax(130px,1fr) auto minmax(140px,30svh); gap:5px; } }

.workbench-simulator #wb-area-actions { z-index:850; left:50%; transform:translateX(-50%); flex-wrap:nowrap; white-space:nowrap; }

.sim-chart-heading { margin-bottom:9px; flex-shrink:0; }
.sim-selection-list { max-height:240px; overflow:auto; }
.sim-selection-row { display:grid; grid-template-columns:18px minmax(55px,1fr) minmax(0,1fr); align-items:center; gap:8px; padding:7px 4px; border-bottom:1px solid var(--border); font-size:11px; }
.sim-selection-row .results-object-link { text-align:left; }
.sim-selection-row>span { text-align:right; font-variant-numeric:tabular-nums; }
#sim-object-lists .settings-content { padding:10px; display:flex; flex-direction:column; gap:8px; }
#sim-object-lists .settings-section { margin-bottom:10px; }
#sim-chart-legend button { font:inherit; padding:2px 5px; border:1px solid var(--border); border-radius:5px; background:var(--button); cursor:pointer; }
#sim-chart-legend button:hover { border-color:var(--accent); }

.workbench-simulator #wb-map .network-node.generated-node:not(.selected) .node-symbol { transform:scale(calc(var(--network-scale,.5)*.65)); box-shadow:0 0 0 1px white; }
.workbench-simulator #wb-map .node-junction { box-shadow:0 0 0 1px white,0 1px 3px #0004; }
.workbench-simulator #wb-map .sim-value-label { background:var(--dialog); color:var(--text); border:1px solid var(--border); padding:3px 6px; font-size:11px; font-weight:600; box-shadow:0 1px 4px #0002; }
.sim-color-legend::before { width:75px; height:9px; }

.workbench-simulator .sim-timeline { position:relative; min-height:70px; padding-bottom:30px; }
.workbench-simulator .sim-timeline #wb-legend { margin-left:auto; }
.workbench-simulator .sim-timeline input[type=range] { position:absolute; bottom:7px; height:16px; min-width:0; margin:0; padding:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; }
.workbench-simulator .sim-timeline input[type=range]::-webkit-slider-runnable-track { height:4px; border-radius:3px; background:var(--border); }
.workbench-simulator .sim-timeline input[type=range]::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:var(--accent); border:1px solid var(--dialog); margin-top:-5px; }
.workbench-simulator .sim-timeline input[type=range]::-moz-range-track { height:4px; border-radius:3px; background:var(--border); }
.workbench-simulator .sim-timeline input[type=range]::-moz-range-thumb { width:12px; height:12px; border:1px solid var(--dialog); border-radius:50%; background:var(--accent); }

.workbench-simulator .sim-timeline { min-height:46px; padding:7px 10px; }
.workbench-simulator .sim-timeline input[type=range] { top:50%; bottom:auto; transform:translateY(-50%); }
.workbench-simulator .sim-timeline #wb-legend { position:relative; z-index:1; background:var(--dialog); padding-left:7px; }

.workbench-simulator .sim-timeline #wb-legend { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.workbench-simulator .sim-timeline .sim-color-legend::before { width:24px; height:7px; margin-right:4px; }

.workbench-simulator #wb-map .sim-aggregate-label { border-color:var(--accent); border-radius:10px; padding:4px 7px; }

.map-load-placeholder { display:none; }
.workbench-empty .map-load-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:center; text-align:center; padding:24px; background:var(--card-top); color:var(--muted); }
.map-load-placeholder strong { font-size:18px; color:var(--text); }
.map-load-placeholder .tile-icon svg { width:24px; height:24px; }
.workbench-empty #wb-map { visibility:hidden; }
.workbench-empty .map-layers,.workbench-empty .map-styles { display:none; }
.header-project-name { max-width:min(38vw,500px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:14px; border-left:1px solid var(--border); font-size:13px; color:var(--muted); }
.simulator-workspace #sim-open-import { margin-left:auto; }

.map-load-placeholder .load-model-arrow { position:absolute; left:clamp(70px,11%,170px); top:16px; width:calc(39% - 40px); height:calc(50% - 35px); min-width:110px; min-height:80px; max-height:300px; overflow:visible; pointer-events:none; color:#dc515b; opacity:.85; }
.load-model-arrow path { stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
@media(max-height:650px) { .map-load-placeholder .load-model-arrow { width:24%; height:32%; min-height:40px; min-width:65px; top:10px; } }

.sim-results-time { padding:10px 12px; border:1px solid var(--border); border-radius:9px; background:var(--button); font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
#sim-results-lists .settings-section { margin-bottom:10px; }
#sim-results-lists .settings-content { display:flex; flex-direction:column; gap:9px; padding:10px; }
.sim-results-scroll { max-height:260px; margin:0; overflow:auto; }
.sim-results-scroll table { font-size:10px; }
.sim-results-scroll th,.sim-results-scroll td { padding:7px 8px; font-size:10px; }
.sim-results-scroll th { position:sticky; top:0; background:var(--dialog-header); z-index:1; }
.sim-results-scroll th:first-child,.sim-results-scroll td:first-child { position:sticky; left:0; background:var(--dialog); min-width:55px; }
.sim-results-scroll th:first-child { z-index:2; background:var(--dialog-header); }
.sim-results-scroll td:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }

#sim-chart-legend { margin-top:9px; flex-shrink:0; }

.sim-results-scroll table { width:100%; table-layout:fixed; }
.sim-results-scroll th,.sim-results-scroll td { padding:6px 4px; font-size:10px; }
.sim-results-scroll th { white-space:normal; overflow-wrap:anywhere; text-align:right; }
.sim-results-scroll th:first-child,.sim-results-scroll td:first-child { width:36px; min-width:0; text-align:left; overflow:hidden; text-overflow:ellipsis; }
.sim-results-scroll .sim-table-unit { display:block; font-size:9px; font-weight:400; opacity:.8; margin-top:2px; white-space:nowrap; }

.sim-chart-actions { display:flex; align-items:center; gap:12px; white-space:nowrap; }
.sim-chart-actions button { padding:4px 7px; font-size:10px; }

.sim-map-legend { min-width:125px; max-width:190px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--dialog); color:var(--text); box-shadow:0 2px 9px #0002; font:11px Arial,Helvetica,sans-serif; }
.sim-map-legend[hidden] { display:none; }
.sim-map-legend strong { display:block; font-size:11px; }
.sim-map-legend-caption { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.sim-map-legend-scale { display:flex; gap:9px; height:82px; margin:8px 0; }
.sim-map-legend-bar { width:12px; border-radius:3px; flex-shrink:0; }
.sim-map-legend-ticks { display:flex; flex-direction:column; justify-content:space-between; font-variant-numeric:tabular-nums; }
.sim-map-legend small { display:block; font-size:9px; color:var(--muted); }
@media(max-height:650px) { .sim-map-legend { padding:7px 9px; }.sim-map-legend-scale { height:60px; margin:5px 0; } }

.sim-gif-controls{display:flex;gap:10px;margin-bottom:10px}.sim-gif-controls label{flex:1;min-width:0}.sim-gif-controls input{width:100%;box-sizing:border-box}.sim-gif-clock{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:1000;background:rgba(255,255,255,.94);color:#18334d;padding:6px 12px;border-radius:6px;font-weight:700;pointer-events:none}.sim-gif-capturing{pointer-events:none}.sim-gif-capturing .leaflet-tooltip{transition:none!important}.sim-gif-capturing .leaflet-tooltip[style*="opacity: 0"]{display:none!important}

.catalog-world-card{margin:0 0 22px;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--dialog);--world-land:#d1e4eb;--world-outline:#9dbcc9;--world-grid:#cadde5}
[data-theme="dark"] .catalog-world-card{--world-land:#234553;--world-outline:#3b6979;--world-grid:#214352}
.catalog-world-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}
.catalog-world-heading h2{font-size:18px;margin:0 0 5px}.catalog-world-heading p{font-size:12px;margin:0;color:var(--muted)}
.catalog-world-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.catalog-world-actions>span{color:var(--muted);font-size:11px;margin-right:6px;white-space:nowrap}
#catalog-world-map{height:320px;background:radial-gradient(ellipse at 60% 40%,#f2fafb,#e2eff5);border-top:1px solid var(--border)}
[data-theme="dark"] #catalog-world-map{background:radial-gradient(ellipse at 60% 40%,#112e3e,#0b1c2a)}
.catalog-world-marker{display:grid;place-items:center;background:none;border:0}.catalog-world-marker span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 4px;box-sizing:border-box;border:2px solid #fff;border-radius:50%;background:#008fb6;color:#fff;font-size:11px;font-weight:800;box-shadow:0 0 0 6px #009ac71b,0 3px 9px #092b4840;transition:box-shadow .15s,transform .15s}.catalog-world-marker:hover span,.catalog-world-marker:focus span{transform:scale(1.15);box-shadow:0 0 0 9px #009ac72b,0 4px 12px #092b4850}
.catalog-map-popup .leaflet-popup-content-wrapper,.catalog-map-popup .leaflet-popup-tip{background:var(--dialog);color:var(--text)}.catalog-world-popup>strong{font-size:14px}.catalog-world-popup-list{max-height:230px;overflow:auto;margin-top:10px}.catalog-world-popup-list h3{font-size:11px;color:var(--muted);margin:12px 0 5px}.catalog-world-popup-list a{display:block;padding:7px 6px;border-radius:5px;color:var(--accent);font-size:12px;text-decoration:none;line-height:1.35}.catalog-world-popup-list a:hover,.catalog-world-popup-list a:focus{background:var(--button)}
.catalog-world-status:empty{display:none}.catalog-world-status{margin:0;padding:10px 18px;color:var(--muted);font-size:12px}
@media(max-width:650px){.catalog-world-heading{align-items:flex-start;flex-direction:column;gap:10px}.catalog-world-actions{justify-content:flex-start}#catalog-world-map{height:280px}}
#catalog-world-map .catalog-world-city-label{background:none;border:0;box-shadow:none;color:var(--text);font-size:11px;font-weight:700;text-shadow:0 1px 2px var(--dialog)}#catalog-world-map .catalog-world-city-label:before{display:none}
.catalog-world-popup-panel{position:relative;width:270px;max-width:calc(100vw - 85px);padding:14px;background:var(--dialog);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px #092b4830}.catalog-world-popup-panel[hidden]{display:none}.catalog-world-popup-panel .catalog-world-popup-list{max-height:210px}.catalog-world-popup-panel>.catalog-world-popup>strong{display:block;padding-right:24px}.catalog-world-popup-close{position:absolute;top:6px;right:8px;padding:0 5px;border:0;background:none;color:var(--muted);font-size:23px;cursor:pointer}

.catalog-world-only{position:relative;padding:0;overflow:hidden}.catalog-world-only #catalog-world-map{border:0;border-radius:inherit}.catalog-world-overlay{position:absolute;bottom:12px;left:12px;z-index:500;padding:6px 8px;border-radius:10px;background:var(--surface,#fff);box-shadow:0 2px 10px #0002;font-size:11px}.catalog-world-only .catalog-world-status:empty{display:none}.catalog-world-only .catalog-world-status{position:absolute;bottom:52px;left:12px;z-index:500;background:var(--surface,#fff)}

.catalog-world-overlay{left:auto;right:12px;padding:4px;gap:4px}.catalog-world-overlay button{width:34px;height:34px;display:grid;place-items:center;padding:0}

/* Shared catalogue and confirmation dialogs. */
dialog{box-sizing:border-box;max-height:calc(100svh - 32px)}
.catalog-picker-dialog{width:min(680px,calc(100vw - 32px));padding:0;overflow:hidden}
.catalog-picker-dialog .dialog-header{gap:16px;padding:16px 20px}.catalog-picker-dialog .dialog-header h2{font-size:17px;line-height:1.4}.catalog-picker-dialog .close-button{flex:0 0 34px;display:grid;place-items:center;line-height:1;color:var(--muted)}
.catalog-picker-dialog .editor-panel-body{box-sizing:border-box;max-height:calc(80svh - 72px);padding:20px;display:flex;flex-direction:column;gap:14px;overflow:auto}
.catalog-search-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}
.catalog-picker-dialog input{box-sizing:border-box;width:100%;min-width:0;height:40px;padding:10px 12px;font:inherit;color:var(--text);background:var(--button);border:1px solid var(--border);border-radius:9px}
.catalog-picker-dialog input::placeholder{color:var(--muted)}
.dialog-status:empty{display:none}.dialog-status:not(:empty){margin:0;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:9px;background:var(--button);font-size:12px;line-height:1.65;overflow-wrap:anywhere}
.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;padding-top:10px;flex-wrap:wrap}
.catalog-picker-dialog #sc-catalog-list{margin-top:0;max-height:none}.catalog-picker-dialog #sc-catalog-list:empty{display:none}

.db-variant-actions{display:flex;gap:7px;flex-wrap:wrap}.db-variant-actions button{flex:1}.editor-panel-body section.settings-section h3{font-size:12px;margin:10px 0}.editor-panel-body [id^="wb-db-"]{box-sizing:border-box}.editor-panel-body #wb-db-status,.editor-panel-body #wb-db-variant-status{font-size:12px;line-height:1.6;overflow-wrap:anywhere}

.editor-panel-body .db-catalog-variants{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--dialog);border:1px solid var(--border);border-radius:11px;flex-shrink:0}.editor-panel-body .db-catalog-variants h3{margin:0;font-size:13px}.db-catalog-variants>label{margin:0}.db-catalog-variants .account-button{min-height:32px}.db-catalog-variants select,.db-catalog-variants input{box-sizing:border-box;min-width:0}.db-catalog-variants p{font-size:11px}.db-district-generation-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.db-variant-actions{display:flex;gap:8px;flex-wrap:wrap}.db-variant-actions button{flex:1 1 150px}
.workbench-editor [data-editor-panel="districts"] .db-district-generation-row>*{min-width:0;max-width:100%}.workbench-editor [data-editor-panel="districts"] .db-district-generation-row>button{width:100%;padding-inline:6px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.workbench-editor [data-editor-panel="districts"] .district-population-editor{min-width:0;max-width:100%;padding:12px}.workbench-editor [data-editor-panel="districts"] .district-population-total-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;min-width:0}.workbench-editor [data-editor-panel="districts"] .district-population-total-row>*{width:100%;min-width:0}.workbench-editor [data-editor-panel="districts"] .district-population-total-row button{height:auto;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.workbench-editor [data-editor-panel="districts"] .district-population-total-row input{min-width:0;max-width:100%}
@media(max-width:560px){.sim-timing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.catalog-pick-row{padding:5px;border:1px solid var(--border);border-radius:10px;background:var(--dialog);display:grid;gap:9px}.catalog-pick-row>button{width:100%;text-align:left;white-space:normal;line-height:1.5}.catalog-pick-row>button:disabled{opacity:.65}.catalog-pick-row label{font-size:11px;display:grid;gap:5px}.catalog-segmentation-record{border:1px solid var(--border);border-radius:12px;margin:10px 0;overflow:hidden}.catalog-segmentation-record>summary{padding:12px;cursor:pointer;display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:12px;flex-wrap:wrap}.catalog-segmentation-record>summary span{color:var(--muted)}.catalog-segmentation-preview{display:block;width:100%;max-height:420px;object-fit:contain;background:#f5f8fc}.catalog-segmentation-record>a,.catalog-segmentation-record>p{margin:12px}

.catalog-pick-variants{display:grid;gap:9px}.catalog-pick-variants[hidden]{display:none}.catalog-pick-variants>button{justify-self:end}

.catalog-picker-dialog #wb-catalog-list,.catalog-picker-dialog #sc-catalog-list{gap:5px}.catalog-pick-row>button{padding-top:7px;padding-bottom:7px}
.catalog-segmentation-field{display:grid;gap:8px;font-size:12px}.catalog-segmentation-field select{width:100%;min-width:0;box-sizing:border-box;background:var(--button);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px;font:inherit}.catalog-failure-variants{padding:18px}.catalog-failure-variants .dialog-actions{padding:0 12px 12px;justify-content:flex-start;flex-wrap:wrap}

/* Flat, compact model catalog; ordering follows the existing filters. */
.catalog-model-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0}
.catalog-compact-card{position:relative;min-width:0;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--dialog);transition:border-color .15s,box-shadow .15s,transform .15s}
.catalog-compact-open{display:flex;flex-direction:column;height:100%;color:var(--text);text-decoration:none}
.catalog-compact-card .catalog-thumbnail{display:block;width:100%;height:110px;box-sizing:border-box;margin:0;border-radius:0;object-fit:contain;background:#f5f8fc;padding:5px}
.catalog-compact-body{padding:10px;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.catalog-compact-city{font-size:12px;font-weight:700;color:var(--accent);overflow-wrap:anywhere}
.catalog-compact-card h2{font-size:12px;line-height:1.4;font-weight:500;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.catalog-compact-card .catalog-model-heading{align-items:start;gap:5px}
.catalog-compact-card .catalog-card-arrow{font-size:16px;flex:none}
.catalog-compact-stats{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:10px;color:var(--muted);margin-top:auto;padding-top:4px}
.catalog-compact-stats strong{font-weight:600;color:var(--text)}
.catalog-compact-card:hover,.catalog-compact-card:focus-within{border-color:var(--accent);box-shadow:0 4px 14px #0001;transform:translateY(-2px)}
.catalog-compact-open:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.catalog-no-preview{display:grid!important;place-items:center;color:#607186;font-weight:700}
.catalog-admin-delete{position:absolute;top:7px;right:7px;z-index:2;display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0!important;border-color:#e2a0a5!important;border-radius:8px;background:#fff2f3!important;color:#c03945!important;box-shadow:0 2px 8px #172b3d24}
.catalog-admin-delete:hover{background:#ffe1e3!important;border-color:#c03945!important}
.catalog-admin-delete svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.catalog-model-grid>.catalog-empty{grid-column:1/-1}
@media(max-width:1200px){.catalog-model-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.catalog-model-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.catalog-model-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}}
@media(max-width:340px){.catalog-model-grid{grid-template-columns:minmax(0,1fr)}}

/* Model record overview: gallery left, network information and description right. */
.model-record-shell{width:min(1440px,100%)}
.model-card-columns{grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);align-items:stretch}
.model-card-overview{display:flex;flex-direction:column;gap:16px;min-width:0}
.model-card-overview>.catalog-statistics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--dialog);align-content:start}
.model-card-overview .catalog-stat-group{padding:0;border:0;border-radius:0;background:none;min-width:0}
.model-card-overview .catalog-stat-group:nth-child(3){grid-column:1/-1;border-top:1px solid var(--border);padding-top:12px}
.model-card-overview .catalog-stat-group:nth-child(3) .catalog-stat-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}
.model-card-overview .catalog-stat-breakdown>div{padding:7px 5px}
.model-card-overview .catalog-stat-breakdown span{font-size:10px;overflow-wrap:anywhere}
.model-card-overview .model-technical-info{grid-column:1/-1;margin:0;padding-top:12px;border-top:1px solid var(--border);gap:10px}
.model-card-overview>.model-description-panel{margin:0;padding:18px;min-width:0;width:100%;box-sizing:border-box}
.model-card-page>.model-description-below-overview{margin:0 0 18px;padding:18px 20px;box-sizing:border-box}
.model-card-columns .model-gallery{display:flex;flex-direction:column;gap:12px;align-self:start;padding:14px}
.model-card-columns .model-gallery img{height:auto;aspect-ratio:1.5;max-height:430px}
.model-card-columns .gallery-controls{margin:0}
.model-card-columns .model-gallery>.account-note{margin:2px 0 4px;line-height:1.5}
@media(max-width:900px){.model-card-columns{grid-template-columns:1fr}.model-card-columns .model-gallery img{max-height:440px;aspect-ratio:1.7}}
@media(max-width:480px){.model-card-overview>.catalog-statistics{grid-template-columns:1fr}.model-card-overview .catalog-stat-group:nth-child(3){grid-column:auto}.model-card-overview .catalog-stat-group:nth-child(3) .catalog-stat-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.model-card-columns .gallery-tabs{flex-wrap:wrap}}

/* Balanced model overview and clear download actions. */
.model-card-heading{padding:20px 22px;border:1px solid var(--border);border-radius:16px;background:var(--dialog);margin-top:16px}
.model-card-heading>div:first-child{min-width:0}
.model-card-heading h1{font-size:clamp(23px,2.2vw,32px);line-height:1.2;margin:7px 0 10px}
.model-card-heading .model-city-name{margin:5px 0;font-size:12px;color:var(--muted)}
.model-card-heading .account-note{margin:0;font-size:11px}
.model-downloads{flex-shrink:0;gap:10px}
.model-downloads .account-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:88px;padding:11px 16px;border-radius:10px;font-size:13px;font-weight:600;letter-spacing:.3px}
.model-downloads svg{flex:none}
.model-card-overview>.catalog-statistics{gap:14px}
.model-card-overview .catalog-stat-group:nth-child(-n+2){padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--card-top)}
.model-card-overview .catalog-stat-group>header{gap:12px;font-size:12px}
.model-card-overview .model-technical-info{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.model-card-overview .model-technical-info dt{font-size:10px;line-height:1.4;min-height:28px;margin-bottom:4px;color:var(--muted)}
.model-card-overview .model-technical-info dd{margin:0;font-size:12px;overflow-wrap:anywhere}
.model-card-columns .model-gallery{align-self:stretch;display:grid;grid-template-rows:minmax(330px,1fr) auto auto auto;gap:12px}
.model-card-columns #model-preview-link{display:block;position:relative;min-width:0;min-height:0;border-radius:10px;overflow:hidden;background:#f5f8fc}
.model-card-columns .model-gallery img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain}
@media(max-width:900px){.model-card-columns .model-gallery{grid-template-rows:auto auto auto auto}.model-card-columns #model-preview-link{aspect-ratio:1.5;min-height:260px}}
@media(max-width:600px){.model-card-overview .model-technical-info{grid-template-columns:repeat(2,minmax(0,1fr))}.model-card-overview .model-technical-info dt{min-height:0}.model-card-heading{padding:16px}.model-downloads{width:100%}.model-downloads .account-button{flex:1}}
.model-card-overview .model-technical-info>div{text-align:center}

/* Shared fixed-height information area in the model record. */
.record-ribbons{margin:22px 0;border:1px solid var(--border);border-radius:14px;background:var(--dialog);overflow:hidden}
.record-ribbon-tabs{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:var(--card-top);border-bottom:1px solid var(--border)}
.record-ribbon-tab{appearance:none;font:inherit;font-size:12px;font-weight:600;padding:11px 16px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;min-width:100px;text-align:center}
.record-ribbon-tab:hover{background:var(--button);color:var(--text)}
.record-ribbon-tab[aria-selected="true"]{border-color:var(--accent);background:var(--icon);color:var(--accent)}
.record-ribbon-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.record-ribbon-body{height:500px;min-height:0}
.record-ribbon-body>.record-ribbon-panel{box-sizing:border-box;height:100%;min-width:0;margin:0;border:0;border-radius:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:18px}
.record-ribbon-panel[hidden]{display:none!important}
.record-ribbon-panel>summary,.record-ribbon-panel>h2{display:none}
.record-ribbon-panel>.inspection-content{padding:0;max-height:none}
.record-ribbon-panel>.inspection-scroll{overflow:visible}
.record-ribbon-panel.catalog-results>.results-body{padding:0}
.record-ribbon-panel .inspection-item:first-child{margin-top:0}
@media(max-width:600px){.record-ribbon-tabs{gap:4px}.record-ribbon-tab{flex:1 1 auto;padding:9px 10px;font-size:11px;min-width:90px}.record-ribbon-body{height:440px}.record-ribbon-body>.record-ribbon-panel{padding:12px}}

/* Keep the record centered even when a result table is wider than its panel. */
html:has(.model-record-shell){scrollbar-gutter:stable both-edges;overflow-x:clip}
body:has(>.model-record-shell){display:block}
.model-record-shell{margin-inline:auto;min-width:0}
.model-card-page,.record-ribbons,.record-ribbon-body{min-width:0;max-width:100%}
.record-ribbon-tabs,.record-subtabs{justify-content:flex-start}
.record-ribbon-tab,.record-subtab{flex:0 0 auto;min-width:0;width:auto}
.record-subtabs{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 12px;margin-bottom:14px;border-bottom:1px solid var(--border)}
.record-subtab{appearance:none;font:inherit;font-size:11px;padding:7px 12px;border:1px solid var(--border);border-radius:7px;background:var(--button);color:var(--muted);cursor:pointer}
.record-subtab[aria-selected="true"]{background:var(--icon);color:var(--accent);border-color:var(--accent)}
.record-subtab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.record-subpanel[hidden]{display:none!important}
.record-subpanel>summary{display:none}
.record-subpanel.inspection-section{margin:0;border:0;border-radius:0}
.record-ribbon-panel .inspection-chart{height:210px;max-width:100%;object-fit:contain}
.record-ribbon-panel .results-chart{height:240px;max-width:100%}
.record-results-plot{min-width:0}

/* One vertical scroll owner for all record information tables. */
.record-ribbon-panel .inspection-scroll{max-height:none;overflow:visible}
.model-card-page>.catalog-variant-accordion{margin:12px 0;padding:0;min-width:0}
.catalog-variant-accordion>summary{display:flex;align-items:center;gap:7px}
.catalog-variant-accordion>.inspection-content{padding-top:0}
.catalog-variant-accordion .variant-card-grid{margin-top:4px}
.record-failure-content{min-width:0}
.record-failure-content>.record-subpanel{border:0;margin:0;padding:0}
.record-failure-content>.record-subpanel>h3{font-size:14px;margin:12px 0}

/* Model detail page uses the document scroll so the whole white card remains scrollable. */
.record-ribbon-body{height:auto;min-height:0}
.record-ribbon-body>.record-ribbon-panel{height:auto;min-height:0;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
.model-card-columns .model-gallery{display:flex;flex-direction:column;gap:10px;align-self:stretch}
.model-card-columns .model-gallery #model-preview-link{position:relative;display:block;min-height:0;aspect-ratio:1.5;overflow:hidden;border-radius:10px;background:#f5f8fc}
.model-card-columns .model-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.model-card-columns .model-gallery>.account-note{margin:0;text-align:center}
.model-card-overview .catalog-stat-group:nth-child(4) .catalog-stat-breakdown{grid-template-columns:repeat(4,minmax(0,1fr))}
.model-card-overview .catalog-stat-group:nth-child(4) .catalog-stat-breakdown>div{min-width:0;text-align:center}
.district-option-count{display:inline-flex;align-items:center;gap:5px;margin-left:10px;padding:4px 9px;border-radius:999px;background:var(--button);color:var(--accent);font-size:11px;vertical-align:middle}
.district-variant-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.district-variant-card .variant-card-picture{aspect-ratio:1.5}
.district-variant-card .variant-card-picture img{width:100%;height:100%;object-fit:contain}
.district-layout-list{display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:11px;background:var(--card-top)}
.district-layout-list label{font-size:12px;font-weight:700}
.district-layout-list select{width:100%;min-width:0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--button);color:var(--text);font:inherit}
.district-layout-options{display:grid;gap:6px;max-height:220px;overflow:auto}
.district-layout-options button{width:100%;padding:9px 10px;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--button);color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.district-layout-options button span{display:block;font-weight:700}
.district-layout-options button small{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.district-layout-options button:hover,.district-layout-options button[aria-selected="true"]{border-color:var(--accent);background:var(--icon);color:var(--accent)}
.district-layout-options button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.district-layout-population{margin:0;color:var(--muted);font-size:12px}
.district-layout-population strong{color:var(--text)}
.district-layout-actions{display:grid;gap:8px;margin-top:auto}
.district-layout-actions>*{width:100%;justify-content:center}
@media(max-width:760px){.model-card-overview .catalog-stat-group:nth-child(4) .catalog-stat-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}
.record-failure-content .dialog-actions{padding:12px 0 0;justify-content:flex-start}
.record-failure-content .account-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:9px}

.catalog-card-counts{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding-top:8px;margin-top:3px}
.catalog-card-count{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);cursor:help;min-width:0}
.catalog-count-icon{display:inline-flex;color:var(--accent)}

/* Give the single model graph the larger share of the record and let the
   network complexity summary use the full statistics width. */
.model-card-columns{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}
.model-card-columns .model-gallery{padding:0}
.model-card-columns .model-gallery #model-preview-link{aspect-ratio:1.18;min-height:480px}
.model-card-overview .catalog-stat-group:nth-child(4){grid-column:1/-1;border-top:1px solid var(--border);padding-top:12px}
.model-card-overview .catalog-stat-group:nth-child(4) .catalog-stat-breakdown{grid-template-columns:repeat(4,minmax(0,1fr))}
.catalog-compact-card .catalog-model-heading{align-items:center;min-width:0}
.catalog-compact-card .catalog-model-heading h2{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;overflow-wrap:normal}
.catalog-model-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
.catalog-model-version{flex:none;padding:3px 7px;border:1px solid #91d9c1;border-radius:999px;background:#e7f8f0;color:#087b59;font-size:10px;font-weight:700;letter-spacing:.2px}
:root:not([data-theme="light"]) .catalog-model-version{border-color:#276e59;background:#173d33;color:#73dcb2}
.pattern-profile-scroll{overflow:visible;overscroll-behavior:auto}
.pattern-profile-content{width:100%;min-width:0}
.pattern-profile-content .inspection-chart{height:auto;aspect-ratio:600/135;padding:0;object-fit:contain}
.pattern-profile-values{display:grid;grid-template-columns:repeat(var(--pattern-steps),minmax(0,1fr));width:100%;margin-top:6px;border-top:1px solid var(--border);font-variant-numeric:tabular-nums}
.pattern-profile-values>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-width:0;padding:6px 1px;color:var(--muted);text-align:center;line-height:1.25}
.pattern-profile-values>div>span{font-size:10px;font-weight:700}
.pattern-profile-values>div>strong{max-width:100%;overflow-wrap:anywhere;color:var(--text);font-size:clamp(8px,.85vw,11px);font-weight:500}
@media(max-width:900px){.model-card-columns{grid-template-columns:1fr}.model-card-columns .model-gallery #model-preview-link{aspect-ratio:1.5;min-height:280px}}
@media(max-width:480px){.model-card-overview .catalog-stat-group:nth-child(4) .catalog-stat-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}
.catalog-count-icon svg{width:16px;height:16px}
.catalog-card-count strong{font-weight:600;color:var(--text)}
.catalog-card-count:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}

.catalog-card-count .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.catalog-card-counts{justify-content:center}
.sensor-layout-preview{margin:8px 0;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--button);font-size:12px}.sensor-layout-preview summary{cursor:pointer;font-weight:600}.sensor-layout-preview>div{max-height:180px;overflow:auto;margin-top:7px}.sensor-layout-preview p{margin:4px 0;overflow-wrap:anywhere}

.catalog-availability-filters{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:14px}
.catalog-filters .catalog-availability-filters label{display:inline-flex;flex-direction:row;align-items:center;gap:7px;color:var(--text);cursor:pointer}
.catalog-availability-filters input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--accent)}

.record-ribbon-panel.catalog-failure-variants>.record-subpanel{margin:0;border:0;padding:0}
.record-ribbon-panel.catalog-failure-variants .dialog-actions{padding:12px 0 0;justify-content:flex-start}
.record-ribbon-panel.catalog-failure-variants .account-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:9px}

.record-scenario-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start;margin:14px 0}
.record-scenario-topology{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--card-top);padding:8px}
.record-scenario-svg{display:block;width:100%;height:300px}
.scenario-preview-pipe{fill:none;stroke:#3196b6;stroke-width:1.6;stroke-linejoin:round}
.scenario-preview-node{fill:#228ba8}.scenario-preview-source{fill:#16a987;stroke:var(--text);stroke-width:1}
.scenario-preview-marker{stroke-width:2}.scenario-preview-symbol{text-anchor:middle;dominant-baseline:central;font:700 11px Arial}
.scenario-preview-id{fill:var(--text);font:700 12px Arial;paint-order:stroke;stroke:var(--card-top);stroke-width:3px;stroke-linejoin:round}
.scenario-preview-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;font-size:10px;color:var(--muted);padding:6px}
.scenario-preview-legend>span{display:flex;align-items:center;gap:5px}.scenario-preview-legend b{display:inline-grid;place-items:center;width:22px;height:22px;font-size:10px;border:1px solid currentColor}.preview-w{color:#a77319;background:#fff0c2;border-radius:3px}.preview-rt{color:white;background:#278ac2;border-radius:50%}.preview-f{color:#111;background:#ee4545;border-radius:50%}
.record-scenario-events{min-width:0}.record-scenario-events h4{margin:2px 0 12px;font-size:12px}.record-scenario-events table{border-collapse:collapse;width:100%;font-size:11px}.record-scenario-events td,.record-scenario-events th{padding:9px 6px;text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.record-scenario-events th{color:var(--muted);font-weight:500}
@media(max-width:800px){.record-scenario-layout{grid-template-columns:1fr}.record-scenario-svg{height:260px}}

/* Compact alternative cards share the catalogue's six-column rhythm. */
.variant-card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:start}
.variant-card{position:relative;min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--dialog);overflow:hidden;box-shadow:0 2px 8px #00000005}
.variant-card-picture{display:flex;align-items:center;justify-content:center;aspect-ratio:1.5;background:#f5f8fc;overflow:hidden;border-bottom:1px solid var(--border)}
.variant-card-picture img,.variant-card-picture svg{display:block;width:100%;height:100%;object-fit:contain}
.variant-card-body{padding:10px;display:flex;flex-direction:column;gap:9px}
.variant-card-body h3{font-size:12px;line-height:1.45;margin:0;overflow-wrap:anywhere}
.variant-card-meta{margin:0;font-size:10px;line-height:1.5;color:var(--muted)}
.variant-card-downloads{display:flex;gap:5px;flex-wrap:wrap}
.variant-card-downloads .account-button{flex:1;padding:6px 7px!important;font-size:10px;border-radius:7px;min-width:0;text-align:center;justify-content:center}
.variant-card-downloads.single-action{display:flex;width:100%;margin-top:auto}
.variant-card-downloads.single-action .account-button{width:100%;min-height:34px;padding:8px 10px!important;font-size:11px}
.variant-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;min-width:0}
.variant-card-title-row h3{flex:1;min-width:0}
.variant-admin-delete{position:absolute;top:7px;right:7px;z-index:6;display:grid!important;place-items:center;flex:0 0 30px;width:30px;height:30px;min-height:30px;padding:0!important;border:1px solid #e2a0a5!important;border-radius:8px;background:#fff2f3!important;color:#c03945!important;box-shadow:0 2px 8px #172b3d24}
.variant-admin-delete:hover{background:#ffe1e3!important;border-color:#c03945!important}
.variant-admin-delete:focus-visible{outline:2px solid #c03945;outline-offset:2px}
.variant-admin-delete svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.variant-card-counts{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:var(--text)}
.variant-card-counts>span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.variant-card-details{border-top:1px solid var(--border);padding-top:8px;min-width:0;font-size:10px}
.variant-card-details>summary{cursor:pointer;color:var(--accent);line-height:1.5}
.variant-card-details ol{padding-left:18px;margin-bottom:0}.variant-card-details li{padding:6px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}
.variant-card-details .account-note{font-size:10px;overflow-wrap:anywhere}
.variant-card-picture .scenario-preview-id{display:none}
@media(max-width:1200px){.variant-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){.variant-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.variant-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:340px){.variant-card-grid{grid-template-columns:minmax(0,1fr)}}

.results-shared-timeline{display:flex;flex-direction:column;gap:8px;padding:10px 14px;margin-bottom:14px;background:var(--card-top);border:1px solid var(--border);border-radius:9px;font-size:12px;color:var(--text)}
.results-shared-timeline input{width:100%;accent-color:var(--accent)}
.results-paired-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.results-paired-panel{min-width:0;border:1px solid var(--border);border-radius:11px;padding:12px;background:var(--dialog)}
.results-paired-panel>h3{margin:0 0 12px;font-size:14px;color:var(--text)}
.results-paired-panel .results-controls{grid-template-columns:minmax(65px,.8fr) minmax(85px,1.3fr) minmax(45px,.6fr) max-content max-content;gap:7px;padding-top:0}
.results-paired-panel .results-controls>label{min-width:0}
.results-paired-panel .results-controls>button{width:auto;justify-self:start}
.results-paired-panel .results-chart{height:auto;aspect-ratio:900/285;width:100%}
.results-paired-panel .record-subtab{padding:7px 8px;font-size:10px}
.results-paired-panel .results-time-readout{font-size:11px;overflow-wrap:anywhere}
.results-paired-panel .results-summary{gap:8px}.results-paired-panel .results-summary strong{font-size:12px}
.results-paired-panel .inspection-scroll{overflow:visible;max-height:none}
@media(max-width:800px){.results-paired-grid{grid-template-columns:1fr}.results-paired-panel .results-chart{height:auto}}
@media(max-width:480px){.results-paired-panel .results-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,.8fr)}}

.results-paired-panel .account-note:empty{display:none}
.variant-card-counts b{display:inline-grid;place-items:center;width:15px;height:15px;font-size:9px;border:1px solid #111}

.variant-record-link{color:inherit;text-decoration:none}.variant-record-link:hover{color:var(--accent)}
.variant-open-record{font-size:10px;color:var(--accent);border-top:1px solid var(--border);padding-top:8px}
.scenario-record-page>.account-button{margin-bottom:10px}
.scenario-record-overview{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:18px}
.scenario-record-topology,.scenario-record-summary,.scenario-record-section{background:var(--dialog);border:1px solid var(--border);border-radius:14px;padding:18px;min-width:0}
.scenario-record-topology svg{height:380px;width:100%;background:var(--card-top);border-radius:9px}
.scenario-record-summary h2,.scenario-record-section h2{font-size:17px;margin:0 0 18px}
.scenario-record-totals{display:flex;gap:10px;margin-bottom:18px}.scenario-record-totals a{flex:1;display:flex;justify-content:space-between;padding:14px;border-radius:9px;background:var(--button);text-decoration:none;color:var(--accent)}
.scenario-record-page dl{display:grid;gap:12px;margin:0}.scenario-record-page dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px}.scenario-record-page dt{font-size:12px;color:var(--muted)}.scenario-record-page dd{margin:0;font-size:12px;font-weight:600;text-align:right;overflow-wrap:anywhere}
.scenario-verified{color:var(--accent);font-size:12px;margin:18px 0 0}
.scenario-record-nav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.scenario-record-section{margin:18px 0;scroll-margin-top:80px}
.scenario-warehouse{border:1px solid var(--border);border-radius:10px;margin-top:12px;overflow:hidden}.scenario-warehouse summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px;cursor:pointer;background:var(--card-top);font-size:12px}.scenario-warehouse summary span{color:var(--muted)}
.scenario-table-wrap{overflow-x:auto}.scenario-record-page table{border-collapse:collapse;width:100%;font-size:12px}.scenario-record-page th,.scenario-record-page td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--border)}.scenario-record-page th{font-size:11px;color:var(--muted);font-weight:500}.scenario-record-page tbody tr:last-child td{border-bottom:0}
.scenario-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenario-team{padding:16px;background:var(--card-top);border:1px solid var(--border);border-radius:10px;min-width:0}.scenario-team h3{font-size:14px;margin:0 0 10px}.scenario-team>p{font-size:12px}.scenario-team .account-note{min-height:36px;line-height:1.6}
@media(max-width:800px){.scenario-record-overview{grid-template-columns:1fr}.scenario-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.scenario-team-grid{grid-template-columns:1fr}.scenario-record-topology svg{height:260px}}

.variant-card-counts b.preview-rt{width:20px;height:20px;font-size:8px;border-color:#17658d}.variant-card-counts b.preview-w{width:20px;height:20px;border-color:#b47414}.variant-card-counts b.preview-f{width:20px;height:20px}.variant-card-counts b.preview-p,.variant-card-counts b.preview-q,.variant-card-counts b.preview-j{display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid transparent;border-radius:50%;color:#fff;font-size:9px}.variant-card-counts b.preview-p{background:#0d9b75}.variant-card-counts b.preview-q{background:#2478db}.variant-card-counts b.preview-j{background:#a64ec2}

.pipe-demand-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.pipe-demand-metric{display:flex;flex-direction:column;gap:12px;border:1px solid var(--border);border-radius:12px;padding:18px 20px;background:var(--card-top)}
.pipe-demand-metric>span{font-size:12px;color:var(--muted)}.pipe-demand-metric>strong{font-size:28px;font-weight:650;color:var(--accent);font-variant-numeric:tabular-nums}.pipe-demand-metric small{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}
.pipe-diameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.pipe-diameter-card{border:1px solid var(--border);border-radius:12px;padding:18px;min-width:0;background:var(--dialog)}.pipe-diameter-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.pipe-diameter-card h3{font-size:13px;margin:0;font-weight:600;color:var(--text)}
.pipe-diameter-count{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 5px;border-radius:7px;font-size:11px;color:var(--muted);background:var(--button)}
.pipe-diameter-badges{display:flex;flex-wrap:wrap;gap:7px}.pipe-diameter-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-width:61px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;font-size:11px;font-variant-numeric:tabular-nums;background:var(--button);color:var(--muted)}.pipe-diameter-badge.used{border-color:var(--accent);background:var(--icon);color:var(--accent);font-weight:600}
@media(max-width:650px){.pipe-diameter-grid{grid-template-columns:1fr}.pipe-demand-metric{padding:14px}.pipe-demand-metric>strong{font-size:23px}}

.model-download-builder{margin:18px 0 22px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--dialog);scroll-margin-top:80px}.model-download-builder>header h2{font-size:17px;margin:0 0 7px}.model-download-builder>header p{font-size:12px;color:var(--muted);margin:0 0 20px;line-height:1.6}.download-selection-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.download-selection-fields label{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:12px}.download-selection-fields label>span{display:flex;align-items:center;gap:8px}.download-selection-fields b{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--icon);color:var(--accent);border:1px solid var(--border);font-size:11px}.download-selection-fields select{width:100%;min-width:0;background:var(--button);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px;font:inherit}.download-selection-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}.download-selection-status{margin:0!important;font-size:11px;line-height:1.6}.download-selection-footer .model-downloads{flex-shrink:0}.model-download-builder button:disabled{opacity:.45;cursor:not-allowed}.variant-select{font-size:10px;text-align:center;padding:7px;border-radius:7px;margin-top:2px}
@media(max-width:700px){.download-selection-fields{grid-template-columns:1fr}.download-selection-footer{align-items:stretch;flex-direction:column}.download-selection-footer .model-downloads{justify-content:flex-start}}

.download-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.download-preview-grid[hidden]{display:none!important}.download-preview-grid figure{margin:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card-top);min-width:0}.download-preview-grid a{display:block;background:#f5f8fc;aspect-ratio:1.8}.download-preview-grid img{display:block;width:100%;height:100%;object-fit:contain}.download-preview-grid figcaption{font-size:11px;text-align:center;padding:10px;color:var(--muted)}
@media(max-width:650px){.download-preview-grid{grid-template-columns:1fr}}

/* Scenario record: compact overview and collapsible logistics. */
.scenario-record-summary{height:450px;box-sizing:border-box;display:flex;flex-direction:column;min-height:0}
.scenario-record-summary h2{margin-bottom:12px;flex-shrink:0}.scenario-record-summary .scenario-record-totals{margin-bottom:12px;flex-shrink:0}.scenario-record-summary .scenario-record-totals a{padding:10px 12px}
.scenario-record-summary>dl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 12px;flex-shrink:0}
.scenario-record-summary>dl>div{grid-column:span 2;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding-bottom:8px;min-width:0}.scenario-record-summary>dl>div:nth-child(n+4){grid-column:span 3}.scenario-record-summary>dl dt{font-size:10px;line-height:1.35}.scenario-record-summary>dl dd{font-size:13px;text-align:left;white-space:nowrap}
.scenario-record-summary>.scenario-verified{margin:10px 0 12px;font-size:11px;flex-shrink:0}
.scenario-failure-brief{display:flex;flex-direction:column;flex:1;min-height:0;border-top:1px solid var(--border);padding-top:10px}.scenario-failure-brief h3{font-size:12px;margin:0 0 8px}.scenario-brief-scroll{overflow:auto;min-height:0;flex:1;scrollbar-gutter:stable}.scenario-failure-brief table th,.scenario-failure-brief table td{padding:7px 8px;font-size:10px}.scenario-failure-brief a{color:var(--accent);text-decoration:none;font-weight:600}
.scenario-logistics-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.scenario-logistics-columns>.scenario-record-section{margin-top:0}.scenario-team-grid{display:block}.scenario-team{padding:0;background:var(--dialog);overflow:hidden;margin-top:12px}
.scenario-team summary,.scenario-failure-item summary,.scenario-warehouse summary{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;padding:13px 14px;font-size:12px;cursor:pointer;background:var(--card-top);list-style:none}.scenario-team summary::-webkit-details-marker,.scenario-failure-item summary::-webkit-details-marker,.scenario-warehouse summary::-webkit-details-marker{display:none}
.scenario-team summary:before,.scenario-failure-item summary:before,.scenario-warehouse summary:before{content:'▸';color:var(--accent);font-size:11px;transition:transform .15s}.scenario-team[open]>summary:before,.scenario-failure-item[open]>summary:before,.scenario-warehouse[open]>summary:before{transform:rotate(90deg)}
.scenario-team summary>span,.scenario-failure-item summary>span,.scenario-warehouse summary>span{font-size:10px;color:var(--muted);text-align:right;overflow-wrap:anywhere}.scenario-team-content{padding:14px}.scenario-team-content>.account-note{margin:0 0 14px;font-size:12px;line-height:1.6}
.scenario-failure-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.scenario-failure-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;min-width:0;scroll-margin-top:85px}.scenario-failure-item>dl{padding:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scenario-failure-item>dl>div{display:flex;flex-direction:column;gap:6px}.scenario-failure-item dd{text-align:left}
@media(max-width:800px){.scenario-record-summary{height:430px}.scenario-logistics-columns{grid-template-columns:1fr}.scenario-failure-details{grid-template-columns:1fr}}
@media(max-width:500px){.scenario-team summary,.scenario-failure-item summary,.scenario-warehouse summary{grid-template-columns:12px minmax(0,1fr)}.scenario-team summary>span,.scenario-failure-item summary>span,.scenario-warehouse summary>span{grid-column:2;text-align:left}}

.scenario-record-topology{height:450px;box-sizing:border-box;display:flex;flex-direction:column}.scenario-record-topology svg{height:auto;min-height:0;flex:1}.scenario-record-topology .scenario-preview-legend{flex-shrink:0}
@media(max-width:500px){.scenario-record-topology{height:330px}}

.district-preview-choice{width:100%;padding:0;border:0;cursor:pointer}.district-preview-choice:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.district-variant-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.district-selected-details{margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.district-selected-details[hidden]{display:none!important}.district-selected-details>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.district-selected-details h3{font-size:14px;margin:0}.district-selected-details .account-button{font-size:11px}.district-selected-details table{width:100%;border-collapse:collapse;font-size:12px}.district-selected-details th,.district-selected-details td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.district-selected-details th{font-size:11px;color:var(--muted);font-weight:500}

/* Equal-height logistics columns, with one scrolling body per column. */
.scenario-logistics-columns{align-items:stretch}.scenario-logistics-columns>.scenario-record-section{height:480px;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;margin-bottom:18px}.scenario-logistics-columns>.scenario-record-section>h2{flex-shrink:0;margin-bottom:14px}
.scenario-logistics-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding-right:5px}.scenario-logistics-body>.scenario-warehouse:first-child,.scenario-logistics-body>.scenario-team:first-child{margin-top:0}.scenario-logistics-body .scenario-table-wrap{overflow:visible}.scenario-logistics-body table{table-layout:fixed}.scenario-logistics-body th:first-child{width:35%}.scenario-logistics-body th,.scenario-logistics-body td{padding:10px 9px;overflow-wrap:anywhere}
.scenario-team-content>dl{display:grid;grid-template-columns:minmax(50px,.6fr) minmax(65px,.8fr) minmax(130px,1.4fr) minmax(70px,.8fr);gap:10px;align-items:start}.scenario-team-content>dl>div{display:flex;flex-direction:column;gap:7px;min-width:0}.scenario-team-content>dl dt{font-size:10px;line-height:1.4}.scenario-team-content>dl dd{font-size:11px;text-align:left;white-space:nowrap}.scenario-team-content>.account-note{min-height:0;margin-bottom:15px}.scenario-team-content dt[data-i18n=scenario_road]{cursor:help}
@media(max-width:1050px) and (min-width:801px){.scenario-team-content>dl{gap:7px;grid-template-columns:minmax(40px,.6fr) minmax(55px,.8fr) minmax(110px,1.4fr) minmax(60px,.8fr)}.scenario-team-content>dl dd{font-size:10px}}
@media(max-width:500px){.scenario-logistics-columns>.scenario-record-section{height:420px}.scenario-team-content>dl{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-team-content>dl dd{white-space:normal}}
.district-selected-details table{table-layout:fixed}.district-selected-details th,.district-selected-details td{white-space:normal;overflow-wrap:anywhere}

.scenario-team-content>dl dt{min-height:28px}.scenario-team-content dt[data-i18n-title=scenario_road_help]{cursor:help}
.scenario-failure-brief .scenario-failure-item{margin-bottom:7px;scroll-margin-top:0}.scenario-failure-brief .scenario-failure-item summary{padding:9px 10px;font-size:11px}.scenario-failure-brief .scenario-failure-item>dl{padding:10px;gap:9px}.scenario-failure-brief .scenario-failure-item dt{font-size:10px}.scenario-failure-brief .scenario-failure-item dd{font-size:11px}.scenario-failure-brief .scenario-failure-item:last-child{margin-bottom:0}

.simulation-variant-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--border)}
.simulation-variant-controls label{display:flex;flex-direction:column;gap:6px;flex:0 1 340px;min-width:180px;font-size:12px}.simulation-variant-controls select{width:100%;min-width:0}.simulation-variant-controls .account-note{margin:0 0 10px}
.district-record-map>a{flex:1;min-height:0;display:flex}.district-record-map img{width:100%;height:100%;object-fit:contain}.district-record-map>p{text-align:center;margin:8px 0 0}.district-record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.district-record-note{overflow:auto;min-height:0}.district-record-note h3{font-size:15px}.district-record-note p{font-size:13px;line-height:1.7}@media(max-width:700px){.district-record-list{grid-template-columns:1fr}}

/* Variant selection shares the catalogue control styling in both themes. */
.simulation-variant-controls{align-items:flex-end;gap:14px;padding:16px 20px;background:var(--card-top)}
.simulation-variant-controls label{flex:0 1 360px;gap:8px;font-size:12px;color:var(--muted);font-weight:600}
.simulation-variant-controls select{appearance:none;box-sizing:border-box;min-height:42px;padding:10px 36px 10px 12px;border:1px solid var(--border);border-radius:9px;background-color:var(--button);color:var(--text);font:400 13px/1.5 Arial,Helvetica,sans-serif;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238195ac' stroke-width='1.7' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.simulation-variant-controls select:hover{border-color:var(--accent)}.simulation-variant-controls select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.simulation-mode-badge{display:inline-flex;align-items:center;gap:7px;align-self:flex-end;height:42px;padding:0 13px;border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.simulation-mode-badge>span{color:var(--muted);font-weight:400}.simulation-mode-badge i{height:7px;width:7px;border-radius:50%;background:var(--accent)}
.segmentation-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.segmentation-card-metrics>span{display:flex;flex-direction:column;gap:4px;padding:9px 6px;background:var(--button);border-radius:8px;text-align:center;min-width:0}.segmentation-card-metrics b{font-size:17px;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--text)}.segmentation-card-metrics span span{font-size:10px;line-height:1.3;color:var(--muted);overflow-wrap:anywhere}
.sensor-card-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){.simulation-variant-controls label{flex:1 1 100%;min-width:0}.simulation-mode-badge{height:32px}}

.scenario-failure-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:10px;font-variant-numeric:tabular-nums}.scenario-failure-table th,.scenario-failure-table td{padding:10px 4px;text-align:center;border-bottom:1px solid var(--border);overflow-wrap:anywhere;line-height:1.4}.scenario-failure-table thead th{position:sticky;top:0;z-index:1;background:var(--button);color:var(--muted);font-size:9px;font-weight:600}.scenario-failure-table tbody th{color:var(--accent)}.scenario-failure-table tbody tr:nth-child(even){background:var(--card-top)}.scenario-failure-table tbody tr:hover{background:var(--button)}.scenario-failure-table tr:target{outline:1px solid var(--accent);outline-offset:-1px}.scenario-failure-table th:first-child{width:7%}.scenario-failure-table th:nth-child(5){width:8%}
.district-population-editor{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card-top)}.district-population-total-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.district-population-total-row label{display:grid;gap:5px;min-width:190px}.district-population-total-row input,.district-population-table input{box-sizing:border-box;width:100%;min-width:100px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--button);color:var(--text);font:inherit}.district-population-rows{max-height:260px;overflow:auto;margin-top:10px}.district-population-table{width:100%;border-collapse:collapse}.district-population-table th,.district-population-table td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left}.district-population-table th[scope=row]{width:40%;font-weight:600}.district-population-table input{max-width:260px}.district-population-total-row .account-button{min-height:38px}@media(max-width:600px){.district-population-total-row{align-items:stretch}.district-population-total-row label,.district-population-total-row button{width:100%}}

/* Keep each pattern plot and its multiplier columns on one shared horizontal grid. */
.pattern-profile-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;margin-top:12px}
.pattern-profile-scroll{width:100%;max-width:100%;overflow:visible;margin-top:12px}
.pattern-profile-content{width:100%;min-width:0;box-sizing:border-box}
.pattern-profile-content .inspection-chart{display:block;width:100%;height:210px;max-width:none;box-sizing:border-box;padding:0;object-fit:fill}
.pattern-profile-content .inspection-scroll{width:100%;max-height:none;overflow:visible;margin:0}
.pattern-profile-content table{width:100%;table-layout:fixed}
.pattern-profile-content col.pattern-label-column{width:100px}
.pattern-profile-content th,.pattern-profile-content td{box-sizing:border-box;text-align:center;padding:9px 3px;font-variant-numeric:tabular-nums}
.pattern-profile-content tr>th:first-child{white-space:normal;text-align:left}
