/* Argus Atlas – base layout + neutral components. Themes set variables in theme-*.css */
:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f3f4f6;--ink:#111827;--muted:#4b5563;--line:#d1d5db;--accent:#1d4ed8;--accent-ink:#fff;--danger:#b91c1c;--gold:#a16207;--warn:#b45309;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-head:var(--font-body);--radius:10px;--chip-radius:999px;--shadow:0 1px 4px rgba(0,0,0,.12);--focus:#f59e0b}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font-family:var(--font-body);color:var(--ink);background:var(--bg);font-size:14.5px;line-height:1.45;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:8px 12px;border-radius:6px}.skip:focus{top:8px}
h2,h3,h4{font-family:var(--font-head);margin:0}
.app{display:grid;height:100vh;height:100dvh;grid-template-columns:300px minmax(0,1fr) 460px;grid-template-rows:62px minmax(0,1fr) 72px 24px;
  grid-template-areas:"hd hd hd" "l m r" "tl tl r" "ft ft ft"}
/* Shared header geometry across all themes: 62px row, pad 16, switches top-right (theme then lang). Themes restyle color/font/surface only. */
.hdr{grid-area:hd;display:flex;align-items:center;gap:16px;padding:0 16px;min-width:0;height:62px;box-sizing:border-box}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand .logo{width:34px;height:34px;flex:none}
.brand b{font-family:var(--font-head);font-size:19px;letter-spacing:.04em;display:block;line-height:1.1}.brand small{display:block;font-size:11px;opacity:.75;letter-spacing:.08em}
.search{flex:1;max-width:620px;position:relative;display:flex;gap:6px;min-width:0}
.search input{flex:1;min-width:0;height:38px;border-radius:var(--radius);border:1px solid var(--line);padding:0 12px;background:var(--surface);color:var(--ink)}
.search .go{height:38px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:0 14px;cursor:pointer}
.pop{position:absolute;top:44px;left:0;right:0;z-index:40;padding:12px 14px;max-height:60vh;overflow:auto}
.pop ul{margin:6px 0;padding-left:18px}.pop li{margin:3px 0}.so-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.so-label{font-size:12px;padding:0 6px;border:1px solid var(--line);border-radius:6px;color:var(--muted)}
.switches{margin-left:auto;display:flex;gap:8px;align-items:center;flex-shrink:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.seg button{border:0;background:transparent;padding:0 11px;height:32px;cursor:pointer;font-size:12.5px;white-space:nowrap;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.seg button+button{border-left:1px solid var(--line)}
.seg button.on{background:var(--accent);color:var(--accent-ink)}
.link{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;font-size:12.5px}
.mapwrap{grid-area:m;position:relative;min-height:0}.map{position:absolute;inset:0}
.loading{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;font-size:15px;z-index:5;pointer-events:none}.loading[hidden]{display:none}
.panel{min-height:0;overflow:auto;scrollbar-width:thin}
.panel.left{grid-area:l;padding:12px 14px}
.panel.right{grid-area:r;display:flex;flex-direction:column;overflow:hidden}
.instrument:empty{display:none}
.tabwrap{flex:1;min-height:0;display:flex;flex-direction:column}
.tabs{display:flex;gap:2px;padding:8px 10px 0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.tabs [role=tab]{flex:1 1 auto;border:1px solid var(--line);border-bottom:0;background:var(--surface-2);padding:7px 8px;cursor:pointer;font-size:12.5px;border-radius:8px 8px 0 0;white-space:nowrap}
.tabs [role=tab][aria-selected=true]{background:var(--surface);font-weight:600}
.tabs [role=tab] .n{font-style:normal;color:var(--danger);font-weight:700}
.tabs [hidden]{display:none}
.panes{flex:1;min-height:0;overflow:auto;padding:12px 14px;border-top:1px solid var(--line);scrollbar-width:thin}
.ph{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.ph h2{font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.count{font-size:12px;color:var(--muted)}
.note{font-size:12px;color:var(--muted);margin:6px 0}.empty{color:var(--muted);font-style:italic}
/* filters */
.fgroup{margin:8px 0;border-top:1px solid var(--line);padding-top:6px}
.fgroup summary,.fgroup .gh{cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-size:13px;font-weight:700;padding:3px 0;list-style:none}
.fgroup summary::-webkit-details-marker{display:none}
.fgroup summary::after{content:'▸';margin-left:6px;opacity:.6}.fgroup[open] summary::after{content:'▾'}
.fgroup summary small{margin-left:auto;font-weight:400;font-size:11px;color:var(--muted);font-family:var(--font-body)}
.fgroup .gi{width:10px;height:10px;border-radius:50%;background:var(--g);flex:none}
.fgroup .act{font-style:normal;background:var(--accent);color:var(--accent-ink);border-radius:9px;padding:0 6px;font-size:11px}
.chips{display:flex;flex-wrap:wrap;gap:5px;padding:4px 0}
.chip{max-width:100%;text-align:left;white-space:normal;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--chip-radius);padding:2px 9px;cursor:pointer;font-size:12.5px;line-height:1.5}
.chip i{font-style:normal;font-size:10.5px;margin-left:5px;color:var(--muted)}
.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip.on i{color:inherit;opacity:.85}
.chip.cat b{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--c);color:#fff;font-size:10px;text-align:center;line-height:16px;margin-right:2px}
.chip.cat:not(.on){opacity:.6}
.none{color:var(--muted)}
/* list */
.items{list-style:none;margin:0;padding:0}
.item{display:block;width:100%;text-align:left;border:1px solid transparent;border-bottom-color:var(--line);background:none;padding:8px 6px;cursor:pointer;border-radius:6px}
.item:hover{background:var(--surface-2)}.item.sel{border-color:var(--accent);background:var(--surface-2)}.item.dim{opacity:.4}
.item.hot{box-shadow:inset 3px 0 0 var(--danger)}
.it-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.it-title{display:block;font-weight:600;margin:2px 0;font-size:14px;color:var(--ink)}.it-place{display:block;font-size:12px;color:var(--muted)}
.b-cat{display:inline-block;min-width:17px;height:17px;border-radius:50%;background:var(--c);color:#fff;font-size:10px;font-weight:700;text-align:center;line-height:17px}
.b-sev{letter-spacing:-1px;font-size:9px;color:var(--danger)}
.b-pat{font-size:11px;padding:0 6px;border-radius:9px;border:1px solid var(--gold);color:var(--gold);white-space:nowrap}
.b-con{font-size:11px;padding:0 6px;border-radius:9px;border:1px dashed var(--warn);color:var(--warn);white-space:nowrap}
.b-up{font-size:11px;padding:0 6px;border-radius:9px;border:1px dashed var(--muted)}
.mt{font-size:10.5px;font-weight:400;margin-left:6px;padding:0 5px;border-radius:5px;border:1px solid var(--line);color:var(--muted);vertical-align:middle;white-space:nowrap}
.item.contested .it-title{text-decoration:underline wavy var(--warn);text-decoration-thickness:1px;text-underline-offset:3px}
/* tension */
.tn-row{display:grid;grid-template-columns:120px 1fr 64px;gap:8px;align-items:center;margin-top:8px;font-size:13px}
.tn-bar{height:9px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.tn-bar i{display:block;height:100%;background:var(--danger)}
.tn-t{text-align:right;font-size:12px}.tn-t.up{color:var(--danger);font-weight:700}
/* tripwires */
.tw{border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;margin:8px 0;min-width:0}
.tw.fired{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 25%,transparent)}.tw.off{opacity:.6}
.tw-top{display:flex;gap:8px;align-items:center}.tw-name{flex:1;min-width:0;border:0;border-bottom:1px dotted var(--line);background:transparent;font-weight:700;padding:2px}
.tw-state{font-size:12px;color:var(--muted);white-space:nowrap}.tw.fired .tw-state{color:var(--danger);font-weight:700}
.tw-del{border:0;background:none;cursor:pointer;font-size:18px;color:var(--muted);padding:0 4px}
.tw-rule{font-size:13px;line-height:2.1;margin-top:2px}
.tw-rule input,.tw-rule select{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:1px 4px;max-width:170px}.tw-rule input[type=number]{width:44px}
.tw-hits a{display:block;font-size:12.5px}
.sw{position:relative;display:inline-flex}.sw input{position:absolute;opacity:0;width:30px;height:16px;margin:0;cursor:pointer}.sw span[aria-hidden]{display:inline-block;width:30px;height:16px;border-radius:8px;background:var(--line);position:relative}
.sw span[aria-hidden]::after{content:'';position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:.2s}
.sw input:checked+span{background:var(--accent)}.sw input:checked+span::after{left:16px}.sw input:focus-visible+span{outline:3px solid var(--focus)}
.tw-add{width:100%;border:1px dashed var(--line);background:none;border-radius:var(--radius);padding:7px;cursor:pointer}
/* oracle */
.or-headline{font-size:16px;font-weight:600;margin:6px 0}.or-title{font-weight:700;margin:4px 0}
#p-oracle h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;margin-top:10px}#p-oracle ul{margin:4px 0;padding-left:18px}
.conf{font-size:11px;color:var(--muted)}
/* timeline */
.timeline{grid-area:tl;display:grid;grid-template-columns:280px minmax(0,1fr);align-items:stretch;min-width:0;min-height:0;overflow:hidden}
.tctl{display:flex;align-items:center;gap:10px;padding:0 12px;min-width:0}
.play{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--accent);color:var(--accent-ink);cursor:pointer;flex:none;font-size:14px}
.now{font-size:11px;color:var(--muted);line-height:1.2;min-width:0}.now b{display:block;font-size:12.5px;color:var(--ink);white-space:nowrap}
.tctl .seg button{padding:0 8px;height:28px}
.track{position:relative;min-width:0;min-height:0}.trk{position:absolute;left:0;top:6px;width:calc(100% - 12px);height:calc(100% - 12px);display:block;cursor:ew-resize;touch-action:none}
.trk .axis,.trk .day,.trk .hr{stroke:var(--muted);stroke-width:1}.trk .day{stroke-dasharray:2 3;opacity:.7}.trk .past{fill:var(--accent);opacity:.6}
.trk .dayl{fill:var(--muted);font-size:11px;font-family:var(--font-body)}
.trk .ev{fill:var(--c);stroke:#fff;stroke-width:.7;cursor:pointer}.trk .ev.off{opacity:.18}.trk .ev.sel{stroke-width:2.5;stroke:var(--ink)}
.trk #cur line{stroke:var(--ink);stroke-width:2}.trk #cur circle{fill:var(--accent);stroke:var(--ink)}
.trk:focus-visible{outline:3px solid var(--focus)}
/* detail */
.detail{position:fixed;z-index:30;left:310px;bottom:106px;width:min(460px,calc(100vw - 800px));min-width:340px;max-height:calc(100dvh - 190px);overflow:auto;padding:16px 18px 18px}
.detail[hidden]{display:none}
.detail .x{position:sticky;float:right;top:0;border:0;background:none;font-size:24px;line-height:1;cursor:pointer;color:var(--muted);margin:-6px -8px 0 0}
.detail h2{font-size:18px;line-height:1.25;margin:6px 0 4px}.detail h2:focus{outline:none}
.d-meta{font-size:12.5px;color:var(--muted)}.d-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
.facts-dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:10px 0;font-size:13px}.facts-dl div{display:contents}.facts-dl dt{color:var(--muted)}.facts-dl dd{margin:0}
.sevbar{color:var(--danger);letter-spacing:-1px}
.d-sum{line-height:1.55}
.detail section{margin-top:12px}.detail h3{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.detail ul{margin:4px 0;padding-left:18px}.detail li{margin:3px 0}
.d-tags .tag{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:9px;margin:2px 3px 0 0;border:1px solid var(--g);background:color-mix(in srgb,var(--g) 10%,transparent)}
.pm{border-left:3px solid var(--gold);padding:4px 10px;margin:6px 0;background:color-mix(in srgb,var(--gold) 8%,transparent)}.pm p{margin:4px 0;font-size:13px}
.wire{font-size:11px;color:var(--muted)}
/* Quellenlage */
.srcpic .cov{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin:6px 0}
.srcpic .cov div{border:1px solid var(--line);border-radius:8px;padding:4px 6px;text-align:center}.srcpic .cov b{display:block;font-size:17px}.srcpic .cov span{font-size:11px;color:var(--muted)}
.agr{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:13px;margin:6px 0}
.agr .bar,.stack{height:9px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;display:flex}
.agr .bar i{background:linear-gradient(90deg,var(--danger),var(--warn),#16a34a)}.agr.div .bar i{background:var(--warn)}
.stack i{display:block;height:100%}.stack .ok{background:#16a34a}.stack .no{background:var(--danger)}.stack .un{background:var(--line)}
.srcpic h4{font-size:12px;margin:10px 0 2px;text-transform:uppercase;letter-spacing:.05em}
.fact{padding:5px 0;border-bottom:1px dotted var(--line)}.fact .f-top{display:flex;gap:8px;align-items:baseline}.fact .f-top em{margin-left:auto;font-style:normal;font-size:12px}
.fact .cv{font-size:12.5px;padding:0 5px;border-radius:5px;background:var(--surface-2)}.fact small{font-size:11.5px;color:var(--muted)}
.fact.split .f-top b{color:var(--warn)}.outl{font-size:12px;margin-top:2px}.outl mark{background:color-mix(in srgb,var(--warn) 25%,transparent);color:inherit;padding:0 3px;border-radius:3px}
.blocs div{display:grid;grid-template-columns:110px 1fr;gap:8px;font-size:12.5px;padding:3px 0;border-bottom:1px dotted var(--line)}
.conv{font-size:12.5px;color:var(--muted)}
.detail.contested h2{animation:argus-flicker 3.2s infinite}
@keyframes argus-flicker{0%,100%{filter:none;opacity:1}46%{filter:blur(.4px);opacity:.85}48%{filter:blur(1.2px);opacity:.7}50%{filter:none;opacity:1}}
.foot{grid-area:ft;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.mobnav{display:none}
.argus-tip .maplibregl-popup-content{font:12.5px/1.35 var(--font-body);padding:6px 9px;max-width:260px;background:var(--surface);color:var(--ink)}
.argus-tip .maplibregl-popup-tip{display:none}
.maplibregl-ctrl-attrib{font-size:10.5px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* ---------- mobile ---------- */
@media (max-width:900px){
  body{overflow:auto}
  .app{display:flex;flex-direction:column;height:auto;min-height:100dvh}
  .hdr{flex-wrap:wrap;padding:8px 10px;gap:8px;height:auto}.brand small{display:none}.search{order:3;flex-basis:100%;max-width:none}
  .switches{gap:6px}.seg button{padding:0 8px;font-size:12px}
  .mapwrap{height:56vh;flex:none}
  .timeline{grid-template-columns:1fr;padding:6px 0}.tctl{padding:0 10px}.track{height:64px}
  .mobnav{display:flex;gap:6px;padding:8px 10px}.mobnav button{flex:1;height:36px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);cursor:pointer}.mobnav button.on{background:var(--accent);color:var(--accent-ink)}
  .panel.left{display:none}.panel.right{overflow:visible}
  body.show-filters .panel.left{display:block}body.show-filters .panel.right{display:none}
  .panes{overflow:visible}
  .detail{left:6px!important;right:6px;bottom:6px!important;width:auto!important;min-width:0!important;max-height:72dvh}
  .foot{white-space:normal;text-align:center;padding:8px}
  .hdr{order:0}.mapwrap{order:1}.timeline{order:2}.mobnav{order:3;position:sticky;bottom:0;z-index:25;background:var(--bg)}.panel.left,.panel.right{order:4}.foot{order:5}
}
.lens-wrap{overflow-x:auto;margin:4px 0 8px}
.lens{border-collapse:collapse;font-size:12px;width:100%}
.lens th,.lens td{border-bottom:1px dotted var(--line);padding:4px 6px;text-align:left;vertical-align:top}
.lens thead th{font-weight:700;color:var(--muted);white-space:nowrap}
.lens tbody th{font-weight:600;white-space:nowrap}
.lens td.na{color:var(--muted);opacity:.6}
.lens tr.diff td:not(.na){background:color-mix(in srgb,var(--warn) 22%,transparent);font-weight:600}
.framing{margin:4px 0;padding-left:18px;font-size:12.5px}
.con-note{color:var(--danger)}
