/* Hanken Grotesk (SIL OFL, siehe fonts/OFL.txt), variable Schrift 400-700 */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/hanken-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}
/* Alpha Dashboard · Styles aus entwuerfe/stil-4.html (freigegebenes Design), unverändert übernommen; App-Ergänzungen am Ende */
*,*::before,*::after{box-sizing:border-box}body{margin:0}img{max-width:100%}[hidden]{display:none!important}:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --sub:#F7FAF9; --ink:#0F1F1B; --muted:#4F5F5A; --faint:#71817C;
  --line:#E1EAE6; --line-strong:#C8D6D0; --mist:#EDF6F2;
  --primary:#005E52; --primary-ink:#FFFFFF; --primary-deep:#003F37; --signal:#00A075;
  --hl:rgba(0,160,117,.13); --hl-line:#00A075;
  --warn:#8A5F0E; --warn-bg:#FBF3E2; --warn-line:#E8D3A6;
  --crit:#9E3A30; --crit-bg:#FBECEA; --crit-line:#EDC7C1;
  --rail:#003F37; --rail-ink:rgba(255,255,255,.70); --rail-ink-strong:#FFFFFF; --rail-line:rgba(255,255,255,.10); --rail-hover:rgba(255,255,255,.07);
  --paper:#FFFFFF; --paper-ink:#1d2a26; --paper-line:#d9e1de;
  --sans:'Hanken Grotesk','Helvetica Neue',Arial,sans-serif;
  --cond:'Hanken Grotesk','Helvetica Neue',Arial,sans-serif;
  --r:12px; --r-lg:16px; --pill:999px;
  --bub-a:rgba(0,160,117,.16); --bub-b:rgba(0,94,82,.10); --bub-hi:rgba(255,255,255,.75);
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0D1613; --surface:#111C19; --sub:#15211E; --ink:#E3EDE9; --muted:#A1B2AC; --faint:#7F918B;
    --line:#22322D; --line-strong:#33463F; --mist:#15302A;
    --primary:#13806D; --primary-ink:#FFFFFF; --primary-deep:#0A4A40; --signal:#2DC497;
    --hl:rgba(45,196,151,.16); --hl-line:#2DC497;
    --warn:#E0B566; --warn-bg:#2A2312; --warn-line:#4A3D1E;
    --crit:#EE9A90; --crit-bg:#2E1715; --crit-line:#5A2C27;
    --rail:#062621; --rail-line:rgba(255,255,255,.08);
    --paper:#F4F2EC; --paper-ink:#1d2a26; --paper-line:#d6d9d3;
    --bub-a:rgba(45,196,151,.13); --bub-b:rgba(19,128,109,.12); --bub-hi:rgba(255,255,255,.08);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0D1613; --surface:#111C19; --sub:#15211E; --ink:#E3EDE9; --muted:#A1B2AC; --faint:#7F918B;
  --line:#22322D; --line-strong:#33463F; --mist:#15302A;
  --primary:#13806D; --primary-ink:#FFFFFF; --primary-deep:#0A4A40; --signal:#2DC497;
  --hl:rgba(45,196,151,.16); --hl-line:#2DC497;
  --warn:#E0B566; --warn-bg:#2A2312; --warn-line:#4A3D1E;
  --crit:#EE9A90; --crit-bg:#2E1715; --crit-line:#5A2C27;
  --rail:#062621; --rail-line:rgba(255,255,255,.08);
  --paper:#F4F2EC; --paper-ink:#1d2a26; --paper-line:#d6d9d3;
  --bub-a:rgba(45,196,151,.13); --bub-b:rgba(19,128,109,.12); --bub-hi:rgba(255,255,255,.08);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--primary)}
h1,h2,h3,h4{margin:0;font-weight:600;text-wrap:balance}
p{margin:0}
.num,.money{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:3px}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
svg.i.s{width:15px;height:15px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Layout ---------- */
.app{display:grid;grid-template-columns:64px 264px minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,var(--rail) 0 64px,var(--sub) 64px 327px,var(--line) 327px 328px,transparent 328px)}
.app.no-ctx{grid-template-columns:64px minmax(0,1fr);background:linear-gradient(to right,var(--rail) 0 64px,transparent 64px)}
.app.no-ctx .ctx{display:none}

/* Rail */
.rail{position:sticky;top:0;height:100vh;z-index:40}
.rail-inner{position:absolute;inset:0 auto 0 0;width:64px;background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;padding:12px 10px;overflow:hidden;transition:width .16s ease}
.rail:hover .rail-inner,.rail:focus-within .rail-inner,.app.rail-open .rail-inner{width:232px;box-shadow:1px 0 0 rgba(0,0,0,.2)}
.mono{display:flex;align-items:center;gap:12px;height:40px;padding:0 4px;margin-bottom:10px;color:#fff;text-decoration:none;white-space:nowrap}
.mono-a{width:36px;height:36px;flex:none;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:3px;font-family:var(--cond);font-weight:700;font-size:20px;letter-spacing:-.02em}
.mono-t{display:flex;flex-direction:column;line-height:1.1}
.mono-t{opacity:0;transition:opacity .12s}
.rail:hover .mono-t,.rail:focus-within .mono-t,.app.rail-open .mono-t{opacity:1}
.app.no-ctx .crumb::before{content:"Alpha";font-family:var(--cond);font-weight:700;font-size:18px;color:var(--primary);margin-right:6px;padding-right:12px;border-right:1px solid var(--line)}
.mono-t b{font-family:var(--cond);font-weight:700;font-size:19px;letter-spacing:.01em}
.mono-t small{font-size:11px;color:var(--rail-ink);letter-spacing:.04em}
.rail-group{border-top:1px solid var(--rail-line);padding-top:8px;margin-top:8px;display:flex;flex-direction:column;gap:2px}
.rail-cap{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.42);height:18px;padding-left:12px;white-space:nowrap;opacity:0;transition:opacity .12s}
.rail:hover .rail-cap,.rail:focus-within .rail-cap,.app.rail-open .rail-cap{opacity:1}
.ri{position:relative;display:flex;align-items:center;gap:14px;height:36px;padding:0 12px;border:0;background:none;border-radius:3px;color:var(--rail-ink);cursor:pointer;white-space:nowrap;text-align:left;width:100%}
.ri:hover{background:var(--rail-hover);color:#fff}
.ri .lbl{opacity:0;transition:opacity .12s;font-size:13.5px}
.rail:hover .ri .lbl,.rail:focus-within .ri .lbl,.app.rail-open .ri .lbl{opacity:1}
.ri.active{color:#fff;background:rgba(255,255,255,.09)}
.ri.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:2px;background:var(--signal)}
.ri .cnt{margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.6);opacity:0}
.rail:hover .ri .cnt,.app.rail-open .ri .cnt{opacity:1}
.ri .dot{position:absolute;left:30px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--signal)}
.rail-foot{margin-top:auto}
.rail .ri[hidden]{display:none}

/* Context column */
.ctx{position:sticky;top:0;height:100vh;overflow:auto;border-right:1px solid var(--line);background:var(--sub);display:flex;flex-direction:column}
.ctx-brand{padding:16px 18px 14px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:8px}
.ctx-brand b{font-family:var(--cond);font-weight:700;font-size:20px;color:var(--primary-deep);letter-spacing:.01em}
:root[data-theme="dark"] .ctx-brand b{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ctx-brand b{color:var(--ink)}}
.ctx-brand span{font-size:11.5px;color:var(--muted);letter-spacing:.03em}
.ctx-head{padding:16px 18px 8px}
.ctx-head h2{font-family:var(--cond);font-size:17px;font-weight:600}
.ctx-head p{color:var(--muted);font-size:12.5px;margin-top:2px}
.ctx-body{padding:4px 10px 24px;flex:1}
.ctx-sec{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding:14px 8px 6px}
.ci{display:flex;align-items:center;gap:10px;width:100%;padding:8px 8px;border:0;background:none;border-radius:3px;text-align:left;cursor:pointer;color:var(--ink)}
.ci:hover{background:var(--mist)}
.ci.active{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);}
.ci.active::after{content:"";width:2px;align-self:stretch;background:var(--signal);margin-left:auto;margin-right:-8px;border-radius:1px}
.ci .t{display:flex;flex-direction:column;min-width:0;flex:1}
.ci .t b{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci .t small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci .meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap}
.ci.active .meta{display:none}
.ini{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:600;letter-spacing:.02em;background:var(--mist);color:var(--primary);border:1px solid var(--line)}
.ini.f{border-radius:3px}
.ctx-search{margin:6px 8px 4px;position:relative}
.ctx-search input{width:100%;height:32px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:0 10px 0 30px;font-size:13px}
.ctx-search svg{position:absolute;left:9px;top:8px;color:var(--faint)}
.pips{display:flex;gap:3px;margin-top:3px}
.pip{width:14px;height:3px;border-radius:1px;background:var(--line)}
.pip.on{background:var(--signal)}
.pip.half{background:var(--line-strong)}

/* Main */
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;height:56px;display:flex;align-items:center;gap:10px;padding:0 24px;background:var(--bg);border-bottom:1px solid var(--line)}
.crumb{display:flex;align-items:center;gap:6px;min-width:0;color:var(--muted);font-size:13px}
.crumb b{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumb .sep{color:var(--line-strong)}
.top .sp{flex:1}
.btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap;color:var(--ink)}
.btn:hover{border-color:var(--primary);color:var(--primary)}
.btn.pri{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn.pri:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}
.btn.ghost{border-color:transparent;background:none}
.btn.ghost:hover{background:var(--mist);color:var(--ink)}
.btn.sm{height:28px;padding:0 10px;font-size:12.5px}
.btn.icon{width:32px;padding:0;justify-content:center}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.searchbtn{width:260px;justify-content:flex-start;color:var(--muted);font-weight:400}
.searchbtn kbd{margin-left:auto}
kbd{font-family:var(--sans);font-size:11px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:3px;padding:0 5px;color:var(--muted);background:var(--sub)}
.rolebox{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.rolebox select{height:32px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);padding:0 28px 0 10px;font-size:13px;color:var(--ink);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234F5F5A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-deep);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;letter-spacing:.03em;flex:none}
.rolebar{display:none;align-items:center;gap:10px;padding:7px 24px;background:var(--warn-bg);border-bottom:1px solid var(--warn-line);color:var(--warn);font-size:12.5px}
.rolebar.on{display:flex}
.rolebar button{margin-left:auto}
.mob-only{display:none}

.view{display:none;padding:24px 28px 64px;max-width:1360px;width:100%}
.view.on{display:block}
.vh{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.vh h1{font-family:var(--cond);font-size:26px;font-weight:600;letter-spacing:-.005em;line-height:1.1}
.vh p{color:var(--muted);margin-top:4px}
.vh .act{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500}
.muted{color:var(--muted)}
.faint{color:var(--faint)}

/* Generic blocks */
.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.ph{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.ph h3{font-size:14px;font-weight:600}
.ph .r{margin-left:auto;display:flex;gap:6px;align-items:center}
.sec-title{display:flex;align-items:baseline;gap:10px;margin:28px 0 10px}
.sec-title h2{font-family:var(--cond);font-size:18px;font-weight:600}
.sec-title .r{margin-left:auto}
.hl-list{list-style:none;margin:0;padding:0}
.hl-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.hl-list li:first-child{border-top:0}
.hl-list .tx{flex:1;min-width:0}
.hl-list .tx b{font-weight:500;display:block}
.hl-list .tx small{color:var(--muted);font-size:12.5px}
.hl-list .due{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:3px;font-size:11.5px;font-weight:500;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;background:var(--surface)}
.tag.ok{color:var(--primary);border-color:color-mix(in srgb,var(--signal) 45%,var(--line))}
.tag.warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg)}
.tag.crit{color:var(--crit);border-color:var(--crit-line);background:var(--crit-bg)}
.tag.solid{background:var(--mist);border-color:transparent;color:var(--primary)}
.chk{width:16px;height:16px;border:1.5px solid var(--line-strong);border-radius:3px;flex:none;margin-top:2px;background:var(--surface);cursor:pointer;display:grid;place-items:center;padding:0}
.chk.done{background:var(--signal);border-color:var(--signal)}
.chk.done::after{content:"";width:8px;height:4px;border:1.5px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.done-tx{text-decoration:line-through;color:var(--faint)}
.tbl-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{text-align:left;font-weight:500;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
table.t td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
table.t tr:last-child td{border-bottom:0}
table.t td.r,table.t th.r{text-align:right}
table.t tbody tr.click{cursor:pointer}
table.t tbody tr.click:hover td{background:var(--sub)}
.lnk{background:none;border:0;padding:0;color:var(--primary);cursor:pointer;font-weight:500;text-align:left}
.lnk:hover{text-decoration:underline}
.lock{display:inline-flex;align-items:center;gap:6px;color:var(--faint);font-size:12.5px}

/* ---------- Start ---------- */
.today{display:grid;grid-template-columns:minmax(200px,1.2fr) repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.today>div{padding:14px 16px;border-left:1px solid var(--line);min-width:0}
.today>div:first-child{border-left:0;background:var(--mist)}
.today .d1{font-size:12px;color:var(--muted)}
.today .d2{font-family:var(--cond);font-size:21px;font-weight:600;line-height:1.15;margin-top:2px}
.today button.k{all:unset;cursor:pointer;display:block;border-radius:2px}
.today button.k:focus-visible{outline:2px solid var(--signal);outline-offset:4px}
.today .kvv{font-family:var(--cond);font-size:30px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.today .kl{font-size:12.5px;color:var(--muted);margin-top:6px}
.today .kvv.warn{color:var(--crit)}
.bereiche3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);margin-top:20px;background:var(--surface)}
.bcol{padding:18px 20px 16px;border-left:1px solid var(--line);min-width:0}
.bcol:first-child{border-left:0}
.bcol[hidden]{display:none}
.bcol-h{display:flex;align-items:center;gap:8px;color:var(--primary)}
.bcol-h h2{font-family:var(--cond);font-size:17px;font-weight:600;color:var(--ink)}
.bcol-h .lnk{margin-left:auto;font-size:12.5px}
.figs{display:grid;grid-template-columns:1fr 1fr;margin:14px 0 6px;border-top:1px solid var(--line)}
.fig{padding:10px 0;border-bottom:1px solid var(--line)}
.fig:nth-child(odd){padding-right:12px;border-right:1px solid var(--line)}
.fig:nth-child(even){padding-left:14px}
.fig .v{font-family:var(--cond);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1;display:flex;align-items:flex-end;gap:8px;white-space:nowrap}
.fig .l{font-size:12px;color:var(--muted)}
.fig .delta{font-family:var(--sans);font-size:11.5px;font-weight:500;color:var(--primary)}
.spark{width:46px;height:18px;flex:none;margin-bottom:2px}
.spark polyline{fill:none;stroke:var(--signal);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--signal)}
.bcol .hl-list{margin-top:6px}
.bcol .sub-h{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-top:14px}
.split2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;margin-top:20px}
.xlinks .row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line);cursor:pointer}
.xlinks .row:first-child{border-top:0}
.xlinks .row:hover{background:var(--sub)}
.xlinks .bmarks{display:flex;gap:4px;margin-left:auto}
.bm{font-size:11px;font-weight:600;letter-spacing:.04em;height:20px;min-width:28px;padding:0 6px;display:inline-grid;place-items:center;border-radius:3px;border:1px solid var(--line-strong);color:var(--faint)}
.bm.on{border-color:var(--primary);color:var(--primary);background:var(--mist)}
.bm.pend{border-style:dashed;border-color:var(--warn);color:var(--warn)}

/* ---------- Start (ruhig) ---------- */
.view.start{max-width:1080px}
.greet h1{font-family:var(--cond);font-size:34px;font-weight:600;letter-spacing:-.01em;line-height:1.1}
.greet p{color:var(--muted);margin-top:6px;font-size:15px}
.hd{display:flex;align-items:baseline;gap:12px;margin:40px 0 4px}
.hd h2{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600}
.hd .lnk{margin-left:auto;font-size:13px}
.today-list{list-style:none;margin:0;padding:0}
.trow{display:grid;grid-template-columns:34px minmax(0,1fr) 110px 104px;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}
.trow:first-child{border-top:0}
.mk{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--primary)}
.trow .w b{font-weight:500;font-size:15px;display:block}
.trow .w span{color:var(--muted);font-size:13px}
.trow .due{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.trow .due.now{color:var(--crit);font-weight:500}
.trow .btn{justify-self:end}
.areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:12px}
.area{min-width:0;padding-top:16px;border-top:1px solid var(--line-strong)}
.area[hidden]{display:none}
.area-h{display:flex;align-items:center;gap:8px;color:var(--primary)}
.area-h h3{font-size:15px;font-weight:600;color:var(--ink)}
.area-f{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 16px}
.area-f .v{font-family:var(--cond);font-size:30px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.area-f .l{font-size:12.5px;color:var(--muted);margin-top:6px}
.area-s{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.area-s .lnk{margin-left:auto}
.pot-line{display:flex;gap:10px;align-items:baseline;margin-top:12px;font-size:13px;color:var(--muted)}
.pot-line b{color:var(--ink);font-weight:500}
.pot-line ul{margin:6px 0 0;padding-left:16px}
.cf{display:flex;gap:4px;padding:6px 8px 2px;flex-wrap:wrap}
.more-btn{display:block;margin:0 16px 14px}
@media (max-width:1100px){.areas{grid-template-columns:minmax(0,1fr);gap:28px}}
@media (max-width:860px){
  .greet h1{font-size:28px}
  .trow{grid-template-columns:28px minmax(0,1fr) auto;gap:4px 12px}
  .trow .due{grid-column:2;grid-row:2;font-size:12.5px}
  .trow .btn{grid-column:3;grid-row:1 / 3}
}
.app:not(.has-ctx) #ctx-toggle{display:none !important}
@media (min-width:861px){.app.has-ctx #ctx-toggle{display:inline-flex}}
@media (max-width:860px){.pot-line{flex-direction:column;gap:2px}}

/* ---------- Akte ---------- */
.akte-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:start;padding-bottom:20px;border-bottom:1px solid var(--line)}
.ini.xl{width:56px;height:56px;font-size:19px;font-family:var(--cond);background:var(--primary-deep);color:#fff;border:0}
.akte-head h1{font-family:var(--cond);font-size:30px;font-weight:600;line-height:1.05;letter-spacing:-.005em}
.akte-head .facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:8px;color:var(--muted);font-size:13px}
.akte-head .facts span b{color:var(--ink);font-weight:500}
.akte-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hh{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.hh .lab{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:4px}
.pchip{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px 0 4px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;font-size:12.5px;color:var(--ink)}
.pchip .ini{width:20px;height:20px;font-size:9.5px}
.pchip small{color:var(--muted)}
.pchip:hover{border-color:var(--primary)}
.pchip.self{background:var(--mist);border-color:transparent;cursor:default}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);margin-top:20px;background:var(--surface)}
.scell{padding:14px 16px;border-left:1px solid var(--line);min-width:0;position:relative}
.scell:first-child{border-left:0}
.scell .sh{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.scell .st{margin-left:auto}
.scell .sv{font-weight:600;margin-top:8px;font-size:14px}
.scell .sd{color:var(--muted);font-size:12.5px;margin-top:2px}
.scell.on{box-shadow:inset 0 2px 0 var(--signal)}
.scell.pend{box-shadow:inset 0 2px 0 var(--warn)}
.scell.off .sv{color:var(--faint);font-weight:500}
.scell .go{margin-top:8px;font-size:12.5px}
.scell.pot{background:var(--sub)}
.scell.pot ul{margin:6px 0 0;padding:0;list-style:none}
.scell.pot li{font-size:12.5px;padding:4px 0;border-top:1px solid var(--line);color:var(--ink)}
.scell.pot li:first-child{border-top:0}
.st-ok{color:var(--signal)}
.akte-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:24px;margin-top:24px;align-items:start}
.ledger{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.ledger-h{display:flex;align-items:baseline;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ledger-h h2{font-family:var(--cond);font-size:18px;font-weight:600}
.ledger-h small{color:var(--muted);font-size:12.5px}
.ledger-h .r{margin-left:auto}
.lperson{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}
.lperson div{padding:10px 16px;border-left:1px solid var(--line);min-width:0}
.lperson div:first-child{border-left:0}
.lperson dt,.kv dt{hyphens:auto;overflow-wrap:anywhere;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.lperson dd,.kv dd{margin:2px 0 0;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lperson dl{margin:0}
.lrow{border-bottom:1px solid var(--line)}
.lrow-h{display:grid;grid-template-columns:20px 44px minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;padding:12px 16px;background:none;border:0;cursor:pointer;text-align:left}
.lrow-h:hover{background:var(--sub)}
.lrow-h .chev{color:var(--faint);transition:transform .3s var(--ease)}
.lrow.open .lrow-h .chev{transform:rotate(90deg)}
.sp-code{font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.06em;color:var(--primary);border:1px solid var(--line-strong);border-radius:3px;height:24px;display:grid;place-items:center}
.lrow-h .nm b{display:block;font-weight:600;font-size:14px}
.lrow-h .nm small{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.lrow-h .flag{font-size:12px}
.lrow-h .amt{font-variant-numeric:tabular-nums;font-weight:600;font-size:14.5px;text-align:right;min-width:92px}
.lrow-h .amt small{display:block;color:var(--faint);font-weight:400;font-size:11.5px}
.lrow-b{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .34s var(--ease),visibility 0s linear .34s}
.lrow.open .lrow-b{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .34s var(--ease),visibility 0s}
.lrow-in{min-height:0;overflow:hidden}
.lrow-pad{padding:0 16px 16px 92px;opacity:0;transform:translateY(-4px);transition:opacity .2s ease,transform .3s var(--ease)}
.lrow.open .lrow-pad{opacity:1;transform:none;transition:opacity .28s ease .06s,transform .34s var(--ease)}
.tariffs{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.tariffs td{padding:6px 0;border-top:1px dashed var(--line)}
.tariffs tr:first-child td{border-top:0}
.tariffs td:first-child{width:76px;font-weight:600;font-family:var(--cond);letter-spacing:.03em}
.tariffs td.r{text-align:right}
.tariffs tr.sum td{border-top:1px solid var(--ink);font-weight:600;padding-top:8px}
.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.kv div{min-width:0}
.kv dd .lnk{font-size:13px}
.ltotal{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;padding:18px 16px;background:var(--sub);border-bottom:1px solid var(--line)}
.ltotal .big{font-family:var(--cond);font-weight:600;font-size:44px;line-height:.9;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--primary-deep);text-align:right}
:root[data-theme="dark"] .ltotal .big{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ltotal .big{color:var(--ink)}}
.ltotal .big small{font-size:16px;font-weight:500;margin-left:4px;color:var(--muted)}
.ltotal .split{display:flex;gap:2px;height:6px;margin-top:10px;max-width:340px}
.ltotal .split span{display:block;height:100%;background:var(--primary)}
.ltotal .split span:nth-child(2){background:var(--signal)}
.ltotal .split span:nth-child(3){background:var(--line-strong)}
.ltotal .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}
.ltotal .legend i{display:inline-block;width:8px;height:8px;margin-right:5px;background:var(--primary)}
.lfoot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lfoot>div{padding:14px 16px;min-width:0}
.lfoot>div+div{border-left:1px solid var(--line)}
.lfoot h4{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-weight:500;margin-bottom:8px}
.iban{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:14px}
.wv{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.wv:first-of-type{border-top:0}
.wv .d{font-variant-numeric:tabular-nums;color:var(--muted);width:78px;flex:none}
.tl{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.tl-f{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.fchip{height:26px;padding:0 10px;border:1px solid var(--line);border-radius:13px;background:var(--surface);font-size:12.5px;cursor:pointer;color:var(--muted)}
.fchip[aria-pressed="true"]{border-color:var(--primary);color:var(--primary);background:var(--mist)}
.tl-sec{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding:12px 16px 4px}
.tl ol{list-style:none;margin:0;padding:0 16px 8px}
.tl li{position:relative;padding:8px 0 12px 26px}
.tl li::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:1px;background:var(--line)}
.tl li:last-child::before{bottom:auto;height:14px}
.tl .ic{position:absolute;left:0;top:8px;width:15px;height:15px;border-radius:50%;background:var(--surface);border:1px solid var(--line-strong)}
.tl li.k-ki .ic{border-color:var(--signal);background:var(--mist)}
.tl li.k-wv .ic{border-color:var(--warn);border-style:dashed}
.tl li.k-gs .ic{background:var(--primary);border-color:var(--primary)}
.tl .when{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:center}
.tl .what{font-weight:500;margin-top:1px}
.tl .det{color:var(--muted);font-size:12.5px;margin-top:2px}
.tl li[hidden]{display:none}
.note-box{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.note-box input{flex:1;min-width:0;height:32px;border:1px solid var(--line);border-radius:var(--r);padding:0 10px;background:var(--surface)}

/* ---------- KI ---------- */
.drop{border:1.5px dashed var(--line-strong);border-radius:6px;min-height:340px;display:grid;place-items:center;text-align:center;padding:40px 24px;background:var(--sub);transition:border-color .15s,background .15s}
.drop.over{border-color:var(--signal);background:var(--mist)}
.drop h2{font-family:var(--cond);font-size:24px;font-weight:600;margin-top:14px}
.drop p{color:var(--muted);margin-top:6px;max-width:460px}
.drop .acts{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.drop .formats{display:flex;gap:6px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.drop .big-ic svg{width:40px;height:40px;stroke-width:1.2;color:var(--primary)}
.ki-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);margin-top:16px}
.ki-notes>div{padding:12px 16px;border-left:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.ki-notes>div:first-child{border-left:0}
.ki-notes b{display:block;color:var(--ink);font-weight:500;font-size:13px;margin-bottom:2px}
.steps{border:1px solid var(--line);border-radius:var(--r);padding:20px 24px;max-width:560px}
.steps li{display:flex;gap:10px;align-items:center;padding:7px 0;color:var(--faint)}
.steps li.on{color:var(--ink)}
.steps li.ok{color:var(--muted)}
.steps li .st{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line-strong);flex:none}
.steps li.on .st{border-color:var(--signal);border-right-color:transparent;animation:spin .8s linear infinite}
.steps li.ok .st{background:var(--signal);border-color:var(--signal)}
@keyframes spin{to{transform:rotate(360deg)}}
.rv-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.rv-bar .dt b{font-weight:600}
.rv-bar .r{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.review{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;margin-top:16px;align-items:start}
.review svg.connect{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:3}
.review svg.connect path{fill:none;stroke:var(--hl-line);stroke-width:1.25;stroke-dasharray:3 3}
.review svg.connect circle{fill:var(--hl-line)}
.paper-wrap{position:sticky;top:76px;background:var(--sub);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 26px}
.paper-tag{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:12px}
.paper-tag .tag{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.paper{background:var(--paper);color:var(--paper-ink);border:1px solid var(--paper-line);box-shadow:0 1px 0 var(--paper-line),0 2px 0 -1px var(--paper),0 3px 0 -1px var(--paper-line);padding:22px 22px 26px;font-size:10.5px;line-height:1.45;font-variant-numeric:tabular-nums;position:relative;transform:rotate(-.4deg)}
.paper::after{content:"BEISPIEL";position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-18deg);font-family:var(--cond);font-weight:700;font-size:56px;letter-spacing:.24em;color:rgba(160,110,20,.10);pointer-events:none;white-space:nowrap}
.paper .ph1{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1.5px solid #1d2a26;padding-bottom:8px;margin-bottom:8px}
.paper .ph1 b{font-size:14px;letter-spacing:.02em}
.paper .ph1 small{display:block;color:#5d6b67;font-size:9.5px}
.paper .grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
.paper .lbl{color:#6a7773;font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.paper .row{display:flex;justify-content:space-between;gap:8px;padding:1.5px 3px;margin:0 -3px;border-radius:2px}
.paper .blk{margin-top:9px;padding-top:6px;border-top:1px solid #c9d1ce}
.paper .blk h5{margin:0 0 3px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.paper [data-k]{transition:background .12s,box-shadow .12s}
.paper [data-k].hl{background:rgba(0,160,117,.18);box-shadow:0 0 0 1px #00A075}
.paper .redact{background:#1d2a26;color:transparent;border-radius:1px;user-select:none}
.paper .total{border-top:1.5px solid #1d2a26;margin-top:8px;padding-top:4px;font-weight:700;display:flex;justify-content:space-between}
.fields .grp{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:14px}
.fields .grp-h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.fields .grp-h h3{font-size:13.5px;font-weight:600}
.fields .grp-h .r{margin-left:auto;font-size:12px;color:var(--muted)}
.fr{display:grid;grid-template-columns:130px minmax(0,1fr) 92px;gap:10px;align-items:center;padding:7px 14px;border-top:1px solid var(--line);cursor:default}
.fr:first-of-type{border-top:0}
.fr:hover,.fr.hl{background:var(--hl)}
.fr .fl{font-size:12px;color:var(--muted)}
.fr input{width:100%;height:28px;border:1px solid transparent;border-radius:3px;background:transparent;padding:0 6px;margin-left:-6px;font-variant-numeric:tabular-nums;font-size:13px}
.fr input:hover{border-color:var(--line)}
.fr input:focus{border-color:var(--signal);background:var(--surface);outline:none}
.conf{display:flex;align-items:center;gap:6px;justify-content:flex-end;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}
.conf .bar{width:36px;height:3px;background:var(--line);border-radius:1px;overflow:hidden}
.conf .bar i{display:block;height:100%;background:var(--signal)}
.conf.lo{color:var(--warn)}
.conf.lo .bar i{background:var(--warn)}
.fr .chg{grid-column:2 / 4;font-size:11.5px;color:var(--warn);margin-top:-4px}
.warnbox{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:var(--r);color:var(--warn);font-size:12.5px;margin-bottom:10px}
.warnbox b{color:var(--ink);font-weight:600}
:root[data-theme="dark"] .warnbox b{color:var(--warn)}
.match{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px;background:var(--surface)}
.confirm{border:1px solid var(--primary);border-radius:var(--r);background:var(--surface);padding:16px;margin-top:4px}
.confirm h3{font-size:15px}
.confirm ul{margin:8px 0 14px;padding-left:18px;color:var(--muted);font-size:13px}
.rv-foot{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:12px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;z-index:4}
.rv-foot .muted{font-size:12.5px;margin-right:auto}

/* ---------- Rechner ---------- */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.calc-in{padding:20px;border-right:1px solid var(--line)}
.calc-out{padding:20px}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.field label,.flabel{font-size:12.5px;color:var(--muted);font-weight:500}
.field input[type=text],.field input[type=number],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=password],.field select,.field textarea{height:34px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 10px;background:var(--surface);font-variant-numeric:tabular-nums;width:100%}
.field textarea{height:72px;padding:8px 10px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--signal);outline:none;box-shadow:0 0 0 3px var(--hl)}
.field .hint{font-size:12px;color:var(--faint)}
.seg{display:inline-flex;align-self:flex-start;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;flex-wrap:wrap}
.seg button{border:0;border-left:1px solid var(--line-strong);background:var(--surface);height:32px;padding:0 12px;cursor:pointer;font-size:13px}
.seg button:first-child{border-left:0}
.seg button[aria-pressed="true"]{background:var(--primary);color:var(--primary-ink)}
input[type=range]{width:100%;accent-color:var(--primary)}
.result-big{font-family:var(--cond);font-size:48px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--primary-deep);margin-top:6px}
:root[data-theme="dark"] .result-big{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .result-big{color:var(--ink)}}
.result-big small{font-size:20px;color:var(--muted);font-weight:500}
.breakdown{margin-top:14px;border-top:1px solid var(--line)}
.breakdown div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;font-variant-numeric:tabular-nums}
.breakdown div.s{font-weight:600}
.curve{width:100%;height:auto;margin-top:16px;display:block}
.curve .ax{stroke:var(--line-strong);stroke-width:1}
.curve .gl{stroke:var(--line);stroke-width:1}
.curve .lin{fill:none;stroke:var(--faint);stroke-width:1.25;stroke-dasharray:3 3}
.curve .pro{fill:none;stroke:var(--primary);stroke-width:2}
.curve .pt{fill:var(--signal)}
.curve text{font-size:10px;fill:var(--faint);font-family:var(--sans)}
.calc-list .ci .t small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- Immobilien & Pflege ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:20px}
.kpis>div{padding:12px 16px;border-left:1px solid var(--line);min-width:0}
.kpis>div:first-child{border-left:0}
.kpis .v{font-family:var(--cond);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.kpis .l{font-size:12px;color:var(--muted)}
.units{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.unit{padding:12px;border-left:1px solid var(--line);border-top:1px solid var(--line);min-height:98px;min-width:0}
.unit:nth-child(-n+6){border-top:0}
.unit:nth-child(6n+1){border-left:0}
.unit .u{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.unit .n{font-weight:500;margin-top:8px;font-size:13px;overflow-wrap:anywhere}
.unit .s{font-size:12px;color:var(--muted);margin-top:2px}
.unit.free{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--mist) 6px 7px)}
.unit.soon{box-shadow:inset 0 2px 0 var(--warn)}
.unit.reno{background:var(--sub)}

/* ---------- Einstellungen ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}
.tab{height:40px;padding:0 14px;border:0;background:none;cursor:pointer;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--primary)}
.tab:hover{color:var(--ink)}
.spane{display:none}
.spane.on{display:block}
.srow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 16px;border-top:1px solid var(--line)}
.srow:first-child{border-top:0}
.srow b{font-weight:500;display:block}
.srow small{color:var(--muted);font-size:12.5px}
.sw{position:relative;width:36px;height:20px;flex:none;display:inline-block}
.sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.sw span{position:absolute;inset:0;border-radius:10px;background:var(--line-strong);transition:background .15s}
.sw span::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 1px rgba(0,0,0,.15)}
.sw input:checked+span{background:var(--primary)}
.sw input:checked+span::after{transform:translateX(16px)}
.sw input:focus-visible+span{outline:2px solid var(--signal);outline-offset:2px}
.sw input:disabled+span{opacity:.5}
.cols2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.mx{border-collapse:collapse;width:100%;font-size:13px}
.mx th,.mx td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:center}
.mx th{font-weight:500;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.mx td:first-child,.mx th:first-child{text-align:left}
.mx td:first-child{white-space:nowrap}
.mx tr.grp td{background:var(--sub);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);text-align:left;padding:6px 10px}
.mx input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;margin:0}
.mx select{height:28px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface);font-size:12.5px;padding:0 6px}
.prov{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.prov label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);cursor:pointer}
.prov label:first-child{border-top:0}
.prov label:has(input:checked){background:var(--mist)}
.prov input{accent-color:var(--primary);margin:0}
.prov small{display:block;color:var(--muted);font-size:12px}
.usage{height:8px;background:var(--line);border-radius:1px;overflow:hidden;margin:10px 0 6px;display:flex}
.usage i{display:block;height:100%}
.keyrow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}
.keyrow:first-child{border-top:0}
.keyrow code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--muted)}
.keyrow .acts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.test-res{font-size:12.5px;margin-top:8px;min-height:18px}

/* ---------- Overlays ---------- */
.scrim{position:fixed;inset:0;background:rgba(6,22,19,.42);z-index:80;display:none}
.scrim.on{display:block}
.palette{position:fixed;left:50%;top:10vh;transform:translateX(-50%);width:min(680px,calc(100vw - 32px));max-height:76vh;background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;z-index:90;display:none;flex-direction:column;box-shadow:0 24px 60px -20px rgba(0,30,25,.35)}
.palette.on{display:flex}
.pal-in{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);height:52px}
.pal-in input{flex:1;border:0;background:none;font-size:16px;height:100%;outline:none;min-width:0}
.pal-f{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--line);overflow-x:auto}
.pal-r{overflow:auto;padding:4px 0 8px}
.pal-g{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding:12px 16px 4px;display:flex;justify-content:space-between}
.pal-i{display:flex;gap:12px;align-items:center;width:100%;padding:8px 16px;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink)}
.pal-i:hover,.pal-i.sel{background:var(--mist)}
.pal-i .t{flex:1;min-width:0}
.pal-i .t b{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-i .t small{color:var(--muted);font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-i mark{background:var(--hl);color:inherit;border-radius:2px}
.pal-i .ic{color:var(--faint)}
.pal-foot{display:flex;gap:14px;padding:8px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--surface);border-left:1px solid var(--line-strong);z-index:90;transform:translateX(100%);transition:transform .2s ease;display:flex;flex-direction:column;visibility:hidden}
.drawer.on{transform:none;visibility:visible}
.dr-h{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);padding-top:calc(14px + env(safe-area-inset-top,0px))}
.dr-h h2{font-family:var(--cond);font-size:20px;font-weight:600}
.dr-h .btn{margin-left:auto}
.dr-b{flex:1;overflow:auto;padding:18px 20px}
.dr-f{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.fgrid .full{grid-column:1/-1}
.cbx{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:6px 0}
.cbx input{accent-color:var(--primary);margin-top:2px}
.rolechk{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;border:1px solid var(--line);border-radius:var(--r);padding:6px 12px;margin-bottom:14px}
.dupe{display:none;margin-bottom:14px}
.dupe.on{display:flex}
.fsec{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:6px 0 10px;padding-top:12px;border-top:1px solid var(--line)}
.fsec:first-child{border-top:0;padding-top:0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r);font-size:13px;z-index:120;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;display:flex;gap:8px;align-items:center;max-width:calc(100vw - 32px)}
.toast.on{opacity:1;transform:translateX(-50%)}

.bottombar{display:none}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line-strong);border-radius:8px 8px 0 0;z-index:90;transform:translateY(100%);transition:transform .2s;max-height:80vh;overflow:auto;padding:8px 8px calc(16px + env(safe-area-inset-bottom,0px));visibility:hidden}
.sheet.on{transform:none;visibility:visible}
.sheet .sh-grab{width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:4px auto 10px}
.sheet .ri{color:var(--ink)}
.sheet .ri .lbl{opacity:1}
.sheet .ri:hover{background:var(--mist)}
.sheet .ri.active{background:var(--mist);color:var(--primary)}
.sheet .ri.active::before{display:none}
.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}

@media (max-width:1280px){
  .today{grid-template-columns:repeat(3,minmax(0,1fr))}
  .today>div:nth-child(4){border-left:0}
  .today>div:nth-child(n+4){border-top:1px solid var(--line)}
  .strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .strip .scell.pot{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
  .akte-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1100px){
  .app{grid-template-columns:64px 230px minmax(0,1fr);background:linear-gradient(to right,var(--rail) 0 64px,var(--sub) 64px 293px,var(--line) 293px 294px,transparent 294px)}
  .bereiche3{grid-template-columns:minmax(0,1fr)}
  .bcol{border-left:0;border-top:1px solid var(--line)}
  .bcol:first-child{border-top:0}
  .review{grid-template-columns:minmax(0,1fr)}
  .review svg.connect{display:none}
  .paper-wrap{position:static}
  .calc{grid-template-columns:minmax(0,1fr)}
  .calc-in{border-right:0;border-bottom:1px solid var(--line)}
  .split2,.cols2{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .app,.app.no-ctx{grid-template-columns:minmax(0,1fr);background:none}
  .rail{display:none}
  .ctx{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);z-index:95;transform:translateX(-100%);transition:transform .2s;visibility:hidden;box-shadow:none}
  .ctx.on{transform:none;visibility:visible;border-right:1px solid var(--line-strong)}
  .app.no-ctx .ctx{display:flex}
  .mob-only{display:inline-flex}
  .desk-only{display:none !important}
  .top{padding:0 16px;gap:8px}
  .searchbtn{width:auto}
  .searchbtn .lbl,.searchbtn kbd{display:none}
  .top .rolebox{display:none}
  .rolebox select{max-width:132px}
  .rolebar{padding:7px 16px}
  .view{padding:18px 16px 96px}
  .vh h1{font-size:23px}
  .bottombar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--rail);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px))}
  .bottombar button{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:none;color:var(--rail-ink);font-size:10.5px;padding:6px 0;cursor:pointer;border-radius:3px;position:relative}
  .bottombar button.active{color:#fff}
  .bottombar button.active::before{content:"";position:absolute;top:-4px;left:30%;right:30%;height:2px;background:var(--signal)}
  .bottombar svg.i{width:20px;height:20px}
  .today{grid-template-columns:1fr 1fr}
  .today>div:first-child{grid-column:1/-1}
  .today>div{border-left:0;border-top:1px solid var(--line)}
  .today>div:first-child{border-top:0}
  .today>div:nth-child(odd):not(:first-child){border-left:1px solid var(--line)}
  .today>div:nth-child(4){border-left:0}
  .today>div:nth-child(n+2){border-left:0}
  .today>div:nth-child(2n+3){border-left:1px solid var(--line)}
  .akte-head{grid-template-columns:auto minmax(0,1fr)}
  .akte-acts{grid-column:1/-1;justify-content:flex-start}
  .akte-head h1{font-size:25px}
  .strip{grid-template-columns:minmax(0,1fr)}
  .scell{border-left:0;border-top:1px solid var(--line)}
  .scell:first-child{border-top:0}
  .lperson{grid-template-columns:1fr 1fr}
  .lperson div:nth-child(3){border-left:0}
  .lperson div:nth-child(n+3){border-top:1px solid var(--line)}
  .lrow-h{grid-template-columns:16px 40px minmax(0,1fr) auto;gap:10px;padding:12px}
  .lrow-h .flag{display:none}
  .lrow-pad{padding:0 12px 14px 12px}
  .kv{grid-template-columns:1fr 1fr}
  .ltotal{grid-template-columns:minmax(0,1fr)}
  .ltotal .big{text-align:left;font-size:40px}
  .lfoot{grid-template-columns:minmax(0,1fr)}
  .lfoot>div+div{border-left:0;border-top:1px solid var(--line)}
  .ki-notes{grid-template-columns:minmax(0,1fr)}
  .ki-notes>div{border-left:0;border-top:1px solid var(--line)}
  .ki-notes>div:first-child{border-top:0}
  .fr{grid-template-columns:minmax(0,1fr) 80px;gap:2px 10px}
  .fr .fl{grid-column:1/-1}
  .fr .chg{grid-column:1/-1}
  .paper{transform:none}
  .kpis{grid-template-columns:1fr 1fr}
  .kpis>div:nth-child(3){border-left:0}
  .kpis>div:nth-child(n+3){border-top:1px solid var(--line)}
  .units{grid-template-columns:repeat(2,minmax(0,1fr))}
  .unit{border-left:1px solid var(--line) !important;border-top:1px solid var(--line) !important}
  .unit:nth-child(odd){border-left:0 !important}
  .unit:nth-child(-n+2){border-top:0 !important}
  .keyrow{grid-template-columns:minmax(0,1fr)}
  .keyrow .acts{justify-content:flex-start}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .rolechk{grid-template-columns:minmax(0,1fr)}
  .toast{bottom:84px}
  .rv-foot{position:static}
  .match{grid-template-columns:auto minmax(0,1fr)}
  .match .btn{grid-column:1/-1;justify-self:start}
}
@media (max-width:420px){
  .top .avatar{display:none}
  .result-big{font-size:40px}
}
/* ================= Stil "Bubbles" ================= */
body{font-size:14px;line-height:1.5;letter-spacing:-.003em}
.num,.money,.kvv,.v,.big,.result-big,.amt,.iban,.due,.meta,.cnt,.kbub,.ri .dot,.bbc,.lperson dd,.kv dd,.wv .d,.tl .when,.conf,.fr input,.tariffs,.breakdown,.sp-code+.nm small,.lrow-h .amt,.ltotal .big,.today .kvv,.fig .v,.area-f .v,.kpis .v,.result-big,.field input[type=number],table.t td.num,.hl-list .due,.trow .due{font-variant-numeric:tabular-nums}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.012em}
.greet h1{font-weight:650;letter-spacing:-.028em;font-size:34px}
.vh h1,.akte-head h1{font-weight:650;letter-spacing:-.022em}
.area-f .v,.ltotal .big,.result-big,.kpis .v,.today .kvv{font-weight:600;letter-spacing:-.025em}
.eyebrow,.hd h2,.ctx-sec,.tl-sec,.lfoot h4,.fsec,.pal-g,.rail-cap,.sub-h,.hh .lab,table.t th,.mx th,.lperson dt,.kv dt{letter-spacing:.07em}
:focus-visible{border-radius:var(--pill)}

/* soft shapes */
.btn{border-radius:var(--pill);padding:0 14px}
.btn.icon{padding:0}
.btn.sm{padding:0 12px}
.btn.pri{box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 4px 14px -6px rgba(0,94,82,.55)}
.searchbtn{border-radius:var(--pill)}
.rolebox select{border-radius:var(--pill);padding-left:14px}
.tag,.fchip{border-radius:var(--pill);padding:0 9px}
.panel,.ledger,.tl,.strip,.calc,.kpis,.units,.prov,.fields .grp,.match,.confirm,.rv-bar,.steps,.ki-notes,.today,.bereiche3,.warnbox{border-radius:var(--r-lg)}
.panel>.tbl-wrap,.ledger,.tl,.strip,.kpis,.units,.prov,.calc{overflow:hidden}
.paper-wrap,.drop{border-radius:20px}
.palette{border-radius:20px;overflow:hidden}
.sheet{border-radius:22px 22px 0 0}
.toast{border-radius:16px}
.ri,.ci,.pal-i{border-radius:12px}
.ri.active::before{left:-6px;top:11px;bottom:11px;width:4px;border-radius:4px}
.ci.active::after{display:none}
.ci.active{box-shadow:inset 0 0 0 1px var(--line),0 2px 8px -4px rgba(0,63,55,.18)}
.mono-a{border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.22),rgba(255,255,255,.04) 60%);border-color:rgba(255,255,255,.22)}
.ctx-search input,.note-box input,.field input[type=text],.field input[type=number],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=password],.field select,.field textarea{border-radius:10px}
.ctx-search input,.note-box input{border-radius:var(--pill)}
.seg{border-radius:var(--pill)}
.pip{height:4px;width:14px;border-radius:4px}
.conf .bar,.usage{border-radius:4px}
.sp-code{border-radius:var(--pill)}
.ini.f{border-radius:10px}
.ltotal .split{border-radius:6px;overflow:hidden;height:8px}
.ltotal .legend i{border-radius:50%}
.chk{border-radius:6px}
.scell.on,.scell.pend{box-shadow:none}
.scell .sh .st-ok{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--mist);margin-left:auto}

/* Bereich-Bubbles V / I / P */
.bm,.mk{display:inline-grid;place-items:center;border-radius:var(--pill);font-weight:700;letter-spacing:.02em;transition:transform .3s var(--ease)}
.bm{height:22px;min-width:22px;padding:0 7px;font-size:11px;border:0;background:var(--mist);color:var(--primary)}
.mk{width:30px;height:30px;font-size:11.5px;background:var(--mist);color:var(--primary)}
.b-v{background:#005E52;color:#fff}
.b-i{background:#A9DFCB;color:#003F37}
.b-p{background:#EDF6F2;color:#005E52;box-shadow:inset 0 0 0 1px #BFDDD1}
.b-ki{background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff;font-size:10.5px}
.bm.on.b-v,.bm.on.b-i,.bm.on.b-p{border:0}
.bm.pend{background:var(--warn-bg);color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn-line);border:0}
.bm:not(.on):not(.pend){background:transparent;color:var(--faint);box-shadow:inset 0 0 0 1px var(--line-strong)}
:root[data-theme="dark"] .b-v{background:#13806D}
:root[data-theme="dark"] .b-i{background:#2A6B58;color:#E3EDE9}
:root[data-theme="dark"] .b-p{background:#15302A;color:#9FDCC6;box-shadow:inset 0 0 0 1px #2B4A42}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .b-v{background:#13806D}:root:not([data-theme="light"]) .b-i{background:#2A6B58;color:#E3EDE9}:root:not([data-theme="light"]) .b-p{background:#15302A;color:#9FDCC6;box-shadow:inset 0 0 0 1px #2B4A42}}

/* Hover: Bubbles wachsen leicht */
@media (hover:hover){
  .bm:hover,.trow:hover .mk,.hh-stack .av:hover,.pchip:hover,.ini.xl:hover,.kbub:hover,.mono:hover .mono-a{transform:scale(1.03)}
}

/* Start: Begruessung als weiche Flaeche mit Bubbles */
.greet,.akte-head{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,var(--mist) 0%,color-mix(in srgb,var(--mist) 45%,var(--surface)) 55%,var(--surface) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 70%,transparent)}
.greet{padding:34px 36px 32px}
.greet>*:not(.bubs){position:relative;z-index:1}
.akte-head{padding:24px 24px 22px;border-bottom:0}
.akte-head>*:not(.bubs){position:relative;z-index:1}
.bubs{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.bubs i{position:absolute;display:block;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,var(--bub-hi) 0,transparent 34%),radial-gradient(circle at 50% 50%,var(--bub-a) 0,var(--bub-b) 62%,transparent 71%);
  will-change:transform;animation:drift 32s ease-in-out infinite alternate}
.bubs i:nth-child(1){width:260px;height:260px;right:-60px;top:-110px;animation-duration:38s}
.bubs i:nth-child(2){width:120px;height:120px;right:190px;top:46px;opacity:.75;animation-name:drift2;animation-duration:27s}
.bubs i:nth-child(3){width:64px;height:64px;right:110px;bottom:-14px;opacity:.85;animation-duration:22s;animation-delay:-6s}
.bubs i:nth-child(4){width:170px;height:170px;right:340px;bottom:-120px;opacity:.55;animation-name:drift2;animation-duration:34s;animation-delay:-12s}
.bubs i:nth-child(5){width:28px;height:28px;right:300px;bottom:26px;opacity:.9;animation-duration:24s;animation-delay:-3s}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-18px,14px,0) scale(1.04)}100%{transform:translate3d(10px,-12px,0) scale(.98)}}
@keyframes drift2{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(16px,-18px,0)}100%{transform:translate3d(-12px,8px,0)}}
.paused .bubs i{animation-play-state:paused}

/* Heute-Liste: Bubble-Marker */
.trow{grid-template-columns:34px minmax(0,1fr) 110px 104px;border-top-color:color-mix(in srgb,var(--line) 70%,transparent)}
.hd h2{font-weight:600}

/* Bereiche als weiche Karten */
.area{padding:20px 22px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.areas{gap:20px}
.area-h svg{width:34px;height:34px;padding:8px;border-radius:50%;background:var(--mist);color:var(--primary);box-sizing:border-box}

/* Zaehler-Bubble KI (pulsiert einmal) */
.ri .dot{left:auto;right:auto;left:28px;top:3px;min-width:17px;height:17px;width:auto;padding:0 5px;border-radius:var(--pill);background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--rail);font-variant-numeric:tabular-nums}
.rail:hover .ri .dot,.rail:focus-within .ri .dot,.app.rail-open .ri .dot{opacity:0}
.ri .cnt{opacity:0;min-width:22px;height:20px;line-height:20px;padding:0 7px;border-radius:var(--pill);background:rgba(255,255,255,.10);color:rgba(255,255,255,.85);text-align:center}
.kbub{position:relative;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--pill);background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;vertical-align:1px;margin-right:6px;transition:transform .3s var(--ease)}
.pulse1{animation:pop1 1.4s var(--ease) .9s 1 both}
.pulse1::after,.ri .dot::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(0,160,117,.45);animation:ring1 1.6s ease-out .9s 1 both}
.ri .dot{animation:pop1 1.4s var(--ease) .9s 1 both}
.pulsed .pulse1,.pulsed .pulse1::after,.pulsed .ri .dot,.pulsed .ri .dot::after{animation:none}
@keyframes pop1{0%,100%{transform:scale(1)}35%{transform:scale(1.16)}60%{transform:scale(.97)}}
@keyframes ring1{0%{box-shadow:0 0 0 0 rgba(0,160,117,.45)}100%{box-shadow:0 0 0 9px rgba(0,160,117,0)}}
.bottombar .bbc{position:absolute;top:2px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:var(--pill);background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff;font-size:10px;font-weight:700;line-height:16px;box-shadow:0 0 0 2px var(--rail)}

/* Haushalt: ueberlappende Avatar-Bubbles */
.hh{gap:10px;margin-top:14px}
.hh-stack{display:flex;align-items:center;padding-left:6px}
.hh-stack .av{width:32px;height:32px;margin-left:-8px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.02em;border:2px solid var(--surface);cursor:pointer;padding:0;transition:transform .3s var(--ease);position:relative}
.hh-stack .av:nth-child(1){z-index:3;background:#003F37;color:#fff;cursor:default}
.hh-stack .av:nth-child(2){z-index:2;background:#A9DFCB;color:#003F37}
.hh-stack .av:nth-child(3){z-index:1;background:#EDF6F2;color:#005E52}
.hh-stack .av:nth-child(4){z-index:0;background:#D6EDE4;color:#005E52}
.hh-names{font-size:13px;color:var(--muted)}
.hh-names .lnk{font-size:13px;color:var(--ink);font-weight:500}
.hh-names .lnk:hover{color:var(--primary)}
.ini.xl{width:60px;height:60px;font-size:20px;font-weight:650;background:radial-gradient(circle at 32% 28%,#0A7A69,#003F37 72%);box-shadow:0 8px 22px -10px rgba(0,63,55,.6);transition:transform .3s var(--ease)}

/* Akte Bereichs-Streifen: Status-Bubble */
.scell .sh svg.i.s:first-child{width:26px;height:26px;padding:6px;border-radius:50%;background:var(--mist);color:var(--primary)}
.scell.pend .sh svg.i.s:first-child{background:var(--warn-bg);color:var(--warn)}
.scell.off .sh svg.i.s:first-child{background:var(--sub);color:var(--faint)}

@media (max-width:860px){
  .greet{padding:24px 20px 22px;border-radius:20px}
  .greet h1{font-size:28px}
  .akte-head{padding:18px 16px;border-radius:20px}
  .bubs i:nth-child(1){width:180px;height:180px;right:-70px;top:-80px}
  .bubs i:nth-child(2){width:80px;height:80px;right:40px;top:auto;bottom:-30px}
  .bubs i:nth-child(4),.bubs i:nth-child(5){display:none}
  .area{padding:16px 16px 14px}
  .trow{grid-template-columns:30px minmax(0,1fr) auto}
}
@media (prefers-reduced-motion: reduce){
  .bubs i{animation:none !important}
  .bm:hover,.hh-stack .av:hover,.tchk:hover{transform:none !important}
}

/* ================= Bewegung (aus Stil 2, an Bubbles angepasst) ================= */
.btn{transform:translate3d(var(--mx,0),var(--my,0),0) scale(var(--bs,1));transition:transform .28s var(--ease),background-color .15s,border-color .15s,color .15s}
@media (hover:hover){.btn:hover{transform:translate3d(var(--mx,0),var(--my,0),0) scale(var(--bs,1));--bs:1.03}.btn:active{--bs:.98;transition-duration:.08s}}
/* Heute: runder Erledigt-Bubble */
.trow{grid-template-columns:26px 30px minmax(0,1fr) 110px 104px}
.tchk{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);padding:0;cursor:pointer;display:grid;place-items:center;color:#fff;transition:border-color .2s,background-color .25s,transform .3s var(--ease),box-shadow .3s}
.tchk svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.tchk path{stroke-dasharray:22;stroke-dashoffset:22}
@media (hover:hover){.tchk:hover{border-color:var(--signal);transform:scale(1.03);box-shadow:0 0 0 4px var(--hl)}
.tchk:hover path{stroke:var(--primary);stroke-dashoffset:0;opacity:.4;transition:stroke-dashoffset .3s var(--ease)}}
.trow.done .tchk{background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);border-color:transparent;transform:none;box-shadow:none}
.trow.done .tchk path{stroke:#fff;opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .32s var(--ease) .04s}
.trow.done .w b{color:var(--muted)}
/* Bereichs-Streifen: gleitender Pill-Indikator */
.strip{position:relative}
.strip-ul{position:absolute;left:0;top:0;width:32px;height:4px;border-radius:4px;background:var(--signal);opacity:0;pointer-events:none;transition:transform .42s var(--ease),opacity .22s ease;z-index:1}
.strip-ul.on{opacity:1}
.scell[role="button"]{transition:background-color .2s}
.scell[role="button"]:hover{background:var(--sub)}
@media (max-width:860px){
  .trow{grid-template-columns:26px 30px minmax(0,1fr) auto;gap:4px 10px}
  .trow .tchk,.trow .mk{grid-row:1 / 3}
  .trow .due{grid-column:3;grid-row:2}
  .trow .btn{grid-column:4;grid-row:1 / 3}
}
@media (prefers-reduced-motion: reduce){.btn,.btn:hover,.btn:active{transform:none !important}.strip-ul{transition:none}}
/* ================= Anmeldung, Nutzer-Menü ================= */
.toast{z-index:260}
html.authing,html.authing body{overflow:hidden}
.auth{position:fixed;inset:0;z-index:200;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px calc(32px + env(safe-area-inset-bottom,0px));background:linear-gradient(160deg,var(--mist) 0%,color-mix(in srgb,var(--mist) 40%,var(--bg)) 48%,var(--bg) 100%)}
.auth[hidden]{display:none}
.auth .bubs{position:fixed;border-radius:0}
.auth .bubs i:nth-child(1){width:520px;height:520px;right:-160px;top:-200px}
.auth .bubs i:nth-child(2){width:220px;height:220px;right:auto;left:8%;top:auto;bottom:10%}
.auth .bubs i:nth-child(3){width:90px;height:90px;right:22%;bottom:16%}
.auth .bubs i:nth-child(4){width:360px;height:360px;right:auto;left:-140px;top:-120px;bottom:auto}
.auth .bubs i:nth-child(5){width:40px;height:40px;right:30%;top:18%;bottom:auto}
.auth-mark{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-bottom:22px;color:var(--primary-deep)}
.auth-mark .mono-a{color:#fff;background:radial-gradient(circle at 32% 28%,#0A7A69,#003F37 72%);border:0;box-shadow:0 8px 22px -10px rgba(0,63,55,.6)}
.auth-mark b{font-family:var(--cond);font-weight:700;font-size:22px;letter-spacing:-.02em;display:block;line-height:1.05}
.auth-mark small{font-size:12px;color:var(--muted);letter-spacing:.02em}
:root[data-theme="dark"] .auth-mark{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .auth-mark{color:var(--ink)}}
.auth-card{position:relative;z-index:1;width:min(420px,100%);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:24px;padding:30px 30px 26px;box-shadow:0 30px 60px -34px rgba(0,63,55,.35)}
.auth-card h1{font-family:var(--cond);font-size:26px;font-weight:650;letter-spacing:-.024em;line-height:1.15}
.auth-card .lead{color:var(--muted);margin:4px 0 22px}
.auth-card .field input{height:42px;border-radius:12px;font-size:14.5px}
.auth-card .btn{height:44px;width:100%;justify-content:center;font-size:14.5px}
.auth-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.auth-row .lnk{font-size:12.5px}
.pw{position:relative}
.pw input{padding-right:46px !important}
.pw button{position:absolute;right:5px;top:5px;width:32px;height:32px;border:0;border-radius:50%;background:none;display:grid;place-items:center;color:var(--muted);cursor:pointer}
.pw button:hover{background:var(--mist);color:var(--primary)}
.auth-card .cbx{margin:2px 0 18px;color:var(--ink)}
.auth-or{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:12px;margin:16px 0}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-card .pk-hint{text-align:center;font-size:12px;color:var(--faint);margin-top:8px}
.auth-demo{position:relative;z-index:1;margin-top:18px;font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--pill);background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px dashed var(--line-strong)}
.auth-step[hidden]{display:none}
.code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:6px 0 18px}
.code input{width:100%;min-width:0;height:54px;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);text-align:center;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;caret-color:var(--signal);transition:border-color .15s,box-shadow .2s,transform .25s var(--ease)}
.code input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px var(--hl)}
.code input.f{background:var(--mist);border-color:color-mix(in srgb,var(--signal) 50%,var(--line))}
.code-meta{display:flex;justify-content:space-between;gap:10px;margin-top:14px;font-size:12.5px;flex-wrap:wrap}
.code-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--mist);color:var(--primary);margin-bottom:14px}
.btn .spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
@media (max-width:480px){.auth{justify-content:flex-start;padding-top:40px}.auth-card{padding:24px 18px 20px;border-radius:20px}.code{gap:6px}.code input{height:48px;font-size:20px;border-radius:14px}}

/* Avatar-Menü */
button.avatar{border:0;padding:0;cursor:pointer;font:inherit;font-size:12px;font-weight:650;transition:transform .3s var(--ease),box-shadow .2s;background:radial-gradient(circle at 32% 28%,#0A7A69,#003F37 72%)}
button.avatar:hover{transform:scale(1.03)}
button.avatar[aria-expanded="true"]{box-shadow:0 0 0 3px var(--hl)}
.umenu{position:fixed;top:60px;right:16px;z-index:95;width:290px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 48px -24px rgba(0,40,34,.38),0 2px 6px -2px rgba(0,40,34,.08);padding:8px;transform-origin:calc(100% - 20px) 0}
.umenu[hidden]{display:none}
.um-head{display:flex;gap:12px;align-items:center;padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.um-head .avatar{width:40px;height:40px;font-size:13px;background:radial-gradient(circle at 32% 28%,#0A7A69,#003F37 72%)}
.um-head b{display:block;font-weight:600}
.um-head small{color:var(--muted);font-size:12px;display:block}
.um-i{display:flex;align-items:center;gap:12px;width:100%;height:40px;padding:0 10px;border:0;background:none;border-radius:12px;cursor:pointer;color:var(--ink);text-align:left;font-size:13.5px}
.um-i:hover,.um-i:focus-visible{background:var(--mist)}
.um-i svg{color:var(--muted)}
.um-i .r{margin-left:auto;font-size:12px;color:var(--muted)}
.um-sep{height:1px;background:var(--line);margin:6px 4px}
.um-i.out{color:var(--crit)}
.um-i.out svg{color:var(--crit)}
.ask{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:14px;background:var(--crit-bg);color:var(--crit);font-size:13px}
.ask[hidden]{display:none}
.ask{justify-content:flex-end}
.ask b{font-weight:600;flex:1 1 100%}
.um-head small.em,.sheet-user .t small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn.danger{background:var(--crit);border-color:var(--crit);color:#fff}
.btn.danger:hover{background:var(--crit);color:#fff;filter:brightness(.92)}
.sheet-user{display:flex;align-items:center;gap:12px;margin:10px 4px 2px;padding:12px 8px 4px;border-top:1px solid var(--line)}
.sheet-user .avatar{width:36px;height:36px}
.sheet-user .t{flex:1;min-width:0}
.sheet-user .t b{display:block;font-weight:600;font-size:13.5px}
.sheet-user .t small{color:var(--muted);font-size:12px}
.sheet .ask{margin:8px 4px 0}

/* Einstellungen: Anmeldung & Geräte */
.dev{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line)}
.dev:first-child{border-top:0}
.dev .dic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--mist);color:var(--primary)}
.dev b{font-weight:500;display:block}
.dev small{color:var(--muted);font-size:12.5px}
.dev .now{color:var(--primary);font-weight:500}
.dev-acts{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}
.dev .ask{grid-column:1/-1}
@media (max-width:860px){
  #theme-toggle{display:none}
  .dev{grid-template-columns:36px minmax(0,1fr)}
  .dev>.btn,.dev>.tag{grid-column:2;justify-self:start}
}
@media (max-width:420px){.top .avatar{display:grid}}
/* ================= Stufe 5: ruhige Bereichsseiten ================= */
.view.calm{max-width:1120px}
.view.calm .vh{margin-bottom:24px;align-items:flex-end}
.view.calm .vh h1{font-size:30px;font-weight:650;letter-spacing:-.024em}
.view.calm .vh p{font-size:14.5px;margin-top:6px}
.view.calm .hd{margin:36px 0 10px}
.view.calm .hd:first-child{margin-top:0}
.panel.padded{padding:18px 20px}
/* Kennzahlen als weiche Karten */
.sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sc{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:16px 18px;min-width:0}
.sc:first-child{background:linear-gradient(135deg,var(--mist),var(--surface) 90%);border-color:color-mix(in srgb,var(--line) 70%,transparent)}
.sc .v{font-family:var(--cond);font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap}
.sc .l{font-size:12.5px;color:var(--muted);margin-top:6px}
.sc .v.crit{color:var(--crit)}
/* Listen statt Tabellen */
.list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.list+.list{margin-top:12px}
.lg{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:28px 0 8px;display:flex;align-items:center;gap:10px}
.lg:first-child{margin-top:0}
.lg .n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--pill);background:var(--mist);color:var(--primary);font-size:11px;letter-spacing:0}
.it{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(96px,auto) auto;gap:16px;align-items:center;padding:14px 20px;border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent);min-height:64px}
.it:first-child{border-top:0}
.it.chk-it{grid-template-columns:26px 30px minmax(0,1fr) minmax(96px,auto) auto}
.it.click{cursor:pointer;transition:background-color .2s}
.it.click:hover{background:var(--sub)}
.it-m{min-width:0}
.it-m b{display:block;font-weight:500;font-size:14.5px;overflow-wrap:anywhere}
.it-m span{display:block;color:var(--muted);font-size:13px;margin-top:1px}
.it-meta{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.it-meta.now{color:var(--crit);font-weight:500}
.it-s{justify-self:end;display:flex;align-items:center;gap:8px}
.st-t{font-size:12.5px;color:var(--muted);white-space:nowrap}
.st-t.warn{color:var(--warn);font-weight:500}
.st-t.crit{color:var(--crit);font-weight:500}
.st-t.ok{color:var(--primary);font-weight:500}
.it .mk{flex:none}
.mk.ic{background:var(--mist);color:var(--primary)}
.mk.ic svg{width:15px;height:15px}
.mk.crit{background:var(--crit-bg);color:var(--crit)}
.mk.warn{background:var(--warn-bg);color:var(--warn)}
.mk.num{font-variant-numeric:tabular-nums;font-size:12.5px}
.it.done .it-m b{color:var(--muted)}
.it.done .tchk{background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);border-color:transparent}
.it.done .tchk path{stroke:#fff;opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .32s var(--ease) .04s}
.share{display:block;width:120px;height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.share i{display:block;height:100%;border-radius:6px;background:var(--signal);transform-origin:0 50%}
.share.big{width:100%;height:10px;border-radius:10px}
.share.big i{border-radius:10px;background:var(--primary)}
.share.big i.s2{background:var(--signal)}
/* Filter-Pills */
.seg.pills{border:0;gap:6px;margin:-6px 0 22px;flex-wrap:wrap;overflow:visible}
.seg.pills button{border:1px solid var(--line);border-radius:var(--pill);height:32px;padding:0 14px;background:var(--surface);color:var(--muted)}
.seg.pills button:first-child{border-left:1px solid var(--line)}
.seg.pills button[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.pill-search{position:relative;margin:-6px 0 20px;max-width:520px}
.pill-search svg{position:absolute;left:14px;top:12px;color:var(--faint)}
.pill-search input{width:100%;height:40px;border:1px solid var(--line-strong);border-radius:var(--pill);padding:0 16px 0 38px;background:var(--surface);font-size:14px}
.pill-search input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px var(--hl)}
/* Einheiten als Bubble-Karten */
.units{border:0 !important;background:none !important;gap:12px;overflow:visible !important}
.unit{border:1px solid var(--line) !important;border-radius:var(--r-lg);background:var(--surface);padding:14px 16px;min-height:104px;position:relative;transition:transform .3s var(--ease)}
.unit .u{align-items:center}
.unit .u span:first-child{display:inline-flex;align-items:center;gap:7px}
.unit .u span:first-child::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--signal)}
.unit.free{background:color-mix(in srgb,var(--mist) 55%,var(--surface)) !important;border-style:dashed !important;border-color:var(--line-strong) !important}
.unit.free .u span:first-child::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--faint)}
.unit.soon{box-shadow:none}
.unit.soon .u span:first-child::before{background:var(--warn)}
.unit.reno .u span:first-child::before{background:var(--line-strong)}
.unit .n{font-size:14px}
.unit .s .warn{color:var(--warn);font-weight:500}
@media (hover:hover){.unit:hover{transform:scale(1.015)}}
/* Auswertungen */
.fn{display:grid;grid-template-columns:110px minmax(0,1fr) 52px;gap:14px;align-items:center;padding:9px 0}
.fn span:first-child{font-size:13.5px}
.fn .num{text-align:right;font-weight:600}
.fn-note{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
/* eigenes Bild */
.me-av,.ph-av{background-size:cover;background-position:center}
.me-av{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;flex:none;background-color:#003F37;background-image:radial-gradient(circle at 32% 28%,#0A7A69,#003F37 72%);color:#fff;font-size:10.5px;font-weight:650;letter-spacing:.02em}
.me-av.xs{width:18px;height:18px;font-size:8px;vertical-align:-4px;margin-right:4px}
.me-av.xxl{width:132px;height:132px;font-size:40px;box-shadow:0 18px 40px -20px rgba(0,63,55,.6)}
.has-ph{color:transparent !important;background-size:cover !important;background-position:center !important}
.ini.has-ph{border:0}
.av-sm{width:28px;height:28px;font-size:10.5px}
/* Profil */
.prof{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:20px;align-items:start}
.prof-photo{padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:14px}
.prof-av-wrap{position:relative;padding:8px}
.prof-av-wrap::before{content:"";position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,var(--bub-a),transparent 70%);z-index:0}
.prof-av-wrap .me-av{position:relative;z-index:1}
.dropzone{width:100%;border:1.5px dashed var(--line-strong);border-radius:16px;padding:14px;text-align:center;display:flex;flex-direction:column;gap:2px;font-size:13px;transition:border-color .2s,background-color .2s}
.dropzone span{color:var(--faint);font-size:12px}
.dropzone.over{border-color:var(--signal);background:var(--mist)}
.prof-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.field textarea{height:auto;min-height:92px}
/* Akte: Foto hinzufügen */
.av-edit{position:relative;display:inline-block;flex:none}
.av-add{position:absolute;right:-6px;top:-4px;width:26px;height:26px;border-radius:50%;border:2px solid var(--surface);background:var(--surface);color:var(--primary);display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 2px 8px -2px rgba(0,63,55,.35);transition:transform .3s var(--ease)}
.av-add svg{width:14px;height:14px}
@media (hover:hover){.av-add:hover{transform:scale(1.08)}}
.av-edit{padding-bottom:20px}
.av-cap{position:absolute;left:50%;top:calc(100% - 14px);transform:translateX(-50%);white-space:nowrap;font-size:11.5px;color:var(--primary);background:none;border:0;padding:0;cursor:pointer;font-weight:500}
.av-cap.rm{color:var(--muted)}
/* Zuschnitt */
.crop{position:fixed;inset:0;z-index:150;background:rgba(6,22,19,.5);display:grid;place-items:center;padding:16px}
.crop[hidden]{display:none}
.crop-card{width:min(420px,100%);background:var(--surface);border-radius:24px;padding:22px 22px 18px;box-shadow:0 30px 70px -30px rgba(0,30,25,.5)}
.crop-card h2{font-family:var(--cond);font-size:20px;font-weight:650;letter-spacing:-.02em}
.crop-stage{position:relative;width:100%;aspect-ratio:1;margin:16px 0 14px;border-radius:20px;overflow:hidden;background:#0d1613;touch-action:none;cursor:grab}
.crop-stage:active{cursor:grabbing}
.crop-stage canvas{width:100%;height:100%;display:block}
.crop-ring{position:absolute;inset:8%;border-radius:50%;box-shadow:0 0 0 999px rgba(6,22,19,.55),inset 0 0 0 2px rgba(255,255,255,.85);pointer-events:none}
.crop-row{display:flex;align-items:center;gap:10px;color:var(--muted)}
.crop-row input{flex:1}
.crop-prev{width:48px;height:48px;border-radius:50%;overflow:hidden;flex:none;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line)}
.crop-prev canvas{width:100%;height:100%;display:block}
.crop-acts{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
/* Benachrichtigungen */
.bellbtn{position:relative}
.bellbtn .bdg{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 4px;border-radius:var(--pill);background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff;font-size:9.5px;font-weight:700;line-height:15px;text-align:center;box-shadow:0 0 0 2px var(--bg)}
.bellbtn .bdg[hidden]{display:none}
.npanel{width:360px}
.np-h{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px}
.np-h b{font-weight:600}
.np-h .lnk{font-size:12.5px}
.np-b{max-height:min(420px,60vh);overflow:auto}
.np-g{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding:10px 10px 4px;font-weight:600}
.np-i{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;background:none;border-radius:12px;text-align:left;cursor:pointer;color:var(--ink)}
.np-i:hover{background:var(--mist)}
.np-i b{display:block;font-weight:500;font-size:13.5px}
.np-i small{color:var(--muted);font-size:12px}
.np-i .when{font-size:11.5px;color:var(--faint);white-space:nowrap}
.np-i.unread .when::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--signal);margin-right:6px;vertical-align:1px}
/* Assistent */
.assist{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:92;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .32s var(--ease),visibility 0s linear .32s;box-shadow:-30px 0 60px -40px rgba(0,30,25,.4)}
.assist.on{transform:none;visibility:visible;transition:transform .32s var(--ease),visibility 0s}
.as-h{display:flex;gap:12px;align-items:center;padding:16px 18px;padding-top:calc(16px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line)}
.as-h h2{font-family:var(--cond);font-size:18px;font-weight:650;letter-spacing:-.02em}
.as-h small{color:var(--muted);font-size:12px}
.as-h .btn{margin-left:auto}
.as-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:radial-gradient(circle at 32% 28%,#3FD0A4,#00A075 70%);color:#fff}
.as-b{flex:1;overflow:auto;padding:18px}
.as-hello p{color:var(--muted);font-size:13.5px}
.as-sugg{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:12px}
.as-sugg .fchip{height:auto;min-height:32px;padding:6px 14px;text-align:left;color:var(--ink);white-space:normal}
.as-sugg .fchip:hover{border-color:var(--primary);color:var(--primary)}
.msg{margin-top:16px}
.msg.q{display:flex;justify-content:flex-end}
.msg.q span{background:var(--primary);color:#fff;padding:9px 14px;border-radius:18px 18px 4px 18px;max-width:85%;font-size:13.5px}
.msg.a{background:var(--sub);border:1px solid var(--line);border-radius:18px 18px 18px 4px;padding:12px 14px;font-size:13.5px}
.msg.a ul{list-style:none;margin:10px 0 0;padding:0}
.msg.a li{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.msg.a li .t{flex:1;min-width:0}
.msg.a li small{display:block;color:var(--muted);font-size:12px}
.msg.a .src{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line-strong);font-size:11.5px;color:var(--faint);display:flex;gap:6px;align-items:flex-start}
.msg.a .src svg{flex:none;margin-top:1px}
.typing{display:inline-flex;gap:4px;padding:12px 14px;background:var(--sub);border-radius:18px;margin-top:16px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:tdot 1s ease-in-out infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes tdot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
.as-f{display:flex;gap:8px;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.as-f input{flex:1;min-width:0;height:40px;border:1px solid var(--line-strong);border-radius:var(--pill);padding:0 16px;background:var(--surface)}
.as-f input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px var(--hl)}
.as-f .btn{width:40px;height:40px}
/* Einladen */
.invite{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:12px;align-items:end;padding:16px 18px}
.invite .field{margin:0}
.invite[hidden]{display:none}
/* KI-Eingang, Einstellungen: Feinschliff */
.drop{border-radius:24px;background:linear-gradient(160deg,var(--mist),var(--sub) 70%)}
.drop .formats .tag{background:var(--surface)}
.ki-notes{gap:12px;border:0;background:none}
.ki-notes>div{border:1px solid var(--line) !important;border-radius:var(--r-lg);background:var(--surface);padding:14px 16px}
.tabs{gap:4px;border-bottom:0;padding:4px;background:var(--sub);border-radius:var(--pill);width:max-content;max-width:100%;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{height:36px;border-radius:var(--pill);border-bottom:0;margin-bottom:0;padding:0 16px;transition:background-color .2s,color .2s}
.tab[aria-selected="true"]{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px rgba(0,40,34,.12)}
.srow{padding:14px 18px}
.srow>div:first-child svg.i{width:34px;height:34px;padding:8px;border-radius:50%;background:var(--mist);color:var(--primary);box-sizing:border-box}
.mx th,.mx td{padding:10px 12px}
.mx tr.grp td{background:var(--sub)}
.mx td:first-child{font-weight:500}
.keyrow{padding:13px 18px}
.usage{height:10px;border-radius:10px}
.usage i:first-child{border-radius:10px 0 0 10px}
.prov label{padding:13px 18px}
.users .it{grid-template-columns:30px minmax(0,1fr) minmax(96px,auto) auto}
.rv-bar,.fields .grp,.match,.confirm{border-radius:var(--r-lg)}
.fr input{border-radius:8px}
@media (max-width:1100px){.sum{grid-template-columns:repeat(2,minmax(0,1fr))}.prof{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){
  .view.calm .vh h1{font-size:25px}
  .view.calm .vh .act{margin-left:0}
  .sum{gap:10px}
  .sc{padding:14px}
  .sc .v{font-size:24px}
  .it,.users .it{grid-template-columns:30px minmax(0,1fr) auto;gap:2px 12px;padding:12px 14px}
  .it.chk-it{grid-template-columns:26px 30px minmax(0,1fr) auto;gap:2px 10px}
  .it .mk,.it .tchk{grid-row:1 / 3}
  .it-meta{grid-column:2;grid-row:2;text-align:left;white-space:normal}
  .it.chk-it .it-meta{grid-column:3}
  .it-s{grid-column:3;grid-row:1 / 3}
  .it.chk-it .it-s{grid-column:4}
  .share{width:64px}
  .units{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .fn{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
  .fn .share{grid-column:1/-1;grid-row:2}
  .invite{grid-template-columns:minmax(0,1fr)}
  .npanel{width:auto;left:16px}
  .top .searchbtn{display:none}
  .tabs{width:100%;border-radius:18px}
}
.field select,.mx select{appearance:none;-webkit-appearance:none;padding-right:30px !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234F5F5A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.mx select{border-radius:var(--pill);padding-left:10px}
@media (max-width:860px){.view.calm .vh{flex-direction:column;align-items:flex-start;gap:12px}}
@media (prefers-reduced-motion: reduce){.typing i{animation:none}.assist{transition:none}}
.tl-lnk{color:var(--ink);font-weight:500;font-size:inherit;text-align:left}
.tl-lnk:hover{color:var(--primary)}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
}
/* Alpha Rechner · Ergänzungen zu den Rechner-Styles der Seite */
.cx-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.cx-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500;margin:18px 0 10px;padding-top:12px;border-top:1px solid var(--line)}
.cx-swl{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--ink) !important;font-size:13px !important}
.cx-swl .sw{flex:none}
.cx-ass{margin-top:6px;border-top:1px solid var(--line);padding-top:10px}
.cx-ass summary{cursor:pointer;font-size:12.5px;color:var(--primary);font-weight:500;list-style:none;display:flex;align-items:center;gap:8px}
.cx-ass summary::-webkit-details-marker{display:none}
.cx-ass summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s var(--ease,ease)}
.cx-ass[open] summary::before{transform:rotate(45deg)}
.cx-ass summary span{margin-left:auto;font-size:11.5px;color:var(--faint);font-weight:400}
.cx-ass-b{padding-top:12px}
.cx-ass-b .btn{margin-top:-2px}
.cx-p{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.cx-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cx-duo>div{min-width:0}
.cx-duo>div+div{border-left:1px solid var(--line);padding-left:16px}
.cx-duo .result-big{font-size:clamp(28px,3.2vw,40px)}
.cx-duo .result-big small{font-size:16px}
.cx-sub{margin-top:10px;font-size:13px;color:var(--muted)}
.cx-sub b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.cx-warn{margin-top:12px;padding:8px 12px;border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn);border-radius:var(--r);font-size:12.5px}
.cx-foot{font-size:12px;color:var(--muted);margin-top:12px}
.cx-foot:empty{display:none}
.cx-note{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--faint);margin-top:10px}
.cx-note svg.i{width:13px;height:13px}
.breakdown div span:last-child{text-align:right;padding-left:12px}
.breakdown.cx-3 div{display:grid;grid-template-columns:minmax(0,1fr) 92px 92px;gap:8px}
.breakdown.cx-3 div span:not(:first-child){text-align:right;padding-left:0}
.breakdown.cx-3 .cx-bh{font-size:11.5px;color:var(--faint);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.cx-tbl{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.cx-tr{display:grid;grid-template-columns:minmax(0,1fr) 92px 112px;gap:8px;align-items:center}
.cx-tr label{font-size:12.5px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.cx-tr input,.cx-tr select{height:32px;border:1px solid var(--line-strong);border-radius:10px;padding:0 8px;background:var(--surface);font-variant-numeric:tabular-nums;width:100%;min-width:0}
.cx-tr input:focus,.cx-tr select:focus{border-color:var(--signal);outline:none;box-shadow:0 0 0 3px var(--hl)}
.curve .cx-area{fill:var(--hl);stroke:none}
.curve .cx-vm{stroke:var(--signal);stroke-width:1;stroke-dasharray:2 3}
.cx-bars{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.cx-bl{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-bottom:5px}
.cx-br.hi .cx-bl{color:var(--ink);font-weight:600}
.cx-bt{display:flex;gap:2px;height:10px;border-radius:var(--pill);background:var(--sub);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.cx-bt i{display:block;height:100%;min-width:2px}
.cx-bt i:last-child{border-radius:0 var(--pill) var(--pill) 0}
.cx-bars+.cx-lg{margin-top:10px}
.cx-c1{fill:var(--primary);background:var(--primary)}
.cx-c2{fill:var(--signal);background:var(--signal)}
.cx-c3{fill:var(--line-strong);background:var(--line-strong)}
.cx-c4{fill:var(--warn);background:var(--warn)}
.cx-c5{fill:var(--faint);background:var(--faint)}
.cx-lg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin-top:8px}
.cx-lg span{display:inline-flex;align-items:center;gap:6px}
.cx-lg i{width:10px;height:10px;border-radius:3px;display:inline-block}
@media (max-width:480px){
  .cx-duo{grid-template-columns:minmax(0,1fr);gap:12px}
  .cx-duo>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}
  .cx-tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 8px}
  .cx-tr label{grid-column:1 / -1}
  .breakdown.cx-3 div{grid-template-columns:minmax(0,1fr) 76px 76px;font-size:12.5px}
}
@media (prefers-reduced-motion: reduce){.cx-ass summary::before{transition:none}}


/* ================= App v1: Ergänzungen (Phase 2, Fehler, 2FA-Einrichtung) ================= */
.ri.soon{opacity:.45;cursor:default}
.ri.soon:hover{background:none;color:var(--rail-ink)}
.sheet .ri.soon:hover{background:none;color:var(--ink)}
.sheet .ri .cnt{opacity:1;background:var(--mist);color:var(--muted)}
.toast.err{background:#9E3A30;color:#fff}
.secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;font-weight:600;letter-spacing:.12em;text-align:center;word-break:break-all;padding:14px;border:1px dashed var(--line-strong);border-radius:14px;background:var(--sub);margin:4px 0 10px;user-select:all}
#au-setup .auth-row{margin-bottom:16px}
.kiprev{display:block;max-width:100%;border-radius:10px;background:var(--surface)}
.mx input[type=text]{height:28px;width:100%;min-width:120px;border:1px solid var(--line-strong);border-radius:var(--pill);background:var(--surface);font-size:12.5px;padding:0 10px}
#invite{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto}
@media (max-width:860px){#invite{grid-template-columns:minmax(0,1fr)}}

/* ================= Hülle „Schwebende Fenster“ (Kundenauswahl, Werte aus Schwebend.dc.html) ================= */
:root{--canvas:#E6EFEB;--gridline:rgba(0,94,82,.05);--glow:rgba(0,160,117,.20);--hair:#EEF3F1;--soft-ink:#33443F;--fl-1:0 1px 0 rgba(255,255,255,.9) inset,0 2px 6px rgba(14,38,33,.05),0 24px 60px rgba(14,38,33,.12);--fl-2:0 1px 0 rgba(255,255,255,.9) inset,0 2px 6px rgba(14,38,33,.05),0 30px 80px rgba(14,38,33,.14);--card:0 2px 6px rgba(14,38,33,.05),0 12px 30px rgba(14,38,33,.09);--navw:252px}
:root[data-theme="dark"]{--canvas:#0A120F;--gridline:rgba(45,196,151,.05);--glow:rgba(45,196,151,.12);--hair:#1C2925;--soft-ink:#C3D2CD;--fl-1:0 2px 6px rgba(0,0,0,.3),0 24px 60px rgba(0,0,0,.45);--fl-2:0 2px 6px rgba(0,0,0,.3),0 30px 80px rgba(0,0,0,.5);--card:0 2px 6px rgba(0,0,0,.25),0 12px 30px rgba(0,0,0,.3)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--canvas:#0A120F;--gridline:rgba(45,196,151,.05);--glow:rgba(45,196,151,.12);--hair:#1C2925;--soft-ink:#C3D2CD;--fl-1:0 2px 6px rgba(0,0,0,.3),0 24px 60px rgba(0,0,0,.45);--fl-2:0 2px 6px rgba(0,0,0,.3),0 30px 80px rgba(0,0,0,.5);--card:0 2px 6px rgba(0,0,0,.25),0 12px 30px rgba(0,0,0,.3)}}
body{background:var(--canvas)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--gridline) 1px,transparent 1px),linear-gradient(90deg,var(--gridline) 1px,transparent 1px);background-size:48px 48px}
body::after{content:"";position:fixed;right:-120px;top:-160px;width:520px;height:520px;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 65%)}
.app,.app.no-ctx{display:flex;gap:18px;padding:18px;background:none;min-height:100vh}
.win{flex:1;min-width:0;display:flex;border-radius:26px;background:var(--surface);box-shadow:var(--fl-2);overflow:clip}
.win>.ctx{flex:none;width:264px}
.win>.main{flex:1;min-width:0}
/* Leiste als eigenes Panel */
.rail{flex:none;width:var(--navw);transition:width .35s var(--ease);position:sticky;top:18px;height:calc(100vh - 36px)}
.app.nav-closed{--navw:76px}
.rail .rail-inner,.rail:hover .rail-inner,.rail:focus-within .rail-inner,.app.rail-open .rail-inner{position:absolute;inset:0;width:auto;padding:18px 12px;border-radius:26px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--fl-1);color:var(--soft-ink);overflow:hidden auto;scrollbar-width:none}
.rail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 6px 18px}
.rail .mono{height:auto;padding:0;margin:0;color:var(--ink);gap:10px;min-width:0}
.rail .mono-a,.auth-mark .mono-a{width:38px;height:38px;border-radius:12px;border:0;background:linear-gradient(30deg,#005E52 10%,rgba(0,160,117,.85));color:#fff;font-family:var(--sans);font-size:18px}
.rail .mono-t,.rail:hover .mono-t{opacity:1}
.rail .mono-t b{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:-.01em}
.rail .mono-t small{color:var(--muted);font-size:11px;letter-spacing:.01em}
.rail-tog{width:36px;height:36px;flex:none;border-radius:10px;border:1px solid #DCE7E3;background:var(--surface);color:var(--soft-ink);cursor:pointer;display:grid;place-items:center;padding:0}
:root[data-theme="dark"] .rail-tog{border-color:var(--line)}
.rail-tog svg{transition:transform .3s var(--ease)}
.app.nav-closed .rail-tog svg{transform:rotate(180deg)}
.rail-tog:hover{border-color:var(--primary);color:var(--primary)}
#rail-search{display:none}
.rail .rail-group{border-top:1px solid var(--hair);margin-top:14px;padding-top:10px;gap:4px}
#rail-nav>.rail-group:first-child{border-top:0;margin-top:0;padding-top:0}
.rail .rail-cap,.rail:hover .rail-cap{opacity:1;height:auto;width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:0;background:none;font:inherit;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;border-radius:10px}
.rail .rail-cap:hover{color:var(--ink)}
.rail .rail-cap svg{transition:transform .25s var(--ease)}
.rail .rail-group.shut .rail-cap svg{transform:rotate(-90deg)}
.rail .rail-gi{display:none}
/* Eingeklappte Gruppe: Symbolreihe (alle Einträge bleiben sichtbar); schmale Leiste: ein Gruppen-Symbol mit Flyout */
.app:not(.nav-closed) .rail-group.shut .rail-items{flex-direction:row;flex-wrap:wrap;gap:4px}
.app:not(.nav-closed) .rail .rail-group.shut .ri{width:44px;height:40px;padding:0;justify-content:center;flex:none}
.app:not(.nav-closed) .rail .rail-group.shut .ri .lbl,.app:not(.nav-closed) .rail .rail-group.shut .ri .cnt{display:none}
.app.nav-closed .rail-group.shut .rail-items{display:none}
.app.nav-closed .rail .rail-group.shut .rail-gi{display:flex}
.rail-fly{position:fixed;z-index:70;min-width:210px;padding:8px;border-radius:16px;background:var(--surface);box-shadow:var(--fl-1);display:flex;flex-direction:column;gap:2px}
.rail-fly-h{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 12px}
.rail-fly .ri{height:40px;gap:12px;border-radius:12px;color:var(--soft-ink);font-size:15px;padding:0 12px}
.rail-fly .ri .lbl{opacity:1}
.rail-fly .ri:hover{background:var(--mist);color:var(--ink)}
.rail-fly .ri.active{background:var(--mist);color:var(--primary);font-weight:600}
.rail-fly .ri.active::before{display:none}
.rail-items{display:flex;flex-direction:column;gap:4px}
.rail .ri{height:44px;gap:12px;border-radius:12px;color:var(--soft-ink);font-size:15px}
.rail .ri{height:40px}
.rail .rail-group{margin-top:10px;padding-top:8px}
.rail .rail-cap,.rail:hover .rail-cap{padding:6px 12px}
/* fitNav(): wenn es trotz eingeklappter Gruppen nicht passt */
.rail-inner.dense .rail-head{padding-bottom:8px}
.rail-inner.dense .ri,.app:not(.nav-closed) .rail-inner.dense .rail-group.shut .ri{height:34px}
.rail-inner.dense .rail-group{margin-top:6px;padding-top:4px;gap:2px}
.rail-inner.dense .rail-items{gap:2px}
.rail-inner.dense .rail-cap{padding:4px 12px}
.rail .ri .lbl,.rail:hover .ri .lbl{opacity:1;font-size:15px;flex:1}
.rail .ri:hover{background:var(--mist);color:var(--ink)}
.rail .ri.active{background:var(--mist);color:var(--primary);font-weight:600}
.rail .ri.active::before{display:none}
.rail .ri .cnt,.rail:hover .ri .cnt{opacity:1;font-size:12px;font-weight:600;color:var(--primary);background:var(--mist);height:auto;line-height:1.4;padding:2px 8px}
.rail .ri[data-go="ki"] .cnt{background:#00A075;color:#fff}
.rail .ri.soon .cnt{background:var(--sub);color:var(--faint);font-weight:500}
.rail .ri .dot{display:none}
.rail .ri .dot,.rail:hover .ri .dot{box-shadow:0 0 0 2px var(--surface)}
.rail .rail-foot{margin-top:auto}
.rail-inner{display:flex;flex-direction:column}
.rail-me{display:flex;align-items:center;gap:10px;padding:10px 6px 0;margin-top:10px;border-top:1px solid var(--hair)}
.rail-me .avatar{width:40px;height:40px;font-size:13px}
.rail-me .t{min-width:0;font-size:14px;line-height:1.25;white-space:nowrap}
.rail-me .t b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.rail-me .t small{color:var(--muted)}
.app.nav-closed .rail .mono-t,.app.nav-closed .rail .lbl,.app.nav-closed .rail .cnt,.app.nav-closed .rail .rail-cap,.app.nav-closed .rail-me .t{display:none}
.app.nav-closed .rail-head{flex-direction:column;padding:4px 0 14px}
.app.nav-closed .rail .ri{justify-content:center;padding:0}
.app.nav-closed .rail .ri .dot{display:block;opacity:1}
.app.nav-closed .rail-me{justify-content:center;padding:10px 0 0}
/* Hauptfenster: Suchleiste oben mit Haarlinie */
.top{height:auto;min-height:80px;padding:18px clamp(16px,3vw,36px);gap:12px;border-bottom:1px solid var(--hair);background:var(--surface)}
.top .searchbtn{flex:1 1 300px;max-width:520px;width:auto;height:44px;border-radius:12px;border-color:#DCE7E3;background:var(--sub);font-size:15px;padding:0 16px}
:root[data-theme="dark"] .top .searchbtn{border-color:var(--line)}
.view{padding:32px clamp(16px,3vw,36px) 40px}
.ctx{background:var(--sub)}
/* Karten schweben: Schatten statt Rahmen */
.panel,.ledger,.tl,.strip,.list,.sc,.area,.calc,.prov,.fields .grp,.match,.rv-bar,.steps,.ki-notes>div,.today,.bereiche3,.confirm{border-color:transparent!important;box-shadow:var(--card)}
.sc:first-child{border-color:transparent}
.paper-wrap{top:100px}
@media (min-width:861px){
  html,body{height:100%}
  .app,.app.no-ctx{height:100vh;min-height:0;overflow:hidden}
  .win{overflow:hidden}
  .win>.main{height:100%;overflow:auto;overscroll-behavior:contain}
  .win>.ctx{position:relative;top:auto;height:100%}
  .ctx-brand{display:none}
  .crumb{display:none}
  .top #avatar-btn{display:none}
  .top{position:sticky;top:0}
}
@media (max-width:1100px){.win>.ctx{width:230px}}
@media (max-width:860px){
  .app,.app.no-ctx{display:block;padding:10px}
  .win{display:block;border-radius:20px}
  .win>.ctx{width:min(320px,88vw)}
  .top{min-height:64px;padding:10px 14px;border-radius:20px 20px 0 0}
}
@media (max-width:860px){.view{padding:18px 14px 96px}}
.rolebox{white-space:nowrap}
.rail .ri{height:40px}
.rail-me{position:sticky;bottom:-18px;margin-bottom:-18px;padding-bottom:18px;background:var(--surface);z-index:1}
@media (min-width:861px){
  .top .sp{display:none}
  .top .searchbtn{margin-right:auto}
  .trow{grid-template-columns:26px 30px minmax(0,1fr) auto 104px}
  .trow .due{white-space:nowrap}
}
.rail .rail-inner,.rail:hover .rail-inner{overflow:hidden}
#rail-nav{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;margin:0 -4px;padding:0 4px}
.rail .rail-foot{flex:none;margin-top:10px}
.rail-me{position:static;margin-bottom:0;padding-bottom:0;flex:none}

.users .ask{grid-column:1/-1;flex:1 1 100%}

.um-sel{width:100%;height:36px;margin:2px 0 4px}

/* v2: Betreiber-Oberfläche */
.op-sw{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.op-fx{background:var(--sub)}
.op-fx .srow{padding:10px 18px 10px 40px;border-top:1px solid var(--line)}
.op-chev{margin-left:2px;transition:transform .2s var(--ease)}
[aria-expanded="true"] .op-chev{transform:rotate(90deg)}
.op-u{grid-template-columns:minmax(0,1fr) auto}
@media (max-width:600px){.op-u{grid-template-columns:minmax(0,1fr)}.op-u .op-sw{justify-content:flex-start}}

@media (min-width:861px){.strip.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v2: Inhalte nutzen die volle Breite des Hauptfensters; nur Fließtext hat eine Lesebreite */
.view,.view.start,.view.calm{max-width:none}
.vh p,.greet p{max-width:70ch}
.steps{max-width:none}
.areas{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
@media (max-width:1100px){.areas{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}}

/* v2: Hülle passt exakt in den Bildschirm, gescrollt wird nur im Hauptfenster; Leiste kompakt */
@media (min-width:861px){
  html,body{height:100%;overflow:hidden}
  .app,.app.no-ctx{height:100vh;height:100dvh}
  .rail{position:relative;top:auto;height:auto;align-self:stretch}
  .win{position:relative} /* unsichtbare Datei-Felder (.sr) bleiben im Fenster statt die Seite zu verlängern */
  #ct-file{position:fixed;top:0;left:0}
}
/* Tarifzeilen: tr.sum darf nicht die Kachel-Klasse .sum (Grid) erben */
.tariffs tr.sum{display:table-row}
.tariffs td:nth-child(2){padding:6px 12px}
.rail-head{padding-bottom:12px}
.rail .rail-group{margin-top:8px;padding-top:6px}
.rail .rail-cap,.rail:hover .rail-cap{padding:6px 12px}
.rail-items{gap:2px}
.rail .ri{height:38px}
#rail-nav{scrollbar-width:none}
#rail-nav::-webkit-scrollbar{display:none}

/* v3: KI-Assistent als schwebende Karte rechts (A2), am Handy Vollbild-Sheet; bleibt beim Navigieren offen */
.assist{top:16px;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));border:0;border-radius:20px;overflow:hidden;
  transform:translateX(calc(100% + 24px));box-shadow:0 24px 60px -20px rgba(0,40,30,.35),0 2px 8px rgba(0,40,30,.08)}
.as-h{padding:14px 14px 14px 18px;gap:10px}
.as-h .btn{margin-left:0}
.as-h #as-new{margin-left:auto}
.as-h small{display:block}
.as-b{position:relative;scroll-behavior:smooth}
.as-step{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:12.5px;color:var(--muted)}
.as-step svg{flex:none;color:var(--faint)}
.as-step.ok svg{color:var(--primary)}
.as-step.abgelehnt{color:var(--crit)}
.as-step.abgelehnt svg{color:var(--crit)}
.msg.q{flex-direction:column;align-items:flex-end;gap:6px}
.as-thumbs{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.as-thumbs img,.as-thumbs .pdf{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:var(--sub)}
.as-thumbs .pdf{display:grid;place-items:center;font-size:11px;color:var(--muted)}
.as-plan{margin-top:12px;background:var(--surface);border-radius:14px;box-shadow:var(--card);padding:12px 14px}
.as-plan h3{font-size:13px;font-weight:600;margin:0 0 6px;display:flex;gap:6px;align-items:center}
.as-plan label{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line);font-size:13px;cursor:pointer}
.as-plan label input{margin-top:3px;accent-color:var(--primary)}
.as-plan label small{display:block;color:var(--muted);font-size:11.5px;word-break:break-word}
.as-plan .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.as-plan.done label{cursor:default}
.as-res{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.as-res .t{flex:1;min-width:0}
.as-res.abgelehnt{color:var(--crit)}
.as-link{margin-top:8px;display:inline-flex}
.as-f{flex-direction:column;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px))}
.as-row{display:flex;gap:6px;align-items:flex-end}
.as-f textarea{flex:1;min-width:0;min-height:40px;max-height:140px;resize:none;border:1px solid var(--line-strong);border-radius:20px;padding:9px 16px;background:var(--surface);font:inherit;font-size:14px;line-height:1.4}
.as-f textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px var(--hl)}
.as-row .btn.icon{width:40px;height:40px;flex:none}
.as-att{display:flex;gap:8px;flex-wrap:wrap}
.as-chip{position:relative;display:flex;align-items:center;gap:8px;max-width:100%;padding:4px 30px 4px 4px;border-radius:12px;background:var(--sub);font-size:12px}
.as-chip img,.as-chip .pdf{width:36px;height:36px;border-radius:8px;object-fit:cover;flex:none;display:grid;place-items:center;background:var(--surface);color:var(--muted);font-size:10px}
.as-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.as-chip.busy span::after{content:' · lädt …';color:var(--muted)}
.as-chip button{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.as-chip button:hover{background:var(--line)}
.as-drop{position:absolute;inset:70px 12px 12px;border:2px dashed var(--primary);border-radius:16px;background:color-mix(in srgb,var(--surface) 88%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--primary);z-index:2;pointer-events:none}
.as-drop[hidden]{display:none}
.as-drop small{color:var(--muted)}
@media (max-width:860px){
  .assist{inset:0;width:100vw;height:100dvh;border-radius:0;transform:translateY(100%)}
  .assist.on{transform:none}
  .as-h{padding-top:calc(14px + env(safe-area-inset-top,0px))}
}
.as-step+p,.as-step+.as-plan{margin-top:10px}
.as-results{margin-top:8px}

/* v3: Betreiber-Zugriff auf einen Mandanten – dauerhafte Hinweisleiste, nicht wegklickbar */
.op-bar{position:sticky;top:0;z-index:31;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px clamp(16px,3vw,36px);background:#7A2E0E;color:#fff;font-size:13.5px}
.op-bar[hidden]{display:none}
.op-bar b{font-weight:650}
.op-bar .btn{margin-left:auto;background:#fff;color:#7A2E0E;border-color:#fff}
.app.acting .top{top:44px}
@media (max-width:860px){.op-bar{border-radius:20px 20px 0 0;font-size:12.5px}.app.acting .top{border-radius:0}}
.it.op-entry{background:var(--warn-bg)}
.it.op-entry b::before{content:'Betreiber · ';color:var(--warn)}
#log-op[aria-pressed="true"]{border-color:var(--primary);color:var(--primary);background:var(--mist)}
#log-op{display:inline-flex;align-items:center;gap:6px}
@media (max-width:860px){.op-bar .op-long{display:none}}

/* v3: Desktop ab 1100 px – Assistent als drittes schwebendes Fenster neben dem Hauptfenster (gleiche Höhe, 18 px Abstand), das Hauptfenster schrumpft;
   darunter bleibt er Overlay/Sheet. */
@media (min-width:1100px){
  .app,.app.no-ctx{transition:padding-right .32s var(--ease)}
  .assist{top:18px;right:18px;bottom:18px;width:440px}
  body.assist-on .app,body.assist-on .app.no-ctx{padding-right:476px}
}
@media (min-width:1100px) and (prefers-reduced-motion:reduce){.app,.app.no-ctx{transition:none}}

/* Rechte-Matrix: Funktionszeilen je Modul (aufklappbar) */
.mx-tog{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;font-weight:500;color:inherit;cursor:pointer;padding:0;text-align:left}
.mx-tog svg{color:var(--muted);transition:transform .2s var(--ease)}
.mx-tog[aria-expanded="true"] svg{transform:rotate(90deg)}
.mx-tog small{color:var(--muted);font-weight:400;font-size:12px}
.mx-tog:hover span{color:var(--primary)}
.mx tr.mx-fn td{font-size:12.5px;padding-top:6px;padding-bottom:6px}
.mx tr.mx-fn td:first-child{padding-left:42px;font-weight:400;color:var(--soft-ink);white-space:normal}
.mx td.mx-fe{text-align:left}
.mx-fl{display:inline-flex;align-items:center;gap:8px;color:var(--soft-ink);cursor:pointer}
.mx-fl small{color:var(--muted)}

/* Demo-Server: dauerhafte Hinweisleiste (nicht wegklickbar) */
.demo-bar{position:sticky;top:0;z-index:32;padding:8px clamp(16px,3vw,36px);background:#FFE8A3;color:#4A3000;border-bottom:2px solid #B07A00;font-size:13.5px;line-height:1.35;font-weight:500;overflow-wrap:anywhere}
.demo-bar[hidden]{display:none}
.demo-bar b{font-weight:800;letter-spacing:.04em}
.app.demo .op-bar{position:static}

/* KI-Antworten: Listen aus Markdown */
.as-md{margin:0;padding-left:20px}
.as-md li{margin:2px 0}
.msg.a code{font-size:.92em;background:var(--mint,#EDF6F2);padding:1px 5px;border-radius:5px}

/* Roboter im Assistenten-Kopf: blinzeln, Antenne leuchtet, beim Nachdenken schauen die Augen hin und her */
.as-ic svg.bot{width:22px;height:22px;stroke-width:1.6;overflow:visible}
.bot-eyes circle{fill:currentColor;stroke:none}
.bot-eyes{transform-box:fill-box;transform-origin:center;animation:bot-blink 5.5s infinite}
.bot-ant{fill:#fff;stroke:none;animation:bot-glow 2.8s ease-in-out infinite}
.assist.busy .bot-eyes,.assist:has(.typing) .bot-eyes{animation:bot-look 1.4s ease-in-out infinite}
.assist.busy .bot-ant,.assist:has(.typing) .bot-ant{animation-duration:.9s}
@keyframes bot-blink{0%,91%,97%,100%{transform:scaleY(1)}94%{transform:scaleY(.12)}}
@keyframes bot-glow{0%,100%{opacity:.55;filter:none}50%{opacity:1;filter:drop-shadow(0 0 2px #fff)}}
@keyframes bot-look{0%,100%{transform:translateX(0)}30%{transform:translateX(-1.4px)}70%{transform:translateX(1.4px)}}
@media (prefers-reduced-motion:reduce){.bot-eyes,.bot-ant{animation:none}}
