/* Tagesplaner: Design nach context/design-standard.md (φ-Raster, Typo-Skala, ein Akzent). */
:root{
  --s1:3px;--s2:5px;--s3:8px;--s4:13px;--s5:21px;--s6:34px;--s7:55px;--s8:89px;
  --accent:255 77 20;--accent-hover:232 62 8;--accent-tint:255 245 241;--accent-soft:255 229 219;
  --ink:10 10 10;--ink-soft:23 23 23;--bg:245 245 245;--bg-alt:245 245 245;--card:255 255 255;
  --muted:115 115 115;--line:229 229 229;--line-strong:212 212 212;--danger:231 0 11;
  --shadow:0 1px 2px rgb(0 0 0 / .04),0 10px 30px -18px rgb(0 0 0 / .18);
  --ease:cubic-bezier(.22,1,.36,1);
  --r-card:22px;--r-modal:28px;--r-pill:18px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --accent-tint:41 22 14;--accent-soft:64 32 20;
  --ink:250 250 250;--ink-soft:229 229 229;--bg:10 10 10;--bg-alt:38 38 38;--card:23 23 23;
  --muted:163 163 163;--line:38 38 38;--line-strong:64 64 64;--danger:255 100 103;
  --shadow:0 0 0 1px rgb(255 255 255 / .06),0 12px 30px -18px rgb(0 0 0 / .8);
}}
:root[data-theme=dark]{
  --accent-tint:41 22 14;--accent-soft:64 32 20;
  --ink:250 250 250;--ink-soft:229 229 229;--bg:10 10 10;--bg-alt:38 38 38;--card:23 23 23;
  --muted:163 163 163;--line:38 38 38;--line-strong:64 64 64;--danger:255 100 103;
  --shadow:0 0 0 1px rgb(255 255 255 / .06),0 12px 30px -18px rgb(0 0 0 / .8);
  color-scheme:dark;
}
:root[data-theme=light]{color-scheme:light}
*{box-sizing:border-box}
html{color-scheme:light dark;-webkit-text-size-adjust:100%;overflow-x:hidden;max-width:100vw}
body{margin:0;background:rgb(var(--bg));color:rgb(var(--ink));font-family:'Geist',-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;font-feature-settings:'ss01','cv11';font-size:15px;line-height:1.45;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background-image:radial-gradient(900px 520px at 82% -8%,rgb(var(--accent) / .07),transparent 70%),radial-gradient(700px 480px at -5% 0%,rgb(var(--accent) / .04),transparent 62%);background-attachment:fixed}
body.lock{overflow:hidden}
::selection{background:rgb(var(--accent));color:#fff}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0;-webkit-tap-highlight-color:transparent}
@media (max-width:639px){input,select,textarea{font-size:16px}}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes glow{from{box-shadow:0 0 0 0 rgb(var(--accent) / .45)}to{box-shadow:0 0 0 10px rgb(var(--accent) / 0)}}
@keyframes fade{from{opacity:0}}
@keyframes zoom{from{opacity:0;transform:translate(-50%,-48%) scale(.97)}}
@keyframes up{from{transform:translateY(40px);opacity:0}}
@keyframes shimmer{from{background-position:-200px 0}to{background-position:200px 0}}
.still,.still *{animation:none!important}

/* Typo */
.wortmarke{font-family:'Satoshi',sans-serif;font-weight:700;letter-spacing:-.028em;font-size:20px;color:rgb(var(--ink));white-space:nowrap}
.wortmarke .p{color:#FF4D14}.wortmarke .ai{color:rgb(var(--muted));font-weight:500;margin-left:.16em}
.caption{font-size:12px;font-weight:500;line-height:1.33;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted))}
.eyebrow{display:inline-flex;align-items:center;gap:var(--s3);color:rgb(var(--accent))}
.eyebrow::before{content:'';display:block;width:var(--s5);height:1px;background:currentColor;opacity:.7}
.h1{font-size:clamp(28px,7vw,34px);font-weight:600;line-height:1.1;letter-spacing:-.03em;margin:var(--s3) 0 0;text-wrap:balance}
.h1 .n{color:rgb(var(--muted));font-weight:500;font-size:.62em;margin-left:var(--s2)}
.sub{color:rgb(var(--muted));font-size:13px;margin:var(--s2) 0 0}
.muted{color:rgb(var(--muted))}
.num{font-variant-numeric:tabular-nums}
.small{font-size:13px}
mark{background:rgb(var(--accent) / .22);color:inherit;border-radius:3px;padding:0 1px}

/* Flächen */
.card{background:rgb(var(--card));border-radius:var(--r-card);box-shadow:var(--shadow)}
.card:has(> .item),.card:has(> .pcard){overflow:hidden;isolation:isolate}
.item:first-child .row{border-radius:var(--r-card) var(--r-card) 0 0}
.item:last-child .row{border-radius:0 0 var(--r-card) var(--r-card)}
.item:first-child:last-child .row{border-radius:var(--r-card)}
.card-hero{background:linear-gradient(165deg,rgb(var(--accent) / .12) 0%,rgb(var(--card)) 60%);box-shadow:0 0 0 1px rgb(var(--accent) / .25),0 18px 40px -20px rgb(var(--accent) / .35)}
.skel{border-radius:var(--r-card);background:linear-gradient(90deg,rgb(var(--card)) 0,rgb(var(--bg-alt)) 50%,rgb(var(--card)) 100%);background-size:400px 100%;animation:shimmer 1.2s linear infinite;min-height:64px}

/* Knöpfe und Felder */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);height:36px;padding:0 var(--s4);border-radius:var(--r-pill);font-size:14px;font-weight:500;line-height:1;white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s,transform .15s var(--ease)}
.btn:active{transform:scale(.97)}
.btn-sm{height:32px;padding:0 10px;font-size:13px}
.btn-lg{height:44px;padding:0 var(--s5)}
.btn-primary{background:rgb(var(--ink));color:rgb(var(--card))}.btn-primary:hover{background:rgb(var(--accent));color:#fff}
.btn-ghost{background:rgb(var(--bg-alt));color:rgb(var(--ink))}.btn-ghost:hover{background:rgb(var(--line))}
.btn-outline{background:transparent;border:1px solid rgb(var(--line));color:rgb(var(--ink))}.btn-outline:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.btn-accent{background:rgb(var(--accent));color:#fff}.btn-accent:hover{background:rgb(var(--accent-hover))}
.btn-danger{color:rgb(var(--danger))}.btn-danger:hover{background:rgb(var(--danger) / .08)}
.btn:disabled{opacity:.5;pointer-events:none}
.input{width:100%;background:rgb(var(--card));color:rgb(var(--ink));border:1px solid rgb(var(--line));border-radius:var(--r-pill);padding:var(--s3) var(--s4);font-size:15px;line-height:1.43;outline:none;transition:border-color .15s,box-shadow .15s;min-height:40px}
.input:focus{border-color:rgb(var(--accent));box-shadow:0 0 0 3px rgb(var(--accent) / .16)}
.input::placeholder{color:rgb(var(--muted))}
textarea.input{min-height:80px;resize:vertical}
select.input{appearance:none;padding-right:34px;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='%23737373' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s4) center}
.ibtn{width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;color:rgb(var(--muted));transition:background-color .15s,color .15s;flex:none;position:relative}
.ibtn:hover{background:rgb(var(--bg-alt));color:rgb(var(--accent))}
.ibtn.on{color:rgb(var(--accent));background:rgb(var(--accent-tint))}
.badge-n{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:rgb(var(--accent));color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center}
.seg{display:inline-flex;gap:var(--s1);padding:var(--s1);border-radius:14px;background:rgb(var(--bg-alt));flex-wrap:wrap}
.seg button{height:30px;padding:0 var(--s4);border-radius:11px;font-size:13px;font-weight:500;color:rgb(var(--muted));transition:background-color .15s,color .15s}
.seg button:hover{color:rgb(var(--ink))}
.seg button.on{background:rgb(var(--card));color:rgb(var(--ink));box-shadow:var(--shadow)}
.seg button.on.acc{color:rgb(var(--accent))}
.seg button:disabled{opacity:.4;pointer-events:none}
.dchips{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.dchip{height:32px;padding:0 11px;border-radius:16px;border:1px solid rgb(var(--line));font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;transition:background-color .15s,border-color .15s,color .15s}
.dchip:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.dchip.on{background:rgb(var(--accent));color:#fff;border-color:rgb(var(--accent))}
.dchips .input{width:84px;min-height:32px;padding:4px 10px;font-size:13px}
.scale{display:flex;gap:var(--s1);flex-wrap:wrap}
.scale button{width:32px;height:32px;border-radius:10px;border:1px solid rgb(var(--line));font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:rgb(var(--ink-soft));transition:background-color .15s,border-color .15s,color .15s,transform .15s var(--ease)}
.scale button:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.scale button:active{transform:scale(.94)}
.scale button.on{background:rgb(var(--ink));color:rgb(var(--card));border-color:rgb(var(--ink))}
.scale button.auto{width:auto;padding:0 10px}
.scale button.auto.on{background:rgb(var(--accent));border-color:rgb(var(--accent));color:#fff}
.scale button:disabled{opacity:.35;pointer-events:none}
.swatches{display:flex;gap:var(--s3);flex-wrap:wrap}
.swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:transform .15s var(--ease)}
.swatch:hover{transform:scale(1.1)}
.swatch.on{border-color:rgb(var(--ink));box-shadow:0 0 0 2px rgb(var(--card)) inset}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:20px;padding:0 7px;border-radius:10px;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;background:rgb(var(--bg-alt));color:rgb(var(--muted));letter-spacing:0}
.pill.hi{background:rgb(var(--accent));color:#fff}
.pill.mid{background:rgb(var(--accent-tint));color:rgb(var(--accent))}
.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.dot.red{background:rgb(var(--danger))}
.f{display:flex;flex-direction:column;gap:var(--s2)}
.f .l{font-size:12px;color:rgb(var(--muted));font-weight:500}
.f .l .v{color:rgb(var(--accent));font-weight:600;margin-left:var(--s2)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
@media (max-width:479px){.fgrid{grid-template-columns:1fr}}

/* Layout */
.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.layout>div{min-width:0;overflow-x:clip}
.wrap{overflow-x:clip}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;padding:var(--s5) var(--s4);display:flex;flex-direction:column;gap:2px}
.side .wortmarke{padding:var(--s2) var(--s4) var(--s5);font-size:22px}
.wrap .search{margin:var(--s4) 0 0}
.wrap .search .input{min-height:44px}
.nav{display:flex;align-items:center;gap:10px;height:38px;padding:0 var(--s4);border-radius:12px;font-weight:500;font-size:14px;color:rgb(var(--ink-soft));width:100%;text-align:left;transition:background-color .15s,color .15s}
.nav:hover{background:rgb(var(--card))}
.nav.on{background:rgb(var(--accent-tint));color:rgb(var(--ink))}
.nav.on svg{color:rgb(var(--accent));opacity:1}
.nav .n{margin-left:auto;font-size:12px;color:rgb(var(--muted));font-variant-numeric:tabular-nums}
.nav.on .n{color:rgb(var(--accent))}
.nav svg{flex:none;opacity:.75}
.nav .dot{margin:0 2px}
.grp{padding:var(--s5) var(--s4) var(--s2);display:flex;align-items:center;justify-content:space-between}
.grp .ibtn{width:26px;height:26px;border-radius:8px}
.side .foot{margin-top:auto;padding:var(--s4) var(--s1) 0;display:flex;gap:var(--s2);align-items:center}
.wrap{max-width:820px;margin:0 auto;padding:var(--s6) var(--s6) var(--s8);width:100%}
.mob{display:none;position:sticky;top:0;z-index:5;background:rgb(var(--bg) / .82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:calc(var(--s4) + env(safe-area-inset-top)) var(--s5) var(--s4)}
@media (display-mode:standalone){.mob{background:rgb(var(--bg) / .92)}}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.bnav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:6;background:rgb(var(--card) / .86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 -1px 0 rgb(var(--line) / .7);padding:var(--s2) var(--s3) calc(var(--s2) + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr)}
.bnav button{display:flex;flex-direction:column;align-items:center;gap:var(--s1);padding:var(--s2) 0;min-height:48px;font-size:10.5px;font-weight:500;color:rgb(var(--muted));border-radius:12px;transition:color .15s}
.bnav button.on{color:rgb(var(--accent))}
.fab{position:fixed;right:var(--s6);bottom:var(--s6);width:58px;height:58px;border-radius:50%;background:rgb(var(--ink));color:rgb(var(--card));display:flex;align-items:center;justify-content:center;z-index:15;box-shadow:0 14px 34px -10px rgb(0 0 0 / .45),0 0 0 1px rgb(255 255 255 / .06);transition:background-color .15s,transform .25s var(--ease),box-shadow .25s}
.fab:hover{background:rgb(var(--accent));color:#fff;transform:translateY(-2px);box-shadow:0 18px 40px -12px rgb(var(--accent) / .6)}
.fab:active{transform:scale(.94)}
.fab svg{width:26px;height:26px}
.fab .badge-n{top:-2px;right:-2px;min-width:20px;height:20px;font-size:11px}
@media (max-width:899px){
  .layout{grid-template-columns:minmax(0,1fr)}.side{display:none}.mob{display:block}.bnav{display:grid}
  .wrap{padding:var(--s5) var(--s5) calc(var(--s8) + var(--s5))}
  .fab{right:var(--s5);bottom:calc(78px + env(safe-area-inset-bottom));width:56px;height:56px}
}
.search{position:relative}
.search .input{padding-left:38px;min-height:40px;border-radius:var(--r-pill)}
.search svg{position:absolute;left:var(--s4);top:50%;transform:translateY(-50%);color:rgb(var(--muted));pointer-events:none}
.search .clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgb(var(--muted))}
.search .clear:hover{background:rgb(var(--bg-alt));color:rgb(var(--ink))}

/* Chips und Filter */
.chiprow{display:flex;gap:var(--s3);align-items:center;margin:var(--s4) 0 var(--s5)}
.chiprow .scroll{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;min-width:0}
@media (max-width:899px){.chiprow{margin:var(--s4) 0 var(--s5)}.chiprow .scroll{flex:1;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px 4px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}}
.chips{display:flex;gap:var(--s3);flex-wrap:wrap;margin:var(--s4) 0 var(--s5);align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 var(--s4);border-radius:17px;border:1px solid rgb(var(--line));font-size:13px;font-weight:500;color:rgb(var(--ink));background:rgb(var(--card));flex:none;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s,transform .15s var(--ease)}
.chip:hover{border-color:rgb(var(--accent))}
.chip:active{transform:scale(.97)}
.chip.on{background:rgb(var(--ink));color:rgb(var(--card));border-color:rgb(var(--ink))}
.chip .n{opacity:.6}
.chip.tool{padding:0 11px;flex:none}
.chip.tool.on{background:rgb(var(--accent-tint));color:rgb(var(--accent));border-color:rgb(var(--accent) / .4)}
.chip.tool span{max-width:0;overflow:hidden;opacity:0;transition:max-width .2s,opacity .2s;white-space:nowrap}
@media (min-width:900px){.chip.tool span{max-width:160px;opacity:1}}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-bottom:var(--s6)}
@media (max-width:479px){.kpis{gap:var(--s3)}}
.kpi{padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);animation:rise .4s var(--ease) both;min-width:0}
.kpi .v{font-size:clamp(26px,7vw,34px);font-weight:600;line-height:1;letter-spacing:-.03em}
.kpi .v.acc{color:rgb(var(--accent))}
.kpi .hint{font-size:13px;color:rgb(var(--muted))}
@media (max-width:479px){.kpi{padding:var(--s4)}}

/* Listen */
.sec{margin-bottom:var(--s5)}
.sec-h{display:flex;align-items:center;justify-content:space-between;padding:0 var(--s3) var(--s3)}
.sec-h .caption{display:inline-flex;align-items:center;gap:var(--s3);color:rgb(var(--ink-soft))}
.item{position:relative;animation:rise .38s var(--ease) both;overflow:hidden}
.item .sw{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:var(--s3);padding:0 var(--s5);font-weight:600;font-size:13px;opacity:0;transition:opacity .15s;pointer-events:none}
.item .sw.r{left:0;color:rgb(var(--accent))}
.item .sw.l{right:0;color:rgb(var(--danger))}
.item.sw-right .sw.r,.item.sw-left .sw.l{opacity:1}
.item.sw-right{background:rgb(var(--accent-tint))}
.item.sw-left{background:rgb(var(--danger) / .12)}
.item.sw-hit .sw{transform:scale(1.08)}
.item .row{position:relative;background:rgb(var(--card));z-index:1;will-change:transform}
.item.now .row{background:rgb(var(--accent-tint))}
.row.picked{background:rgb(var(--accent-tint))}
.item+.item::before{content:'';position:absolute;left:52px;right:var(--s5);top:0;height:1px;background:rgb(var(--line))}
.sel .item+.item::before{left:84px}
.item.now .row{box-shadow:inset 3px 0 0 rgb(var(--accent));background:rgb(var(--accent-tint) / .6)}
.row{display:flex;align-items:flex-start;gap:var(--s4);padding:var(--s4) var(--s5);cursor:pointer;transition:opacity .3s,transform .3s var(--ease),background-color .15s;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.item{touch-action:pan-y}
.row:hover{background:rgb(var(--bg-alt) / .5)}
.row.fade{opacity:0;transform:translateX(10px)}
.row.picked{background:rgb(var(--accent-tint) / .7)}
.row .t{flex:1;min-width:0}
.row .t .tt{font-weight:500;font-size:15px;line-height:1.35;overflow-wrap:anywhere;letter-spacing:-.01em}
.row .t .meta{display:flex;flex-wrap:wrap;gap:0 2px;margin-top:var(--s1);align-items:center;font-size:13px;color:rgb(var(--muted))}
.meta .m+.m::before{content:'·';margin:0 7px;opacity:.55}
.meta .m.red{color:rgb(var(--danger))}
.meta .m.acc{color:rgb(var(--accent));font-weight:500}
.meta .m .dot{margin-right:5px;vertical-align:1px}
.meta .m .pill{vertical-align:-1px}
@media (min-width:640px){.row .t{display:flex;align-items:center;gap:var(--s4)}.row .t .tt{flex:1}.row .t .meta{margin:0;flex:none;justify-content:flex-end}}
.row .time{font-variant-numeric:tabular-nums;color:rgb(var(--muted));min-width:96px;padding-top:2px;white-space:nowrap;font-size:13px}
.item.now .time{color:rgb(var(--accent));font-weight:500}
.jetzt{display:flex;align-items:center;gap:10px;padding:2px var(--s5);color:rgb(var(--accent));font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.jetzt::after{content:'';flex:1;height:2px;background:rgb(var(--accent));border-radius:1px}
.jetzt i{width:8px;height:8px;border-radius:50%;background:rgb(var(--accent));animation:glow 1.8s ease-out infinite}
.chk{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;border:1.5px solid rgb(var(--line-strong));display:flex;align-items:center;justify-content:center;color:transparent;transition:border-color .15s,background-color .15s}
.chk:hover{border-color:rgb(var(--accent))}
.chk.on{background:rgb(var(--ink));border-color:rgb(var(--ink));color:rgb(var(--card))}
.chk.pop{background:rgb(var(--accent));border-color:rgb(var(--accent));color:#fff;animation:pop .35s ease-in-out}
.selbox{flex:none;width:22px;height:22px;margin-top:1px;border-radius:7px;border:1.5px solid rgb(var(--line-strong));display:flex;align-items:center;justify-content:center;color:transparent;transition:border-color .15s,background-color .15s}
.selbox.on{background:rgb(var(--accent));border-color:rgb(var(--accent));color:#fff}
.prog{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:rgb(var(--muted))}
.bar{width:40px;height:4px;border-radius:2px;background:rgb(var(--line));overflow:hidden}
.bar i{display:block;height:100%;background:rgb(var(--accent));transition:width .4s var(--ease)}
.empty{padding:var(--s6) var(--s5);text-align:center;color:rgb(var(--muted));display:flex;flex-direction:column;align-items:center;gap:var(--s4)}
.empty svg{opacity:.4}

/* Auswahlleiste */
.selbar{position:fixed;left:50%;bottom:var(--s5);transform:translate(-50%,0);z-index:16;background:rgb(var(--ink));color:rgb(var(--card));border-radius:22px;padding:var(--s3) var(--s3) var(--s3) var(--s5);display:flex;align-items:center;gap:var(--s3);box-shadow:0 20px 50px -14px rgb(0 0 0 / .5);animation:up .3s var(--ease);max-width:calc(100% - 2 * var(--s5));flex-wrap:wrap;justify-content:center}
.selbar .cnt{font-weight:600;font-size:14px;margin-right:var(--s2);white-space:nowrap}
.selbar .btn{background:rgb(255 255 255 / .1);color:inherit;height:34px;padding:0 var(--s4);font-size:13px}
.selbar .btn:hover{background:rgb(var(--accent));color:#fff}
.selbar .btn.danger:hover{background:rgb(var(--danger))}
.selbar .ibtn{color:inherit;opacity:.7}
.selbar .ibtn:hover{background:rgb(255 255 255 / .1);opacity:1}
@media (max-width:899px){.selbar{bottom:calc(84px + env(safe-area-inset-bottom));left:var(--s4);right:var(--s4);transform:none;max-width:none;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}}

/* Projekte */
.pcard{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);cursor:pointer;transition:background-color .15s}
.pcard:hover{background:rgb(var(--bg-alt) / .5)}
.pcard .dot{width:12px;height:12px}
.pcard .t{flex:1;min-width:0}
.pcard .t .tt{font-weight:600;font-size:15px}
.pcard .t .goal{font-size:13px;color:rgb(var(--muted));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard .stats{display:flex;gap:var(--s4);font-size:13px;color:rgb(var(--muted));font-variant-numeric:tabular-nums;flex:none}
.pcard .arrows{display:flex;flex-direction:column;gap:2px;flex:none}
.pcard .arrows button{width:26px;height:22px;border-radius:7px;color:rgb(var(--muted));display:flex;align-items:center;justify-content:center}
.pcard .arrows button:hover{background:rgb(var(--bg-alt));color:rgb(var(--ink))}
.pcard.off{opacity:.55}
.phead{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin:var(--s3) 0 0}
.phead .goal{font-size:15px;color:rgb(var(--muted));flex:1;min-width:200px}

/* Triage */
.tri{padding:var(--s6) var(--s5) var(--s5);display:grid;gap:var(--s5);animation:rise .3s var(--ease)}
.tri .big{font-size:clamp(20px,5vw,26px);font-weight:600;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}
.tri .acts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.tri .acts .btn{height:48px;font-size:15px}
.tri .acts .btn.wide{grid-column:1/-1}
.tri .count{display:flex;justify-content:space-between;align-items:center}

/* Modal, Sheet, Palette */
.mbg{position:fixed;inset:0;background:rgb(0 0 0 / .32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:20;animation:fade .2s}
.modal{position:fixed;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 2 * var(--s5)));max-height:calc(100vh - 2 * var(--s6));display:flex;flex-direction:column;background:rgb(var(--card));border-radius:var(--r-modal);box-shadow:0 40px 90px -24px rgb(0 0 0 / .45),0 0 0 1px rgb(255 255 255 / .04);animation:zoom .25s var(--ease);overflow:hidden}
.modal.narrow{width:min(520px,calc(100% - 2 * var(--s5)))}
.mhead{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s4) var(--s4) var(--s5);border-bottom:1px solid rgb(var(--line));flex:none;min-height:60px}
.mhead .caption{display:inline-flex;align-items:center;gap:var(--s3);min-width:0}
.mhead .saved{margin-left:var(--s4);font-size:12px;color:rgb(var(--muted));opacity:0;transition:opacity .2s;white-space:nowrap}
.mhead .saved.on{opacity:1}
.mhead .score{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:rgb(var(--muted));margin-left:auto;white-space:nowrap}
.mbody{padding:var(--s5) var(--s5) var(--s3);overflow-y:auto;flex:1;display:grid;gap:var(--s5);align-content:start;-webkit-overflow-scrolling:touch}
.mfoot{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;padding:var(--s4) var(--s5) calc(var(--s5) + env(safe-area-inset-bottom));border-top:1px solid rgb(var(--line));flex:none;background:rgb(var(--card))}
.mtitle{width:100%;border:0;background:transparent;font-size:24px;font-weight:600;letter-spacing:-.025em;line-height:1.25;outline:none;padding:0;color:rgb(var(--ink))}
.mtitle::placeholder{color:rgb(var(--muted))}
.step{display:flex;align-items:center;gap:10px;padding:var(--s3) 0;animation:rise .3s var(--ease) both}
.step+.step{border-top:1px solid rgb(var(--line))}
.step .n{width:22px;flex:none;font-size:12px;font-weight:600;color:rgb(var(--muted));font-variant-numeric:tabular-nums}
.step .st{flex:1;min-width:0;overflow-wrap:anywhere;transition:color .2s;font-size:14.5px;cursor:pointer}
.step .st:hover{color:rgb(var(--accent))}
.step.done .st{color:rgb(var(--muted));text-decoration:line-through}
.step .chk{width:20px;height:20px;margin:0}
.subadd{display:flex;gap:var(--s3);margin-top:var(--s3)}
.subadd .input{min-height:38px;padding:6px var(--s4)}
.parsed{display:flex;flex-wrap:wrap;gap:6px;min-height:22px;font-size:13px;color:rgb(var(--muted));align-items:center}
.parsed .tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:12px;background:rgb(var(--accent-tint));color:rgb(var(--accent));font-weight:500;font-size:12px}
@media (max-width:899px){
  .modal,.modal.narrow{left:0;top:0;transform:none;width:100%;height:100dvh;max-height:none;border-radius:0;animation:up .3s var(--ease)}
  .mhead{padding:calc(var(--s4) + env(safe-area-inset-top)) var(--s4) var(--s3) var(--s5)}
  .mbody{padding:var(--s5) var(--s5) var(--s3)}
  .mfoot{padding:var(--s4) var(--s5) calc(var(--s4) + env(safe-area-inset-bottom))}
}
.sheet{position:fixed;z-index:21;background:rgb(var(--card));box-shadow:0 30px 80px -24px rgb(0 0 0 / .4),0 0 0 1px rgb(255 255 255 / .04);border-radius:var(--r-modal);padding:var(--s5);width:min(460px,calc(100% - 2 * var(--s5)));left:50%;top:50%;transform:translate(-50%,-50%);animation:zoom .25s var(--ease);display:grid;gap:var(--s5);max-height:calc(100vh - 2 * var(--s6));overflow-y:auto}
@media (max-width:899px){.sheet{left:0;right:0;top:auto;bottom:0;transform:none;width:100%;border-radius:var(--r-modal) var(--r-modal) 0 0;padding:var(--s4) var(--s5) calc(var(--s5) + env(safe-area-inset-bottom));animation:up .3s var(--ease);max-height:88dvh}}
.sheet .grab{width:36px;height:4px;border-radius:2px;background:rgb(var(--line-strong));margin:0 auto;display:none}
@media (max-width:899px){.sheet .grab{display:block}}
.sheet .pc{display:flex;gap:var(--s3);flex-wrap:wrap}
.pal{position:fixed;z-index:22;left:50%;top:14vh;transform:translateX(-50%);width:min(620px,calc(100% - 2 * var(--s5)));background:rgb(var(--card));border-radius:var(--r-modal);box-shadow:0 40px 90px -24px rgb(0 0 0 / .5),0 0 0 1px rgb(255 255 255 / .05);animation:fade .15s;overflow:hidden}
.pal .search{margin:0}
.pal .search .input{border:0;border-radius:0;min-height:56px;font-size:17px;padding-left:48px;background:transparent}
.pal .search .input:focus{box-shadow:none}
.pal .search svg{left:var(--s5)}
.pal .list{max-height:52vh;overflow-y:auto;border-top:1px solid rgb(var(--line));padding:var(--s2)}
.pal .it{display:flex;align-items:center;gap:var(--s4);padding:10px var(--s4);border-radius:14px;cursor:pointer}
.pal .it.on,.pal .it:hover{background:rgb(var(--accent-tint))}
.pal .it .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal .it .k{font-size:12px;color:rgb(var(--muted));white-space:nowrap}
@media (max-width:899px){.pal{top:0;left:0;transform:none;width:100%;border-radius:0 0 var(--r-modal) var(--r-modal)}.pal .list{max-height:70dvh}}

/* Toast */
.toast{position:fixed;left:50%;bottom:var(--s5);transform:translate(-50%,10px);background:rgb(var(--ink));color:rgb(var(--card));padding:var(--s3) var(--s3) var(--s3) var(--s4);border-radius:var(--r-pill);font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .25s var(--ease);z-index:40;display:flex;align-items:center;gap:10px;max-width:calc(100% - 2 * var(--s5))}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast button{color:rgb(var(--accent));font-weight:600;padding:4px 8px;border-radius:10px;white-space:nowrap}
@media (max-width:899px){.toast{bottom:calc(84px + env(safe-area-inset-bottom))}}

/* Login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s5)}
.login .card{width:100%;max-width:400px;padding:var(--s6);animation:rise .5s var(--ease) both}
.err{color:rgb(var(--danger));font-size:13px;margin-top:10px;min-height:18px}

/* Settings */
.times{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s3);align-items:center}
.times .input{text-align:center;min-height:40px}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
[hidden]{display:none!important}

/* Handy: weniger Dichte */
@media (max-width:639px){
  .row{padding:var(--s4) var(--s4);gap:var(--s4)}
  .row .t .tt{font-size:15.5px;line-height:1.35}
  .row .t .meta{font-size:12.5px;margin-top:var(--s2)}
  .meta .m+.m::before{margin:0 6px}
  .item+.item::before{left:48px;right:var(--s4)}
  .sel .item+.item::before{left:48px}
  .kpis{grid-template-columns:1fr;gap:0;margin-bottom:var(--s5)}
  .strip{display:grid;grid-template-columns:repeat(3,1fr);padding:var(--s4) var(--s3)}
  .strip .cell{display:flex;flex-direction:column;align-items:center;gap:var(--s1);text-align:center}
  .strip .cell+.cell{border-left:1px solid rgb(var(--line))}
  .strip .v{font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
  .strip .v.acc{color:rgb(var(--accent))}
  .strip .caption{font-size:11px}
  .strip .hint{font-size:12px;color:rgb(var(--muted))}
  .h1{margin-top:var(--s2)}
  .sub{font-size:13px}
  .wrap .search{margin-top:var(--s4)}
  .chiprow{margin-top:var(--s3)}
  .chip{height:36px}
  .sec-h{padding-bottom:var(--s2)}
}

/* Review: Touch-Ziele und Fokus-Ringe */
button:focus-visible,.row:focus-visible,.chip:focus-visible,.swatch:focus-visible{outline:3px solid rgb(var(--accent) / .45);outline-offset:2px}
.chk,.selbox{position:relative}
.chk::before,.selbox::before{content:'';position:absolute;inset:-11px}
@media (max-width:639px){
  .dchip,.scale button,.seg button{height:36px;min-width:36px}
  .ibtn{width:40px;height:40px}
  .sub .x,.step .x{width:36px;height:36px}
  .pcard .arrows button{width:32px;height:26px}
}
.offline{padding:var(--s6) var(--s5);text-align:center;color:rgb(var(--muted));display:flex;flex-direction:column;gap:var(--s4);align-items:center}

/* Slider fuer Impact, Urgency, Effort */
.sl{display:flex;align-items:center;gap:var(--s4)}
.sl input[type=range]{-webkit-appearance:none;appearance:none;flex:1;height:28px;background:transparent;margin:0;cursor:pointer;--fill:.5}
.sl input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:linear-gradient(90deg,rgb(var(--accent)) 0 calc(var(--fill) * 100%),rgb(var(--line)) calc(var(--fill) * 100%) 100%)}
.sl input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:rgb(var(--line))}
.sl input[type=range]::-moz-range-progress{height:5px;border-radius:3px;background:rgb(var(--accent))}
.sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:rgb(var(--card));border:1.5px solid rgb(var(--line-strong));box-shadow:0 2px 8px rgb(0 0 0 / .18);margin-top:-10.5px;transition:transform .15s var(--ease)}
.sl input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:rgb(var(--card));border:1.5px solid rgb(var(--line-strong));box-shadow:0 2px 8px rgb(0 0 0 / .18)}
.sl input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12);border-color:rgb(var(--accent))}
.sl input[type=range]:focus-visible{outline:none}
.sl input[type=range]:focus-visible::-webkit-slider-thumb{border-color:rgb(var(--accent));box-shadow:0 0 0 4px rgb(var(--accent) / .2)}
.sl input[type=range]:disabled{opacity:.45;cursor:default}
.sl .val{width:34px;text-align:right;font-size:22px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:rgb(var(--accent))}
.sl .auto{font-size:12px}
.sl-lbl{font-size:13px;color:rgb(var(--muted));margin-top:2px}
.more{border:1px solid rgb(var(--line));border-radius:var(--r-card);padding:0 var(--s4)}
.more summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s3);padding:var(--s4) 0;font-weight:500;font-size:14px}
.more summary::-webkit-details-marker{display:none}
.more summary .caret{margin-left:auto;transition:transform .2s var(--ease);color:rgb(var(--muted))}
.more[open] summary .caret{transform:rotate(180deg)}
.more .inner{display:grid;gap:var(--s5);padding:0 0 var(--s5)}
.duechips{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s2)}

/* iOS: Datums- und Zeitfelder halten sich an die Spaltenbreite, Titel mehrzeilig, Status einzeilig */
.f,.fgrid>*,.mbody>*{min-width:0}
input[type=date].input,input[type=time].input,input[type=datetime-local].input{display:block;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;text-align:left;min-height:44px}
input[type=date].input::-webkit-date-and-time-value,input[type=datetime-local].input::-webkit-date-and-time-value{text-align:left}
textarea.mtitle{resize:none;overflow:hidden;min-height:34px;line-height:1.25;display:block;font-family:inherit}
.mbody .seg.status{display:flex;width:100%}
.mbody .seg.status button{flex:1;padding:0 var(--s2);min-width:0}
.dnum{display:inline-flex;align-items:center;gap:6px;color:rgb(var(--muted));font-size:13px}
.dnum .input{width:70px}
@media (max-width:479px){.mbody .seg.status button{font-size:12.5px}}

/* Dauer: Stepper, Wert, Slider, Schnellwahl */
.dur{display:grid;gap:var(--s3)}
.dur .top{display:flex;align-items:center;gap:var(--s3)}
.dur .dbtn{width:44px;height:44px;border-radius:50%;border:1px solid rgb(var(--line));display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:rgb(var(--ink));flex:none;transition:background-color .15s,border-color .15s,transform .15s var(--ease)}
.dur .dbtn:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.dur .dbtn:active{transform:scale(.94);background:rgb(var(--accent-tint))}
.dur .dval{flex:1;text-align:center;font-size:26px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.dur .dval small{font-size:13px;font-weight:500;color:rgb(var(--muted));letter-spacing:0;margin-left:6px}
.dur .sl input[type=range]{--fill:.2}
.dur .dchips .dchip{height:30px;padding:0 10px;font-size:12.5px}

/* Karten statt Listenzeilen, Metadaten als Chips */
.stack{display:grid;gap:var(--s3)}
.stack .item{border-radius:18px;overflow:hidden;position:relative;animation:rise .38s var(--ease) both}
.stack .item+.item::before{display:none}
.stack .item .row{border-radius:18px;background:rgb(var(--card));box-shadow:var(--shadow);padding:var(--s4) var(--s4) var(--s4) var(--s4);align-items:flex-start;gap:var(--s4)}
.stack .item .row:hover{background:rgb(var(--card))}
.stack .item .row.picked{background:rgb(var(--accent-tint))}
.stack .item.now .row{box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--accent))}
.stack .row .t{display:block}
.stack .row .t .tt{font-size:15.5px;font-weight:500;line-height:1.35;letter-spacing:-.01em}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}
.tag{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:12px;font-size:12px;font-weight:500;background:rgb(var(--bg-alt));color:rgb(var(--ink-soft));white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1}
.tag svg{width:12px;height:12px;opacity:.75;flex:none}
.tag.red{background:rgb(var(--danger) / .12);color:rgb(var(--danger))}
.tag.acc{background:rgb(var(--accent-tint));color:rgb(var(--accent))}
.tag.out{background:transparent;border:1px solid rgb(var(--line));color:rgb(var(--ink-soft))}
.tag .dot{width:7px;height:7px}
.tag .bar{width:30px;height:4px}
.tag.pill{height:24px;min-width:32px;font-size:12px}
@media (min-width:640px){.stack .row .t{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}.stack .row .t .tt{flex:1;min-width:220px}.stack .tags{margin:0;justify-content:flex-end;flex:none}}
.more-stack{position:relative;height:72px;cursor:pointer;margin-top:var(--s1)}
.more-stack i{position:absolute;left:0;right:0;top:0;height:52px;border-radius:18px;background:rgb(var(--card));box-shadow:var(--shadow)}
.more-stack i:nth-child(2){left:var(--s3);right:var(--s3);top:10px;opacity:.6}
.more-stack i:nth-child(3){left:var(--s5);right:var(--s5);top:20px;opacity:.35}
.more-stack span{position:absolute;left:0;right:0;top:0;height:52px;display:flex;align-items:center;justify-content:center;gap:var(--s3);font-size:13px;font-weight:500;color:rgb(var(--muted))}
.more-stack:hover span{color:rgb(var(--accent))}
.pchips{display:flex;gap:var(--s3);flex-wrap:wrap;margin:calc(-1 * var(--s3)) 0 var(--s5)}
@media (max-width:899px){.pchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px 4px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}}
.pchips .chip{height:30px;padding:0 11px;font-size:12.5px}
.sec .stack{margin-bottom:var(--s3)}

/* Projektkarten und Projektseite */
.stack .pcard{border-radius:18px;padding:var(--s4);align-items:flex-start}
.pcard .t .tt{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.pcard .tags{margin-top:var(--s3)}
.pcard .pact{display:flex;flex-direction:column;align-items:center;gap:var(--s2);flex:none}
.pcard .stats{display:none}
.back{display:inline-flex;align-items:center;gap:6px;color:rgb(var(--muted));font-size:13px;font-weight:500;text-decoration:none;margin-bottom:var(--s2)}
.back:hover{color:rgb(var(--accent))}
.ptabs{margin-top:var(--s4)}
.ptabs button{flex:1}
@media (max-width:479px){.ptabs button{padding:0 var(--s3);font-size:12.5px}}

/* Score-Ring im Modalkopf */
.ring{position:relative;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:3.5}
.ring .bg{stroke:rgb(var(--line))}
.ring .fg{stroke:rgb(var(--accent));stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease)}
.ring.mid .fg{stroke:rgb(var(--accent) / .7)}
.ring.lo .fg{stroke:rgb(var(--muted))}
.ring b{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mhead .score{cursor:pointer;gap:var(--s3);margin-left:auto}
.mhead .score .caption{font-size:11px}
/* Status mit leichten Farben */
.seg.status{background:transparent;padding:0;gap:6px}
.seg.status button{border:1px solid transparent;font-weight:500;transition:background-color .15s,color .15s,box-shadow .15s,border-color .15s}
.st-backlog{background:rgb(var(--muted) / .12);color:rgb(var(--ink-soft))}
.st-schedule{background:rgb(217 119 6 / .13);color:#b45309}
.st-scheduled{background:rgb(var(--accent) / .13);color:rgb(var(--accent))}
.st-done{background:rgb(22 163 74 / .13);color:#15803d}
:root[data-theme=dark] .st-schedule,:root:not([data-theme=light]) .st-schedule{color:#fbbf24}
:root[data-theme=dark] .st-done,:root:not([data-theme=light]) .st-done{color:#4ade80}
@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .st-schedule{color:#b45309}:root:not([data-theme=dark]) .st-done{color:#15803d}}
.seg.status button.on{font-weight:600;box-shadow:var(--shadow);border-color:currentColor}
.seg.status .st-backlog.on{background:rgb(var(--muted) / .26)}
.seg.status .st-schedule.on{background:rgb(217 119 6 / .26)}
.seg.status .st-scheduled.on{background:rgb(var(--accent) / .24)}
.seg.status .st-done.on{background:rgb(22 163 74 / .26)}
.seg.status button:disabled{opacity:.35;border-color:transparent}

/* Modal: Bereiche, zweispaltig am Desktop */
.mgrid{display:grid;gap:var(--s5)}
/* Eine Spalte auch am Desktop, nur etwas breiter als am Handy */
.more summary{align-items:center;gap:var(--s4)}
.more summary>span{line-height:1.25}
.more .inner{padding-top:var(--s2)}

summary:focus{outline:none}
summary:focus-visible{outline:3px solid rgb(var(--accent) / .45);outline-offset:2px;border-radius:var(--r-card)}
@media (min-width:900px){.modal .mbody{padding:var(--s5) var(--s6) var(--s3)}.modal .mhead{padding-left:var(--s6)}.modal .mfoot{padding-left:var(--s6);padding-right:var(--s6)}}

/* Projektseite: Kopf und Umschalter */
.ptitle{display:flex;align-items:flex-start;gap:var(--s3)}
.ptitle .h1{flex:1;min-width:0}
.ptitle .ibtn{margin-top:var(--s3)}
.goal-line{margin-top:var(--s2)}
.ptabs{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s1);padding:var(--s1);border-radius:16px;background:rgb(var(--bg-alt));margin:var(--s4) 0 0}
.ptabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;height:48px;padding:0 var(--s2);border-radius:12px;font-size:13px;font-weight:500;color:rgb(var(--muted));white-space:nowrap;transition:background-color .15s,color .15s}
.ptabs button b{font-size:12px;font-weight:600;opacity:.65}
.ptabs button.on{background:rgb(var(--card));color:rgb(var(--ink));box-shadow:var(--shadow)}
.ptabs button.on b{color:rgb(var(--accent));opacity:1}
.ptabs+.search,.ptabs~.search{margin-top:var(--s4)}

/* Chip-Reihen scrollen auf jeder Breite seitlich statt umzubrechen */
.chiprow .scroll,.pchips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px 4px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.chiprow .scroll::-webkit-scrollbar,.pchips::-webkit-scrollbar{display:none}
.chiprow .scroll{flex:1;min-width:0}

/* Timeline */
.tl{position:relative;margin:var(--s3) 0 0 56px;border-left:1px solid rgb(var(--line))}
.tl .hour{position:absolute;left:-56px;width:46px;text-align:right;font-size:11px;color:rgb(var(--muted));transform:translateY(-50%);font-variant-numeric:tabular-nums}
.tl .hline{position:absolute;left:0;right:0;height:1px;background:rgb(var(--line) / .7)}
.tl .ev{position:absolute;left:var(--s3);right:0;border-radius:12px;background:rgb(var(--muted) / .12);padding:5px 10px;font-size:12px;color:rgb(var(--muted));overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-left:2px solid rgb(var(--line-strong))}
.tl .slot{position:absolute;left:var(--s3);right:0;border-radius:14px;background:rgb(var(--card));box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--accent));padding:7px 10px 7px 12px;overflow:hidden;cursor:pointer;display:flex;gap:var(--s3);align-items:flex-start;z-index:2}
.tl .slot .st{flex:1;min-width:0}
.tl .slot .tt{font-size:13.5px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .slot .mt{font-size:11.5px;color:rgb(var(--muted));font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl .slot.done{opacity:.55;box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--line-strong))}
.tl .slot.live{box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--accent)),0 0 0 1px rgb(var(--accent) / .35)}
.tl .slot .chk{width:20px;height:20px;margin-top:1px}
.tl .slot .go{flex:none;height:28px;padding:0 10px;border-radius:14px;background:rgb(var(--accent));color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px}
.tl .gap{position:absolute;left:var(--s3);right:0;border:1px dashed rgb(var(--line-strong));border-radius:12px;display:flex;align-items:center;justify-content:center;gap:var(--s3);font-size:12px;color:rgb(var(--muted));cursor:pointer;transition:border-color .15s,color .15s}
.tl .gap:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.tl .gap b{font-weight:600}
.tl .nowline{position:absolute;left:-6px;right:0;height:2px;background:rgb(var(--accent));z-index:3;pointer-events:none}
.tl .nowline::before{content:'';position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:rgb(var(--accent));animation:glow 1.8s ease-out infinite}
.tl .nowline span{position:absolute;left:-56px;top:-8px;width:46px;text-align:right;font-size:11px;font-weight:600;color:rgb(var(--accent));font-variant-numeric:tabular-nums}
.tlwrap{padding:var(--s4) var(--s4) var(--s5) var(--s3)}
/* Pick for me */
.pick .cand{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid rgb(var(--line))}
.pick .cand:first-of-type{border-top:0}
.pick .cand .t{flex:1;min-width:0}
.pick .cand .tt{font-weight:500;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Fokus */
.focus{position:fixed;inset:0;z-index:30;background:rgb(var(--bg));display:flex;flex-direction:column;animation:fade .2s}
.focus .fhead{display:flex;align-items:center;gap:var(--s3);padding:calc(var(--s4) + env(safe-area-inset-top)) var(--s4) var(--s3) var(--s5)}
.focus .fbody{flex:1;overflow-y:auto;padding:var(--s5) var(--s5) var(--s3);max-width:640px;width:100%;margin:0 auto;display:grid;gap:var(--s5);align-content:start}
.focus .ftimer{font-size:clamp(64px,18vw,96px);font-weight:600;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums;text-align:center;color:rgb(var(--ink))}
.focus .ftimer.over{color:rgb(var(--danger))}
.focus .fsub{text-align:center;color:rgb(var(--muted));font-size:14px;margin-top:calc(-1 * var(--s3))}
.focus .fring{width:min(70vw,260px);height:min(70vw,260px);margin:0 auto;position:relative;display:flex;align-items:center;justify-content:center}
.focus .fring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.focus .fring circle{fill:none;stroke-width:6}
.focus .fring .bg{stroke:rgb(var(--line))}
.focus .fring .fg{stroke:rgb(var(--accent));stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.focus .fring.over .fg{stroke:rgb(var(--danger))}
.focus .ftitle{font-size:clamp(20px,5vw,26px);font-weight:600;letter-spacing:-.02em;text-align:center;line-height:1.25;text-wrap:balance}
.focus .fproj{display:flex;justify-content:center;gap:var(--s3)}
.focus .ffoot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:var(--s4) var(--s5) calc(var(--s5) + env(safe-area-inset-bottom));max-width:640px;width:100%;margin:0 auto}
.focus .ffoot .btn{height:52px;font-size:15px}
.focus .ffoot .wide{grid-column:1/-1}
.focus .next{padding:var(--s4) var(--s5);display:flex;align-items:center;gap:var(--s3)}
.focus .next .t{flex:1;min-width:0}
.focus .steps{display:grid}

/* Kalender: Woche am Desktop, Tag am Handy, Planer-Sheet */
.week{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));gap:0;align-items:start}
.week .axis{position:relative}
.week .axis .hour{position:absolute;right:10px;width:46px;text-align:right;font-size:11px;color:rgb(var(--muted));transform:translateY(-50%);font-variant-numeric:tabular-nums}
.week .col{position:relative;border-left:1px solid rgb(var(--line));min-width:0}
.week .col.today{background:rgb(var(--accent) / .04)}
.week .dh{position:sticky;top:0;z-index:4;background:rgb(var(--card));padding:var(--s3) var(--s2);text-align:center;border-bottom:1px solid rgb(var(--line));border-left:1px solid rgb(var(--line));min-height:58px}
.week .dh .wd{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted))}
.week .dh .dn{font-size:20px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.week .dh.today .dn{color:rgb(var(--accent))}
.week .dh .ld{font-size:11px;color:rgb(var(--muted));font-variant-numeric:tabular-nums}
.week .col .tl{margin:0;border-left:0}
.week .col .tl .ev,.week .col .tl .slot,.week .col .tl .gap{left:3px;right:3px}
.week .col .tl .slot{padding:5px 8px 5px 9px;border-radius:10px;gap:6px}
.week .col .tl .slot .tt{font-size:12px}
.week .col .tl .slot .mt{font-size:10.5px}
.week .col .tl .slot .chk{display:none}
.week .col .tl .slot .go{display:none}
.week .col .tl .ev{font-size:11px;padding:3px 7px;border-radius:9px}
.week .col .tl .gap{font-size:10.5px;border-radius:9px}
.week .col .tl .gap b{display:none}
.week .col .tl .nowline{left:0}
.week .col .tl .nowline span{display:none}
.weekwrap{padding:0 var(--s3) var(--s3) 0;overflow:hidden}
.tl .slot.drag{opacity:.85;box-shadow:0 12px 30px -8px rgb(0 0 0 / .4),inset 3px 0 0 rgb(var(--accent));cursor:grabbing;z-index:5}
@media (min-width:900px){.tl .slot{cursor:grab}}
.daystrip{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px var(--s2);margin:0 0 var(--s4)}
.daystrip::-webkit-scrollbar{display:none}
.daystrip .day{flex:none;width:52px;height:64px;border-radius:14px;border:1px solid rgb(var(--line));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:rgb(var(--card));transition:border-color .15s,background-color .15s,transform .15s var(--ease)}
.daystrip .day .wd{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted))}
.daystrip .day .dn{font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1}
.daystrip .day .ld{display:flex;gap:2px;height:4px;margin-top:2px}
.daystrip .day .ld i{width:6px;height:4px;border-radius:2px;background:rgb(var(--line-strong))}
.daystrip .day .ld i.ev{background:rgb(var(--muted))}
.daystrip .day .ld i.sl{background:rgb(var(--accent))}
.daystrip .day.on{background:rgb(var(--ink));color:rgb(var(--card));border-color:rgb(var(--ink))}
.daystrip .day.on .wd{color:inherit;opacity:.7}
.daystrip .day.today:not(.on) .dn{color:rgb(var(--accent))}
.daystrip .day:active{transform:scale(.96)}
.sheet.plan{width:min(560px,calc(100% - 2 * var(--s5)));max-height:calc(100vh - 2 * var(--s5));display:flex;flex-direction:column;gap:var(--s4);padding:var(--s5) var(--s5) var(--s4)}
@media (max-width:899px){.sheet.plan{max-height:92dvh;padding:var(--s4) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom))}}
.sheet.plan .tlscroll{overflow-y:auto;flex:1;min-height:0;border-radius:var(--r-card);background:rgb(var(--bg-alt) / .5);padding:var(--s3) var(--s3) var(--s3) 0}
.sheet.plan .tl .gap.fit{border-style:solid;border-color:rgb(var(--accent) / .5);background:rgb(var(--accent-tint) / .5);color:rgb(var(--accent))}
.sheet.plan .tl .gap.fit:hover{background:rgb(var(--accent-tint))}
.sheet.plan .tl .slot.me{box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--accent)),0 0 0 2px rgb(var(--accent))}
/* Ruhige Kennzahlenzeile, Planer, Notizen */
.statline{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);margin-bottom:var(--s4);flex-wrap:wrap}
.statline .v{font-weight:600;font-size:15px;letter-spacing:-.01em}
.statline .l{color:rgb(var(--muted));font-size:12.5px;margin-right:var(--s2)}
.statline .sep{width:1px;height:16px;background:rgb(var(--line));margin:0 var(--s2)}
.statline .ring{width:32px;height:32px}.statline .ring b{font-size:10px}
.mbg.planbg{z-index:24}
.sheet.plan{z-index:25}
.sheet.plan .phd{display:flex;align-items:flex-start;gap:var(--s3)}
.sheet.plan .phd>div{flex:1;min-width:0}
.sheet.plan .phd .title{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet.plan .daystrip{margin-bottom:var(--s2)}
.sheet.plan .tlscroll{max-height:46vh;min-height:220px;padding-left:0}
.sheet.plan .tl{margin-left:52px}
.tl.compact .hour{font-size:10px;width:42px;left:-50px}
.tl.compact .slot{padding:5px 8px 5px 9px;border-radius:10px;gap:6px}
.tl.compact .slot .tt{font-size:12px}
.tl.compact .slot .mt{font-size:10.5px}
.tl.compact .slot .go{display:none}
.tl.compact .ev{font-size:11px;padding:3px 7px;border-radius:9px}
.tl.compact .gap{font-size:11px;border-radius:9px}
.tl.compact .nowline span{display:none}
.notes .checks{display:grid;gap:2px}
.notes .ck{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14.5px}
.notes .ck .chk{width:20px;height:20px;margin:0}
.notes .ck.done span{color:rgb(var(--muted));text-decoration:line-through}
.notes-ta{min-height:96px;overflow:auto}
.nedit .fbody{display:block}
.nedit-ta{width:100%;height:calc(100dvh - 140px);font-size:16px;line-height:1.5;resize:none;border-radius:var(--r-card)}
.tags a.tag{text-decoration:none;color:inherit}
.tags a.tag:hover{border-color:rgb(var(--accent));color:rgb(var(--accent))}
.mbody,.sheet,.focus .fbody,.tlscroll{overscroll-behavior:contain}
body.lock{position:fixed;left:0;right:0;width:100%}

/* ---------- Hierarchie-Durchgang ---------- */
/* Symbole immer mit fester Groesse */
.nav svg,.ibtn svg,.btn svg,.chip svg,.dchip svg{width:16px;height:16px;flex:none}
.bnav svg{width:20px;height:20px}
.fab svg{width:26px;height:26px}
/* Wochenraster: Labels nur auf der Achse */
.week .col .tl .hour{display:none}
.week .col .tl .hline{background:rgb(var(--line) / .45)}
/* Timeline scrollt innen, die Seite bleibt kurz */
.tlwrap{padding-top:var(--s2)}
@media (min-width:900px){.tlwrap{max-height:70vh;overflow-y:auto;overscroll-behavior:contain}}
.nowbtn{margin-left:auto}
.tlwrap::-webkit-scrollbar{width:0}
/* Tages-Streifen kompakter, Punkte mit Bedeutung */
.daystrip .day{width:46px;height:54px;border-radius:12px;gap:1px}
.daystrip .day .wd{font-size:10px}
.daystrip .day .dn{font-size:16px}
.daystrip .day .ld{height:3px;margin-top:1px}
.daystrip .day .ld i{width:5px;height:3px}
.daystrip .day .ld i.ev{background:rgb(var(--line-strong))}
.daystrip .day.on .ld i.ev{background:rgb(var(--card) / .5)}
/* Listen: Kopf knapper, Suche als Symbol, eine Chip-Reihe */
.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3)}
.head-row .h1{margin-top:var(--s2)}
.sub{margin-top:var(--s1)}
.search.inline{margin:var(--s3) 0 0}
.search.inline.hidden{display:none}
.chiprow .divider{width:1px;height:22px;background:rgb(var(--line));flex:none;margin:0 var(--s1)}
/* Karten: Titel dominiert, Meta leiser */
.stack .row .t .tt{font-size:15.5px}
.stack .row .t .tt .pdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 7px 2px 0;vertical-align:middle}
.tags{margin-top:6px;gap:5px}
.tag{height:22px;padding:0 8px;font-size:11.5px;background:rgb(var(--bg-alt) / .8)}
.tag.pill{min-width:30px}
.tag.out{border-color:rgb(var(--line))}
@media (max-width:639px){.tag{height:22px}.tags{gap:4px}}
/* Eyebrow leiser, Titelzeile fuehrt */
.caption.eyebrow{font-size:11px;opacity:.9}
.h1{margin-top:var(--s2)}

/* Breite Ansichten am Desktop */
.wrap.wide{max-width:1480px}
.wrap.mid{max-width:1040px}
@media (min-width:1200px){.week .col .tl .slot .tt{font-size:12.5px}.week .col .tl .ev{font-size:11.5px}}

/* Handy: Aktionsleiste als Raster, Planer kompakter */
@media (max-width:899px){
  .mfoot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding:var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom))}
  .mfoot .btn{height:46px;font-size:14px;padding:0 var(--s3);width:100%;margin:0!important;justify-content:center}
  .mfoot .btn-danger{background:rgb(var(--danger) / .08)}
  .mfoot .btn:only-child{grid-column:1/-1}
  .mtitle{font-size:21px}
  .mbody{gap:var(--s4)}
  .sheet.plan .phd .title{font-size:16px}
  .sheet.plan .dchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .sheet.plan .dchips .dchip{flex:none;height:36px}
  .sheet.plan .sub{font-size:12px}
  .sheet.plan .tlscroll{max-height:none;min-height:0;flex:1}
  .sheet.plan{gap:var(--s3)}
  .focus .ffoot{padding-bottom:calc(var(--s4) + env(safe-area-inset-bottom))}
}
/* Handy: Chip-Reihen im Dialog scrollen statt umzubrechen, Planer scrollt als Ganzes */
@media (max-width:899px){
  .mbody .dchips,.mbody .duechips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px;margin:0 calc(-1 * var(--s5));padding-left:var(--s5);padding-right:var(--s5);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
  .mbody .dchips::-webkit-scrollbar,.mbody .duechips::-webkit-scrollbar{display:none}
  .mbody .dchips .dchip,.mbody .duechips .dchip{flex:none}
  .mbody .dchips .input{flex:none}
  .sheet.plan{display:block;overflow-y:auto}
  .sheet.plan>*{margin-bottom:var(--s3)}
  .sheet.plan .tlscroll{overflow:visible;max-height:none}
  #newm .mfoot .muted{display:none}
  #newm .mfoot .btn{grid-column:1/-1}
}

/* Kalender Schicht 1: Termine mit Kalenderfarbe, Ganztags-Zeile, Termin-Sheet, Kalenderliste, Ladezustand */
.side{align-self:start}
.tl .ev{--kc:#8e8e93;left:var(--s3);right:0;border-radius:12px;background:color-mix(in srgb,var(--kc) 14%,transparent);border-left:3px solid var(--kc);padding:4px 10px;color:rgb(var(--ink));display:flex;flex-direction:column;justify-content:center;gap:1px;white-space:normal;line-height:1.25;transition:background .15s var(--ease)}
.tl .ev:hover{background:color-mix(in srgb,var(--kc) 22%,transparent);cursor:pointer}
.tl .ev .et{font-size:12.5px;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .ev .ez{font-size:11px;color:rgb(var(--muted));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.tl .ev.rw[data-drag]{cursor:grab}.tl .ev.rw[data-drag].dragging{cursor:grabbing;opacity:.85;box-shadow:var(--shadow)}
.week .col .tl .ev{padding:3px 7px;border-radius:9px}
.week .col .tl .ev .et{font-size:11.5px}.week .col .tl .ev .ez{font-size:10.5px}
.allday{display:flex;gap:var(--s2);flex-wrap:wrap;margin:0 0 var(--s3)}
.allday.compact{flex-wrap:nowrap;overflow:hidden;margin:0}
.adchip{--kc:#8e8e93;border:0;font:inherit;font-size:12px;font-weight:500;padding:4px 10px 4px 8px;border-radius:9px;background:color-mix(in srgb,var(--kc) 14%,transparent);border-left:3px solid var(--kc);color:rgb(var(--ink));max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;min-height:26px}
.adchip:hover{background:color-mix(in srgb,var(--kc) 24%,transparent)}
.adrow{height:30px;padding:2px 3px;border-bottom:1px solid rgb(var(--line));overflow:hidden}
.adrow .adchip{font-size:11px;padding:2px 7px 2px 6px;min-height:22px}
.evsheet .evhead{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.evsheet .title{margin:0 0 var(--s2);text-wrap:balance}
.evsheet .sub{color:rgb(var(--muted));font-size:13px;margin-bottom:var(--s2)}
.evsheet .evdesc{white-space:pre-wrap;max-height:180px;overflow:auto;line-height:1.45;margin:var(--s3) 0;padding:var(--s3) var(--s4);background:rgb(var(--muted) / .06);border-radius:14px}
.evsheet .evdesc a{color:rgb(var(--accent))}
.evsheet .dchips{margin-top:var(--s4)}
.klist{display:flex;flex-direction:column;gap:var(--s1);margin:var(--s4) 0 var(--s5)}
.krow{display:flex;align-items:center;gap:var(--s3);width:100%;border:0;background:transparent;font:inherit;color:rgb(var(--ink));padding:var(--s3) var(--s2);border-radius:12px;text-align:left;cursor:pointer;min-height:44px}
.krow:hover{background:rgb(var(--muted) / .07)}
.krow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:15px}
.krow.off .t,.krow.off .dot{opacity:.45}
.krow .chk{margin-left:var(--s2)}
.loader{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s5)}
.loader .pulse{width:8px;height:8px;border-radius:50%;background:rgb(var(--accent));animation:pulse 1.1s var(--ease) infinite}
@keyframes pulse{0%,100%{transform:scale(.6);opacity:.35}50%{transform:scale(1.2);opacity:1}}
@media (prefers-reduced-motion:reduce){.loader .pulse{animation:none}}
#evform select.input{appearance:none;-webkit-appearance:none}
.more-stack{border:0;font:inherit;padding:0;width:100%;height:78px;background:transparent;text-align:left}
.more-stack i{height:54px}
.more-stack i:nth-child(1){left:var(--s3);right:var(--s3);top:12px;opacity:.55}
.more-stack i:nth-child(2){left:var(--s5);right:var(--s5);top:24px;opacity:.3}
.more-stack span{position:absolute;left:0;right:0;top:0;height:54px;border-radius:18px;background:rgb(var(--card));box-shadow:var(--shadow);color:rgb(var(--ink));font-size:14px;font-weight:500;gap:var(--s3)}
.more-stack span b{font-weight:400;color:rgb(var(--muted));font-size:13px}
.more-stack:active span{transform:scale(.985)}
/* Task-Slots im Kalender: gleiche Geometrie wie Termine, Akzent statt Kalenderfarbe */
.tl .slot{left:var(--s3);right:0;border-radius:12px;background:rgb(var(--accent) / .1);box-shadow:none;border-left:3px solid rgb(var(--accent));padding:4px 8px 4px 9px;gap:6px;align-items:center;transition:background .15s var(--ease)}
.tl .slot:hover{background:rgb(var(--accent) / .16)}
.tl .slot .tt{font-size:12.5px;line-height:1.25;letter-spacing:-.01em}
.tl .slot .tt .pdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 5px 1px 0;vertical-align:middle}
.tl .slot .mt{font-size:11px;line-height:1.25}
.tl .slot .chk{width:18px;height:18px;margin:0;flex:none}
.tl .slot.thin .chk{display:none}
.tl .slot.done{opacity:.6;background:rgb(var(--muted) / .1);border-left-color:rgb(var(--line-strong));box-shadow:none}
.tl .slot.done .tt{text-decoration:line-through;color:rgb(var(--muted))}
.tl .slot.live{box-shadow:0 0 0 1.5px rgb(var(--accent) / .6);background:rgb(var(--accent) / .14)}
.tl .slot.me{box-shadow:0 0 0 1.5px rgb(var(--accent) / .6)}
.tl .slot.drag{box-shadow:0 12px 30px -8px rgb(0 0 0 / .4)}
.tl .slot .go{height:26px;padding:0 9px;font-size:11.5px;border-radius:13px}
.week .col .tl .slot{padding:3px 7px 3px 8px;border-radius:9px}
.week .col .tl .slot .tt{font-size:11.5px}.week .col .tl .slot .mt{font-size:10.5px}
@media (min-width:1200px){.week .col .tl .slot .tt{font-size:12px}}
/* Task-Dialog Footer: Desktop eine Reihe (Done, Schedule, Unplan, Delete rechts), Handy: Delete + Schedule, darunter Done gross */
.mfoot.task{display:flex;align-items:center;gap:var(--s3)}
.mfoot.task .mrow{display:flex;gap:var(--s3);flex:1;align-items:center}
.mfoot.task .mrow .btn-danger{margin-left:auto}
@media (max-width:899px){
  .mfoot.task{display:flex;flex-direction:column-reverse;gap:var(--s3);padding:var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom))}
  .mfoot.task .mrow{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--s3);width:100%}
  .mfoot.task .mrow .btn{height:44px;font-size:14px;margin:0!important;width:100%;justify-content:center}
  .mfoot.task .mrow .btn-danger{order:-1}
  .mfoot.task>.btn-lg{width:100%;height:54px;font-size:16px;justify-content:center;margin:0!important}
}
/* Karten: ruhige Metazeile statt Chip-Cluster (Variante A), Score als Zahl rechts oben */
.row .t .th{display:flex;align-items:flex-start;gap:var(--s3)}
.row .t .th .tt{flex:1;min-width:0}
.row .sc{flex:none;font-size:13px;font-weight:500;color:rgb(var(--muted));font-variant-numeric:tabular-nums;padding-top:2px;letter-spacing:0}
.row .sc.hi{color:rgb(var(--accent))}
.row .meta{margin-top:var(--s2);font-size:13px;color:rgb(var(--muted));display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;font-variant-numeric:tabular-nums;line-height:1.35;min-width:0}
.row .meta>*{white-space:nowrap}
.row .meta i{font-style:normal;opacity:.45}
.row .meta .late{color:rgb(var(--danger));font-weight:500}
.row .meta .acc{color:rgb(var(--accent));font-weight:500}
.row .meta svg{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.row .meta a{color:inherit;text-decoration:underline;text-decoration-color:rgb(var(--line-strong));text-underline-offset:3px}
.row .meta a:hover{color:rgb(var(--accent))}
.stack .row .meta{margin-top:var(--s3)}
.sec-h .caption .cnt{font-weight:400;color:rgb(var(--muted));text-transform:none;letter-spacing:0;margin-left:var(--s2)}
/* Timeline-Kopf am Handy: drei gleich grosse runde Knoepfe, Now ohne Text */
@media (max-width:899px){
  .sec-h .chip.tool{width:44px;height:44px;padding:0;justify-content:center;border-radius:50%}
  .sec-h .chip.tool span{display:none}
}
/* Sheets duerfen nie breiter als der Viewport werden: lange Kalendernamen und Buttons schrumpfen */
.sheet{box-sizing:border-box;max-width:100vw;overflow-x:hidden}
.sheet>*{min-width:0;max-width:100%}
.klist{min-width:0}
.krow{min-width:0;max-width:100%;box-sizing:border-box}
.krow .t{flex:1 1 0;min-width:0}
.krow .small{flex:none}
.evsheet .title,.evsheet .sub{overflow-wrap:anywhere}
.evsheet .dchips{flex-wrap:wrap}
.swatch.auto{background:rgb(var(--card));border:1.5px dashed rgb(var(--line-strong));color:rgb(var(--muted));font-size:11px;font-weight:600;display:grid;place-items:center}
.swatch.auto.on{border-style:solid;border-color:rgb(var(--ink));color:rgb(var(--ink))}
/* Handy-Menue wie Desktop: Today, Calendar, All, Backlog, Projects. Calendar am Handy = Agenda */
.bnav{grid-template-columns:repeat(5,1fr)}
.agenda{display:grid;gap:var(--s4)}
.aday{background:rgb(var(--card));border-radius:18px;box-shadow:var(--shadow);padding:var(--s3);display:grid;gap:2px}
.aday.today{box-shadow:var(--shadow),inset 0 0 0 1.5px rgb(var(--accent) / .45)}
.ahead{display:flex;align-items:baseline;gap:var(--s3);padding:var(--s2) var(--s3) var(--s3);width:100%;text-align:left;background:transparent;border:0;font:inherit;color:rgb(var(--ink));min-height:40px}
.ahead .wd{font-weight:600;font-size:15px;letter-spacing:-.01em}
.aday.today .wd{color:rgb(var(--accent))}
.ahead .dn{color:rgb(var(--muted));font-size:13px}
.ahead .kw{font-size:11px;color:rgb(var(--accent));font-weight:600;letter-spacing:.05em}
.ahead .free{margin-left:auto;font-size:12px;color:rgb(var(--muted));font-variant-numeric:tabular-nums;white-space:nowrap}
.arow{--kc:#8e8e93;display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;background:transparent;border:0;font:inherit;color:rgb(var(--ink));padding:var(--s2) var(--s3);border-radius:12px;min-height:44px;min-width:0}
.arow:active{background:rgb(var(--muted) / .08)}
.arow .at{flex:none;width:50px;display:flex;flex-direction:column;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}
.arow .at small{font-size:11px;color:rgb(var(--muted));font-weight:400}
.arow .an{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;border-left:3px solid var(--kc);padding-left:var(--s3);line-height:1.35}
.arow .an .meet{font-style:normal;font-size:11px;color:rgb(var(--accent));font-weight:600;margin-left:4px}
.arow.slot .an{border-left-color:rgb(var(--accent))}
.arow.done .an{opacity:.5;text-decoration:line-through}
.arow.ad .at{font-size:11px;color:rgb(var(--muted))}
.aempty{padding:var(--s2) var(--s3) var(--s3);font-size:13px;color:rgb(var(--muted))}
/* Karten-Drag: Griff, Geist, Vorschau, Zielmarkierung */
.tl .slot .grip{flex:none;width:28px;height:28px;display:grid;place-items:center;color:rgb(var(--muted));border-radius:8px;touch-action:none;cursor:grab;margin-left:auto;opacity:.7}
.tl .slot .grip:hover{background:rgb(var(--accent) / .12);color:rgb(var(--accent));opacity:1}
.tl .slot.thin .grip{width:22px;height:22px}
.tl .slot.lifted{opacity:.35}
.dragghost{position:fixed;left:0;top:0;z-index:70;pointer-events:none;display:flex;align-items:center;gap:8px;max-width:280px;padding:10px 14px;border-radius:14px;background:rgb(var(--card));color:rgb(var(--ink));box-shadow:0 18px 40px -10px rgb(0 0 0 / .45),0 0 0 1.5px rgb(var(--accent) / .7);font-size:14px;font-weight:500;letter-spacing:-.01em;transform:translate(-9999px,-9999px) ;will-change:transform}
.dragghost .gt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dragghost b{font-weight:500;color:rgb(var(--muted));font-size:12px;flex:none;font-variant-numeric:tabular-nums}
.dragghost .pdot{width:8px;height:8px;border-radius:50%;flex:none}
.dropprev{position:absolute;left:var(--s3);right:0;border-radius:12px;border:2px dashed rgb(var(--accent) / .8);background:rgb(var(--accent) / .12);z-index:6;pointer-events:none;display:flex;align-items:center;gap:8px;padding:0 10px;font-size:12px;color:rgb(var(--accent));font-variant-numeric:tabular-nums;transition:top .08s linear,height .08s linear}
.dropprev.conflict{border-color:rgb(var(--danger) / .8);background:rgb(var(--danger) / .1);color:rgb(var(--danger))}
.dropprev span{font-weight:600;text-transform:uppercase;font-size:10.5px;letter-spacing:.05em}
.daystrip .day.drop{border-color:rgb(var(--accent));background:rgb(var(--accent) / .12);transform:scale(1.06)}
.week .col.drop{background:rgb(var(--accent) / .07)}
.tl .slot.drag,.tl .ev.dragging{pointer-events:none}
.tl .slot.drag{pointer-events:none}
body.dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
body.dragging .tl{cursor:grabbing}
.dragcard{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:14px;background:rgb(var(--accent) / .1);border:1.5px dashed rgb(var(--accent) / .5);color:rgb(var(--ink));font-size:14px;font-weight:500;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;margin:0 0 var(--s3)}
.dragcard .grip{color:rgb(var(--accent));display:grid;place-items:center;flex:none}
.dragcard .gt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dragcard small{color:rgb(var(--muted));font-weight:400;font-size:12px;flex:none}
.dragcard:active{transform:scale(.99)}
/* Variante B (Leo 03.09.): Bloecke als neutrale Karten, Kalenderfarbe nur als Punkt, Slots im Akzent-Tint */
.kdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--kc,#8e8e93);margin:0 6px 1px 0;vertical-align:middle;flex:none}
.tl .ev{background:rgb(var(--bg-alt));border-left:0;color:rgb(var(--ink))}
.tl .ev:hover{background:rgb(var(--muted) / .16)}
.tl .slot{border-left:0;padding-left:8px}
.tl .slot.done{border-left:0}
.adchip{border-left:0;background:rgb(var(--bg-alt));padding:4px 10px}
.adchip:hover{background:rgb(var(--muted) / .16)}
.arow .an{border-left:0;padding-left:0}
.arow.slot .an .kdot{background:rgb(var(--accent))}
.week .col .tl .ev{padding-left:7px}
/* Tagesleiste waehrend des Ziehens */
.dropdays{position:fixed;left:0;right:0;top:0;z-index:65;display:flex;gap:var(--s2);align-items:center;padding:calc(var(--s3) + env(safe-area-inset-top)) var(--s4) var(--s3);background:rgb(var(--card) / .92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgb(var(--line));animation:down .2s var(--ease);overflow-x:auto;pointer-events:auto}
@keyframes down{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.dropdays .hint{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted));font-weight:600;flex:none;margin-right:var(--s2)}
.dropdays .dday{flex:1 0 44px;min-width:44px;height:48px;border-radius:12px;border:1px solid rgb(var(--line));background:rgb(var(--card));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font:inherit;color:rgb(var(--ink));transition:transform .15s var(--ease),background-color .15s,border-color .15s}
.dropdays .dday .wd{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted))}
.dropdays .dday .dn{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.dropdays .dday.today .wd{color:rgb(var(--accent))}
.dropdays .dday.on{border-color:rgb(var(--ink));}
.dropdays .dday.drop{border-color:rgb(var(--accent));background:rgb(var(--accent) / .12);transform:scale(1.08)}
.dropdays.edge-l::before,.dropdays.edge-r::after{content:"";position:fixed;top:0;bottom:0;width:28px;background:linear-gradient(90deg,rgb(var(--accent) / .35),transparent);pointer-events:none}
.dropdays.edge-l::before{left:0}.dropdays.edge-r::after{right:0;transform:scaleX(-1)}
@media (min-width:900px){.dropdays{left:248px}}
/* Statistikzeile: nie umbrechen, am Handy als Scrollzeile mit engeren Abstaenden */
.statline{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.statline::-webkit-scrollbar{display:none}
.statline>*{flex:none;white-space:nowrap}
@media (max-width:479px){.statline{gap:var(--s2);padding:var(--s3) var(--s3)}.statline .v{font-size:14px}.statline .l{font-size:12px;margin-right:2px}.statline .sep{margin:0 var(--s1)}.statline .ring{width:28px;height:28px}}
/* Fokus-Modus: am Handy Vollbild, am Desktop eine zentrierte Karte auf abgedunkeltem Grund */
.focus .fcard{display:flex;flex-direction:column;height:100%;width:100%;min-height:0}
.focus .fbody{max-width:none}
.focus .fnotes{background:rgb(var(--muted) / .07);border-radius:16px;padding:var(--s4) var(--s5);display:grid;gap:var(--s2);text-align:left}
.focus .fnotes div{white-space:pre-wrap;color:rgb(var(--ink-soft));font-size:14px;line-height:1.5;max-height:9.5em;overflow:auto}
.focus .steps{text-align:left}
@media (min-width:900px){
  .focus{background:rgb(var(--ink) / .32);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:grid;place-items:center;padding:var(--s6)}
  .focus .fcard{width:min(560px,100%);height:auto;max-height:calc(100vh - 2 * var(--s6));background:rgb(var(--card));border-radius:28px;box-shadow:0 30px 80px -20px rgb(0 0 0 / .45);overflow:hidden;animation:pop-in .25s var(--ease)}
  .focus .fhead{padding:var(--s5) var(--s5) 0 var(--s6)}
  .focus .fbody{padding:var(--s5) var(--s6) var(--s4);gap:var(--s4)}
  .focus .fring{width:200px;height:200px}
  .focus .ftimer{font-size:64px}
  .focus .ffoot{padding:var(--s3) var(--s6) var(--s6);margin:0;max-width:none}
  .focus .ffoot .btn{height:48px;font-size:14.5px}
}
@keyframes pop-in{from{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}
@media (min-width:900px){
  [data-theme="dark"] .focus{background:rgb(0 0 0 / .55)}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .focus{background:rgb(0 0 0 / .55)}}
}
.focus .fhead .caption .dot{margin-right:6px}
.focus .fhead .caption{display:inline-flex;align-items:center;gap:var(--s3)}
/* Sidebar am Desktop fest, Inhalt scrollt daneben */
@media (min-width:900px){
  .layout{display:block;padding-left:248px}
  .side{position:fixed;left:0;top:0;bottom:0;width:248px;height:auto;box-sizing:border-box;overflow-y:auto}
  .dropdays{left:248px}
}
/* Projekt-Logs */
.loglist{display:grid;gap:var(--s4);margin-top:var(--s4)}
.logcard{background:rgb(var(--card));border-radius:18px;box-shadow:var(--shadow);padding:var(--s4) var(--s5);display:grid;gap:var(--s3)}
.logcard .lhead{display:flex;align-items:center;gap:var(--s3);min-height:28px}
.logcard .lhead .ibtn{margin-left:auto;opacity:.6}.logcard:hover .lhead .ibtn{opacity:1}
.ltyp{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:9px;background:rgb(var(--muted) / .12);color:rgb(var(--ink-soft))}
.ltyp.t-decision{background:rgb(var(--accent) / .14);color:rgb(var(--accent))}
.ltyp.t-blocker{background:rgb(var(--danger) / .12);color:rgb(var(--danger))}
.ltyp.t-milestone{background:rgb(var(--accent) / .14);color:rgb(var(--accent))}
.ldate{font-size:13px;color:rgb(var(--muted))}
.lphase{font-size:12px;color:rgb(var(--muted));padding-left:var(--s3);border-left:1px solid rgb(var(--line))}
.ltitle{font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1.3;text-wrap:balance}
.lrow{display:grid;grid-template-columns:64px 1fr;gap:var(--s3);font-size:14px;line-height:1.45}
.lrow .l{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted));font-weight:600;padding-top:3px}
.lbody{font-size:14px;line-height:1.5;color:rgb(var(--ink-soft))}
.md p{margin:0 0 var(--s2)}.md ul{margin:0 0 var(--s2);padding-left:18px}.md li{margin:2px 0}.md .mdh{font-weight:600;color:rgb(var(--ink));margin:var(--s3) 0 var(--s2)}
.md a{color:rgb(var(--accent));word-break:break-all}
.logcard.clamp .lbody{max-height:12em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.logcard.clamp.open .lbody{max-height:none;-webkit-mask-image:none;mask-image:none}
.lmore{align-self:start;font-size:13px;font-weight:500;color:rgb(var(--accent));padding:4px 0;background:transparent;border:0;font-family:inherit;cursor:pointer}
.notes-ta{min-height:160px;resize:vertical;line-height:1.5}
#lm .pc{display:flex;gap:var(--s2);flex-wrap:wrap}
.pcard .plog{font-size:13px;color:rgb(var(--muted));margin-top:var(--s2);line-height:1.4}
.pcard .plog .ldate{font-weight:500;color:rgb(var(--ink-soft));margin-right:var(--s2)}
@media (min-width:900px){.side{height:100vh;height:100dvh;bottom:auto}}
/* Projektstand: Streifen unter den Tabs, am breiten Desktop rechte Spalte */
.pstate{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin:var(--s3) 0 0;padding:var(--s3) var(--s4);border-radius:14px;background:rgb(var(--card));box-shadow:var(--shadow);font-size:13.5px;line-height:1.35}
.pstate .ps-text{flex:1;min-width:160px;color:rgb(var(--ink-soft));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pstate .ps-actions{display:flex;gap:var(--s2);margin-left:auto}
.pstate .chip{height:32px;font-size:13px;padding:0 10px}
.pstate a.chip{text-decoration:none;color:inherit}
.pgrid{display:block}
.pside{display:none}
@media (min-width:1200px){
  .pgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s5);align-items:start}
  .pside{display:block;position:sticky;top:var(--s5)}
  .pside .logcard.mini{padding:var(--s3) var(--s4);gap:var(--s2);margin-bottom:var(--s3);border-radius:14px}
  .pside .ltitle{font-size:14.5px}
  .pside .lrow{font-size:13px;grid-template-columns:52px 1fr}
  .pside .lbody{font-size:13px}
  .pside .lmore{display:inline-block;margin-top:var(--s2)}
  .pstate{display:none}
  .wrap.proj{max-width:1180px}
}
@media (max-width:899px){.pstate .ps-text{white-space:normal;flex-basis:100%}.pstate .ps-actions{margin-left:0}}
/* Desktop-Listen: Tabellenzeilen (Variante A) mit Score-Ring (aus C). Handy behaelt die Karten. */
.row .cell,.thead,.row .tlink{display:none}
.sring{--p:0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:600;color:rgb(var(--muted));background:conic-gradient(rgb(var(--line-strong)) calc(var(--p) * 1%),rgb(var(--line)) 0);position:relative;font-variant-numeric:tabular-nums;letter-spacing:0}
.sring::before{content:"";position:absolute;inset:3px;border-radius:50%;background:rgb(var(--card))}
.sring b{position:relative;font-weight:600}
.sring.hi{background:conic-gradient(rgb(var(--accent)) calc(var(--p) * 1%),rgb(var(--accent) / .18) 0);color:rgb(var(--accent))}
.sring.done{background:rgb(var(--line))}
.row .cell .dim{color:rgb(var(--muted));opacity:.7}
@media (min-width:900px){
  .thead{display:grid;grid-template-columns:26px minmax(0,1fr) 118px 74px 72px 44px;gap:var(--s4);padding:0 var(--s5) var(--s2) var(--s4);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--muted));font-weight:600}
  .thead span:last-child{text-align:right}
  .stack{gap:var(--s2)}
  .stack .item .row{display:grid;grid-template-columns:26px minmax(0,1fr) 118px 74px 72px 44px;gap:var(--s4);align-items:center;padding:10px var(--s5) 10px var(--s4);border-radius:14px}
  .stack .row .t{min-width:0}
  .stack .row .t .th{display:block}
  .stack .row .t .tt{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  .stack .row .sc,.stack .row .meta{display:none}
  .stack .row .cell{display:block;font-size:13px;color:rgb(var(--muted));font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .stack .row .cell .late{color:rgb(var(--danger));font-weight:500}
  .stack .row .cell .acc{color:rgb(var(--accent));font-weight:500}
  .stack .row .cell.scr{display:flex;justify-content:flex-end;overflow:visible}
  .stack .row .tlink{display:inline-flex;margin-left:6px;color:rgb(var(--muted));vertical-align:middle}
  .stack .row .tlink svg{width:13px;height:13px}
  .stack .row .tlink:hover{color:rgb(var(--accent))}
  .stack .row .chk{width:24px;height:24px}
  .stack .item.now .row{box-shadow:var(--shadow),inset 3px 0 0 rgb(var(--accent))}
  .stack .item .row:hover{background:rgb(var(--card));box-shadow:var(--shadow),0 0 0 1px rgb(var(--line-strong))}
  .stack .item .row.picked{background:rgb(var(--accent-tint))}
  .more-stack{height:64px}.more-stack span{height:46px;font-size:13.5px}.more-stack i{height:46px}
}
@media (min-width:900px){.stack .row .t{display:block;min-width:0}.stack .row .t .th{min-width:0;max-width:100%}}
/* Projekt-Dokumente und Dateien */
.doclist{display:grid;gap:2px;margin-bottom:var(--s4)}
.docrow{display:flex;align-items:center;gap:var(--s3);padding:6px var(--s2);border-radius:10px;background:transparent;border:0;font:inherit;color:rgb(var(--ink));text-align:left;text-decoration:none;min-width:0;width:100%;cursor:pointer}
.docrow:hover{background:rgb(var(--muted) / .08)}
.docrow .dn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:500}
.docrow .ds,.filerow .ds{font-size:12px;color:rgb(var(--muted));white-space:nowrap}
.dtag{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.06em;padding:3px 6px;border-radius:6px;background:rgb(var(--muted) / .12);color:rgb(var(--ink-soft))}
.docgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s4);margin-top:var(--s4)}
.doccard{background:rgb(var(--card));border-radius:18px;box-shadow:var(--shadow);padding:var(--s4) var(--s5);display:grid;gap:var(--s2);cursor:pointer;transition:transform .15s var(--ease)}
.doccard:hover{transform:translateY(-2px)}
.doccard .dhead{display:flex;align-items:center;gap:var(--s3)}
.doccard .dtitle{font-size:16px;font-weight:600;letter-spacing:-.02em}
.doccard .dprev{font-size:13px;color:rgb(var(--muted));line-height:1.45;min-height:2.9em}
.filelist{display:grid;gap:var(--s2)}
.filerow{display:flex;align-items:center;gap:var(--s3);background:rgb(var(--card));border-radius:14px;box-shadow:var(--shadow);padding:var(--s3) var(--s4);min-height:48px}
.filerow .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;color:inherit;text-decoration:none}
.filerow .fn:hover{color:rgb(var(--accent))}
.modal.doc{width:min(860px,calc(100% - 2 * var(--s5)))}
.doc-ta{min-height:min(60vh,520px);resize:vertical;line-height:1.55;font-size:15px;margin-top:var(--s3)}
label.chip input,label.ibtn input{display:none}
@media (max-width:899px){.doc-ta{min-height:50vh}}
/* Dokument-Editor fuellt das Fenster */
@media (min-width:900px){.modal.doc{height:min(88vh,920px)}.modal.doc .mbody{display:flex;flex-direction:column;gap:var(--s3)}.modal.doc .doc-ta{flex:1;min-height:320px}}
@media (max-width:899px){.modal.doc .mbody{display:flex;flex-direction:column;gap:var(--s3)}.modal.doc .doc-ta{flex:1;min-height:40vh}}
@media (max-width:899px){.chiprow>.muted.small{flex-basis:100%;margin:var(--s2) 0 0!important;line-height:1.4}}
