/* MyloQ OS · Admin & Kundenbereich – Darkmode, eine Akzentfarbe, ruhige Oberfläche */
@font-face{font-family:'Inter';font-weight:100 900;font-display:swap;src:url(/assets/inter.woff2) format('woff2')}
:root{--bg:#0b0f14;--panel:#111827;--panel-2:#161f2e;--line:#243045;--ink:#e5e7eb;--muted:#9aa3b2;--accent:#ff7a5c;--accent-ink:#1a0d08;--ok:#5ad08a;--bad:#ff8a7a;--warn:#f5c26b;
  --r:12px;--z-nav:10;--z-sticky:20;--z-modal:50;--ease-out:cubic-bezier(.23,1,.32,1);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.55 'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink);min-height:100dvh}
a{color:var(--ink)}
h1,h2,h3{text-wrap:balance;margin:0 0 12px;font-weight:600;letter-spacing:-.01em}
h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}
p{text-wrap:pretty;margin:0 0 12px}
.muted{color:var(--muted)}.fine{font-size:13px;color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num,td.n,.kpi b{font-variant-numeric:tabular-nums}
/* Rahmen */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100dvh}
.side{background:var(--panel);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100dvh;overflow:auto;z-index:var(--z-nav)}
.side .brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;text-decoration:none;font-weight:700}
.side .brand small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.side nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--muted);min-height:42px}
.side nav a:hover{background:var(--panel-2);color:var(--ink)}
.side nav a[aria-current=page]{background:var(--panel-2);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}
.side nav .sep{height:1px;background:var(--line);margin:10px 8px}
.side .badge{margin-left:auto;background:var(--accent);color:var(--accent-ink);border-radius:999px;font-size:12px;padding:1px 8px;font-weight:700}
.main{padding:28px clamp(16px,3vw,40px) 60px;max-width:1280px;width:100%}
.top-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}
.b.menu-toggle{display:none}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;inset:0 30% 0 0;transform:translateX(-102%);transition:transform 250ms var(--ease-out);z-index:var(--z-modal);height:100dvh}
  .side.open{transform:none}
  .b.menu-toggle{display:inline-flex}
}
/* Bausteine */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:16px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.kpi span{display:block;color:var(--muted);font-size:13px}
.kpi b{display:block;font-size:26px;font-weight:650;margin-top:4px}
.b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font:600 14px/1 inherit;font-family:inherit;text-decoration:none;cursor:pointer;transition:transform 140ms var(--ease-out),background 140ms ease}
.b:hover{background:#1d2738}
.b:active{transform:scale(.97)}
.b.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.b.primary:hover{background:#ff8d73}
.b.danger{border-color:#5a2a26;color:var(--bad)}
.b.sm{min-height:34px;padding:0 12px;font-size:13px}
.b[disabled]{opacity:.55;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.stack{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted)}
input,select,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:42px;width:100%}
textarea{min-height:96px;resize:vertical}
input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--accent)}
.check{flex-direction:row;align-items:center;gap:8px;color:var(--ink)}
.form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form-grid .wide{grid-column:1/-1}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
td.n,th.n{text-align:right}
.tbl{overflow-x:auto}
.tbl table{min-width:640px}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--panel-2);border:1px solid var(--line);white-space:nowrap}
.pill.ok{color:var(--ok);border-color:#1f4a33}.pill.warn{color:var(--warn);border-color:#4d3d1d}.pill.bad{color:var(--bad);border-color:#4d2723}.pill.acc{color:var(--accent);border-color:#5a3226}
.alert{padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);margin:0 0 14px}
.alert.ok{border-color:#1f4a33}.alert.bad{border-color:#5a2a26;color:#ffd1ca}.alert.warn{border-color:#4d3d1d}
.empty{padding:28px;text-align:center;color:var(--muted)}
.empty .b{margin-top:10px}
.bar{height:8px;border-radius:6px;background:var(--panel-2);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.diff-pos{color:var(--ok)}.diff-neg{color:var(--bad)}
details.box{border:1px solid var(--line);border-radius:10px;padding:0 14px;margin-bottom:10px;background:var(--panel)}
details.box summary{cursor:pointer;padding:12px 0;font-weight:600;min-height:44px;display:flex;align-items:center}
details.box[open] summary{border-bottom:1px solid var(--line);margin-bottom:12px}
.tox-tinymce{border-radius:10px!important;border-color:var(--line)!important}
.items-table input{min-height:36px;padding:6px 8px}
/* Anmeldung */
body.auth{display:grid;place-items:center;padding:24px}
.auth-box{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
.auth-box .logo{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-weight:700}
.checks{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:4px;font-size:14px}
.checks .ok{color:var(--ok)}.checks .bad{color:var(--bad)}
@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
dialog.confirm{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:22px;max-width:420px;width:calc(100% - 32px);opacity:1;transform:none;transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out)}
@starting-style{dialog.confirm[open]{opacity:0;transform:scale(.96)}}
dialog.confirm::backdrop{background:rgba(0,0,0,.55)}
