:root{--bg:#05070d;--bg2:#080b14;--panel:#0b101c;--panel2:#101624;--border:#1c2536;--border-soft:#ffffff12;--border2:#2a3550;--text:#e8ecf4;--muted:#8b95a8;--muted2:#5b6478;--accent:#f59e0b;--accent-hell:#fbbf24;--accent-tief:#b45309;--accent-soft:#f59e0b1f;--accent-line:#f59e0b73;--glow-sm:0 0 18px #f59e0b29;--glow-md:0 8px 24px #f59e0b47;--good:#22c55e;--warn:#eab308;--bad:#ef4444;--ev:#d97706;--ac:#3987e5;--pv:#8b95a8;--radius:14px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 520px at 78% -8%, #f59e0b13, transparent 62%), radial-gradient(820px 460px at 6% 92%, #f59e0b09, transparent 58%), var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent);color:#1a1202}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);z-index:50;-webkit-backdrop-filter:blur(12px);background:#05070ddb;align-items:center;gap:16px;padding:11px 20px;display:flex;position:sticky;top:0;box-shadow:0 10px 30px #00000059}.brand{white-space:nowrap;align-items:center;gap:11px;display:flex}.brand .dot{background:linear-gradient(160deg, var(--accent-hell), var(--accent-tief));border-radius:4px;flex:none;width:12px;height:12px;animation:2.8s ease-out infinite ledpulse;box-shadow:0 0 14px #fbbf248c}@keyframes ledpulse{0%{box-shadow:0 0 #fbbf2466,0 0 14px #fbbf248c}70%{box-shadow:0 0 0 9px #fbbf2400,0 0 14px #fbbf248c}to{box-shadow:0 0 #fbbf2400,0 0 14px #fbbf248c}}.brand a{color:var(--text);letter-spacing:-.01em;text-transform:uppercase;font-size:16.5px;font-weight:900}.brand a:hover{color:var(--accent-hell);text-decoration:none}.nav{scrollbar-width:none;flex:1;gap:4px;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:700;transition:color .15s,background .15s,box-shadow .15s}.nav a:hover{color:var(--text);background:#ffffff0d;text-decoration:none}.nav a.active{color:var(--accent-hell);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #f59e0b61, var(--glow-sm);text-shadow:0 0 18px #f59e0b73}.topbar .right{align-items:center;gap:8px;display:flex}.userchip{color:var(--muted2);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12.5px;font-weight:600;overflow:hidden}main.content{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:26px 20px 64px}@keyframes viewin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}main.content>*{animation:.28s cubic-bezier(.25,.75,.3,1) both viewin}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 16px;display:flex}.section-title h2,h1.pagetitle{letter-spacing:-.02em;margin:0;font-size:clamp(22px,3vw,30px);font-weight:900;line-height:1.1}.kicker{color:var(--accent);letter-spacing:.22em;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:900;display:block}.grid{gap:14px;display:grid}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:24px}.stat{background:linear-gradient(180deg, var(--panel2), var(--panel));border:1px solid var(--border);border-radius:var(--radius);border-top:2px solid #f59e0b8c;padding:17px 19px 15px;transition:transform .18s,box-shadow .18s,border-color .18s;position:relative;overflow:hidden;box-shadow:0 12px 30px #00000059}.stat:after{content:"";background:var(--accent-hell);border-radius:50%;width:7px;height:7px;position:absolute;top:15px;right:15px;box-shadow:0 0 10px #fbbf24d9}.stat:hover{border-color:var(--border2);border-top-color:var(--accent-hell);transform:translateY(-3px);box-shadow:0 20px 44px #00000080,0 0 0 1px #f59e0b33,0 0 30px #f59e0b1a}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.16em;padding-right:16px;font-size:10.5px;font-weight:800}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:7px;font-size:clamp(27px,3vw,33px);font-weight:900;line-height:1.15}.stat .value.accent{color:var(--accent-hell);text-shadow:0 0 28px #f59e0b59}.stat .sub{color:var(--muted2);margin-top:4px;font-size:12px}.card{background:linear-gradient(180deg, var(--panel2), var(--panel));border:1px solid var(--border);border-radius:var(--radius);border-top:2px solid #f59e0b80;margin-bottom:18px;padding:19px 22px 20px;position:relative;box-shadow:0 14px 36px #00000052}.card h2,.card h3{letter-spacing:.15em;text-transform:uppercase;color:var(--text);align-items:center;gap:9px;min-height:14px;margin:0 0 14px;font-size:12.5px;font-weight:900;display:flex}.card h2:before,.card h3:before{content:"";background:linear-gradient(180deg, var(--accent-hell), var(--accent-tief));border-radius:2px;flex:none;width:4px;height:14px;box-shadow:0 0 10px #f59e0b80}.card h2 .hint{color:var(--muted);letter-spacing:.02em;text-transform:none;white-space:nowrap;margin-left:2px;font-size:12px;font-weight:500}.subline{color:var(--muted);font-size:12.5px}.field{flex-direction:column;gap:6px;margin-bottom:13px;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:10.5px;font-weight:800}input,select,textarea,button{font-family:inherit;font-size:14px}input,select,textarea{background:var(--bg2);border:1px solid var(--border2);color:var(--text);border-radius:10px;width:100%;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#38466b}input:focus,select:focus,textarea:focus{border-color:var(--accent-hell);box-shadow:0 0 0 3px #f59e0b38, var(--glow-sm);outline:none}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.form-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 14px;display:grid}.btn{background:linear-gradient(180deg, var(--accent-hell), var(--accent));color:#1a1202;letter-spacing:.01em;cursor:pointer;box-shadow:0 0 0 1px #ffffff1a inset, var(--glow-md);border:none;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:800;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex}.btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:inset 0 0 0 1px #ffffff24,0 10px 30px #f59e0b66}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn.ghost{color:var(--muted);border:1px solid var(--border2);box-shadow:none;background:0 0;font-weight:700}.btn.ghost:hover{color:var(--text);border-color:var(--accent);box-shadow:var(--glow-sm)}.btn.danger{color:var(--bad);box-shadow:none;background:0 0;border:1px solid #ef444466;font-weight:700}.btn.danger:hover{border-color:var(--bad);box-shadow:0 0 16px #ef444433}.btn.small{border-radius:7px;padding:6px 11px;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.formmsg{margin-left:10px;font-size:13px;font-weight:700}.formmsg.ok{color:var(--good)}.formmsg.err{color:var(--bad)}.hinweis-warn{color:var(--warn);margin:0 0 12px;font-size:13px}.tbl-wrap{-webkit-overflow-scrolling:touch;border-radius:10px;overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;color:var(--muted2);text-transform:uppercase;letter-spacing:.13em;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:10.5px;font-weight:800}.tbl td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:11px 12px}.tbl tbody tr{transition:background .15s,box-shadow .15s}.tbl tbody tr:hover{background:#f59e0b0e}.tbl tbody tr:last-child td{border-bottom:none}.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl .muted{color:var(--muted)}.tbl .actions-cell{text-align:right;white-space:nowrap}.tbl tfoot td{border-top:2px solid var(--border2);color:var(--text);font-variant-numeric:tabular-nums;background:#f59e0b12;font-weight:900}.tbl tfoot td:first-child{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px}.rowlink{color:var(--text);font-weight:700}.rowlink:hover{color:var(--accent-hell);text-shadow:0 0 18px #f59e0b66}.ampel{vertical-align:middle;border-radius:50%;width:11px;height:11px;margin-right:8px;display:inline-block}.ampel.good{background:radial-gradient(circle at 35% 35%, #6ee7a0, var(--good));box-shadow:0 0 10px #22c55e99}.ampel.warn{background:radial-gradient(circle at 35% 35%, #fde047, var(--warn));box-shadow:0 0 10px #eab30899}.ampel.bad{background:radial-gradient(circle at 35% 35%, #fda4a4, var(--bad));box-shadow:0 0 10px #ef444499}.ampel.none{background:#4b5563}.badge{font-variant-numeric:tabular-nums;border:1px solid var(--border2);color:var(--muted);cursor:help;white-space:nowrap;border-radius:7px;padding:3px 10px;font-size:12px;font-weight:800;display:inline-block}.badge.good{color:#4ade80;background:#22c55e1a;border-color:#22c55e73}.badge.warn{color:#facc15;background:#eab3081a;border-color:#eab30873}.badge.bad{color:#f87171;background:#ef44441c;border-color:#ef444480}.chip{border:1px solid var(--border2);color:var(--muted);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.chip.status-aktiv{color:#4ade80;background:#22c55e12;border-color:#22c55e66}.chip.status-pausiert{color:#facc15;background:#eab30812;border-color:#eab30866}.chip.status-abgeschlossen{color:var(--muted)}.meter{background:var(--bg2);border:1px solid var(--border-soft);border-radius:999px;height:10px;overflow:hidden;box-shadow:inset 0 2px 6px #0006}.meter>span{transform-origin:0;border-radius:999px;height:100%;animation:.9s cubic-bezier(.25,.75,.3,1) meterfill;display:block}@keyframes meterfill{0%{transform:scaleX(0)}}.meter>span.good{background:linear-gradient(90deg,#15803d,#4ade80);box-shadow:0 0 12px #22c55e73}.meter>span.warn{background:linear-gradient(90deg,#a16207,#facc15);box-shadow:0 0 12px #eab30873}.meter>span.bad{background:linear-gradient(90deg,#b91c1c,#f87171);box-shadow:0 0 12px #ef444473}.meter>span.none{background:#4b5563}.eva-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.eva-tile{border:1px solid var(--border2);background:linear-gradient(#0d1422,#0a0f1a);border-radius:12px;padding:14px 16px 13px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 14px 34px #0006}.eva-tile:hover{transform:translateY(-2px);box-shadow:0 18px 40px #00000080}.eva-tile:before{content:"";background:var(--pv);opacity:.85;height:2px;position:absolute;top:0;left:0;right:0}.eva-tile.t-ev:before{background:linear-gradient(90deg, var(--accent-tief), var(--accent-hell));box-shadow:0 0 12px #f59e0b8c}.eva-tile.t-ac:before{background:linear-gradient(90deg,#1d4ed8,#60a5fa);box-shadow:0 0 12px #3987e580}.eva-tile.t-pv:before{background:var(--pv)}.eva-tile .k{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;font-weight:800}.eva-tile .v{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:21px;font-weight:900}.eva-tile.t-ev .v{color:var(--accent-hell);text-shadow:0 0 24px #f59e0b59}.eva-tile.t-ac .v{color:#7cb3f2}.eva-forecast{color:#1c1202;background:repeating-linear-gradient(-45deg,#0000000f 0 2px,#0000 2px 26px),linear-gradient(160deg,#fbbf24 0%,#f59e0b 45%,#d97706 100%);border:none;border-radius:12px;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:14px;padding:15px 18px;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 40px #f59e0b3d}.eva-forecast:before{content:"";pointer-events:none;background:radial-gradient(700px 300px at 24% 0,#ffffff2e,#0000 70%);position:absolute;inset:0}.eva-forecast .lbl{color:#1c1202b8;text-transform:uppercase;letter-spacing:.14em;margin-bottom:2px;font-size:10px;font-weight:900}.eva-forecast .big{color:#1c1202;font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:900}.eva-forecast .big.pos{color:#14532d}.eva-forecast .big.neg{color:#7a1010}.eva-forecast .note{color:#1c1202c7;max-width:320px;font-size:12px;font-weight:600}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12.5px;font-weight:600;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:16px;height:3px;margin-right:6px;display:inline-block}.wk-bar{filter:drop-shadow(0 0 5px #f59e0b80)}.eva-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.3s cubic-bezier(.3,.6,.25,1) .2s forwards evadraw}.eva-line.ev{filter:drop-shadow(0 0 5px #f59e0b80)}.eva-line.ac{filter:drop-shadow(0 0 5px #3987e566)}@keyframes evadraw{to{stroke-dashoffset:0}}.eva-dot,.eva-pvline{opacity:0;animation:.45s 1.1s forwards evafade}@keyframes evafade{to{opacity:1}}.updatebar{z-index:200;border-top:1px solid var(--accent-line);color:var(--text);background:#161005f5;justify-content:center;align-items:center;gap:12px;padding:11px 16px;font-size:14px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 34px #f59e0b29}.updatebar.show{display:flex}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border2);background:linear-gradient(#ffffff04,#0000 60%);border-radius:12px;padding:38px 18px;font-size:14px}.empty:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);border-radius:2px;width:38px;height:3px;margin:0 auto 14px;display:block;box-shadow:0 0 14px #f59e0b80}.empty a{font-weight:700}@media (max-width:560px){main.content{padding:16px 12px 54px}.topbar{gap:10px;padding:9px 12px}.brand a{font-size:14.5px}.userchip{display:none}.stat{padding:14px 15px 13px}.stat .value{font-size:24px}.card{padding:16px 15px 17px}.card h2 .hint{white-space:normal}.eva-forecast{gap:10px 18px}}@media (pointer:coarse){.btn{min-height:44px}.btn.small{min-height:38px}.nav a{align-items:center;min-height:44px;display:inline-flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:10ms!important;animation-duration:10ms!important;animation-iteration-count:1!important}main.content>*,.meter>span{animation:none}.eva-line{stroke-dashoffset:0;animation:none}.eva-dot,.eva-pvline{opacity:1;animation:none}}
