/* GRID – gemeinsame Basis (App, Admin, Einrichtung) */
@font-face{font-family:'Helvetica Neue LT';src:url('fonts/HelveticaNeue-Roman.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'Helvetica Neue LT';src:url('fonts/HelveticaNeue-Medium.woff') format('woff');font-weight:500;font-display:swap}
@font-face{font-family:'Helvetica Neue LT';src:url('fonts/HelveticaNeue-Bold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:'Atlas Typewriter';src:url('fonts/AtlasTypewriter-Regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'Druk Wide';src:url('fonts/DrukWide-BoldItalic.woff') format('woff');font-weight:700;font-style:italic;font-display:swap}

:root{
  --bg:#FFFFFF;--surface:#F3F3F1;--line:#ECECEA;--muted:#6B6B68;--ink:#111111;--signal:#1FE05F;
  --sans:'Helvetica Neue LT','Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:'Atlas Typewriter',ui-monospace,Menlo,monospace;
  --druk:'Druk Wide','Helvetica Neue LT',Helvetica,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
.dark{--bg:#0C0C0C;--surface:#1A1A1A;--line:#262626;--muted:#9A9A96;--ink:#F5F5F3;color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:23px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{font-family:inherit;color:inherit}
img{display:block;max-width:100%}

.label{font-family:var(--mono);font-size:11px;line-height:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px;margin:0}
.dot{display:inline-block;width:7px;height:7px;border-radius:4px;background:var(--signal);flex:none}
.live{animation:gLive 1.6s var(--ease) infinite}
.title-l{font-size:32px;line-height:34px;font-weight:700;letter-spacing:-.04em;margin:0}
.title-m{font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.03em;margin:0}
.num{font-size:28px;line-height:28px;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.display{font-family:var(--druk);font-style:italic;font-weight:700;text-transform:uppercase;font-size:44px;line-height:40px;margin:0}
.muted{color:var(--muted)}
.small{font-size:14px;line-height:20px}

.btn{display:flex;align-items:center;justify-content:center;width:100%;height:56px;border:0;border-radius:999px;background:var(--ink);color:var(--bg);font-size:16px;font-weight:700;text-decoration:none;cursor:pointer}
.btn:disabled{opacity:.4;cursor:default}
.btn.sec{height:48px;background:none;color:var(--ink);border:1px solid var(--ink)}
.link{min-height:44px;display:inline-flex;align-items:center;padding:0;border:0;background:none;font-size:16px;font-weight:500;text-decoration:underline;text-underline-offset:4px;cursor:pointer;color:var(--ink)}
.link.small{font-size:14px}
.chip{flex:none;height:36px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.hint{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:4px;background:var(--surface);font-size:14px;line-height:20px}
.hint .dot{margin-top:6px}
.icon{display:block;width:16px;height:16px}

.tap{transition:transform 120ms var(--ease)}
.tap:active{transform:scale(.97)}
.fade{animation:gFade 450ms var(--ease) both}
@keyframes gLive{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.7)}}
@keyframes gFade{from{opacity:0}to{opacity:1}}
@keyframes gUp{from{transform:translateY(105%)}to{transform:translateY(0)}}
@keyframes gSheet{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){*{animation-duration:150ms!important;animation-iteration-count:1!important;transition-duration:150ms!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
