/* landing.css — the standalone landing page (design ported from the landing prototype).
   Colors come EXCLUSIVELY from tokens.css (linked before this file); fonts are the app's
   self-hosted files under /assets/fonts/. The only local tokens are the non-color extras
   below (scrim, shadow-lift, phone-frame, radii). No app.css, no app shell — this page
   must be able to move to the apex domain unchanged. */

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/assets/fonts/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/assets/fonts/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Newsreader';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/assets/fonts/newsreader-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Newsreader';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/assets/fonts/newsreader-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Landing-local tokens — scrims, the lifted shadow, the phone chrome and the radii.
   Every COLOR token (bg, card, ink, the p-slots, ok, due, pend, wm-dot, badge-fg, shadow)
   lives in tokens.css. (Never write "p-star-slash" literally in here — that asterisk-slash
   terminated this very comment once and the parser then swallowed the whole :root block.) */
:root{
--scrim:rgba(20,18,14,.4);--scrim-strong:rgba(20,18,14,.82);
--shadow-lift:0 2px 6px rgba(28,26,20,.06), 0 30px 60px rgba(28,26,20,.10);
/* Gerätechrom, bewusst außerhalb der App-Palette — dunkel in BEIDEN Themes, wie eine echte
   Gerätekante (die helle --line2-Fassung verschwand auf dem hellen Seitengrund). */
--phone-frame:#39392F;
--r-card:16px;--r-ctl:11px;--r-pill:99px;
}
[data-theme="dark"]{
--scrim:rgba(0,0,0,.55);--scrim-strong:rgba(0,0,0,.85);
--shadow-lift:0 2px 6px rgba(0,0,0,.4), 0 30px 60px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
/* The `hidden` attribute must win over every author `display` rule — the waitlist toggles
   #wlForm / #doneWrap / #formWrap / #confirmBanner via .hidden, and .wlform{display:flex} /
   .wldone{display:grid} / #formWrap{display:grid} would otherwise override it (no visible
   success feedback). !important beats even the id-specificity rule. */
[hidden]{display:none !important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter',-apple-system,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;text-wrap:pretty;overflow-x:hidden}
a{color:var(--ink);text-decoration:none}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px}
::selection{background:var(--ink);color:var(--bg)}


.wm {
    font-weight: 600;
    font-size: 28px;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--ink);
    display: inline-flex;
}
.wm .jj { position: relative; display: inline-block; }
.wm .jj i {
    position: absolute;
    font-style: normal;
    left: 50%;
    transform: translateX(-58%);
    top: -0.06em;
    width: 0.14em;
    height: 0.14em;
    border-radius: 50%;
    background: var(--wm-dot);
}

.wrap{max-width:1040px;margin:0 auto;padding:0 20px;width:100%}
.sec{padding-top:0;padding-bottom:56px;scroll-margin-top:66px}
.sec+.sec{padding-top:0}
@media(min-width:900px){.sec{padding-bottom:76px}}
.sp{margin-left:auto}

/* Header */
.hdr{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.hdr.stuck{border-bottom-color:var(--line)}
.hdr .in{display:flex;align-items:center;gap:14px;height:58px}
.nav{display:none;gap:20px;margin-left:12px}
.nav a{font-size:13px;color:var(--ink2)}
.nav a:hover{color:var(--ink)}
@media(min-width:900px){.nav{display:flex}}
.icobtn{width:32px;height:32px;border-radius:99px;border:1px solid var(--line2);background:var(--card);
  color:var(--ink2);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:color .18s,border-color .18s}
.icobtn:hover{color:var(--ink);border-color:var(--ink3)}
.icobtn svg{width:15px;height:15px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;
  border-radius:99px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);
  font:600 14px 'Inter';cursor:pointer;white-space:nowrap;transition:opacity .18s,transform .15s}
.btn:hover{opacity:.88;color:var(--bg)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line2)}
.btn.ghost:hover{border-color:var(--ink);opacity:1}

h1{font-size:38px;font-weight:600;letter-spacing:-.03em;line-height:1.1;margin:0}
@media(min-width:860px){h1{font-size:52px}}
h2.sech{font-size:26px;font-weight:600;letter-spacing:-.025em;margin:0 0 10px}
@media(min-width:860px){h2.sech{font-size:30px}}
.eyebrow{font:600 10.5px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);margin:0 0 14px}
.lead{font-size:16.5px;line-height:1.6;color:var(--ink2);margin:16px 0 0;max-width:48ch}
.bodytxt{font-size:15px;line-height:1.65;color:var(--ink2);margin:0;max-width:54ch}
.beta{display:inline-flex;align-items:center;gap:8px;font:600 11.5px 'Inter';letter-spacing:.02em;
  color:var(--p5-ink);background:var(--p5-soft);border-radius:99px;padding:6px 13px}
.beta i{width:6px;height:6px;border-radius:50%;background:var(--p5);display:block;animation:pls 2.6s ease-in-out infinite}
@keyframes pls{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}

.rv{opacity:0;transform:translateY(13px);transition:opacity .65s cubic-bezier(.2,.7,.3,1),transform .65s cubic-bezier(.2,.7,.3,1)}
.rv.vis{opacity:1;transform:none}

/* Hero (Richtung A) */
.hero{padding-top:46px;padding-bottom:56px;display:grid;gap:20px;justify-items:center;text-align:center}
@media(min-width:860px){.hero{padding-top:78px;padding-bottom:76px}}
.claims{display:grid;gap:9px 26px;margin:30px 0 0;padding:0;list-style:none;text-align:left;max-width:760px}
@media(min-width:700px){.claims{grid-template-columns:1fr 1fr}}
.claims li{display:grid;grid-template-columns:auto 1fr;gap:10px;font-size:14px;line-height:1.5;color:var(--ink2)}
.claims li b{color:var(--ink);font-weight:600}
.claims svg{width:14px;height:14px;color:var(--ink);margin-top:3px;flex-shrink:0}

/* Problem */
.problem{display:grid;gap:14px;margin-top:24px}
@media(min-width:760px){.problem{grid-template-columns:repeat(5,1fr);gap:10px;align-items:stretch}}
.pchip{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;
  font-size:13px;line-height:1.45;color:var(--ink2);box-shadow:var(--shadow)}
.pchip b{display:block;color:var(--ink);font-weight:600;font-size:13.5px;margin-bottom:3px;min-height:2.7em}

/* ══ TELEFON ═══════════════════════════════════════════════════ */
.phone{width:100%;max-width:372px;min-width:0;margin:0 auto;border-radius:42px;padding:9px;background:var(--phone-frame);box-shadow:var(--shadow-lift);position:relative}
.phone::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:15px;width:104px;height:4px;
  border-radius:99px;background:var(--ink);opacity:.15;pointer-events:none;z-index:6}
.screen{border-radius:36px;overflow:hidden;background:var(--bg);height:756px;display:flex;flex-direction:column;position:relative}
.sbar{display:flex;align-items:center;padding:10px 20px 2px;font:600 12px 'Inter';color:var(--ink);flex-shrink:0}
.sbar .sg{margin-left:auto;display:flex;gap:5px;align-items:center;opacity:.85}
.sbar .sg svg{width:15px;height:11px}
.abar{display:flex;align-items:center;gap:10px;padding:6px 14px 8px;flex-shrink:0}
.abar .me{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 12px 'Inter';
  background:var(--p1-soft);color:var(--p1-ink);border:1.5px solid var(--card)}
.abar .ic{width:30px;height:30px;display:grid;place-items:center;color:var(--ink2);background:none;border:0;
  border-radius:8px;position:relative;cursor:pointer}
.abar .ic svg{width:17px;height:17px}
.abar .ic .bdg{position:absolute;top:1px;right:1px;min-width:15px;height:15px;border-radius:99px;background:var(--due);
  color:var(--badge-fg);font:600 9px 'Inter';display:grid;place-items:center;padding:0 3px}
.abody{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 12px 84px;scrollbar-width:thin;overscroll-behavior:contain}
.abody::-webkit-scrollbar{width:4px}
.abody::-webkit-scrollbar-thumb{background:var(--line2);border-radius:9px}
.tbar{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);
  background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:7px 0 18px;z-index:5}
.tbar button{background:none;border:0;display:grid;justify-items:center;gap:3px;cursor:pointer;min-width:0;
  color:var(--ink3);font:500 10px 'Inter';padding:2px 0;overflow:hidden}
.tbar button svg{width:20px;height:20px}
.tbar button[aria-selected="true"]{color:var(--ink);font-weight:600}
.fab{position:absolute;right:14px;bottom:80px;width:50px;height:50px;border-radius:50%;background:var(--ink);
  color:var(--bg);border:0;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);
  z-index:5;transition:transform .16s}
.fab:hover{transform:scale(1.06)}
.fab svg{width:22px;height:22px}

/* Seitenkopf im Screen */
.ptitle{font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:24px;letter-spacing:-.015em;margin:6px 0 0;padding:0 2px}
.psub{font-size:12px;color:var(--ink2);margin:3px 0 12px;padding:0 2px}

/* Widget */
.wg{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:11px;overflow:hidden}
.wg.accent{border-top:2.5px solid var(--p1);box-shadow:var(--shadow)}
.wh{display:flex;align-items:center;gap:7px;padding:11px 13px 7px}
.wh h4{margin:0;font:600 10px 'Inter';letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.wh .ct{font:600 10px 'Inter';color:var(--ink3)}
.wh .ac{color:var(--ink3);display:grid;place-items:center;background:none;border:0;padding:0;cursor:pointer}
.wh .ac svg{width:14px;height:14px}
.wb{padding:0 13px 11px}
.av{width:19px;height:19px;border-radius:50%;display:inline-grid;place-items:center;font:600 9.5px 'Inter';flex-shrink:0}
.pgd{display:flex;gap:5px;justify-content:center;padding:0 0 9px}
.pgd button{width:5px;height:5px;border-radius:50%;background:var(--line2);border:0;padding:0;cursor:pointer;transition:background .2s,width .2s}
.pgd button[aria-pressed="true"]{background:var(--ink);width:5px}
.wfoot{display:block;width:100%;text-align:center;font:500 11.5px 'Inter';color:var(--ink3);background:none;
  border:0;border-top:1px solid var(--line);padding:9px 0 1px;cursor:pointer}
.wfoot:hover{color:var(--ink2)}
.nothing{font-size:12.5px;color:var(--ink3);padding:2px 0 8px}

/* Wetter */
.wx{display:flex;align-items:flex-start;gap:11px;padding:1px 13px 10px}
.wx .dg{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.wx b{display:block;font-size:14px;font-weight:600;margin-bottom:2px}
.wx span{font-size:11.5px;color:var(--ink2);line-height:1.45;display:block}

/* Zeilen */
.ln{display:grid;grid-template-columns:56px 7px 1fr auto;gap:9px;align-items:start;padding:9px 0;
  border-top:1px solid var(--line);font-size:13px}
.ln:first-child{border-top:0}
.ln .tm{color:var(--ink2);font-size:10.5px;line-height:1.3;padding-top:2px;font-variant-numeric:tabular-nums}
.ln .pd{width:7px;height:7px;border-radius:50%;margin-top:5px}
.ln b{display:block;font-weight:600;font-size:13px;line-height:1.35;letter-spacing:-.005em}
.ln .s{display:block;font-size:11.5px;color:var(--ink2);margin-top:2px;line-height:1.4}
.ln.od b,.ln.od .tm,.ln.od .s{color:var(--due-ink)}
.chip{display:inline-flex;align-items:center;gap:4px;font:500 10px 'Inter';color:var(--ink2);background:var(--card2);
  border:1px solid var(--line);border-radius:99px;padding:2px 7px;margin-top:5px}
.chip svg{width:9px;height:9px}
.cbx{width:18px;height:18px;border-radius:5px;border:1.6px solid var(--line2);background:transparent;cursor:pointer;
  flex-shrink:0;display:grid;place-items:center;padding:0;margin-top:1px;transition:background .18s,border-color .18s}
.cbx svg{width:10px;height:10px;color:var(--bg);opacity:0;transition:opacity .18s}
.cbx[aria-checked="true"]{background:var(--ink);border-color:var(--ink)}
.cbx[aria-checked="true"] svg{opacity:1}
.cl{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;padding:9px 0;border-top:1px solid var(--line)}
.cl:first-child{border-top:0}
.cl b{font-weight:600;font-size:13px;display:block;line-height:1.35}
.cl .qt{font-weight:400;color:var(--ink2)}
.cl .s{font-size:11.5px;color:var(--ink2);display:block;margin-top:2px}
.cl.done b,.cl.done .qt{text-decoration:line-through;color:var(--ink3);text-decoration-thickness:1.5px}
.cl.done .s{color:var(--ink3)}

/* Baby-Widget im Dashboard */
.bw{padding:0 13px 12px}
.bw .st{display:flex;align-items:center;gap:7px;font:600 13.5px 'Inter'}
.bw .st i{width:7px;height:7px;border-radius:50%;background:var(--p5)}
.bw .nums{font-size:11.5px;color:var(--ink2);margin:5px 0 10px}
.bw .nums b{color:var(--ink);font-weight:600}
.bigbtn{width:100%;height:42px;border-radius:11px;background:var(--ink);color:var(--bg);border:0;
  font:600 13.5px 'Inter';cursor:pointer;transition:opacity .18s}
.bigbtn:hover{opacity:.88}

/* Kalender */
.calhd{display:flex;align-items:center;gap:8px;margin:6px 0 12px;padding:0 2px}
.calhd h3{font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:24px;letter-spacing:-.015em;margin:0}
.calnv{margin-left:auto;display:flex;gap:6px;align-items:center}
.calnv button{border:1px solid var(--line2);background:var(--card);color:var(--ink2);border-radius:99px;height:27px;
  min-width:27px;padding:0 11px;font:600 11.5px 'Inter';cursor:pointer;display:grid;place-items:center}
.calnv button svg{width:12px;height:12px}
.sg2{display:flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:3px;
  margin-bottom:11px;overflow-x:auto;scrollbar-width:none}
.sg2::-webkit-scrollbar{display:none}
.sg2 button{flex:1 0 auto;white-space:nowrap;border:0;background:transparent;color:var(--ink2);font:500 12px 'Inter';
  padding:7px 12px;border-radius:8px;cursor:pointer;display:flex;gap:5px;align-items:center;justify-content:center}
.sg2 button i{font-style:normal;font-size:10px;color:var(--ink3)}
.sg2 button[aria-selected="true"]{background:var(--ink);color:var(--bg);font-weight:600}
.sg2 button[aria-selected="true"] i{color:var(--bg);opacity:.6}
.sg2 button.hid{display:none}
.sgmore{flex:0 0 auto!important;padding:7px 8px!important;color:var(--ink3)!important}
.sgmore svg{width:13px;height:13px}
.sgwrap{position:relative;margin-bottom:11px}
.sgwrap .sg2{margin-bottom:0}
.sgmenu{position:absolute;right:0;top:100%;margin-top:5px;z-index:12;background:var(--card);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);padding:5px;min-width:172px}
.sgmenu button{display:flex;width:100%;align-items:center;gap:10px;background:none;border:0;border-radius:8px;
  padding:9px 10px;cursor:pointer;color:var(--ink);font:500 13px 'Inter';text-align:left}
.sgmenu button:hover{background:var(--card2)}
.sgmenu button i{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--ink3)}
.cal{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:9px 7px 11px}
.cg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cdow{font:500 10px 'Inter';color:var(--ink3);text-align:center;padding-bottom:7px}
.cd{display:grid;justify-items:center;gap:3px;padding:4px 0 5px;border:0;background:none;cursor:pointer;border-radius:8px}
.cd .dn{font:500 12.5px 'Inter';color:var(--ink);width:22px;height:22px;display:grid;place-items:center;
  border-radius:50%;font-variant-numeric:tabular-nums}
.cd.out .dn{color:var(--ink3)}
.cd.we .dn{color:var(--ink3)}
.cd.sel .dn{background:var(--ink);color:var(--bg);font-weight:700}
.cd .dz{display:flex;gap:2px;height:5px;align-items:center}
.cd .dz i{width:4px;height:4px;border-radius:50%;display:block}
.cd .dz i.ho{background:transparent!important;border:1px solid var(--ink3)}
.dayline{display:flex;align-items:baseline;gap:8px;margin:14px 2px 8px;font:600 13px 'Inter'}
.dayline span{margin-left:auto;font:400 11.5px 'Inter';color:var(--ink2)}
.evl{display:grid;grid-template-columns:52px 1fr auto;gap:9px;align-items:start;padding:11px 0;border-top:1px solid var(--line)}
.evl:first-child{border-top:0}
.evl .tm{font-size:10.5px;color:var(--ink2);padding-top:3px}
.evl .bar{position:absolute;left:0;top:11px;bottom:11px;width:2.5px;border-radius:9px}
.evl .k{font:600 9px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);display:block;margin-bottom:2px}
.evl b{font-size:13.5px;font-weight:600;display:block;line-height:1.35}
.evl .meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:5px;font-size:11px;color:var(--ink2)}
.evwrap{position:relative;padding-left:11px}
.pen{background:none;border:0;color:var(--ink3);cursor:pointer;padding:2px;display:grid;place-items:center}
.pen svg{width:14px;height:14px}
.pen:hover{color:var(--ink2)}

/* Notizen */
.nc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 13px;box-shadow:var(--shadow);
  margin-bottom:10px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;position:relative}
.nc.pin{border-left:3px solid var(--ink)}
.nc .nic{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink3)}
.nc .nic svg{width:13px;height:13px}
.nc h5{margin:0 0 3px;font:600 14px 'Inter';letter-spacing:-.01em}
.nc .lines{font-size:12.5px;line-height:1.5;color:var(--ink2);white-space:pre-line}
.nc .meta{font-size:10.5px;color:var(--ink3);margin-top:8px}
.nc .meta b{color:var(--ink2);font-weight:600}
.nc .acts{display:flex;gap:2px}
.nc .acts button{background:none;border:0;color:var(--ink3);cursor:pointer;padding:2px;display:grid;place-items:center}
.nc .acts button svg{width:14px;height:14px}
.nc .acts button.on{color:var(--ink)}
.grouphd{font:600 12px 'Inter';color:var(--ink);margin:4px 2px 8px}
.tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:7px}

/* Baby */
.bhd{display:flex;align-items:center;gap:11px;margin:6px 0 12px;padding:0 2px}
.bhd .pic{width:44px;height:44px;border-radius:50%;background:var(--p5-soft);color:var(--p5-ink);display:grid;
  place-items:center;font:700 18px 'Inter';box-shadow:0 0 0 1.6px var(--p5)}
.bhd h3{font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:24px;letter-spacing:-.015em;margin:0}
.bhd p{margin:2px 0 0;font-size:11.5px;color:var(--ink2)}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 14px 14px;
  margin-bottom:11px}
.dnav{display:flex;align-items:center;justify-content:center;gap:16px;font:600 13px 'Inter';padding:2px 0 4px}
.dnav button{background:none;border:0;color:var(--ink3);cursor:pointer;display:grid;place-items:center;padding:3px}
.dnav button svg{width:14px;height:14px}
.ring{position:relative;width:100%;max-width:272px;margin:2px auto 0}
.ring>svg{width:100%;height:auto;display:block;overflow:visible}
.ringin{position:absolute;left:0;right:0;top:20%;display:grid;place-items:center;align-content:start;gap:2px;
  text-align:center;padding:0 46px}
.ringin .kick{font:700 11px 'Inter';letter-spacing:.02em;color:var(--p5-ink)}
.ringin .stt{font:600 24px 'Inter';line-height:1.15;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.ringin .sc{font-size:11.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.ringin .btnwrap{margin-top:12px}
.rlbl{font:600 9.5px 'Inter';fill:var(--ink3);font-variant-numeric:tabular-nums}
.pillbtn{height:40px;padding:0 20px;border-radius:99px;background:var(--ink);color:var(--bg);border:0;
  font:600 13.5px 'Inter';cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:opacity .18s;white-space:nowrap}
.pillbtn:hover{opacity:.88}
.pillbtn svg{width:14px;height:14px}
.endmk{display:none}
.endmk div{display:grid;justify-items:center;gap:4px;font-size:10.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.endmk i{width:0;height:0;display:none}


.bstat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.bstat div{display:grid;justify-items:center;gap:3px}
.bstat b{font:600 16px 'Inter';font-variant-numeric:tabular-nums}
.bstat span{font-size:10px;color:var(--ink2);display:flex;align-items:center;gap:4px}
.bstat span i{width:5px;height:5px;border-radius:50%}
.avgline{font-size:10.5px;color:var(--p5-ink);margin:11px 0 6px;padding:0 2px}
.bars{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;align-items:end;height:74px}
.bars .bcol{display:grid;justify-items:center;gap:4px}
.bars .stack{width:100%;height:62px;background:var(--card2);border-radius:3px;position:relative;overflow:hidden}
.bars .stack i{position:absolute;left:0;right:0;background:var(--p5);border-radius:2px}
.bars .stack i.lt{background:var(--p5-soft)}
.bars .dy{font:500 9px 'Inter';color:var(--ink3)}
.bars .bcol.now .stack{box-shadow:0 0 0 1.5px var(--ink)}
.bars .bcol.now .dy{color:var(--ink);font-weight:600}
.logl{display:grid;grid-template-columns:28px 42px 1fr auto;gap:9px;align-items:center;padding:10px 0;
  border-top:1px solid var(--line);font-size:13px}
.logl:first-child{border-top:0}
.logl .lic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--p5-soft);color:var(--p5-ink)}
.logl .lic svg{width:13px;height:13px}
.logl .tm{font-size:11.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.logl b{font-weight:600;font-size:13px}
.fresh{animation:fl 1.1s ease}
@keyframes fl{0%{background:var(--p5-soft)}100%{background:transparent}}

/* Bottom-Sheet im Telefon */
.shbg{position:absolute;inset:0;background:var(--scrim);z-index:8;opacity:0;pointer-events:none;transition:opacity .22s}
.shbg.on{opacity:1;pointer-events:auto}
.sh{position:absolute;left:0;right:0;bottom:0;background:var(--card);border-radius:20px 20px 0 0;z-index:9;
  padding:8px 14px 22px;transform:translateY(102%);transition:transform .28s cubic-bezier(.2,.8,.3,1);border-top:1px solid var(--line);max-height:88%;overflow-y:auto}
.sh.on{transform:none}
.sh .gr{width:36px;height:4px;border-radius:9px;background:var(--line2);margin:0 auto 10px}
.sh .shhd{display:flex;align-items:center;padding:0 2px 12px}
.sh .shhd h4{margin:0 auto;font:600 15px 'Inter'}
.sh .shhd button{background:none;border:0;color:var(--ink2);cursor:pointer;display:grid;place-items:center}
.sh .shhd button svg{width:16px;height:16px}
.sh .lbl{font:600 9.5px 'Inter';letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin:0 0 7px 2px}
.whenrow{display:flex;gap:6px;margin-bottom:13px;flex-wrap:wrap}
.whenrow button{border:1px solid var(--line2);background:var(--card);color:var(--ink);border-radius:99px;
  padding:6px 13px;font:500 11.5px 'Inter';cursor:pointer}
.whenrow button[aria-pressed="true"]{border-color:var(--ink);font-weight:600}
.tilegrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.tilegrid button{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 4px 9px;
  display:grid;justify-items:center;gap:6px;cursor:pointer;color:var(--ink);font:500 10px 'Inter';text-align:center;line-height:1.25}
.tilegrid button:hover{background:var(--card2)}
.tilegrid button svg{width:17px;height:17px;color:var(--ink2)}
.optrow{display:flex;width:100%;align-items:center;gap:11px;background:none;border:0;border-top:1px solid var(--line);
  padding:12px 2px;cursor:pointer;color:var(--ink);font:500 14px 'Inter';text-align:left}
.optrow i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--card2);color:var(--ink2);flex-shrink:0}
.optrow i svg{width:15px;height:15px}

/* ── Overdue-Zeile (wie in der Beta) ─────────────────────────── */
.ln.ovd{background:var(--due-soft);margin:0 -13px;padding-left:13px;padding-right:13px;
  border-left:3px solid var(--due);grid-template-columns:auto 7px minmax(0,1fr) auto}
.ln.ovd.nb{grid-template-columns:56px 7px minmax(0,1fr) auto}
.ln.ovd b{color:var(--ink)}
.ln.ovd .s{color:var(--due-ink)}

/* ── Drawer ──────────────────────────────────────────────────── */
.drwbg{position:absolute;inset:0;background:var(--scrim);z-index:14;opacity:0;pointer-events:none;transition:opacity .22s}
.drwbg.on{opacity:1;pointer-events:auto}
.drw{position:absolute;left:0;top:0;bottom:0;width:82%;background:var(--card);z-index:15;
  transform:translateX(-102%);transition:transform .28s cubic-bezier(.2,.8,.3,1);display:flex;flex-direction:column;
  border-right:1px solid var(--line)}
.drw.on{transform:none}
.drw .who{display:flex;gap:11px;align-items:center;padding:16px 14px 14px}
.drw .who .pic{width:42px;height:42px;border-radius:50%;background:var(--p1-soft);color:var(--p1-ink);
  display:grid;place-items:center;font:600 15px 'Inter';border:1.5px solid var(--card)}
.drw .who b{display:block;font:600 15px 'Inter'}
.drw .who span{display:block;font-size:11px;color:var(--ink2);margin-top:1px}
.drw .tarif{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font:600 9px 'Inter';letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink2);background:var(--card2);border:1px solid var(--line);border-radius:99px;padding:3px 8px}
.drw .tarif svg{width:9px;height:9px}
.drw nav{border-top:1px solid var(--line);padding:8px 8px 0;flex:1;overflow-y:auto}
.drw nav button{display:flex;width:100%;align-items:center;gap:12px;background:none;border:0;border-radius:9px;
  padding:10px 8px;cursor:pointer;color:var(--ink);font:500 14px 'Inter';text-align:left}
.drw nav button:hover{background:var(--card2)}
.drw nav button svg{width:16px;height:16px;color:var(--ink2);flex-shrink:0}
.drw nav button em{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--ink3)}
.drw .out{border-top:1px solid var(--line);padding:10px 8px}
.drw .out button{display:flex;width:100%;align-items:center;gap:12px;background:none;border:0;padding:10px 8px;
  cursor:pointer;color:var(--due);font:500 14px 'Inter';border-radius:9px}
.drw .out button svg{width:16px;height:16px}

/* ── Suche / Glocke / Kebab ──────────────────────────────────── */
.ovl{position:absolute;left:0;right:0;top:0;z-index:12;background:var(--card);border-bottom:1px solid var(--line);
  box-shadow:var(--shadow);transform:translateY(-102%);transition:transform .24s cubic-bezier(.2,.8,.3,1);max-height:80%;overflow-y:auto}
.ovl.on{transform:none}
.srow{display:flex;align-items:center;gap:9px;padding:12px 14px}
.srow svg{width:15px;height:15px;color:var(--ink3);flex-shrink:0}
.srow input{flex:1;border:0;background:none;outline:none;color:var(--ink);font:400 14px 'Inter'}
.srow input::placeholder{color:var(--ink3)}
.srow button{background:none;border:0;color:var(--ink2);cursor:pointer;display:grid;place-items:center;padding:2px}
.srow button svg{width:15px;height:15px}
.sres{border-top:1px solid var(--line)}
.sres button{display:flex;width:100%;align-items:center;gap:11px;background:none;border:0;border-bottom:1px solid var(--line);
  padding:11px 14px;cursor:pointer;text-align:left}
.sres button:hover{background:var(--card2)}
.sres .ti{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink3);flex-shrink:0}
.sres .ti svg{width:13px;height:13px}
.sres b{display:block;font:600 13.5px 'Inter'}
.sres span{display:block;font-size:11px;color:var(--ink2);margin-top:1px}
.sres em{margin-left:auto;font-style:normal;font-size:11px;color:var(--ink3);flex-shrink:0}
.nhd{display:flex;align-items:center;gap:8px;padding:12px 14px;font:600 13.5px 'Inter'}
.nhd svg{width:15px;height:15px;color:var(--ink2)}
.nhd button{margin-left:auto;background:none;border:0;color:var(--ink2);cursor:pointer;display:grid;place-items:center}
.nrow{display:grid;grid-template-columns:52px auto 1fr;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.nrow .dt{font-size:11px;color:var(--due-ink);line-height:1.3;font-weight:600}
.nrow .ti{width:28px;height:28px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink3)}
.nrow .ti svg{width:14px;height:14px}
.nrow b{display:block;font:600 13.5px 'Inter'}
.nrow span{display:block;font-size:11px;color:var(--ink2);margin-top:1px}
.ctx{position:absolute;right:10px;top:52px;z-index:13;background:var(--card);border:1px solid var(--line);
  border-radius:13px;box-shadow:var(--shadow-lift);padding:5px;min-width:196px;opacity:0;transform:translateY(-6px);
  pointer-events:none;transition:opacity .16s,transform .16s}
.ctx.on{opacity:1;transform:none;pointer-events:auto}
.ctx button{display:flex;width:100%;align-items:center;gap:11px;background:none;border:0;border-radius:9px;
  padding:9px 10px;cursor:pointer;color:var(--ink);font:500 13.5px 'Inter';text-align:left}
.ctx button:hover{background:var(--card2)}
.ctx button i{width:24px;height:24px;border-radius:7px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink2);flex-shrink:0}
.ctx button i svg{width:12px;height:12px}

/* ── Wetter aufgeklappt ──────────────────────────────────────── */
.wxh{display:flex;gap:2px;overflow-x:auto;padding:6px 13px 10px;scrollbar-width:none;border-top:1px solid var(--line);margin-top:2px}
.wxh::-webkit-scrollbar{display:none}
.wxh div{display:grid;justify-items:center;gap:3px;padding:6px 8px;border-radius:10px;flex:0 0 auto;font-variant-numeric:tabular-nums}
.wxh div.nowc{border:1px solid var(--line2)}
.wxh .hh{font:500 10px 'Inter';color:var(--ink2)}
.wxh svg{width:14px;height:14px;color:var(--ink3)}
.wxh .tt{font:600 12px 'Inter'}
.wxd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px;padding:2px 13px 10px}
.wxd div{display:grid;grid-template-columns:22px 1fr auto auto;gap:7px;align-items:center;padding:5px 0;font-size:11.5px}
.wxd .dd{font-weight:600}
.wxd .ds{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wxd .hi{font-weight:600;font-variant-numeric:tabular-nums}
.wxd .lo{color:var(--ink3);font-variant-numeric:tabular-nums}

/* ── Verknüpfungs-Dropdown ───────────────────────────────────── */
.lkwrap{position:relative;display:inline-block}
.lkmenu{position:absolute;left:0;top:100%;margin-top:5px;z-index:6;background:var(--card);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow-lift);padding:5px;min-width:186px}
.lkmenu button{display:flex;width:100%;align-items:center;gap:10px;background:none;border:0;border-radius:8px;
  padding:8px 9px;cursor:pointer;color:var(--ink);font:500 12.5px 'Inter';text-align:left}
.lkmenu button:hover{background:var(--card2)}
.lkmenu button svg{width:13px;height:13px;color:var(--ink3);flex-shrink:0}

/* ── Formulare in Sheets ─────────────────────────────────────── */
.fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;margin-bottom:12px}
.f1{grid-column:1 / -1}
.flab{font:600 9.5px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);margin:0 0 5px}
.fin{width:100%;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--card2);
  color:var(--ink);font:400 13.5px 'Inter';padding:0 11px}
.fin::placeholder{color:var(--ink3)}
textarea.fin{height:62px;padding:9px 11px;resize:none}
.fsel{width:100%;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--card2);color:var(--ink);
  font:400 13.5px 'Inter';padding:0 11px;display:flex;align-items:center;cursor:pointer}
.fsel span{margin-left:auto;color:var(--ink3);display:grid}
.fsel span svg{width:13px;height:13px}
.frow{display:flex;align-items:center;gap:9px;margin-bottom:11px;font-size:12px;color:var(--ink2)}
.frow b{color:var(--ink);font-weight:600}
.frow .lnkb{background:none;border:0;color:var(--ink);font:600 12px 'Inter';text-decoration:underline;
  text-underline-offset:2px;cursor:pointer;padding:0}
.fcheck{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.fcheck .flab{margin:0}
.fcheck .sp{margin-left:auto}
.forwho{width:100%;border-radius:9px;border:1px solid var(--line);background:var(--card2);padding:11px;
  display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink2);font:400 13px 'Inter';margin-bottom:11px}
.forwho span{margin-left:auto;color:var(--ink3);display:grid}
.forwho span svg{width:13px;height:13px}
.pchips{display:flex;gap:5px;flex-wrap:wrap;margin:-5px 0 11px}
.pchips span{display:inline-flex;align-items:center;gap:5px;font:500 11px 'Inter';background:var(--card2);
  border:1px solid var(--line);border-radius:99px;padding:3px 8px 3px 4px}
.visseg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:7px}
.visseg button{background:var(--card);border:0;padding:9px;font:600 12.5px 'Inter';color:var(--ink2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:7px}
.visseg button svg{width:13px;height:13px}
.visseg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.vishelp{font-size:11px;color:var(--ink3);margin:0 0 12px}
.savebtn{width:100%;height:44px;border-radius:11px;background:var(--ink);color:var(--bg);border:0;
  font:600 14px 'Inter';cursor:pointer;transition:opacity .18s}
.savebtn:hover{opacity:.88}

/* ── Sehr schmale Geräte: Telefon-Innenraum straffen ─────────── */
@media(max-width:420px){
  .abody{padding-left:9px;padding-right:9px}
  .wh{padding-left:11px;padding-right:11px}
  .wb{padding-left:11px;padding-right:11px}
  .ln{grid-template-columns:46px 7px minmax(0,1fr) auto;gap:7px}
  .ln.ovd{margin-left:-11px;margin-right:-11px;padding-left:11px;padding-right:11px}
  .wx{padding-left:11px;padding-right:11px}
  .nc{padding-left:11px;padding-right:11px;gap:8px}
  .evl{grid-template-columns:44px minmax(0,1fr) auto;gap:7px}
  .logl{grid-template-columns:26px 38px minmax(0,1fr) auto;gap:7px}
  .sh{padding-left:11px;padding-right:11px}
  .ring{width:min(196px,72vw)}
}

/* ── Tagesbalken in der Wochenansicht ────────────────────────── */
.dayhd{display:flex;align-items:center;gap:8px;padding:10px 13px 8px;border-bottom:1px solid var(--line)}
.dayhd b{font:600 13px 'Inter'}
.dayhd b.today{text-decoration:underline;text-underline-offset:3px}
.dayhd .dt{font-size:11.5px;color:var(--ink2)}
.dayhd .wt{margin-left:auto;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
.dayhd .add{width:24px;height:24px;border-radius:50%;border:1px solid var(--line2);background:var(--card);
  color:var(--ink2);display:grid;place-items:center;cursor:pointer;flex-shrink:0}
.dayhd .add svg{width:12px;height:12px}
.mhead{font:600 13px 'Inter';margin:12px 2px 8px}
.dgrp{display:flex;align-items:baseline;gap:8px;margin:14px 2px 7px;font:600 12.5px 'Inter'}
.dgrp span{margin-left:auto;font:400 11px 'Inter';color:var(--ink2);font-variant-numeric:tabular-nums}

/* ── Listen-Karte ────────────────────────────────────────────── */
.subitems{margin:5px 0 0;display:grid;gap:3px}
.subitems div{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;font-size:12.5px;color:var(--ink2)}
.subitems .box{width:13px;height:13px;border-radius:4px;border:1.4px solid var(--line2)}
.submore{background:none;border:0;padding:5px 0 0;font:500 11.5px 'Inter';color:var(--ink3);cursor:pointer;
  display:flex;align-items:center;gap:4px}
.submore svg{width:11px;height:11px}
.cnt{font:500 12px 'Inter';color:var(--ink3);margin-left:6px}

/* ── Personen & Dinge ────────────────────────────────────────── */
.pdrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 2px;
  border-top:1px solid var(--line)}
.pdrow:first-of-type{border-top:0}
.pdrow .pa{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:600 13px 'Inter'}
.pdrow b{display:block;font:600 13.5px 'Inter';overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdrow span.m{display:block;font-size:11px;color:var(--ink2);margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdrow button{background:none;border:0;color:var(--ink3);cursor:pointer;display:grid;place-items:center;padding:3px}
.pdrow button svg{width:14px;height:14px}

/* ── Handbuch ────────────────────────────────────────────────── */
.hbk{border-top:1px solid var(--line)}
.hbk:last-of-type{border-bottom:1px solid var(--line)}
.hbk>button{display:flex;width:100%;align-items:center;gap:12px;background:none;border:0;padding:13px 2px;
  cursor:pointer;color:var(--ink);font:600 13.5px 'Inter';text-align:left}
.hbk>button>svg{width:15px;height:15px;color:var(--ink2);flex-shrink:0}
.hbk>button .cv{margin-left:auto;color:var(--ink3);display:grid}
.hbk>button .cv svg{width:13px;height:13px}
.hbk .txt{padding:0 2px 14px;font-size:12.5px;line-height:1.65;color:var(--ink2)}
.hbk .txt p{margin:0 0 9px}
.hbk .txt p:last-child{margin:0}

/* ── Sheet-Fußzeile mit Löschen ──────────────────────────────── */
.shfoot{display:flex;gap:12px;align-items:center;margin-top:4px}
.shfoot .del{background:none;border:0;color:var(--due);font:600 13.5px 'Inter';cursor:pointer;padding:10px 6px}
.shfoot .savebtn{flex:1}

/* ── Pager mit echtem Wischen ────────────────────────────────── */
.pgr{display:flex;align-items:flex-start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;transition:height .26s cubic-bezier(.2,.7,.3,1);
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab}
.pgr::-webkit-scrollbar{display:none}
.pgr.drag{cursor:grabbing;scroll-snap-type:none}
.pg{flex:0 0 100%;min-width:0;scroll-snap-align:start;padding:0 13px}
.wg .pgr+.pgd{margin-top:2px}
.pgd button{transition:background .2s,width .2s,transform .2s}

/* ── Dashboard bearbeiten ────────────────────────────────────── */
.donebtn{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 14px;border-radius:99px;
  background:var(--ink);color:var(--bg);border:0;font:600 12.5px 'Inter';cursor:pointer}
.donebtn svg{width:12px;height:12px}
.editing .wg{opacity:.62}
.editing .wg>*:not(.wedit){pointer-events:none}
.editing .wg{cursor:default}
.wedit{display:flex;align-items:center;gap:9px;padding:8px 11px;border-top:1px solid var(--line);background:var(--card2)}
.wedit .grip{color:var(--ink3);display:grid;cursor:grab}
.wedit .grip svg{width:15px;height:15px}
.wedit .del{width:26px;height:26px;border-radius:50%;border:1px solid var(--due);color:var(--due);
  background:transparent;display:grid;place-items:center;cursor:pointer}
.wedit .del svg{width:12px;height:12px}
.wedit .sp{margin-left:auto}
.wedit .swg{display:flex;align-items:center;gap:7px}
.wedit .lbl2{font:500 11.5px 'Inter';color:var(--ink2)}
.tgl{width:38px;height:21px;border-radius:99px;background:var(--line2);border:0;position:relative;cursor:pointer;
  padding:0;flex-shrink:0;transition:background .22s}
.tgl::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--card);
  box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .22s}
.tgl[aria-pressed="true"]{background:var(--ink)}
.tgl[aria-pressed="true"]::after{transform:translateX(17px)}
.addw{border:1.5px dashed var(--line2);border-radius:15px;padding:26px;display:grid;place-items:center;
  gap:8px;color:var(--ink2);font:500 13.5px 'Inter';background:none;width:100%;cursor:pointer;margin-bottom:11px}
.addw:hover{border-color:var(--ink3);color:var(--ink)}
.addw span{display:inline-flex;align-items:center;gap:9px}
.addw svg{width:15px;height:15px}
.wfoot svg{width:11px;height:11px;margin-left:5px;transition:transform .22s;vertical-align:-1px}
.wfoot.open svg{transform:rotate(180deg)}

/* ── „Widget hinzufügen“-Zeilen wie in der Beta ──────────────── */
.newrow{display:flex;width:100%;align-items:center;gap:11px;background:none;border:0;
  border-top:1px solid var(--line);padding:12px 2px;cursor:pointer;text-align:left}
.newrow:hover{background:var(--card2)}
.newrow .ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:var(--card2);color:var(--ink2);flex-shrink:0}
.newrow .ic svg{width:15px;height:15px}
.newrow b{display:block;font:600 14px 'Inter'}
.newrow .sb2{display:block;font-size:11.5px;color:var(--ink3);margin-top:1px}
.newrow .cv{margin-left:auto;color:var(--ink3);display:grid;width:14px;flex-shrink:0}
.wg.full{box-shadow:var(--shadow-lift)}
.wg.full .wh h4{font-size:11px}

/* ── Klick-außerhalb-Fänger ──────────────────────────────────── */
.ovlbg{position:absolute;inset:0;z-index:11;opacity:0;pointer-events:none;transition:opacity .2s;
  background:var(--scrim)}
.ovlbg.on{opacity:1;pointer-events:auto}

/* ── Offline: roter Strich + Warteschlange ───────────────────── */
.offbar{position:absolute;left:0;right:0;top:0;height:3px;background:var(--due);z-index:20;
  transform:scaleY(0);transform-origin:top;transition:transform .22s}
.offbar.on{transform:scaleY(1)}
.abar .ic.sync{color:var(--pend-ink)}
.abar .ic .bdg.pend{background:var(--pend)}
.qrow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 14px;
  border-top:1px solid var(--line)}
.qrow .ti{width:28px;height:28px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink3)}
.qrow .ti svg{width:14px;height:14px}
.qrow b{display:block;font:600 13.5px 'Inter'}
.qrow span.s2{display:block;font-size:11px;color:var(--ink2);margin-top:1px}
.qrow .tag{font:600 9px 'Inter';letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:3px 7px;
  background:var(--pend-soft);color:var(--pend-ink);white-space:nowrap}
.qrow .tag.done{background:var(--card2);color:var(--ink2);border:1px solid var(--line2)}
.offsw{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font:600 13px 'Inter';color:var(--ink);
  background:var(--card);border:1px solid var(--line2);border-radius:99px;padding:7px 15px 7px 10px;margin-top:12px}
.offsw .track{width:36px;height:21px;border-radius:99px;background:var(--line2);position:relative;transition:background .25s;flex-shrink:0}
.offsw .track::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;
  background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .25s}
.offsw[aria-pressed="true"] .track{background:var(--due)}
.offsw[aria-pressed="true"] .track::after{transform:translateX(15px)}
.chip{cursor:pointer}

.hintline{font-size:11px;line-height:1.55;color:var(--ink3);margin:2px 4px 10px}

/* ── Impfungen: Dosis-Balken wie in der App ──────────────────── */
.vrow{padding:12px 0;border-top:1px solid var(--line)}
.vrow:first-child{border-top:0}
.vhd{display:flex;align-items:center;gap:9px}
.vhd b{font:600 14px 'Inter'}
.vpill{margin-left:auto;font:600 11px 'Inter';background:var(--card2);border:1px solid var(--line);
  border-radius:99px;padding:3px 9px;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.vpill.open{background:var(--pend-soft);border-color:transparent;color:var(--pend-ink)}
.vsub{display:block;font-size:11.5px;color:var(--ink2);margin-top:3px}
.vsub.due{color:var(--due-ink);font-weight:500}
.vbar{display:flex;gap:5px;margin-top:9px}
.vbar i{flex:1;height:3px;border-radius:9px;background:var(--line);display:block}
.vbar i.on{background:var(--ink)}
.mage{font-style:normal;color:var(--p5-ink);font-weight:600}
.logl b{display:block}
.logl .s{display:block;font-size:11.5px;color:var(--ink2);margin-top:3px;line-height:1.4}
.logl>span:nth-child(2){min-width:0}
.rthumb{width:52px;height:52px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);flex-shrink:0}
.rthumb svg{width:22px;height:22px;opacity:.55}
.nc .lines{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}

/* ══ Module ═══════════════════════════════════════════════════ */
.modrow{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding-top:34px;padding-bottom:34px;
  border-top:1px solid var(--line)}
.modrow h3{font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:26px;letter-spacing:-.015em;
  margin:0 0 8px;display:flex;align-items:center;gap:10px}
.modrow h3 .dt{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.modrow .tx>p{font-size:15px;line-height:1.65;color:var(--ink2);margin:0;max-width:44ch}
.num{font:600 10.5px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);display:block;margin-bottom:9px}
.proof{margin:0;padding:0;list-style:none}
.proof li{font-size:13.5px;line-height:1.6;color:var(--ink2);padding:11px 0;border-top:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr;gap:10px}
.proof li:first-child{border-top:0;padding-top:0}
.proof li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ink3);margin-top:8px}
.proof li b{color:var(--ink);font-weight:600}
@media(min-width:880px){
  .modrow{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:52px;align-items:start;
    padding-top:46px;padding-bottom:46px}
  .modrow .tx{position:sticky;top:80px}
  .proof li:first-child{padding-top:0}
}

/* Alltag */
.scenes{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:0}
.scenes li{border-top:1px solid var(--line);padding:20px 0}
.scenes .when{font:600 10.5px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);margin:0 0 6px}
.scenes h3{font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:21px;letter-spacing:-.015em;margin:0 0 6px}
.scenes p{font-size:14.5px;line-height:1.6;color:var(--ink2);margin:0;max-width:62ch}
.scenes p b{color:var(--ink);font-weight:600}
@media(min-width:820px){.scenes li{display:grid;grid-template-columns:180px 1fr;gap:26px;align-items:baseline}
  .scenes .when{margin-top:4px}}
.honest{font-size:13px;line-height:1.6;color:var(--ink3);margin:20px 0 0;max-width:66ch}

/* Privatsphäre */
.privacy{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:28px 22px;box-shadow:var(--shadow)}
@media(min-width:820px){.privacy{padding:42px 44px}}
.plist{margin:24px 0 0;padding:0;list-style:none}
.plist li{display:grid;grid-template-columns:auto 1fr;gap:12px;font-size:14px;line-height:1.6;color:var(--ink2);
  padding:13px 0;border-top:1px solid var(--line)}
.plist li b{color:var(--ink);font-weight:600}
.plist svg{width:15px;height:15px;color:var(--ink);margin-top:3px;flex-shrink:0}
.more{display:grid;gap:10px;margin:30px 0 0;padding:0;list-style:none}
@media(min-width:720px){.more{grid-template-columns:1fr 1fr;gap:10px 26px}}
.more li{border-top:1px solid var(--line);padding:13px 0;font-size:13px;line-height:1.6;color:var(--ink2)}
.more b{display:block;color:var(--ink);font-weight:600;font-size:13.5px;margin-bottom:3px}

/* Installieren */
.insts{display:grid;gap:14px;margin-top:26px}
@media(min-width:720px){.insts{grid-template-columns:1fr 1fr;gap:16px}}
.inst{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:21px;box-shadow:var(--shadow)}
.inst h3{font:600 15px 'Inter';margin:0;display:flex;align-items:center;gap:9px;letter-spacing:-.01em}
.inst h3 svg{width:17px;height:17px;color:var(--ink2)}
.inst .sb{font-size:11.5px;color:var(--ink3);margin:4px 0 0;padding-left:26px}
.steps{margin:15px 0 0;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:auto 1fr;gap:12px;padding:10px 0;
  border-top:1px solid var(--line);font-size:13.5px;line-height:1.55;color:var(--ink2)}
.steps li::before{content:counter(s);width:21px;height:21px;border-radius:50%;background:var(--card2);
  border:1px solid var(--line);display:grid;place-items:center;font:600 10.5px 'Inter';color:var(--ink2)}
.steps li b{color:var(--ink);font-weight:600}

/* Warteliste */
.wl{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:36px 22px 32px;
  box-shadow:var(--shadow-lift);text-align:center;display:grid;justify-items:center}
@media(min-width:820px){.wl{padding:50px 42px 44px}}
.wlform{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:24px;width:100%;max-width:430px}
.wlform input{flex:1;min-width:200px;height:46px;padding:0 18px;border-radius:99px;border:1px solid var(--line2);
  background:var(--card2);color:var(--ink);font:400 14.5px 'Inter'}
.wlform input::placeholder{color:var(--ink3)}
.wlform input:focus{outline:2px solid var(--ink);outline-offset:0;border-color:transparent}
.wlseg{border:0;padding:0;margin:6px 0 0;width:100%}
.wlseg legend{font-size:13px;color:var(--ink2);padding:0 0 10px;width:100%;text-align:center}
.wlseg .opts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.wlseg label{cursor:pointer;position:relative}
.wlseg input{position:absolute;left:0;top:0;width:1px;height:1px;min-width:0;margin:0;opacity:0;pointer-events:none}
.wlseg .pill{display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:99px;
  border:1px solid var(--line2);background:var(--card2);color:var(--ink2);font-size:13.5px}
.wlseg input:checked+.pill{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}
.wlseg input:focus-visible+.pill{outline:2px solid var(--ink);outline-offset:2px}
.fineprint{font-size:12px;line-height:1.6;color:var(--ink3);margin:15px auto 0;max-width:46ch}
.wldone{display:grid;justify-items:center;gap:8px;margin-top:24px}
.wldone .okc{width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center}
.wldone .okc svg{width:20px;height:20px}

/* Footer + Panel */
.ftr{border-top:1px solid var(--line);padding:32px 0 44px;margin-top:16px}
.ftr .in{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.lnks{display:flex;gap:18px;flex-wrap:wrap}
.lnk{background:none;border:0;padding:0;font:400 13px 'Inter';color:var(--ink2);cursor:pointer}
.lnk:hover{color:var(--ink)}
.cr{flex-basis:100%;font-size:12px;line-height:1.6;color:var(--ink3);margin:4px 0 0}
.panel{position:fixed;inset:0;z-index:90;background:var(--scrim);display:grid;place-items:end center;
  opacity:0;pointer-events:none;transition:opacity .24s;backdrop-filter:blur(3px)}
.panel.on{opacity:1;pointer-events:auto}
.sheet{background:var(--card);width:100%;max-width:680px;max-height:88vh;border-radius:22px 22px 0 0;
  display:flex;flex-direction:column;transform:translateY(28px);transition:transform .28s cubic-bezier(.2,.8,.3,1)}
.panel.on .sheet{transform:none}
.sheet .top{display:flex;align-items:center;gap:12px;padding:17px 21px;border-bottom:1px solid var(--line)}
.sheet .top h2{margin:0;font-family:'Newsreader',Georgia,serif;font-weight:700;font-size:20px;letter-spacing:-.015em}
.legal{padding:19px 21px 32px;overflow-y:auto;font-size:13.5px;line-height:1.68;color:var(--ink2)}
.legal h3{font:600 13px 'Inter';color:var(--ink);margin:20px 0 6px}
.legal h3:first-child{margin-top:0}
.legal p,.legal ul{margin:0 0 10px}
.legal ul{padding-left:18px}
/* Injizierter Rechtstext (aus /impressum bzw. /datenschutz geladen): die Sektions-h2 der
   Standalone-Seiten auf Panel-Maß, die .card-Hinweisbox als abgesetzte Fläche. */
.legal h2{font:600 14px 'Inter';color:var(--ink);margin:22px 0 6px}
.legal section:first-child h2{margin-top:0}
.legal .card,.card{background:var(--card2);border:1px solid var(--line);border-radius:var(--r-ctl);padding:14px 16px;margin:0 0 14px}
.card.warn{border-color:var(--due)}
a.wm{text-decoration:none}
.panel[hidden]{display:none}
body.noscroll{overflow:hidden}
.legal a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.legal .ph{background:var(--pend-soft);color:var(--pend-ink);border-radius:4px;padding:0 5px;font-weight:600;font-size:12.5px}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,18px);z-index:95;background:var(--ink);
  color:var(--bg);border-radius:99px;padding:11px 19px;font:600 13px 'Inter';box-shadow:var(--shadow-lift);
  opacity:0;pointer-events:none;transition:opacity .24s,transform .24s;max-width:88vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}.rv{opacity:1;transform:none}
}

.closers{margin:26px 0 0;display:grid;gap:12px;max-width:54ch}
.closers p{margin:0;font-size:15px;line-height:1.65;color:var(--ink2);font-weight:400}
.closers p:last-child{color:var(--ink)}

/* ══ Demo-Sektion ═════════════════════════════════════════════ */
.demowrap{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;justify-items:center;margin-top:26px}
@media(min-width:940px){.demowrap{grid-template-columns:minmax(0,392px) minmax(0,1fr);gap:52px;align-items:start;justify-items:stretch}}
.demophone{display:grid;justify-items:stretch;gap:12px;position:sticky;top:80px;width:100%;justify-self:stretch}
@media(max-width:939px){.demophone{position:static}}
.demonote{font-size:12px;color:var(--ink3);text-align:center;max-width:32ch;margin:0 auto;line-height:1.5}
.trylist{margin:0;padding:0;list-style:none;display:grid;gap:0;width:100%}
.trylist li{border-top:1px solid var(--line)}
.trylist button{display:grid;grid-template-columns:auto 1fr;gap:12px;width:100%;background:none;border:0;
  padding:14px 2px;cursor:pointer;text-align:left;align-items:start}
.trylist button:hover b{color:var(--p5-ink)}
.trylist .n{width:22px;height:22px;border-radius:50%;background:var(--card2);border:1px solid var(--line);
  display:grid;place-items:center;font:600 10.5px 'Inter';color:var(--ink2);margin-top:1px}
.trylist b{display:block;font:600 14px 'Inter';color:var(--ink);transition:color .18s}
.trylist span{display:block;font-size:12.5px;line-height:1.55;color:var(--ink2);margin-top:3px}
.demolead{font-size:15px;line-height:1.65;color:var(--ink2);margin:0 0 4px;max-width:54ch}
.democta{text-align:center;margin:34px 0 0}
.democta a{font:500 14px 'Inter';color:var(--ink2);text-decoration:none;transition:color .18s}
.democta a:hover{color:var(--ink)}


/* ── Header: DE/EN-Umschalter (landing.js stellt aria-pressed) ── */
.langs{display:flex;gap:4px;flex-shrink:0}
.langs button{font:600 13px 'Inter';color:var(--ink3);background:none;border:0;border-radius:8px;padding:6px 10px;min-height:32px;cursor:pointer}
.langs button[aria-pressed="true"]{color:var(--ink);background:var(--card);box-shadow:var(--shadow)}
/* Theme-Umschalter: das Icon (Mond = zu dunkel wechseln, Sonne = zu hell) trägt den Zustand —
   kein Chip-Look über die aria-pressed-Regel der Sprach-Buttons. */
.langs .theme{display:grid;place-items:center;padding:6px 8px}
.langs button.theme[aria-pressed="true"]{background:none;box-shadow:none;color:var(--ink3)}
.langs .theme:hover{color:var(--ink)}
.langs .theme svg{width:16px;height:16px;display:block}
.langs .theme .ic-sun{display:none}
[data-theme="dark"] .langs .theme .ic-sun{display:block}
[data-theme="dark"] .langs .theme .ic-moon{display:none}

/* ── Warteliste: das echte Formular (IDs/Names, an denen landing.js hängt) ── */
.banner{display:grid;justify-items:center;gap:4px}
.banner .bodytxt{text-align:center}
#formWrap{display:grid;justify-items:center;width:100%}
.wlform{flex-direction:column;align-items:stretch}
.wlform input[type="email"]{flex:none;width:100%}
.wlab{font:600 10.5px 'Inter';letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);text-align:left;margin:6px 4px -4px}
.wlsel{width:100%;height:46px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line2);background:var(--card2);color:var(--ink);font:400 14.5px 'Inter'}
.wlsel:focus{outline:2px solid var(--ink);outline-offset:0;border-color:transparent}
.hint{font-size:12px;line-height:1.6;color:var(--ink3);margin:0;text-align:center}
.status{min-height:1.4em;font-size:13px;color:var(--due-ink);margin:0;text-align:center}
.noscript{font-size:13px;line-height:1.6;color:var(--due-ink);background:var(--due-soft);border-radius:var(--r-ctl);padding:10px 14px;margin:16px 0 0}
.fineprint a{text-decoration:underline;text-underline-offset:2px}
.wldone h2{font:600 15px 'Inter';margin:0}
.btn[disabled]{opacity:.6;cursor:default}
/* Outcome headings receive PROGRAMMATIC focus (screen-reader announcement) — no ring. */
h2[tabindex="-1"]:focus{outline:none}

/* ══ CSP: style-src 'self' — Klassen/data-Attribute statt style="…" ══ */
/* Seitengerüst (index.html) */
.hdr .wm{font-size:20px}
.ftr .wm{font-size:17px}
.hero .lead{text-align:center;max-width:56ch;margin-top:6px}
.hero .btn{margin-top:8px}
.demowrap .eyebrow{margin-bottom:2px}
#formWrap .bodytxt{text-align:center;max-width:44ch}
.mw15ch{max-width:15ch}.mw22ch{max-width:22ch}.mw24ch{max-width:24ch}.mw26ch{max-width:26ch}.mw28ch{max-width:28ch}
.sech.mt16{margin-top:16px}
.eyebrow.mt42{margin-top:42px}
.bodytxt.mt30{margin-top:30px}
.modrow.mt18{margin-top:18px}
.ulink{text-decoration:underline;text-underline-offset:2px}
.instnote{margin:14px 0 0;font-size:12.5px;line-height:1.6;color:var(--ink3)}
.bg-p1{background:var(--p1)}.bg-p3{background:var(--p3)}.bg-p4{background:var(--p4)}.bg-p5{background:var(--p5)}
/* Demo-Templates (demo.js) */
.abar .ic.hide{display:none}
.nhd .ct{margin-left:2px;color:var(--ink3)}
.nothing.pad14{padding:14px}
.nothing.qnote{padding:10px 14px 14px;border-top:1px solid var(--line)}
.nothing.ctr26{text-align:center;padding:26px 0}
.nothing.ctr20{text-align:center;padding:20px 0}
.nothing.pv12{padding:12px 0}
.nothing.padbig{padding:16px 2px 22px}
.rot180{transform:rotate(180deg)}
.hbk .txt p.hbnote{color:var(--ink3);font-size:11.5px;margin-top:8px}
.icx{color:var(--ink3);display:grid;width:14px}
.chip.mt1,.icx.mt1{margin-top:1px}
.chip.mt2{margin:2px 0 0}
.chip.m0{margin:0}
.chip.got{border-color:var(--line2)}
.tdue{color:var(--due-ink)}
.strike{text-decoration:line-through;color:var(--ink3)}
.ln.c2{grid-template-columns:1fr auto}
.ln.c3{grid-template-columns:auto 1fr auto}
.ln.c2m{grid-template-columns:minmax(0,1fr) auto}
.ln.c60{grid-template-columns:60px minmax(0,1fr) auto}
.ln .pintxt{font-weight:400;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.logl.c3{grid-template-columns:28px minmax(0,1fr) auto}
.bw.p0,.pg.p0{padding:0}
.dhead{display:flex;align-items:flex-start;gap:10px}
.grow{flex:1;min-width:0}
.fx1{flex:1}
.donebtn.mt10{margin-top:10px}
.wb.tight{padding:2px 13px 4px}
.calhd h3.sm{font-size:19px}
.nc .qt{font-weight:400;color:var(--ink2)}
.clamp2{-webkit-line-clamp:2}
.icobtn.s30{width:30px;height:30px}
.dnav button:disabled{opacity:.3}
.rlbl.big{fill:var(--ink2);font-size:10.5px}
.pchips.mt8{margin-top:8px}
.fsel.mb11{margin-bottom:11px}
.fin.h104{height:104px}
.fin.h86{height:86px}
.fgrid.qty{grid-template-columns:88px 1fr}
.optrow b{display:block;font:600 14px 'Inter'}
.optrow .sub{display:block;font-size:11.5px;color:var(--ink3);margin-top:1px}
