/* kantine.css — Kantine Verwaltungssystem Styles */

:root{
  --bg:#f5f0e8;--surface:#fff;--surface2:#f0ebe0;--border:#d8d0c0;
  --text:#1a1610;--muted:#7a7060;
  --green:#2d5a3d;--green-l:#e8f0eb;
  --red:#c4481a;--red-l:#fdf0ec;
  --blue:#1a4a6b;--blue-l:#e8f0f8;
  --brown:#7a4f1a;--brown-l:#fdf5e8;
  --gold:#b8860b;--gold-l:#fef8e0;
  --purple:#5a2d82;--purple-l:#f0e8f8;
  --r:14px;--rs:10px;
  --sh:0 2px 12px rgba(0,0,0,.08);
  --sh2:0 8px 32px rgba(0,0,0,.14);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
body{font-family:'DM Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;overscroll-behavior:none;}
#loginScreen{position:fixed;inset:0;background:var(--text);display:flex;align-items:center;justify-content:center;z-index:9999;}
.lbox{background:var(--surface);border-radius:20px;padding:44px 36px;width:100%;max-width:400px;margin:16px;box-shadow:0 24px 80px rgba(0,0,0,.4);}
.llogo{text-align:center;margin-bottom:28px;}.llogo .li{font-size:44px;}.llogo h1{font-family:'Fraunces',serif;font-size:26px;font-weight:600;margin-top:6px;}
.llogo p{font-size:10px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-top:3px;}
.lerr{background:var(--red-l);color:var(--red);border:1px solid #e8a090;border-radius:var(--rs);padding:9px 13px;font-size:12px;margin-bottom:14px;display:none;}
.lf{margin-bottom:14px;}.lf label{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.lf input{width:100%;padding:13px 15px;font-family:'DM Mono',monospace;font-size:15px;border:2px solid var(--border);border-radius:var(--rs);background:var(--bg);color:var(--text);transition:border-color .2s;}
.lf input:focus{outline:none;border-color:var(--green);}
.lbtn{width:100%;padding:15px;background:var(--green);color:#fff;border:none;border-radius:var(--rs);font-family:'DM Mono',monospace;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;cursor:pointer;transition:all .2s;margin-top:6px;}
.lbtn:active{background:#1a3d26;transform:scale(.98);}
header{background:var(--text);color:var(--bg);padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:58px;position:sticky;top:0;z-index:200;box-shadow:0 2px 16px rgba(0,0,0,.25);}
.hbrand{display:flex;align-items:center;gap:10px;}.hicon{width:34px;height:34px;background:var(--green);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;}
.htitle{font-family:'Fraunces',serif;font-size:20px;font-weight:600;letter-spacing:-.5px;}.hsub{font-size:9px;color:#aaa;letter-spacing:2px;text-transform:uppercase;}
.hright{display:flex;align-items:center;gap:10px;}.huser{display:flex;align-items:center;gap:7px;font-size:11px;color:#ccc;}
.rbadge{padding:3px 8px;border-radius:10px;font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:500;}.rb-admin{background:var(--red);color:#fff;}.rb-ma{background:var(--green);color:#fff;}
.hlogout{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#ccc;padding:6px 11px;border-radius:6px;cursor:pointer;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:1px;}
nav{background:var(--surface);border-bottom:2px solid var(--border);display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}nav::-webkit-scrollbar{display:none;}
.tb{padding:14px 16px;border:none;background:none;cursor:pointer;font-family:'DM Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:7px;}
.tb:active{background:var(--surface2);}.tb.active{color:var(--green);border-bottom-color:var(--green);}.tb .dot{width:7px;height:7px;border-radius:50%;}
main{max-width:1100px;margin:0 auto;padding:20px;}.panel{display:none;}.panel.active{display:block;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px;margin-bottom:16px;box-shadow:var(--sh);}
.ctitle{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:16px;display:flex;align-items:center;gap:8px;}.ctitle::after{content:'';flex:1;height:1px;background:var(--border);}
.sh{font-family:'Fraunces',serif;font-size:26px;font-weight:300;letter-spacing:-.3px;margin-bottom:4px;}
.sbadge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:16px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;}
.qgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:16px;}
@media(min-width:600px){.qgrid{grid-template-columns:repeat(4,1fr);}}
.qcard{border-radius:var(--r);padding:22px 16px;text-align:center;cursor:pointer;border:2px solid transparent;transition:all .18s;user-select:none;}
.qcard:active{transform:scale(.95);}.qcard .qicon{font-size:36px;margin-bottom:8px;}.qcard .qlabel{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;}.qcard .qsub{font-size:10px;margin-top:3px;opacity:.7;}
.qcard-green{background:var(--green-l);border-color:#a8c8b0;color:var(--green);}.qcard-blue{background:var(--blue-l);border-color:#88a8c8;color:var(--blue);}
.qcard-red{background:var(--red-l);border-color:#e8a090;color:var(--red);}.qcard-gold{background:var(--gold-l);border-color:#d4b040;color:var(--gold);}
.qcard-purple{background:var(--purple-l);border-color:#b090d0;color:var(--purple);}
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:16px;}
.scard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px;text-align:center;box-shadow:var(--sh);position:relative;overflow:hidden;}
.scard::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;}
.sc-green::before{background:var(--green);}.sc-red::before{background:var(--red);}.sc-blue::before{background:var(--blue);}.sc-gold::before{background:var(--gold);}.sc-purple::before{background:var(--purple);}
.snum{font-family:'Fraunces',serif;font-size:38px;font-weight:300;line-height:1;margin:6px 0 3px;}.slbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}.semoji{font-size:18px;}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);z-index:500;align-items:flex-end;justify-content:center;}
.modal.open{display:flex;}
#npModal{z-index:2000 !important;}
#quickModal{z-index:1000;}.msheet{background:var(--surface);border-radius:22px 22px 0 0;padding:22px 22px 40px;width:100%;max-width:520px;box-shadow:0 -8px 40px rgba(0,0,0,.15);animation:slideUp .26s cubic-bezier(.34,1.4,.64,1);max-height:92vh;overflow-y:auto;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}.mhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.mtitle{font-family:'Fraunces',serif;font-size:20px;font-weight:300;}.mclose{background:var(--surface2);border:none;border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;color:var(--muted);}
.dpicker{margin-bottom:16px;}.dpicker-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.ddays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.dday{padding:10px 4px;border-radius:var(--rs);border:2px solid var(--border);background:var(--surface2);cursor:pointer;text-align:center;transition:all .15s;user-select:none;}
.dday:active{transform:scale(.93);}.dday .dwd{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}.dday .ddn{font-family:'Fraunces',serif;font-size:20px;font-weight:300;line-height:1.1;}
.dday.selected{background:var(--green);border-color:var(--green);color:#fff;}.dday.selected .dwd{color:rgba(255,255,255,.7);}.dday.today-d{border-color:var(--green);}
/* Kalender-Monat-Picker */
.cal-wrap{margin-bottom:16px;}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.cal-nav-btn{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--rs);padding:8px 14px;cursor:pointer;font-size:18px;color:var(--text);font-family:'DM Mono',monospace;}
.cal-nav-btn:active{background:var(--border);}
.cal-month{font-family:'Fraunces',serif;font-size:17px;font-weight:300;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-head{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0;}
.cal-day{padding:9px 4px;border-radius:var(--rs);border:1.5px solid transparent;background:transparent;cursor:pointer;text-align:center;font-family:'Fraunces',serif;font-size:16px;font-weight:300;transition:all .15s;user-select:none;}
.cal-day:active{transform:scale(.9);}
.cal-day.other{color:var(--muted);opacity:.4;pointer-events:none;}
.cal-day:not(.other):hover{background:var(--surface2);border-color:var(--border);}
.cal-day.today-c{border-color:var(--green);}
.cal-day.selected-c{background:var(--green);border-color:var(--green);color:#fff;}
/* Alert Overlay */
.alert-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(3px);z-index:9000;align-items:center;justify-content:center;}
.alert-overlay.open{display:flex;}
.alert-box{background:var(--surface);border-radius:20px;padding:32px 28px;max-width:340px;width:90%;text-align:center;box-shadow:0 16px 60px rgba(0,0,0,.25);animation:popIn .22s cubic-bezier(.34,1.56,.64,1);}
@keyframes popIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.alert-icon{font-size:48px;margin-bottom:12px;}
.alert-title{font-family:'Fraunces',serif;font-size:20px;font-weight:300;margin-bottom:6px;}
.alert-msg{font-size:12px;color:var(--muted);margin-bottom:20px;line-height:1.5;}
.alert-btn{width:100%;padding:13px;background:var(--green);color:#fff;border:none;border-radius:var(--rs);font-family:'DM Mono',monospace;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;}
.alert-btn:active{background:#1a3d26;}
.zrooms{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.zroom{padding:12px 16px;border-radius:var(--rs);border:2px solid var(--border);background:var(--surface2);cursor:pointer;font-family:'Fraunces',serif;font-size:18px;font-weight:300;min-width:56px;text-align:center;transition:all .15s;user-select:none;}
.zroom:active{transform:scale(.9);}.zroom.selected{background:var(--blue);border-color:var(--blue);color:#fff;}
.znew-screen{font-family:'Fraunces',serif;font-size:48px;font-weight:300;text-align:center;padding:14px;background:var(--bg);border:2px solid var(--border);border-radius:var(--r);margin-bottom:14px;min-height:84px;display:flex;align-items:center;justify-content:center;letter-spacing:4px;transition:border-color .2s;}
.znew-screen.active{border-color:var(--blue);color:var(--blue);}
.npad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;}
.nk{padding:17px 8px;border-radius:var(--rs);border:1.5px solid var(--border);background:var(--surface);font-family:'Fraunces',serif;font-size:24px;font-weight:300;cursor:pointer;transition:all .12s;color:var(--text);display:flex;align-items:center;justify-content:center;user-select:none;}
.nk:active{transform:scale(.91);background:var(--surface2);}.nk.k0{grid-column:span 2;}
.nk.kdel{background:var(--red-l);color:var(--red);border-color:#e8a090;font-size:19px;}.nk.kdel:active{background:var(--red);color:#fff;}
.nk.kconf{grid-column:span 3;background:var(--green);color:#fff;border-color:var(--green);font-family:'DM Mono',monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:16px;margin-top:4px;}
.nscreen{background:var(--bg);border:2px solid var(--border);border-radius:var(--r);padding:14px;text-align:center;margin-bottom:12px;font-family:'Fraunces',serif;font-size:52px;font-weight:300;min-height:84px;display:flex;align-items:center;justify-content:center;transition:border-color .2s;}.nscreen.v{border-color:var(--green);color:var(--green);}
.nfield{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--bg);overflow:hidden;cursor:pointer;transition:border-color .2s;}.nfield:active{border-color:var(--green);}
.ndisplay{flex:1;padding:11px 13px;font-family:'Fraunces',serif;font-size:24px;font-weight:300;text-align:center;user-select:none;line-height:1;}.ndisplay.nz{color:var(--green);font-weight:600;}
.ntrig{padding:9px 13px;background:var(--surface2);border-left:1px solid var(--border);font-size:17px;color:var(--muted);}
.arow{display:flex;align-items:center;gap:14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:13px 16px;margin-bottom:9px;}
.ainfo{flex:1;}.aname{font-weight:500;font-size:14px;}.asub{font-size:10px;color:var(--muted);margin-top:2px;}.aqty{width:120px;}
.wsteps{display:flex;align-items:center;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.ws{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;}
.wsc{width:34px;height:34px;border-radius:50%;border:2px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:var(--muted);transition:all .3s;}
.wsl{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);transition:color .3s;}
.ws.active .wsc{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 3px 10px rgba(196,72,26,.3);}.ws.active .wsl{color:var(--red);font-weight:500;}
.ws.done .wsc{background:var(--green);border-color:var(--green);color:#fff;}.ws.done .wsl{color:var(--green);}
.ws.locked .wsc{opacity:.35;}.wline{flex:1;height:2px;background:var(--border);margin:0 6px 18px;transition:background .3s;}.wline.done{background:var(--green);}
.wpage{animation:fadeIn .2s ease;}.wptitle{font-family:'Fraunces',serif;font-size:20px;font-weight:300;margin-bottom:4px;}.wpsub{font-size:11px;color:var(--muted);margin-bottom:16px;line-height:1.5;}
.wnav{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.wsum{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:16px;}.wsrow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);}.wsrow:last-child{border-bottom:none;}
.wsart{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05);}.wsart:last-child{border-bottom:none;}
.btn{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;padding:12px 20px;border-radius:var(--rs);border:none;cursor:pointer;transition:all .18s;display:inline-flex;align-items:center;gap:7px;user-select:none;}
.btn:active{transform:scale(.96);}.bp{background:var(--green);color:#fff;}.bp:active{background:#1a3d26;}
.bs{background:var(--surface2);color:var(--text);border:1.5px solid var(--border);}.bs:active{background:var(--border);}
.bd{background:var(--red-l);color:var(--red);border:1.5px solid #e8a090;}.bd:active{background:var(--red);color:#fff;}
.bx{background:var(--brown-l);color:var(--brown);border:1.5px solid #d4b080;}.bx:active{background:var(--brown);color:#fff;}
.bi{background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px;padding:4px 7px;border-radius:4px;}.bi:active{background:var(--red-l);color:var(--red);}
.brow{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.flash{display:none;padding:11px 16px;border-radius:var(--rs);font-size:11px;margin-bottom:14px;align-items:center;gap:7px;}
.flash.ok{background:var(--green-l);color:var(--green);border:1px solid #a8c8b0;display:flex;}.flash.err{background:var(--red-l);color:var(--red);border:1px solid #e8a090;display:flex;}
.twrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;font-size:12px;}thead{background:var(--text);color:var(--bg);}
thead th{padding:10px 14px;text-align:left;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;}
tbody tr{border-bottom:1px solid var(--border);transition:background .15s;}tbody tr:last-child{border-bottom:none;}tbody tr:active{background:var(--surface2);}tbody td{padding:10px 14px;}
.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:500;}
.bg{background:var(--green-l);color:var(--green);}.br{background:var(--red-l);color:var(--red);}.bb{background:var(--blue-l);color:var(--blue);}.bo{background:var(--gold-l);color:var(--gold);}.bp2{background:var(--purple-l);color:var(--purple);}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}@media(max-width:500px){.mgrid{grid-template-columns:1fr;}}
.mcard{border-radius:var(--r);padding:18px;text-align:center;border:2px solid transparent;}.mc-b{background:#fff9e6;border-color:#f0d060;}.mc-l{background:var(--green-l);border-color:#a8c8b0;}.mc-d{background:var(--blue-l);border-color:#a0b8d0;}
.mci{font-size:28px;margin-bottom:8px;}.mcl{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.schicht-sel{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;}
.schicht-btn{padding:24px 16px;border-radius:var(--r);border:3px solid var(--border);background:var(--surface2);cursor:pointer;text-align:center;transition:all .18s;user-select:none;}
.schicht-btn:active{transform:scale(.97);}.schicht-btn .sbi{font-size:36px;margin-bottom:8px;}.schicht-btn .sbl{font-family:'Fraunces',serif;font-size:18px;font-weight:300;}.schicht-btn .sbs{font-size:10px;color:var(--muted);margin-top:3px;letter-spacing:1px;text-transform:uppercase;}
.schicht-btn.sel-frueh{background:var(--gold-l);border-color:#d4b040;color:var(--gold);}.schicht-btn.sel-spaet{background:var(--blue-l);border-color:#80a8c8;color:var(--blue);}
.checklist{display:flex;flex-direction:column;gap:8px;}
.citem{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface2);border:2px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .18s;user-select:none;}
.citem:active{transform:scale(.98);}.citem.checked{background:#e8f5ec;border-color:#7ec899;}
.ccheck{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--border);background:var(--surface);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .2s;}
.citem.checked .ccheck{background:var(--green);border-color:var(--green);color:#fff;}.ctext{flex:1;}
.ctask{font-size:13px;font-weight:500;}.cdesc{font-size:10px;color:var(--muted);margin-top:2px;}.citem.checked .ctask{text-decoration:line-through;color:var(--muted);}
.cprog{margin:12px 0;height:8px;background:var(--border);border-radius:4px;overflow:hidden;}.cprogbar{height:100%;background:var(--green);border-radius:4px;transition:width .4s ease;}
.cprogtext{font-size:11px;color:var(--muted);margin-bottom:6px;}
.sign-area{margin-top:16px;padding:16px;background:var(--surface2);border-radius:var(--r);border:1px solid var(--border);}.sign-name{font-size:13px;font-weight:500;margin-bottom:4px;}.sign-time{font-size:10px;color:var(--muted);}
.ulist{display:flex;flex-direction:column;gap:9px;}
.uitem{display:flex;align-items:center;gap:14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:13px 16px;}
.uav{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:17px;font-weight:600;flex-shrink:0;}
.ua-a{background:var(--red-l);color:var(--red);}.ua-m{background:var(--green-l);color:var(--green);}
.uinfo{flex:1;}.uname{font-weight:500;font-size:13px;}.umeta{font-size:10px;color:var(--muted);margin-top:2px;}.uact{display:flex;gap:7px;align-items:center;}
.addform{background:var(--surface2);border:2px dashed var(--border);border-radius:var(--r);padding:20px;margin-top:14px;}
.denied{text-align:center;padding:60px 20px;}.denied .di{font-size:56px;margin-bottom:14px;}.denied h2{font-family:'Fraunces',serif;font-size:22px;font-weight:300;margin-bottom:6px;}.denied p{color:var(--muted);font-size:12px;}
.empty{text-align:center;padding:40px 16px;color:var(--muted);}.empty .ei{font-size:40px;margin-bottom:10px;}
.fg{display:flex;flex-direction:column;gap:5px;}.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px;margin-bottom:16px;}
label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:500;}
input[type=text],input[type=date],input[type=number],input[type=password],select{font-family:'DM Mono',monospace;font-size:13px;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--rs);background:var(--bg);color:var(--text);transition:border-color .2s;width:100%;-webkit-appearance:none;}
input:focus,select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l);}
.kw-filter{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--rs);padding:11px 14px;margin-bottom:16px;flex-wrap:wrap;}
.sub-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:20px;}
.stb{padding:13px 16px;border:none;background:none;cursor:pointer;font-family:'DM Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;white-space:nowrap;}
.stb.active{color:var(--green);border-bottom-color:var(--green);}
/* Ladeindikator */
.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-left:8px;}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:768px){header{padding:0 14px;}nav{padding:0;}main{padding:14px;}.mgrid{grid-template-columns:repeat(2,1fr)!important;}.sgrid{grid-template-columns:repeat(2,1fr);}}


/* Chart.js Overrides */
body{font-family:Arial,sans-serif;font-size:12px;color:#222;padding:40px}h1{font-size:18px;font-weight:bold;margin-bottom:4px}.sub{font-size:11px;color:#888;margin-bottom:24px}table{width:100%;border-collapse:collapse;margin-bottom:16px}th{background:#1a1610;color:#fff;padding:8px;text-align:left;font-size:10px}td{padding:8px;border-bottom:1px solid #eee}.sum{margin-top:20px;border-top:2px solid #222;padding-top:12px}.srow{display:flex;justify-content:space-between;padding:4px 0}.stot{font-size:15px;font-weight:bold;border-top:1px solid #aaa;margin-top:8px;padding-top:8px}.head-table{width:100%;margin-bottom:32px;font-size:11px}.head-table td{padding:2px 8px 2px 0;border:none}
