/* Fokus – Oberfläche im Stil hochwertiger iOS-Apps: große Titel, gruppierte Listen, Haarlinien, System-Schrift, ruhige Bewegung. */
/* Schwarz-Weiß: weißer Grund, schwarze Konturen; Farbe nur für die Prioritätspunkte */
:root{
  --bg:#FFFFFF; --card:#FFFFFF; --card2:#F4F4F4; --ink:#000000; --ink2:#5A5A5A; --ink3:#9A9A9A;
  --sep:#000000; --sep-soft:#E3E3E3; --fill:#F2F2F2; --fill2:#DDDDDD; --outline:1.5px;
  --tint:#000000; --tint-ink:#FFFFFF; --tint-soft:#F2F2F2; --tint-soft-ink:#000000;
  --red:#000000; --red-soft:#F2F2F2; --orange:#000000; --orange-soft:#F2F2F2; --green:#000000; --green-soft:#F2F2F2;
  --purple:#000000; --purple-soft:#F2F2F2;
  --p-low:#2FBF71; --p-mid:#F2C200; --p-high:#E5322D;
  --blur:saturate(120%) blur(16px);
  --shadow:none;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter",system-ui,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,"IBM Plex Mono",monospace;
  --r:14px; --ease:cubic-bezier(.2,.8,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#000000; --card:#000000; --card2:#111111; --ink:#FFFFFF; --ink2:#B0B0B0; --ink3:#6E6E6E;
  --sep:#FFFFFF; --sep-soft:#2A2A2A; --fill:#161616; --fill2:#2E2E2E;
  --tint:#FFFFFF; --tint-ink:#000000; --tint-soft:#161616; --tint-soft-ink:#FFFFFF;
  --red:#FFFFFF; --red-soft:#161616; --orange:#FFFFFF; --orange-soft:#161616; --green:#FFFFFF; --green-soft:#161616;
  --purple:#FFFFFF; --purple-soft:#161616;
  --p-low:#3ED47F; --p-mid:#FFD54A; --p-high:#FF5A4F;
}}
:root[data-theme="dark"]{
  --bg:#000000; --card:#000000; --card2:#111111; --ink:#FFFFFF; --ink2:#B0B0B0; --ink3:#6E6E6E;
  --sep:#FFFFFF; --sep-soft:#2A2A2A; --fill:#161616; --fill2:#2E2E2E;
  --tint:#FFFFFF; --tint-ink:#000000; --tint-soft:#161616; --tint-soft-ink:#FFFFFF;
  --red:#FFFFFF; --red-soft:#161616; --orange:#FFFFFF; --orange-soft:#161616; --green:#FFFFFF; --green-soft:#161616;
  --purple:#FFFFFF; --purple-soft:#161616;
  --p-low:#3ED47F; --p-mid:#FFD54A; --p-high:#FF5A4F;
}
/* Kompatibilitäts-Aliase für ältere Klassen */
:root{--accent:var(--tint);--accent-ink:var(--tint-ink);--accent-soft:var(--tint-soft);--accent-soft-ink:var(--tint-soft-ink);--over:var(--red);--over-soft:var(--red-soft);--today:var(--orange);--today-soft:var(--orange-soft);--ok:var(--green);--ok-soft:var(--green-soft);--idea:var(--purple);--idea-soft:var(--purple-soft);--muted:var(--ink2);--line:var(--sep);--line-strong:var(--sep)}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.35 var(--font);min-height:100%;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input,textarea,select{font:inherit;color:inherit;-webkit-appearance:none;appearance:none}
button{cursor:pointer;background:none;border:0;padding:0;touch-action:manipulation;user-select:none;-webkit-user-select:none}
button:active{opacity:.6}
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--tint-soft)}
h1,h2,h3{margin:0;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:34px;font-weight:700;line-height:1.15}
h2{font-size:22px;font-weight:700}
p{margin:0}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--ink2)}
.hide{display:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}

/* ---------- Kopf (Large Title) ---------- */
.top{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.top-in{max-width:640px;margin:0 auto;padding:calc(.9rem + env(safe-area-inset-top)) 1.1rem .6rem;display:flex;align-items:flex-end;gap:.6rem}
.top-in .grow{flex:1;min-width:0}
.date{font-size:13px;font-weight:600;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.15rem}
.sync{font-size:12px;color:var(--ink2);white-space:nowrap;display:flex;align-items:center;gap:.35rem;padding-bottom:.55rem}
.sync i{width:.45rem;height:.45rem;border-radius:50%;background:var(--ink);display:inline-block}
.sync[data-s="busy"] i{animation:pulse 1s infinite}
.sync[data-s="err"] i{background:transparent;border:1.5px solid var(--ink)}
@keyframes pulse{50%{opacity:.3}}
.wrap{max-width:640px;margin:0 auto;padding:.4rem 1rem calc(6.5rem + env(safe-area-inset-bottom))}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--card);color:var(--ink);border:var(--outline) solid var(--sep);border-radius:12px;padding:.75rem 1.1rem;font-weight:600;font-size:17px;min-height:48px;line-height:1.2;transition:transform .12s var(--ease),opacity .12s}
.btn:active{transform:scale(.97);opacity:.8}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:transparent;text-decoration:underline;text-underline-offset:3px}
.btn.danger{color:var(--ink);background:var(--card);border-style:dashed}
.btn.sm{padding:.45rem .8rem;min-height:36px;font-size:15px;border-radius:10px}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn svg{width:18px;height:18px;flex:none}
.icon-btn{width:38px;height:38px;border-radius:50%;background:var(--card);border:var(--outline) solid var(--sep);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;flex:none}
.icon-btn.on{background:var(--ink);color:var(--bg)}
.icon-btn svg{width:20px;height:20px}

/* ---------- Untere Werkzeugleiste ---------- */
.toolbar{position:fixed;left:0;right:0;bottom:0;z-index:6;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-top:var(--outline) solid var(--sep);padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom))}
.toolbar-in{max-width:640px;margin:0 auto;display:flex;gap:.6rem;align-items:center}
.toolbar .tb{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:50px;border-radius:14px;font-weight:600;font-size:16px;border:var(--outline) solid var(--ink)}
.toolbar .tb.main{background:var(--ink);color:var(--bg);flex:1.4}
.toolbar .tb.sec{background:var(--card);color:var(--ink)}
.toolbar .tb svg{width:20px;height:20px}

/* ---------- Gruppierte Listen ---------- */
.sec{margin-top:1.4rem}
.eyebrow{font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--ink2);padding:0 .35rem;margin-bottom:.45rem;display:flex;align-items:center;gap:.5rem}
.eyebrow::after{content:none}
.list{background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);overflow:hidden}
.list>*+*{position:relative}
.list>*+*::before{content:"";position:absolute;left:1rem;right:0;top:0;height:1px;background:var(--sep-soft)}
.list .row{position:relative}
.list>.focus-card{padding-left:0}
.card{background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r)}
.card+.card{margin-top:.6rem}
.row{display:flex;gap:.8rem;align-items:center;padding:.8rem 1rem;width:100%;text-align:left;min-height:52px;transition:background .15s}
.row:active{background:var(--fill);opacity:1}
.row::after{content:"";width:8px;height:8px;border-right:2px solid var(--ink3);border-bottom:2px solid var(--ink3);transform:rotate(-45deg);flex:none;margin-left:.2rem}
.row .body{flex:1;min-width:0}
.row .t{font-weight:500;font-size:17px;line-height:1.3;letter-spacing:-.01em}
.row .k{font-size:13px;color:var(--ink2);margin-top:.25rem;display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:center}
.score{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}
.score.hot,.score.warm{color:var(--ink)}
.pill{display:inline-block;font-size:12px;font-weight:500;padding:.05rem .5rem;border-radius:999px;border:1px solid var(--ink3);color:var(--ink2);line-height:1.5;background:transparent}
.pill.over{color:var(--bg);background:var(--ink);border-color:var(--ink);font-weight:600}
.pill.today{color:var(--ink);border-color:var(--ink);font-weight:600}
.pill.ok{color:var(--ink);border-color:var(--ink)}
.pill.idea{border-style:dashed}
.pill.acc{color:var(--ink);border-color:var(--ink)}
.empty{padding:1.4rem 1rem;color:var(--ink2);text-align:center;background:var(--card);border:var(--outline) dashed var(--ink3);border-radius:var(--r);font-size:15px}
.prog{height:4px;background:var(--sep-soft);border-radius:2px;overflow:hidden;margin-top:.55rem}
.prog b{display:block;height:100%;background:var(--ink);width:0;transition:width .3s var(--ease)}
.focus-card .num{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);font-weight:700;font-size:15px;display:inline-flex;align-items:center;justify-content:center;flex:none;align-self:flex-start;margin-top:.15rem}
.fw{font-size:14px;color:var(--ink2);margin-top:.2rem;line-height:1.35}
.fw b{color:var(--ink);font-weight:500}
.notnow{font-size:14px;color:var(--ink2);margin-top:.6rem;padding:.6rem .9rem;background:var(--card);border:var(--outline) solid var(--sep);border-radius:12px}
.notnow b{color:var(--ink);font-weight:600}
details.x{margin-top:1.4rem;background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);padding:.2rem 1rem}
details.x summary{cursor:pointer;font-size:16px;font-weight:500;padding:.65rem 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
details.x summary::-webkit-details-marker{display:none}
details.x summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--ink3);border-bottom:2px solid var(--ink3);transform:rotate(45deg);transition:transform .2s}
details.x[open] summary::after{transform:rotate(-135deg)}
details.x>*:not(summary){padding-bottom:.8rem}
pre.out{background:var(--bg);border:1px solid var(--ink3);border-radius:10px;padding:.8rem;font:12px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;margin:.3rem 0 .6rem}
.rules{font-size:15px;color:var(--ink2);line-height:1.5}
.rules b{color:var(--ink);font-weight:600}
.big-add{display:none}
.review-card .body .t{font-weight:600}
.inbox-item{padding:.8rem 1rem}
.inbox-item .st{font-size:13px;display:inline-flex;align-items:center;gap:.4rem;color:var(--ink2);font-weight:500}
.inbox-item .st i{width:.45rem;height:.45rem;border-radius:50%;background:var(--ink3);display:inline-block}
.inbox-item[data-s="läuft"] .st i,.inbox-item[data-s="neu"] .st i{background:var(--ink);animation:pulse 1s infinite}
.inbox-item[data-s="fehler"] .st i{background:transparent;border:1.5px solid var(--ink)}
.inbox-item[data-s="verarbeitet"] .st i{background:var(--ink)}
.inbox-item .tx{font-size:15px;color:var(--ink2);margin-top:.3rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}

/* ---------- Sheet (Dialog / Sprachnachricht) ---------- */
.wiz{max-width:640px;margin:0 auto;padding:.5rem 1rem 9.5rem;animation:sheet-in .32s var(--ease)}
@keyframes sheet-in{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.wiz-head{position:relative;display:flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;padding-top:calc(.4rem + env(safe-area-inset-top))}
.wiz-head::before{content:"";position:absolute;left:50%;top:.45rem;width:36px;height:5px;border-radius:3px;background:var(--fill2);transform:translateX(-50%)}
.wiz-head .icon-btn{width:34px;height:34px}
.steps-dots{display:flex;gap:.3rem;flex:1;padding:0 .3rem}
.steps-dots i{height:4px;flex:1;background:var(--fill2);border-radius:2px;transition:background .3s}
.steps-dots i.done{background:var(--ink)}
.q{font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.02em}
.q-hint{color:var(--ink2);margin-top:.5rem;font-size:15px;line-height:1.4}
.field{position:relative;margin-top:1rem}
textarea.ans,input.ans{width:100%;background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);padding:.9rem 3.4rem .9rem 1rem;font-size:17px;line-height:1.4;resize:none;min-height:8rem}
textarea.ans.short{min-height:4.4rem}
input.ans{min-height:0;padding-right:1rem;height:50px}
textarea.ans:focus,input.ans:focus{box-shadow:0 0 0 3px var(--fill2)}
textarea.ans::placeholder,input.ans::placeholder{color:var(--ink3)}
.mic{position:absolute;right:.55rem;top:.55rem;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;justify-content:center;transition:transform .15s var(--ease)}
.mic:active{transform:scale(.92)}
.mic svg{width:20px;height:20px}
.mic.rec{background:var(--p-high);color:#fff;animation:pulse 1.2s infinite}
.mic-note{font-size:14px;color:var(--ink2);margin-top:.5rem;min-height:1.3em}
.voice textarea.ans{min-height:38vh}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.chip{background:var(--card);color:var(--ink);border:var(--outline) solid var(--sep);border-radius:999px;padding:.6rem 1rem;font-weight:500;font-size:16px;min-height:44px;transition:transform .12s var(--ease),background .15s}
.chip:active{transform:scale(.96)}
.chip.on{background:var(--ink);color:var(--bg)}
.chip small{display:block;font-weight:400;font-size:12px;opacity:.75}
.chip[disabled]{opacity:.4}
.preview{margin-top:1rem}
.preview .eyebrow{margin-bottom:.4rem}
ol.steps{list-style:none;margin:0;padding:0}
ol.steps li{display:grid;grid-template-columns:1.7rem 1fr;column-gap:.5rem;row-gap:.25rem;align-items:start;padding:.65rem 0;border-top:1px solid var(--sep-soft)}
ol.steps li:first-child{border-top:0}
ol.steps li .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);color:var(--ink);font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;grid-row:1/3;margin-top:.1rem}
ol.steps li .txt{min-width:0;font-size:16px}
ol.steps li input.st{width:100%;border:0;background:transparent;padding:.15rem 0;font-size:16px}
ol.steps li input.st:focus{box-shadow:none;border-bottom:1px solid var(--tint)}
ol.steps li .ctlrow{grid-column:2;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
ol.steps li .ctl{display:flex;gap:.1rem;margin-left:auto}
ol.steps li .ctl button{width:32px;height:32px;border-radius:8px;color:var(--ink2);display:inline-flex;align-items:center;justify-content:center}
ol.steps li .ctl button svg{width:16px;height:16px}
ol.steps li select.min,ol.steps li select.imp-sel{background:var(--card);border:1px solid var(--ink3)!important;border-radius:8px;padding:.25rem 1.4rem .25rem .5rem;font-size:13px;font-weight:500;color:var(--ink);border:0;background-image:linear-gradient(45deg,transparent 50%,var(--ink2) 50%),linear-gradient(135deg,var(--ink2) 50%,transparent 50%);background-position:calc(100% - 11px) 55%,calc(100% - 7px) 55%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}
ol.steps li select.min.warn{border-color:var(--ink)!important;font-weight:600}
.warn-line{font-size:14px;color:var(--ink);font-weight:600;margin-top:.5rem}
.review{padding:1rem 1rem .8rem}
.review .meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}
.review .blk{margin-top:1rem}
.review .blk .eyebrow{margin-bottom:.35rem;padding:0}
.review input.inl,.review textarea.inl{width:100%;border:1px solid var(--ink3);border-radius:10px;padding:.6rem .8rem;background:var(--bg);font-size:16px}
.review textarea.inl{min-height:3.6rem;resize:vertical}
.review input.inl:focus,.review textarea.inl:focus{border-color:var(--ink);box-shadow:none}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:5;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-top:var(--outline) solid var(--sep);padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom))}
.bar-in{max-width:640px;margin:0 auto;display:flex;gap:.6rem;align-items:center}
.bar-in .grow{flex:1}
.bar-in .btn.primary{min-width:8.5rem;border-radius:14px}
.rank-box{background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);padding:1rem;margin-top:1rem}
.rank-box .big{font-size:40px;font-weight:700;color:var(--ink);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.rank-box .bd{font-size:13px;color:var(--ink2);margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.3rem .8rem}
.rank-list{margin-top:.8rem;border-top:1px solid var(--sep-soft)}
.rank-list div{display:flex;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--sep-soft);font-size:15px;align-items:baseline}
.rank-list div.me{font-weight:700;color:var(--ink)}
.rank-list .sc{font-family:var(--mono);min-width:2.2rem;text-align:right;font-size:13px;color:var(--ink2)}
.hint{margin-top:.8rem;padding:.75rem 1rem;border-radius:12px;border:1px dashed var(--ink);color:var(--ink);font-size:15px;line-height:1.4}
.hint.acc{border-style:solid}
.date-inline{display:flex;gap:.5rem;margin-top:.8rem;flex-wrap:wrap;align-items:center}
.date-inline input{background:var(--card);border:var(--outline) solid var(--sep);border-radius:10px;padding:.55rem .7rem;font-size:16px;min-height:44px;color:var(--ink)}
.date-inline label.tl{display:inline-flex;align-items:center;gap:.35rem;font-size:14px;color:var(--ink2)}
.due-echo{margin-top:.6rem;font-size:14px;font-weight:600;color:var(--bg);background:var(--ink);display:inline-block;padding:.25rem .7rem;border-radius:8px}
.q-list{margin-top:.6rem}
.q-list div{padding:.6rem .9rem;border-radius:10px;border:1px dashed var(--ink);color:var(--ink);font-size:14px;margin-top:.35rem}

/* ---------- Detail ---------- */
.det h1{font-size:28px;line-height:1.2}
.det .meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.det .blk{margin-top:1.3rem}
.det .blk>p{background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);padding:.8rem 1rem;font-size:16px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-size:15px;margin:.8rem 0 0;background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r);padding:.8rem 1rem}
.kv dt{font-size:13px;color:var(--ink2);padding-top:.1rem}
.kv dd{margin:0}
ul.wo{margin:0;padding:.6rem 1rem .6rem 2.2rem;font-size:15px;background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r)}
ul.wo li{margin:.2rem 0}
.chk{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem 1rem;width:100%;text-align:left;position:relative}
.chk+.chk::before{content:"";position:absolute;left:3.1rem;right:0;top:0;height:1px;background:var(--sep-soft)}
.chk .box{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);flex:none;display:inline-flex;align-items:center;justify-content:center;margin-top:.05rem;transition:all .18s var(--ease)}
.chk .box svg{width:14px;height:14px}
.chk.done .box{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.chk.done .txt{text-decoration:line-through;color:var(--ink2)}
.chk .txt{flex:1;font-size:16px}
.chk .m{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
.imp{font-size:11px;font-weight:600;padding:.05rem .4rem;border-radius:6px;border:1px solid var(--ink3);color:var(--ink2);vertical-align:middle}
.imp[data-i="1"]{color:var(--ink);border-color:var(--ink)}
.addstep{display:flex;gap:.5rem;margin-top:.5rem}
.addstep input{flex:1;border:var(--outline) solid var(--sep);border-radius:10px;padding:.6rem .8rem;background:var(--card);font-size:16px;min-height:44px}
.editbox{margin-top:1.2rem;padding:1rem;background:var(--card);border:var(--outline) solid var(--sep);border-radius:var(--r)}
.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.4rem}
.edit-grid label{font-size:13px;color:var(--ink2);display:block}
.edit-grid input,.edit-grid select,.edit-grid textarea{width:100%;border:1px solid var(--ink3);border-radius:10px;padding:.55rem .7rem;background:var(--bg);margin-top:.2rem;font-size:16px;min-height:42px}
.edit-grid .full{grid-column:1/-1}
.gcal{font-size:13px;color:var(--ink2)}
.gcal.err{color:var(--ink);font-weight:600}
.toast{position:fixed;left:50%;bottom:calc(6rem + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.65rem 1.1rem;border-radius:999px;font-size:15px;font-weight:500;z-index:9;box-shadow:var(--shadow);max-width:90vw;display:flex;align-items:center;gap:.8rem;animation:toast-in .25s var(--ease)}
@keyframes toast-in{from{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
.toast-btn{border:1px solid var(--bg);background:transparent;color:var(--bg);border-radius:999px;padding:.3rem .8rem;font-weight:600;font-size:14px}

/* ---------- Login / Sheet-Auswahl ---------- */
.login{max-width:360px;margin:20vh auto 0;padding:1.5rem;text-align:center}
.login h1{font-size:40px}
.login input{width:100%;font-size:28px;text-align:center;letter-spacing:.35em;border:var(--outline) solid var(--sep);border-radius:14px;padding:.8rem;background:var(--card);margin-top:1.4rem;font-family:var(--mono)}
.login .btn{width:100%;margin-top:.8rem}
.login .err{color:var(--ink);font-weight:600;margin-top:.6rem;min-height:1.3em;font-size:14px}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.sheet{background:var(--card);border:var(--outline) solid var(--sep);border-bottom:0;border-radius:20px 20px 0 0;width:100%;max-width:640px;padding:1.2rem 1rem calc(1.4rem + env(safe-area-inset-bottom));box-shadow:var(--shadow);animation:sheet-in .3s var(--ease);position:relative}
.sheet::before{content:"";position:absolute;left:50%;top:.5rem;width:36px;height:5px;border-radius:3px;background:var(--fill2);transform:translateX(-50%)}
.sheet .opt{display:flex;gap:.9rem;align-items:center;width:100%;text-align:left;background:var(--bg);border:var(--outline) solid var(--sep);border-radius:14px;padding:.9rem 1rem;margin-top:.6rem}
.sheet .opt .ic{width:44px;height:44px;border-radius:12px;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;justify-content:center;flex:none}
.sheet .opt .ic svg{width:24px;height:24px}
.sheet .opt b{display:block;font-weight:600}
.sheet .opt span{font-size:14px;color:var(--ink2)}

/* ---------- Prioritätspunkte: grün leicht · gelb mittel · rot hoch ---------- */
.dots{display:inline-flex;gap:4px;flex:none;align-items:center}
.dots i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink3);box-sizing:border-box}
.dots i.on{border-color:transparent}
.dots[data-p="niedrig"] i.on{background:var(--p-low)}
.dots[data-p="mittel"] i.on{background:var(--p-mid)}
.dots[data-p="hoch"] i.on{background:var(--p-high)}
.dots.lg i{width:12px;height:12px}
.chip .dots{margin-left:.4rem;vertical-align:middle}
.row .dots{margin-left:.2rem}

/* ---------- Reiter + Prioritätsmeter ---------- */
.seg{display:flex;border:var(--outline) solid var(--sep);border-radius:12px;overflow:hidden;margin:.2rem 0 .2rem}
.seg button{flex:1;padding:.55rem .6rem;font-weight:600;font-size:15px;color:var(--ink);background:var(--card)}
.seg button+button{border-left:var(--outline) solid var(--sep)}
.seg button.on{background:var(--ink);color:var(--bg)}
.num-s{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ink);font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:none;align-self:flex-start;margin-top:.15rem}
.rank{font-family:var(--mono);font-size:13px;color:var(--ink2);min-width:1.6rem;text-align:right;align-self:flex-start;padding-top:.25rem}

/* ---------- Gespräch ---------- */
.prio{padding-bottom:9rem}
.chat{display:flex;flex-direction:column;gap:.5rem}
.msg{display:flex}
.msg.me{justify-content:flex-end}
.msg .bub{max-width:88%;padding:.6rem .85rem;border-radius:16px;font-size:15px;line-height:1.4;border:var(--outline) solid var(--sep);background:var(--card)}
.msg.me .bub{background:var(--ink);color:var(--bg);border-color:var(--ink);border-bottom-right-radius:6px}
.msg.ai .bub{border-bottom-left-radius:6px}
.msg.ai{flex-direction:column;align-items:flex-start;gap:.35rem}
.bub.think{color:var(--ink2)}
.prop{max-width:88%;border:1px dashed var(--ink);border-radius:12px;padding:.55rem .75rem;font-size:14px}
.prop .pt{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2);margin-bottom:.25rem}
.prop .pl{margin:.15rem 0}
.prop .pl.link{display:block;text-align:left;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.prop .btn{margin-top:.45rem}
.chatbar .field textarea.ans{min-height:48px;max-height:30vh;padding:.75rem 3.2rem .75rem .9rem;font-size:16px}
.chatbar .mic{width:38px;height:38px;top:5px;right:5px}
.chatbar .mic svg{width:18px;height:18px}
