:root{--bg:#0b0f1a;--card:#121829cc;--line:#ffffff14;--txt:#e8ecf6;--mut:#8a93a8;--grn:#14f195;--red:#ff4d6d;--yel:#ffc857;--vio:#9945ff;--blu:#4cc9f0;--r:18px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
.bg-glow{position:fixed;inset:-30%;z-index:-1;background:radial-gradient(40% 35% at 20% 10%,#9945ff33,transparent 70%),radial-gradient(35% 30% at 85% 20%,#14f19522,transparent 70%),radial-gradient(40% 40% at 50% 100%,#4cc9f018,transparent 70%);animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(4%,3%,0) rotate(6deg)}}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:#0b0f1acc;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:.2px}
.pill{font-size:11px;font-weight:600;padding:3px 8px;border-radius:99px;background:#9945ff26;color:#c9a7ff;border:1px solid #9945ff55}
.top-right{display:flex;align-items:center;gap:10px}
.top-right form{margin:0}
main{max-width:1100px;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 30px #0006;animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
h2{margin:0 0 12px;font-size:16px;font-weight:700}
h2 small{font-weight:500;font-size:12px;margin-left:6px}
.muted{color:var(--mut)}.small{font-size:12px}
.label{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.8px}
.dot{width:11px;height:11px;border-radius:50%;background:var(--mut);display:inline-block;position:relative;flex:none}
.dot.live{background:var(--grn)}
.dot.live::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--grn);animation:pulse 1.6s ease-out infinite}
.dot.warn{background:var(--yel)}.dot.warn::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--yel);animation:pulse 2.4s ease-out infinite}
.dot.off{background:var(--red)}
@keyframes pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(3.2);opacity:0}}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:800px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi .big{font-size:28px;font-weight:800;margin:4px 0 2px;font-variant-numeric:tabular-nums;transition:color .4s}
.pos{color:var(--grn)}.neg{color:var(--red)}.neu{color:var(--txt)}
.verdict{display:flex;gap:14px;align-items:center}
.verdict-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:#ffffff0d;flex:none}
.verdict.ok .verdict-icon{background:#14f19526;box-shadow:0 0 30px #14f19555;animation:glow 2s ease-in-out infinite alternate}
.verdict.no .verdict-icon{background:#ffc85720}
@keyframes glow{to{box-shadow:0 0 50px #14f19599}}
.verdict-text{font-size:20px;font-weight:800}
.verdict.ok .verdict-text{color:var(--grn)}.verdict.no .verdict-text{color:var(--yel)}
.tasks{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.tasks{grid-template-columns:repeat(3,1fr)}}
.task{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:#ffffff08;border:1px solid var(--line);transition:border-color .4s,background .4s}
.task .dot{margin-top:6px}
.task b{display:block}
.task.fehler{border-color:#ff4d6d66;background:#ff4d6d12}.task.warn{border-color:#ffc85755}
.list{display:flex;flex-direction:column;gap:8px}
.item{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;padding:11px 12px;border-radius:14px;background:#ffffff08;border:1px solid var(--line)}
.item .coin{font-weight:700}
.item .meta{grid-column:1/2;font-size:12px;color:var(--mut)}
.item .val{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.item .val small{display:block;font-weight:500;font-size:12px}
.item.neu{animation:slidein .7s cubic-bezier(.2,.9,.2,1.2) both}
@keyframes slidein{from{opacity:0;transform:translateX(-40px) scale(.96)}60%{background:#14f19522}}
.item.flash-pos{animation:flashp 1.2s}.item.flash-neg{animation:flashn 1.2s}
@keyframes flashp{30%{background:#14f19530}}@keyframes flashn{30%{background:#ff4d6d30}}
.item.schatten{opacity:.6;border-style:dashed}
.item.ungueltig{opacity:.55}
.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:99px;background:#ffffff12;color:var(--mut);margin-left:6px;font-weight:600;vertical-align:1px}
.tag.ok{background:#14f19522;color:var(--grn)}.tag.bad{background:#ff4d6d22;color:var(--red)}.tag.warn{background:#ffc85722;color:var(--yel)}.tag.vio{background:#9945ff26;color:#c9a7ff}
.bar{height:4px;border-radius:4px;background:#ffffff14;overflow:hidden;grid-column:1/3;margin-top:6px}
.bar i{display:block;height:100%;border-radius:4px;transition:width .8s cubic-bezier(.2,.8,.2,1),background .4s}
.chart-wrap{position:relative;height:240px}
@media(min-width:800px){.chart-wrap{height:300px}}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.row-between h2{margin-bottom:12px}
select,button,input{font:inherit;color:var(--txt)}
select{background:#ffffff0d;border:1px solid var(--line);border-radius:10px;padding:6px 10px;max-width:50%}
select option{background:#121829}
button{cursor:pointer;border:0;border-radius:12px;padding:12px 16px;font-weight:700;background:linear-gradient(135deg,var(--vio),var(--grn));color:#05070d;transition:transform .15s,filter .2s}
button:active{transform:scale(.97)}
button.ghost{background:#ffffff0d;color:var(--txt);border:1px solid var(--line);padding:8px 12px}
button.wide{width:100%;margin-top:10px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -6px}
table.strat{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
table.strat th{text-align:left;color:var(--mut);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:6px}
table.strat td{padding:9px 6px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top}
table.strat td.name b{display:block}
table.strat td.name span{font-size:11px;color:var(--mut);display:block;max-width:300px}
table.strat tr.aus td{opacity:.5}
table.strat tr{animation:rise .5s both}
.grid2{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:900px){.grid2{grid-template-columns:1fr 1fr}}
.tabs{display:flex;gap:6px;margin-bottom:10px}
.tab{background:#ffffff0d;color:var(--mut);border:1px solid var(--line);padding:6px 12px;font-size:13px}
.tab.active{background:#9945ff33;color:var(--txt);border-color:#9945ff77}
.log{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.log div{padding:6px 8px;border-radius:8px;background:#ffffff08;word-break:break-word}
.log .empty{color:var(--mut);background:none}
.bars{display:flex;align-items:flex-end;gap:3px;height:60px;margin-bottom:10px}
.bars i{flex:1;background:linear-gradient(to top,#4cc9f055,#4cc9f0);border-radius:3px 3px 0 0;position:relative;transition:height .6s cubic-bezier(.2,.8,.2,1);min-height:2px}
.bars i b{position:absolute;left:0;right:0;bottom:0;background:var(--red);border-radius:3px 3px 0 0;transition:height .6s}
.sources{display:flex;flex-direction:column;gap:6px;font-size:13px}
.src{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:10px;background:#ffffff08}
.src span:last-child{text-align:right;color:var(--mut);font-size:12px}
footer{text-align:center;padding:10px 0 24px}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,120px);background:#121829;border:1px solid var(--line);padding:10px 16px;border-radius:12px;box-shadow:0 10px 30px #000a;transition:transform .5s cubic-bezier(.2,.9,.2,1.2);z-index:9;max-width:90vw}
.toast.show{transform:translate(-50%,0)}
.empty{color:var(--mut);font-size:13px;padding:6px 2px}
/* login / setup */
.auth-body{display:grid;place-items:center;padding:20px}
.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 20px 60px #000a;animation:rise .6s both}
.auth-card h1{font-size:22px;margin:18px 0 14px}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mut)}
.auth-form input{background:#ffffff0d;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:16px;outline:none;transition:border-color .2s}
.auth-form input:focus{border-color:var(--vio)}
.hint{font-size:12px;color:var(--mut);margin:0}
.note{padding:10px 12px;border-radius:12px;font-size:14px;margin:0 0 12px}
.note.err{background:#ff4d6d1f;color:#ff9aac}.note.ok{background:#14f1951f;color:var(--grn)}
code{background:#ffffff12;padding:1px 5px;border-radius:5px;font-size:12px}
/* 31.10.2026: Live offene Trades */
.live-card{border-color:#14f19544;box-shadow:0 10px 30px #0006,0 0 0 1px #14f19522 inset}
.live-card h2 .dot{margin-right:6px;vertical-align:0}
.lt{padding:12px;border-radius:14px;background:#ffffff08;border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.lt.neu{animation:slidein .7s cubic-bezier(.2,.9,.2,1.2) both}
.lt.flash-pos{animation:flashp 1.2s}.lt.flash-neg{animation:flashn 1.2s}
.lt.schatten{opacity:.7;border-style:dashed}
.lt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.lt-head .coin{font-weight:800;font-size:17px}
.lt-head .coin small{display:block;font-weight:500;font-size:12px;color:var(--mut)}
.lt-head .val{text-align:right;font-weight:800;font-size:22px;font-variant-numeric:tabular-nums;line-height:1.1}
.lt-head .val small{display:block;font-weight:500;font-size:12px}
.lt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 12px;font-size:12px}
@media(min-width:700px){.lt-grid{grid-template-columns:repeat(4,1fr)}}
.lt-grid div{background:#ffffff06;border-radius:10px;padding:6px 8px}
.lt-grid b{display:block;font-size:13px;color:var(--txt);font-variant-numeric:tabular-nums}
.lt-grid span{color:var(--mut)}
.alive{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;margin-left:6px;vertical-align:2px;white-space:nowrap}
.alive.ja{background:#14f19522;color:var(--grn)}.alive.ruhig{background:#ffc85722;color:var(--yel)}.alive.tot{background:#ff4d6d22;color:var(--red)}
.ca-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ca-row code{font-size:12px;padding:5px 8px;border-radius:8px;background:#ffffff10;user-select:all;word-break:break-all;flex:1 1 180px}
.ca-row .copy{padding:6px 12px;font-size:13px;border-radius:10px}
.ca-row .copy.ok{background:var(--grn);color:#05070d}
.links{display:flex;gap:6px;flex-wrap:wrap}
.links a{font-size:12px;font-weight:700;text-decoration:none;color:var(--txt);padding:5px 10px;border-radius:10px;background:#ffffff0d;border:1px solid var(--line)}
.links a:hover{border-color:#9945ff88}
.links a.pf{background:#14f19518;border-color:#14f19544}
.item .ca-row,.item .links{grid-column:1/3;margin-top:6px}
.item .ca-row code{flex:0 1 auto}
.schatten-box{margin-top:10px}
.schatten-box summary{cursor:pointer;padding:6px 2px}
.schatten-box .list{margin-top:8px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* 31.10.2026: Reiter Übersicht | Service */
.views{position:relative;z-index:4;display:flex;gap:6px;max-width:1100px;margin:0 auto;padding:10px 14px 0}
.view-tab{flex:1;max-width:220px;background:#ffffff0d;color:var(--mut);border:1px solid var(--line);padding:9px 14px;font-size:14px;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.view-tab.active{background:#9945ff33;color:var(--txt);border-color:#9945ff77}
.nav-badge{display:inline-block;min-width:18px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--red);color:#fff;font-size:11px;line-height:18px}
.view{display:flex;flex-direction:column;gap:14px}
.view[hidden]{display:none}
.view.show{animation:rise .45s cubic-bezier(.2,.8,.2,1) both}
.verdict.svc-ok .verdict-icon{background:#14f19526;box-shadow:0 0 30px #14f19555}
.verdict.svc-ok .verdict-text{color:var(--grn)}
.verdict.svc-warn .verdict-icon{background:#ffc85720}.verdict.svc-warn .verdict-text{color:var(--yel)}
.verdict.svc-bad .verdict-icon{background:#ff4d6d22}.verdict.svc-bad .verdict-text{color:var(--red)}
.svc-dienste{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:700px){.svc-dienste{grid-template-columns:repeat(3,1fr)}}
.svc-d{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid var(--line);font-size:13px}
.svc-d b{display:block}.svc-d span{color:var(--mut);font-size:12px}
.svc-e{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:#ffffff08;border:1px solid var(--line);border-left:4px solid var(--mut)}
.svc-e.info{border-left-color:var(--blu)}.svc-e.warnung{border-left-color:var(--yel)}.svc-e.fehler{border-left-color:var(--red)}
.svc-e.neu{animation:slidein .7s cubic-bezier(.2,.9,.2,1.2) both}
.svc-e .kopf{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.svc-e .kopf b{font-size:14px}
.svc-e .tags{white-space:nowrap}
.svc-e .tags .tag{margin-left:4px}
.svc-e .meta{font-size:12px;color:var(--mut)}
.svc-e p{margin:0;font-size:13px}
.svc-e p span{color:var(--mut)}
.tag.info{background:#4cc9f022;color:var(--blu)}
.switch{display:flex;align-items:center;gap:6px;color:var(--mut);cursor:pointer;white-space:nowrap;margin-bottom:12px}
.switch input{accent-color:var(--vio);width:16px;height:16px}
.svc-legende{margin:12px 0 0}
@media(max-width:520px){.svc-e .kopf{flex-direction:column}.svc-e .tags .tag:first-child{margin-left:0}}

/* 31.10.2026: Link zum neuen Cockpit */
a.ghost{background:#ffffff0d;color:var(--txt);border:1px solid var(--line);padding:6px 10px;border-radius:10px;font-size:12px;text-decoration:none;white-space:nowrap}
