:root{--bg:#0f172a;--card:#1e293b;--card2:#334155;--border:#475569;--text:#e2e8f0;--muted:#94a3b8;--accent:#38bdf8;--green:#22c55e;--red:#ef4444;--orange:#f59e0b;--purple:#a78bfa;--teal:#2dd4bf;}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif;min-height:100vh;}
a{color:var(--accent);text-decoration:none;}
.container{max-width:1200px;margin:0 auto;padding:16px;}
.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:100;backdrop-filter:blur(10px);}
.topbar .logo{font-weight:700;font-size:1rem;color:var(--accent);white-space:nowrap;}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap;}
.topbar nav a{padding:6px 12px;border-radius:8px;font-size:.82rem;color:var(--muted);transition:all .2s;white-space:nowrap;}
.topbar nav a:hover,.topbar nav a.active{background:var(--card2);color:var(--text);}
.lang-switch{margin-left:auto;display:flex;gap:2px;}
.lang-btn{padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:.8rem;cursor:pointer;transition:all .2s;}
.lang-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px;}
.card h2{font-size:1.1rem;margin-bottom:10px;}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
.status-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;}
.status-ok{background:var(--green);}
.status-warn{background:var(--orange);}
.status-fail{background:var(--red);}
.status-none{background:var(--muted);}
.back{display:inline-block;margin-bottom:8px;font-size:.85rem;color:var(--accent);}
.budget-bar{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:16px;}
.budget-track{height:32px;background:var(--card2);border-radius:8px;overflow:hidden;position:relative;margin:10px 0;}
.budget-fill{height:100%;border-radius:8px;transition:width .3s,background .3s;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-size:.8rem;font-weight:700;color:#fff;white-space:nowrap;}
.budget-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);}
.budget-target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--orange);z-index:2;}
.budget-target::after{content:attr(data-label);position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:.6rem;color:var(--orange);white-space:nowrap;}
.budget-rows{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;}
.budget-item{background:var(--card2);border-radius:8px;padding:8px;text-align:center;}
.budget-item .bl{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;}
.budget-item .bv{font-size:1rem;font-weight:800;margin-top:2px;}
.gew-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:16px;}
.gew{background:var(--card);border:2px solid var(--border);border-radius:12px;padding:14px;cursor:pointer;transition:all .2s;position:relative;user-select:none;}
.gew:hover{border-color:var(--accent);transform:translateY(-1px);}
.gew.active{border-color:var(--green);background:rgba(34,197,94,.05);}
.gew.active .gew-check{background:var(--green);color:#fff;}
.gew.inactive{opacity:.55;}
.gew.inactive .gew-check{background:var(--card2);color:var(--muted);}
.gew.fixed{cursor:default;border-color:var(--accent);opacity:.85;}
.gew.fixed .gew-check{background:var(--accent);color:#fff;}
.gew-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.gew-check{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;flex-shrink:0;transition:all .2s;}
.gew-info{flex:1;}
.gew-id{font-size:.7rem;color:var(--muted);font-weight:600;}
.gew-name{font-size:.88rem;font-weight:600;line-height:1.2;}
.gew-price{font-size:.95rem;font-weight:800;text-align:right;}
.gew-price .pval{font-variant-numeric:tabular-nums;}
.gew-class{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.65rem;font-weight:600;margin-right:4px;}
.cl-H{background:rgba(56,189,248,.15);color:var(--accent);}
.cl-T{background:rgba(167,139,250,.15);color:var(--purple);}
.cl-A{background:rgba(45,212,191,.15);color:var(--teal);}
.gew-slider{margin-top:8px;display:flex;align-items:center;gap:8px;}
.gew-slider input[type=range]{flex:1;accent-color:var(--green);height:4px;}
.gew-slider .sl-val{font-size:.75rem;font-weight:600;width:40px;text-align:center;}
.beg-muess{background:rgba(239,68,68,.2);color:#ef4444;border:1px solid rgba(239,68,68,.3);font-weight:700;padding:2px 8px;border-radius:4px;font-size:.65rem;}
.beg-empf{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.2);padding:2px 6px;border-radius:4px;font-size:.65rem;}
.beg-optional{background:rgba(148,163,184,.1);color:#94a3b8;padding:2px 6px;border-radius:4px;font-size:.65rem;}
.beg-tooltip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#1e293b;border:1px solid #475569;border-radius:6px;padding:6px 10px;font-size:.7rem;color:#e2e8f0;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s;z-index:10;}
.gew:hover .beg-tooltip{opacity:1;}
.rules{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:16px;}
.rules h2{font-size:.95rem;margin-bottom:10px;}
.rule{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:.8rem;}
.rule-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;}
.rule-ok{background:rgba(34,197,94,.15);color:var(--green);}
.rule-fail{background:rgba(239,68,68,.15);color:var(--red);}
.presets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.preset-btn{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 16px;color:var(--text);font-size:.82rem;cursor:pointer;transition:all .2s;}
.preset-btn:hover{border-color:var(--accent);color:var(--accent);}
.beg-summary{background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(245,158,11,.08));border:1px solid rgba(239,68,68,.2);border-radius:14px;padding:16px;margin-bottom:16px;}
.beg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;}
.beg-cell{text-align:center;padding:8px;border-radius:8px;}
.beg-cell .count{font-size:1.3rem;font-weight:800;}
.beg-cell .label{font-size:.65rem;}
.beg-cell .sum{font-size:.8rem;font-weight:600;color:#e2e8f0;}
.timeline{position:relative;padding-left:24px;}
.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--border);}
.timeline-item{position:relative;margin-bottom:12px;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:10px;}
.timeline-item::before{content:'';position:absolute;left:-20px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);}
.timeline-date{font-size:.7rem;color:var(--muted);}
.timeline-text{font-size:.85rem;margin-top:4px;}
.install-banner{display:none;position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#1e3a5f,#0f172a);border-top:1px solid rgba(59,130,246,.3);padding:12px 16px;z-index:9999;backdrop-filter:blur(10px);}
.install-inner{display:flex;align-items:center;gap:10px;max-width:600px;margin:0 auto;}
.install-btn{background:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:600;font-size:.8rem;cursor:pointer;}
.install-close{background:transparent;color:#64748b;border:none;font-size:1.2rem;cursor:pointer;padding:4px;}
.htmx-indicator{display:none;}
.htmx-request .htmx-indicator{display:inline;}
