:root {
  --status-order:#148570; --status-marketing:#ce8b16; --status-rollout:#7560c7; --status-unknown:#cf4141; --status-mixed:#397fb5;
  --alex-oto:#1689ad; --alex-bep:#bd741d; --alex-planned:#8263c5;
  --surface-accent:hsl(243 35% 96%); --surface-hover:hsl(243 30% 93%);
  --brand-hover:hsl(243 27% 45%);
  --danger-ink:#a32626; --danger-surface:#fff4f4; --danger-border:#ecc6c6;
  --control-border:hsl(220 15% 60%);
  --shadow-popover:var(--shadow-lg),0 0 0 1px hsl(220 15% 20% / .08);
}
.dark { --text-link:hsl(243 50% 75%); --surface-accent:hsl(243 25% 20%); --surface-hover:hsl(243 24% 25%); --brand-hover:hsl(243 40% 72%); --danger-ink:#ffb4b4; --danger-surface:#321e25; --danger-border:#77414e; --control-border:hsl(220 15% 50%); --shadow-popover:0 12px 32px #0006,0 0 0 1px hsl(220 15% 30%); }
* { box-sizing:border-box; }
html,body { margin:0; height:100%; }
body { font-family:var(--font-sans); font-size:13px; line-height:1.5; color:var(--text-body); background:var(--surface-page); font-synthesis:none; -webkit-font-smoothing:antialiased; }
[hidden] { display:none!important; }
button,input,select { font:inherit; color:inherit; }
button,select { cursor:pointer; }
button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--border-default); border-radius:var(--radius); background:var(--surface-card); min-height:32px; padding:6px 11px; font-weight:600; line-height:1.4; transition:background-color 120ms var(--ease-standard),color 120ms var(--ease-standard),scale 200ms ease-out; }
button:disabled { opacity:.5; cursor:default; }
button:active:not(:disabled):not(.result) { scale:.97; }
button.primary { color:var(--text-on-brand); background:var(--brand-primary); border-color:var(--brand-primary); box-shadow:var(--shadow-xs); }
a { color:var(--text-link); text-underline-offset:3px; }
:focus-visible { outline:2px solid var(--ring); outline-offset:2px; }
button,input,select,a { -webkit-tap-highlight-color:transparent; }
input,select { width:100%; min-width:0; min-height:34px; padding:7px 10px; border:1px solid var(--control-border); border-radius:var(--radius); background:var(--surface-card); font-size:12px; }
select { padding-inline-end:28px; }
input::placeholder { color:var(--text-muted); opacity:1; }
input[type=search]::-webkit-search-cancel-button { display:none; }
label { display:block; margin-bottom:5px; color:var(--text-muted); font-size:11px; font-weight:600; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { letter-spacing:var(--tracking-heading); }
h1 { font-size:20px; line-height:1.2; font-weight:700; }
h2 { font-size:14px; font-weight:600; }
h3 { font-size:12px; font-weight:600; }
p { text-wrap:pretty; }
.icon { display:block; flex:none; width:17px; height:17px; }
.icon-button { flex:none; min-width:32px; width:32px; padding:7px; border-color:transparent; background:transparent; }
.text-button { color:var(--text-link); min-height:32px; padding:6px 4px; border:0; background:none; font-size:11px; }
.eyebrow { display:block; color:var(--text-muted); font-size:9px; font-weight:700; letter-spacing:.14em; }
.help { color:var(--text-muted); font-size:11px; line-height:1.6; margin:8px 0 16px; }
.sr-only,.skip:not(:focus) { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip:focus { position:fixed; z-index:2000; top:12px; left:12px; padding:12px; background:var(--surface-card); }
.topbar { display:flex; align-items:center; gap:20px; min-height:52px; padding:8px 20px; border-bottom:1px solid var(--border-default); background:var(--surface-page); z-index:700; }
.brand { display:block; position:relative; flex:none; width:160px; aspect-ratio:891/170; overflow:hidden; }
.brand img { display:block; width:100%; height:auto; }
.brand .brand-dark { display:none; }
.dark .brand { aspect-ratio:3887/748; }
.dark .brand-light { display:none; }
.dark .brand .brand-dark { display:block; position:absolute; width:103.087%; left:-1.595%; top:-101.738%; }
.theme-sun { display:none; }.dark .theme-sun { display:block; }.dark .theme-moon { display:none; }
.app-name { border-left:1px solid var(--border-default); padding-left:28px; color:var(--text-muted); font-size:12px; font-weight:500; }
.header-end { display:flex; gap:8px; align-items:center; margin-left:auto; }
.source-date { color:var(--text-muted); font-size:11px; font-variant-numeric:tabular-nums; }
.workspace { --sidebar-width:260px; --details-width:320px; display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr); position:relative; }
.workspace.has-selection { grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--details-width); }
.sidebar { display:flex; flex-direction:column; background:var(--surface-page); border-right:1px solid var(--border-default); position:relative; z-index:600; }
.search-area { flex:none; padding:20px 18px 16px; }
.sidebar-title { margin-bottom:18px; }
.sidebar-title .eyebrow { margin-bottom:8px; color:var(--text-link); }
.search-box { display:flex; align-items:center; gap:10px; border:1px solid var(--control-border); border-radius:var(--radius); background:var(--surface-card); padding-inline:10px 3px; min-height:36px; transition:border-color 120ms var(--ease-standard),box-shadow 120ms var(--ease-standard); }
.search-box:focus-within { border-color:var(--brand-primary); box-shadow:0 0 0 1px var(--brand-primary); }
.search-box>.icon { width:16px; height:16px; color:var(--text-muted); }
.search-box input { flex:1; width:0; border:0; background:none; padding:7px 0; min-height:34px; outline:none; }
.search-box input:focus-visible { outline:none; }
.search-box .icon-button { min-width:32px; width:32px; min-height:32px; padding:8px; color:var(--text-muted); }
kbd { flex:none; color:var(--text-muted); font:10px var(--font-sans); border:1px solid var(--border-default); padding:2px 4px; border-radius:3px; margin-right:6px; white-space:nowrap; }
.sidebar-scroll { padding:0 18px 18px; overflow-y:auto; scrollbar-width:thin; overscroll-behavior:contain; }
.section-line { display:flex; justify-content:space-between; align-items:center; min-height:28px; margin-bottom:12px; }
.section-line h2 { display:flex; gap:8px; align-items:center; font-size:12px; }
.section-line h2 .icon { width:15px; height:15px; color:var(--text-muted); }
.filters select { margin-bottom:14px; }
.rida-layers { border-top:1px solid var(--border-default); padding:14px 0 12px; margin-top:2px; }
.rida-layers h2 { display:flex; align-items:center; gap:8px; margin-bottom:10px; font-size:12px; }
.rida-layers h2 .icon { width:15px; height:15px; color:var(--text-muted); }
#rida-wms-controls { border-top:1px solid var(--border-default); margin-top:10px; padding-top:10px; }
.rida-layer-title { color:var(--text-body); font-size:11px; font-weight:700; margin:0 0 4px; }
.rida-vector-choice { display:flex; align-items:center; gap:8px; min-height:44px; margin:0; color:var(--text-body); font-size:11px; font-weight:500; cursor:pointer; }
.rida-vector-choice input { width:16px; min-width:16px; min-height:16px; height:16px; margin:0; accent-color:var(--brand-primary); }
.rida-vector-choice:focus-within { outline:2px solid var(--brand-primary); outline-offset:2px; border-radius:4px; }
.rida-warning { color:var(--text-muted); font-size:10px; line-height:1.5; }
.filter-count { min-width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; background:var(--surface-accent); color:var(--text-link); font-size:10px; font-weight:700; border-radius:var(--radius-pill); }
.legend { border-top:1px solid var(--border-default); margin-top:6px; padding-top:14px; }
details>summary { cursor:pointer; font-weight:600; list-style:none; display:flex; align-items:center; gap:8px; min-height:40px; }
details>summary::-webkit-details-marker { display:none; }
details>summary::after { content:''; margin-left:auto; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); flex:none; margin-right:3px; }
details[open]>summary::after { transform:rotate(225deg); }
.legend>summary { font-size:12px; min-height:28px; }
.legend>summary .icon { width:15px; height:15px; color:var(--text-muted); }
.legend-group { display:grid; gap:10px; padding:14px 0 4px; }
.legend-group>div { display:flex; align-items:center; gap:10px; font-size:10px; line-height:1.45; }
.legend small { display:block; font-size:9px; color:var(--text-muted); margin-top:2px; }
.legend-count { margin-left:auto; font-size:9px; font-variant-numeric:tabular-nums; color:var(--text-muted); }
.legend h3 { margin-top:16px; font-size:10px; color:var(--text-muted); }
.alex-key { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; padding-top:12px; font-size:10px; }
.alex-key>span { display:flex; align-items:center; gap:8px; }
.sidebar-footer { border-top:1px solid var(--border-default); padding-top:16px; margin-top:20px; display:grid; gap:6px; font-size:10px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.sidebar-footer a { width:fit-content; }
.dot { display:inline-block; flex:none; width:8px; height:8px; border-radius:50%; background:var(--status-unknown); }
.dot.order { background:var(--status-order); }.dot.marketing { background:var(--status-marketing); }.dot.rollout { background:var(--status-rollout); }.dot.mixed { background:var(--status-mixed); }.dot.unknown { background:var(--status-unknown); }
.dot.alex-oto { background:var(--alex-oto); }.dot.alex-bep { background:var(--alex-bep); }.dot.alex-planned { background:var(--alex-planned); }
.source-icon { display:inline-block; width:12px; height:12px; flex:0 0 12px; vertical-align:middle; border-radius:50%; background:var(--swiss,var(--status-unknown)); }
.source-icon.source-both { background:linear-gradient(90deg,var(--swiss) 0 44%,#fff 44% 56%,var(--alex) 56%); box-shadow:0 0 0 1px hsl(220 15% 20% / .1); }
.source-icon.source-alex { width:14px; height:14px; flex-basis:14px; background:var(--alex,var(--alex-oto)); border-radius:0; clip-path:polygon(25% 7%,75% 7%,100% 50%,75% 93%,25% 93%,0 50%); }
.map-area { position:relative; isolation:isolate; overflow:hidden; min-width:0; container-type:inline-size; }
#map { position:absolute; inset:0; background:var(--surface-muted); }
.leaflet-container { font-family:var(--font-sans); }
.map-toolbar { position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); z-index:450; display:flex; align-items:center; gap:3px; max-width:calc(100% - 24px); padding:5px; border:1px solid var(--border-default); border-radius:10px; background:var(--surface-card); box-shadow:var(--shadow-popover); }
.map-toolbar button { flex:none; width:34px; min-height:34px; padding:8px; border:0; background:var(--surface-card); color:var(--text-body); }
.map-toolbar button[aria-expanded=true] { background:var(--surface-accent); color:var(--text-link); }
.toolbar-divider { align-self:stretch; width:1px; margin:5px 3px; background:var(--border-default); flex:none; }
.map-label { display:flex; align-items:center; gap:7px; padding:0 9px; color:var(--text-muted); font-size:10px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; min-width:0; max-width:190px; }
#map-count { overflow:hidden; text-overflow:ellipsis; }
@container (max-width:520px) { .map-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); } }
.live-dot { width:6px; height:6px; border-radius:50%; background:var(--brand-primary); flex:none; }
.leaflet-control-attribution { font-size:9px!important; background:var(--surface-card)!important; color:var(--text-muted); }
.leaflet-control-attribution a { color:var(--text-link); }
.leaflet-control-scale-line { color:var(--text-body); background:var(--surface-card); border-color:var(--text-muted); text-shadow:none; }
.dark .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.95) saturate(.55); }
.dark .leaflet-network-pane { filter:invert(1) hue-rotate(180deg); }
.cluster { border-radius:50%; display:grid; place-items:center; border:2px solid #fff; background:var(--status-unknown); box-shadow:0 2px 5px #20263330; font-size:10px; font-weight:700; color:#fff; }
.cluster-order { background:var(--status-order); }.cluster-marketing { background:var(--status-marketing); color:#312509; }.cluster-rollout { background:var(--status-rollout); }.cluster-mixed { background:var(--status-mixed); }
.cluster.source-both,.cluster.source-alex { background:transparent; border:0; box-shadow:none; }
.cluster.source-both>span,.cluster.source-alex>span { display:grid; place-items:center; width:100%; height:100%; border-radius:50%; background:var(--alex); color:#fff; text-shadow:0 1px 3px #000; box-shadow:0 0 0 2px #fff; }
.cluster.source-both>span { background:linear-gradient(90deg,var(--swiss) 0 47%,#fff 47% 53%,var(--alex) 53%); }
.cluster.source-alex>span { border-radius:0; clip-path:polygon(25% 7%,75% 7%,100% 50%,75% 93%,25% 93%,0 50%); }
.leaflet-tooltip { font-size:10px; border:1px solid var(--border-default); border-radius:var(--radius); padding:7px 9px; box-shadow:var(--shadow-md); color:var(--text-body); background:var(--surface-card); line-height:1.5; }
.leaflet-tooltip-left::before { border-left-color:var(--surface-card); }.leaflet-tooltip-right::before { border-right-color:var(--surface-card); }
.visible-list { position:absolute; left:50%; transform:translateX(-50%); bottom:82px; max-height:calc(100% - 112px); width:min(340px,calc(100% - 24px)); background:var(--surface-card); z-index:460; overflow-y:auto; padding:4px; border:1px solid var(--border-default); border-radius:8px; box-shadow:var(--shadow-popover); }
.visible-list:empty { display:none; }
#map-error { position:absolute; z-index:470; top:12px; left:12px; right:12px; padding:10px 12px; background:var(--danger-surface); color:var(--danger-ink); border:1px solid var(--danger-border); border-radius:var(--radius); font-size:12px; }
.search-results { position:fixed; z-index:1000; background:var(--surface-card); border:1px solid var(--border-default); border-radius:8px; padding:4px; overflow-y:auto; overscroll-behavior:contain; box-shadow:var(--shadow-popover); scrollbar-width:thin; }
.result { display:flex; align-items:center; gap:8px; width:100%; text-align:left; border:0; background:var(--surface-card); border-radius:4px; padding:8px; min-height:48px; font-weight:500; line-height:1.35; transition:none; }
.result-icon { display:grid; place-items:center; flex:0 0 16px; width:16px; height:20px; }
.result-text { display:block; min-width:0; flex:1; }
.result strong { display:block; font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.result small { display:block; margin-top:2px; font-size:10px; line-height:1.5; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.result-provider { flex:none; font-size:9px; font-weight:500; color:var(--text-muted); background:var(--surface-muted); padding:3px 5px; border-radius:4px; }
.result[aria-selected=true] { color:var(--text-link); background:var(--surface-accent); }
.empty { padding:18px 14px; color:var(--text-muted); font-size:12px; line-height:1.7; }
.empty strong { display:block; color:var(--text-body); margin-bottom:3px; }
.building-panel { grid-column:3; grid-row:1; min-width:0; min-height:0; z-index:620; display:flex; flex-direction:column; background:var(--surface-page); border-left:1px solid var(--border-default); overflow:hidden; }
.building-panel-toolbar { display:flex; align-items:center; justify-content:space-between; padding:8px 12px 8px 18px; min-height:48px; border-bottom:1px solid var(--border-default); font-size:11px; font-weight:600; color:var(--text-muted); flex:none; }
#building-content { padding:18px; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.building-panel h2 { font-size:18px; line-height:1.3; font-weight:700; overflow-wrap:anywhere; }
.building-panel h2:focus { outline:none; }
.address-sub { color:var(--text-muted); font-size:12px; margin-top:5px; margin-bottom:14px; }
.badge { display:inline-flex; align-items:center; gap:8px; max-width:100%; font-size:10px; font-weight:500; border-radius:4px; padding:5px 7px; background:var(--surface-muted); line-height:1.5; }
.comdate { margin:16px 0; padding:12px; border:1px solid var(--border-default); border-radius:6px; background:var(--surface-muted); }
.comdate.blocked { color:var(--danger-ink); background:var(--danger-surface); border-color:var(--danger-border); }
.comdate.reached { background:var(--surface-accent); border-color:hsl(var(--brand-primary-hsl) / .15); }
.comdate .label { color:var(--text-muted); font-size:10px; font-weight:600; }
.comdate .date { margin:8px 0 6px; font-size:23px; line-height:1.2; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.comdate.reached .date { color:var(--text-link); }
.comdate strong { font-size:11px; }
.comdate p { margin-top:9px; font-size:10px; line-height:1.6; color:var(--text-muted); }
.comdate.blocked p { color:var(--danger-ink); }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; margin:18px 0; gap:14px 12px; }
.detail-grid dt { color:var(--text-muted); font-size:10px; margin-bottom:3px; }
.detail-grid dd { margin:0; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
#building-content>details,.source-details { border-top:1px solid var(--border-default); margin-top:16px; padding-top:6px; }
#building-content summary { font-size:11px; }
.source-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.source-heading h3 { font-size:12px; }
.source-status { margin:10px 0; font-size:12px; font-weight:600; }
.source-meta { display:flex; justify-content:space-between; gap:16px; font-size:10px; color:var(--text-muted); margin:8px 0; }
.source-meta strong { color:var(--text-body); font-weight:500; font-variant-numeric:tabular-nums; }
.history-entry { margin:12px 0; padding:12px; border-radius:var(--radius); background:var(--surface-muted); font-size:10px; }
.history-entry strong { font-weight:600; }
.history-entry p { margin-top:5px; color:var(--text-muted); overflow-wrap:anywhere; line-height:1.65; }
.record-state { display:inline-flex; border-radius:var(--radius-pill); padding:3px 7px; background:var(--surface-accent); color:var(--text-link); font-size:9px; }
.loading-state { display:flex; align-items:center; gap:10px; padding:24px 0; color:var(--text-muted); font-size:12px; }
.loading-ring { flex:none; width:14px; height:14px; border:2px solid var(--border-default); border-top-color:var(--brand-primary); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
dialog { position:fixed; inset:auto; left:var(--dialog-x,50%); top:var(--dialog-y,50%); transform:translate(-50%,-50%); margin:0; width:min(520px,var(--dialog-width,calc(100% - 24px))); height:min(560px,var(--dialog-height,calc(100dvh - 24px))); max-height:var(--dialog-height,calc(100dvh - 24px)); border:0; border-radius:var(--radius-xl); padding:0; background:var(--surface-card); color:var(--text-body); box-shadow:var(--shadow-popover); overflow:hidden; }
dialog[open] { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; }
dialog::backdrop { background:hsl(220 15% 12% / .35); }
.dialog-head { display:flex; justify-content:space-between; align-items:center; padding:16px 18px 12px; border-bottom:1px solid var(--border-default); flex:none; }
.dialog-head h2 { font-size:19px; font-weight:700; margin:0; }
.dialog-body { padding:18px; overflow-y:auto; overscroll-behavior:contain; min-height:0; min-width:0; }
.dialog-body label { font-size:12px; }
input[type=file] { padding:12px; border:1px dashed var(--control-border); background:var(--surface-muted); font-size:11px; cursor:pointer; }
input[type=file]::file-selector-button { border:1px solid var(--border-default); background:var(--surface-card); color:var(--text-body); border-radius:var(--radius); font:600 11px var(--font-sans); padding:9px 12px; margin-right:10px; cursor:pointer; }
#file-help { margin-bottom:18px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-grid>* { min-width:0; }
.optional { color:var(--text-muted); font-size:10px; font-weight:400; margin-left:4px; }
.import-options { margin:12px 0; }
.import-options summary { font-size:12px; }
.import-options .form-grid { padding:12px 0; }
#upload-button { width:100%; }
.gwr-import { border-block:1px solid var(--border-default); margin:24px 0; padding:10px 0; }
.gwr-import summary { font-size:12px; }
.gwr-import form { padding:12px 0; }
.inline { display:flex; gap:12px; }
.inline select { flex:1; min-width:0; }
.inline button { white-space:nowrap; font-size:11px; }
#job-status { padding:10px 14px; background:var(--surface-accent); border:1px solid hsl(var(--brand-primary-hsl) / .2); border-radius:var(--radius); margin:0 18px 16px; color:var(--text-link); font-size:11px; overflow-wrap:anywhere; max-height:min(120px,25dvh); overflow-y:auto; }
#job-status.error { background:var(--danger-surface); color:var(--danger-ink); border-color:var(--danger-border); }
#job-status.busy::before { content:''; display:inline-block; width:10px; height:10px; border:2px solid var(--border-default); border-top-color:var(--brand-primary); border-radius:50%; margin-right:8px; animation:spin .8s linear infinite; }
.history-section h3 { font-size:13px; margin-bottom:8px; }
.import-row { padding:12px 0; border-bottom:1px solid var(--border-default); }
.import-row:last-child { border:0; }
.import-row strong { display:block; font-size:11px; font-weight:500; overflow-wrap:anywhere; }
.import-row small { display:block; margin-top:6px; color:var(--text-muted); font-size:10px; line-height:1.6; overflow-wrap:anywhere; }
.mobile-only { display:none; }
@media (hover:hover) {
 button:hover:not(:disabled) { background:var(--surface-hover); color:var(--text-link); }
 button.primary:hover:not(:disabled) { background:var(--brand-hover); color:var(--text-on-brand); }
 .result:hover { background:var(--surface-hover); }
 a:hover { color:var(--text-link); }
 summary:hover { color:var(--text-link); }
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 button:active:not(:disabled) { scale:1; }
}

.cluster-total { color:var(--text-link); background:var(--surface-card); border:2px solid hsl(var(--brand-primary-hsl) / .55); box-shadow:var(--shadow-md); font-variant-numeric:tabular-nums; }

.import-tabs { display:flex; gap:4px; padding:8px 18px; border-bottom:1px solid var(--border-default); }
.import-tabs button { background:none; border:0; min-height:32px; padding:6px 10px; color:var(--text-muted); font-size:11px; font-weight:500; }
.import-tabs button[aria-selected=true] { color:var(--text-link); background:var(--surface-accent); font-weight:600; }
.import-row-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.import-row-heading time { color:var(--text-muted); font-size:10px; white-space:nowrap; }
.map-label[aria-busy=true] .live-dot { opacity:.35; }
.leaflet-zoom-anim .leaflet-zoom-animated { transition:transform 250ms cubic-bezier(.2,0,0,1); }
.map-gesturing .leaflet-zoom-animated { transition:none!important; will-change:transform; }
.map-gesturing .leaflet-tooltip { visibility:hidden; }
@media (hover:hover) {
 .map-toolbar button:hover,.import-tabs button:hover { background:var(--surface-hover); }
}

/* Show only quality information that affects this building. */
.quality-summary { margin:12px 0; }
.quality-row { display:flex; align-items:flex-start; gap:10px; padding:12px; border:1px solid var(--border-default); border-radius:var(--radius); background:var(--surface-card); }
.quality-row + .quality-row { margin-top:6px; }
.quality-code { flex:none; padding:3px 7px; border-radius:6px; background:var(--surface-accent); color:var(--text-link); font-size:11px; font-weight:700; white-space:nowrap; }
.quality-row strong { font-size:12px; }
.quality-row p { margin:3px 0 0; color:var(--text-muted); font-size:11px; line-height:1.5; }
.quality-block { padding:12px; border:1px solid var(--danger-border); border-radius:var(--radius); background:var(--danger-surface); color:var(--danger-ink); font-size:12px; }
