:root{--bg:#181a1f;--panel:#21242b;--line:#343944;--fg:#e6e8ec;--dim:#9aa1ad;--acc:#f0a030}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{height:100%;margin:0;background:var(--bg);color:var(--fg);font:13px/1.4 system-ui,Segoe UI,sans-serif}
body{display:flex;flex-direction:column}
#topbar{display:flex;gap:6px;align-items:center;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line)}
#topbar .sp{flex:1}.sep{width:1px;height:20px;background:var(--line);margin:0 4px}
main{flex:1;display:flex;min-height:0}
#sidebar{width:400px;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);padding:6px 10px}
details{border-bottom:1px solid var(--line);padding:6px 0}
summary{cursor:pointer;font-weight:600;padding:4px 0}
label{display:flex;flex-direction:column;gap:2px;margin:6px 0;color:var(--dim);flex:1;min-width:0}
label.chk{flex-direction:row;align-items:center;gap:6px;color:var(--fg)}
.row{display:flex;gap:6px;align-items:flex-end}
.row>input[type=number]{width:70px}
input,select,button{background:#14161a;color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:4px 6px;font:inherit;min-width:0}
input[type=checkbox]{width:auto}
button{cursor:pointer;background:#2b303a}button:hover{background:#363c49}button:disabled{opacity:.4;cursor:default}
button.primary{background:var(--acc);color:#111;border-color:var(--acc);font-weight:600}
.info{color:var(--dim);font-size:12px;margin:4px 0;white-space:pre-line}
.info.err{color:#ff7b72}.info table{border-collapse:collapse;width:100%}.info td{padding:1px 4px 1px 0}.info td:last-child{text-align:right;color:var(--fg)}
.info .warn{color:var(--acc)}
progress{width:100%}
hr{border:0;border-top:1px solid var(--line);margin:8px 0}
#search-results{list-style:none;margin:4px 0;padding:0}
#search-results li{padding:3px 4px;cursor:pointer;border-radius:3px;color:var(--dim)}
#search-results li:hover{background:#2b303a;color:var(--fg)}
#stage{position:relative;flex:1;min-width:0;overflow:hidden}
#map{position:absolute;inset:0}
#frame-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#frame-overlay>div{position:absolute}
#fr-area{box-shadow:0 0 0 5000px rgba(0,0,0,.55);outline:1px dashed #ff5a5a}
#fr-trim{outline:1px solid #fff}
#fr-safe{outline:1px dashed #5aff8a}
#fr-label{color:#fff;font-size:11px;background:rgba(0,0,0,.6);padding:1px 5px;border-radius:3px;white-space:nowrap}
#attrib{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.75);color:#222;font-size:10px;padding:1px 5px;max-width:70%;z-index:5}
#cv-blend,#cv-mult,#cv-over{position:absolute;left:0;top:0;pointer-events:none}
#cv-blend{mix-blend-mode:saturation}
#cv-mult{mix-blend-mode:multiply}
.list{max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:4px;margin:6px 0;background:#14161a}
.list .it{display:flex;align-items:center;gap:6px;padding:2px 6px;border-bottom:1px solid #1d2026}
.list .it:hover{background:#1d2026}.list .it.sel{background:#2a2518}
.list .it .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.list .it .meta{color:var(--dim);font-size:11px;white-space:nowrap}
.list .it input{margin:0}
.list .more{padding:4px 6px;color:var(--dim);font-size:11px}
button.mini{padding:0 5px;font-size:11px}
.sub{margin:6px 0;padding:6px;border:1px solid var(--line);border-radius:4px}
.sub>h4{margin:0 0 4px;font-size:12px;color:var(--dim)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.row2 label{margin:2px 0}
.btnrow{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0}
button.on{background:var(--acc);color:#111}

.tabs{display:flex;gap:2px;margin:6px 0}
.tabs .tab{flex:1;border-radius:4px 4px 0 0}
.list .it.marked{background:#1f3350}
.list .it.off .nm{color:var(--dim)}
.badge{font-size:10px;padding:0 4px;border-radius:3px;white-space:nowrap;background:#2b303a;color:var(--dim)}
.badge.out{background:#5a3b12;color:#ffc680}.badge.hid{background:#4a2020;color:#ffb0b0}.badge.sty{background:#1e3a2c;color:#9fe3b9;max-width:90px;overflow:hidden;text-overflow:ellipsis}
.bulk{margin:4px 0}.bulk select{width:100%}
.detail h5,.stybox h5{margin:8px 0 2px;font-size:12px;color:var(--dim)}
.sty-bulk{min-width:0}

.win{position:fixed;display:flex;flex-direction:column;min-width:360px;min-height:260px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 28px rgba(0,0,0,.55);resize:both;overflow:hidden}
.win[hidden]{display:none!important}
.win-head{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#2a2f3a;cursor:move;user-select:none;font-weight:600;touch-action:none}
.win-x{font-size:18px;line-height:1;padding:0 8px;cursor:pointer}
.win-body{flex:1;overflow:auto;padding:8px 10px}
.pane:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:start}
.pcol{min-width:0}
.spane:not([hidden]){display:block}
.stybox{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:12px}
.stybox>label,.stybox>.btnrow,.stybox>.info{grid-column:1/-1}
.stybox h5{grid-column:1/-1}

/* Routenmanager */
.rt-win-layout{display:flex;gap:14px;height:100%;min-height:480px}
.rt-win-left{width:260px;display:flex;flex-direction:column;gap:8px;border-right:1px solid var(--line);padding-right:12px}
.rt-win-right{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:6px}
.rt-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:4px;background:#14161a;padding:4px}
.rt-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:#181b22;cursor:pointer}
.rt-item:hover{background:#222630}
.rt-item.active{background:#243247;border-color:var(--acc)}
.rt-stop-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#171a21;border:1px solid var(--line);border-radius:4px}
.rt-stop-badge{background:var(--acc);color:#111;font-weight:700;font-size:11px;padding:1px 6px;border-radius:10px}
.rt-stop-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt-swatch{height:14px;border-radius:2px;border:1px solid rgba(255,255,255,.2);margin-top:4px}

