:root{--bg: oklch(.975 .004 255);--surface: oklch(1 0 0);--surface-2: oklch(.985 .004 255);--line: oklch(.915 .006 260);--line-soft: oklch(.945 .005 260);--ink: oklch(.27 .02 265);--ink-2: oklch(.48 .02 265);--ink-3: oklch(.62 .015 265);--ink-4: oklch(.74 .012 265);--brand: oklch(.55 .17 274);--brand-2: oklch(.62 .16 280);--brand-ink: oklch(.4 .16 274);--brand-bg: oklch(.965 .025 280);--ok: oklch(.62 .13 158);--ok-bg: oklch(.965 .04 162);--warn: oklch(.7 .13 70);--warn-bg: oklch(.965 .045 78);--risk: oklch(.62 .16 22);--risk-bg: oklch(.965 .03 24);--frueh-bar: oklch(.78 .135 75);--frueh-bg: oklch(.965 .045 82);--frueh-ink: oklch(.46 .085 62);--spaet-bar: oklch(.68 .125 235);--spaet-bg: oklch(.965 .035 238);--spaet-ink: oklch(.44 .1 244);--nacht-bar: oklch(.54 .145 288);--nacht-bg: oklch(.96 .04 290);--nacht-ink: oklch(.42 .115 288);--we-bar: oklch(.7 .115 168);--we-bg: oklch(.965 .042 168);--we-ink: oklch(.42 .075 163);--ferien-a: oklch(.95 .02 300);--ferien-b: oklch(.92 .025 300);--ferien-ink: oklch(.5 .04 300);--abs-bg: oklch(.965 .014 300);--abs-ink: oklch(.5 .04 300);--abs-line: oklch(.9 .02 300);--we-tint: oklch(.97 .005 260);--rose-bar: oklch(.68 .14 350);--rose-bg: oklch(.965 .035 350);--rose-ink: oklch(.46 .1 345);--gruen-bar: oklch(.62 .14 145);--gruen-bg: oklch(.965 .04 148);--gruen-ink: oklch(.42 .09 142);--orange-bar: oklch(.72 .14 50);--orange-bg: oklch(.965 .04 55);--orange-ink: oklch(.46 .1 45);--slate-bar: oklch(.58 .02 265);--slate-bg: oklch(.955 .005 265);--slate-ink: oklch(.42 .02 265);--rot-bar: oklch(.6 .18 25);--rot-bg: oklch(.965 .035 25);--rot-ink: oklch(.44 .12 22);--indigo-bar: oklch(.52 .16 270);--indigo-bg: oklch(.965 .03 272);--indigo-ink: oklch(.4 .12 268);--mint-bar: oklch(.72 .12 178);--mint-bg: oklch(.965 .035 180);--mint-ink: oklch(.44 .08 175);--koralle-bar: oklch(.7 .16 35);--koralle-bg: oklch(.965 .04 38);--koralle-ink: oklch(.46 .12 32);--radius: 13px;--radius-sm: 9px;--shadow-card: 0 1px 2px oklch(.4 .03 265 / .05), 0 4px 16px oklch(.4 .03 265 / .05);--shadow-pop: 0 12px 36px oklch(.35 .04 265 / .14), 0 2px 6px oklch(.35 .04 265 / .08);--font: "Helvetica Neue", Helvetica, "Inter", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}[data-theme=dark]{--bg: oklch(.205 .012 265);--surface: oklch(.248 .013 265);--surface-2: oklch(.292 .014 265);--line: oklch(.36 .014 265);--line-soft: oklch(.315 .013 265);--ink: oklch(.955 .005 265);--ink-2: oklch(.8 .012 265);--ink-3: oklch(.65 .013 265);--ink-4: oklch(.52 .013 265);--brand: oklch(.7 .15 276);--brand-2: oklch(.76 .14 282);--brand-ink: oklch(.82 .12 282);--brand-bg: oklch(.32 .06 280);--ok: oklch(.74 .14 159);--ok-bg: oklch(.31 .06 162);--warn: oklch(.8 .13 76);--warn-bg: oklch(.33 .06 76);--risk: oklch(.72 .16 24);--risk-bg: oklch(.33 .07 24);--frueh-bar: oklch(.8 .14 78);--frueh-bg: oklch(.345 .066 80);--frueh-ink: oklch(.88 .09 82);--spaet-bar: oklch(.72 .13 235);--spaet-bg: oklch(.32 .066 238);--spaet-ink: oklch(.85 .1 240);--nacht-bar: oklch(.66 .15 288);--nacht-bg: oklch(.33 .07 288);--nacht-ink: oklch(.85 .1 288);--we-bar: oklch(.74 .12 168);--we-bg: oklch(.32 .062 168);--we-ink: oklch(.86 .09 165);--ferien-a: oklch(.34 .05 300);--ferien-b: oklch(.3 .05 300);--ferien-ink: oklch(.8 .08 300);--abs-bg: oklch(.31 .035 300);--abs-ink: oklch(.8 .07 300);--abs-line: oklch(.4 .045 300);--we-tint: oklch(.225 .012 265);--rose-bar: oklch(.72 .14 350);--rose-bg: oklch(.34 .06 350);--rose-ink: oklch(.86 .09 348);--gruen-bar: oklch(.7 .14 148);--gruen-bg: oklch(.32 .06 150);--gruen-ink: oklch(.85 .09 148);--orange-bar: oklch(.78 .14 55);--orange-bg: oklch(.33 .06 55);--orange-ink: oklch(.88 .09 50);--slate-bar: oklch(.64 .02 265);--slate-bg: oklch(.3 .01 265);--slate-ink: oklch(.82 .02 265);--rot-bar: oklch(.68 .18 25);--rot-bg: oklch(.33 .07 25);--rot-ink: oklch(.86 .1 25);--indigo-bar: oklch(.62 .16 270);--indigo-bg: oklch(.32 .07 272);--indigo-ink: oklch(.84 .1 272);--mint-bar: oklch(.76 .12 178);--mint-bg: oklch(.32 .06 180);--mint-ink: oklch(.86 .08 178);--koralle-bar: oklch(.76 .16 35);--koralle-bg: oklch(.33 .07 38);--koralle-ink: oklch(.88 .1 35);--shadow-card: 0 1px 2px oklch(0 0 0 / .25), 0 4px 16px oklch(0 0 0 / .3);--shadow-pop: 0 12px 36px oklch(0 0 0 / .5), 0 2px 6px oklch(0 0 0 / .4)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;font-feature-settings:"ss01"}#root{height:100vh;height:100dvh}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.app-shell{display:flex;height:100%}.app{flex:1;min-width:0;height:100%;display:grid;grid-template-rows:auto auto 1fr;gap:14px;padding:16px 20px 18px}.sidebar{width:244px;height:100%;display:flex;flex-direction:column;padding:14px 10px;background:var(--surface);border-right:1px solid var(--line);transition:width .26s cubic-bezier(.4,0,.2,1);overflow:hidden;flex-shrink:0;z-index:10}.sidebar.sb-collapsed{width:66px}.sb-head{display:flex;align-items:center;gap:8px;padding:2px 4px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}.sb-brand-wrap{display:flex;align-items:center;gap:10px;flex:1;min-width:0;overflow:hidden}.sb-brand-text{opacity:1;white-space:nowrap;transition:opacity .22s ease}.sb-collapsed .sb-brand-text{opacity:0;width:0;margin:0;overflow:hidden}.sb-collapsed .sb-head{justify-content:center}.sb-toggle{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .16s ease}.sb-toggle:hover{color:var(--ink);border-color:var(--ink-4)}.sb-collapsed .sb-toggle{border-color:transparent;background:transparent}.sb-nav{display:flex;flex-direction:column;gap:2px;flex:1;padding-top:4px}.sb-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;border:none;background:transparent;color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;position:relative;text-align:left;transition:all .14s ease}.sb-item:hover{background:var(--surface-2);color:var(--ink)}.sb-item.active{background:var(--brand-bg);color:var(--brand);font-weight:600}.sb-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.sb-collapsed .sb-item{justify-content:center;padding:10px}.sb-collapsed .sb-item.active:before{top:6px;bottom:6px}.sb-ic{display:grid;place-items:center;width:20px;height:20px;flex-shrink:0}.sb-label{opacity:1;transition:opacity .18s ease}.sb-collapsed .sb-label{opacity:0;width:0;overflow:hidden;margin:0;padding:0}.sb-badge{margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;background:var(--risk-bg);color:var(--risk)}.sb-collapsed .sb-badge{position:absolute;top:4px;right:4px;padding:1px 4px;font-size:8px;min-width:14px;text-align:center;margin:0}.sb-foot{display:flex;flex-direction:column;gap:2px}.sb-divider{height:1px;background:var(--line);margin:8px 6px}.sb-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;overflow:hidden;cursor:default;position:relative}.sb-avatar{width:34px;height:34px;border-radius:10px;flex-shrink:0;background:linear-gradient(150deg,var(--brand-2),var(--brand));display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;box-shadow:0 2px 8px #5664d34d}.sb-user-info{opacity:1;min-width:0;flex:1;transition:opacity .18s ease}.sb-collapsed .sb-user-info{opacity:0;width:0;overflow:hidden}.sb-collapsed .sb-user{justify-content:center}.sb-user-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-user-role{font-size:10.5px;color:var(--ink-3)}.sb-logout{width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .14s ease}.sb-logout:hover{color:var(--risk);background:var(--risk-bg);border-color:transparent}.sb-collapsed .sb-logout{display:none}.sb-collapsed .sb-item[title]:hover:after,.sb-collapsed .sb-user[title]:hover:after{content:attr(title);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:5px 11px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:600;white-space:nowrap;z-index:100;box-shadow:var(--shadow-pop);pointer-events:none}[data-theme=dark] .sidebar{background:#0d0e1a8c;-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border-right-color:#9c99c226;box-shadow:inset -1px 0 #ffffff0a,2px 0 20px #0003}[data-theme=dark] .sb-item.active{background:#5f57a440}[data-theme=dark] .sb-item:hover{background:#7b77b91f}[data-theme=dark] .sb-toggle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .sb-collapsed .sb-item[title]:hover:after,[data-theme=dark] .sb-collapsed .sb-user[title]:hover:after{background:#272833;color:var(--ink);border:1px solid oklch(.7 .06 288 / .2)}.hdr{display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:10px;padding-right:22px;border-right:1px solid var(--line)}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(150deg,var(--brand-2),var(--brand));display:grid;place-items:center;box-shadow:0 2px 8px #5664d359}.brand-mark span{width:11px;height:11px;border-radius:3px;border:2.5px solid white;border-right-color:transparent;transform:rotate(-45deg)}.brand-name{font-size:16px;font-weight:700;letter-spacing:-.02em}.brand-name b{color:var(--brand)}.brand-sub{font-size:11px;color:var(--ink-3);letter-spacing:.02em;margin-top:1px}.kw{display:flex;align-items:center;gap:4px}.kw-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;transition:all .16s ease}.kw-btn:hover{background:var(--surface-2);color:var(--ink);border-color:var(--ink-4)}.kw-btn:active{transform:scale(.94)}.kw-label{padding:0 12px;min-width:168px}.kw-label .kw-num{font-size:15px;font-weight:700;letter-spacing:-.01em}.kw-label .kw-range{font-size:11.5px;color:var(--ink-3);margin-top:1px}.kw-today{margin-left:4px;font-size:11.5px;font-weight:600;color:var(--brand);background:var(--brand-bg);border:1px solid oklch(.55 .17 274 / .18);padding:5px 9px;border-radius:7px;cursor:pointer;transition:all .16s ease}.kw-today:hover{background:#5664d31f}.hdr-right{margin-left:auto;display:flex;align-items:center;gap:16px}.theme-btn{width:34px;height:34px;flex:0 0 auto;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .14s ease}.theme-btn:hover{background:var(--surface-2);color:var(--ink);border-color:var(--ink-4)}.theme-btn:active{transform:scale(.92)}.save{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);font-weight:500}.save-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 #2a9d6766}.save.saving .save-dot{background:var(--warn);animation:pulse 1.1s ease-out infinite}.save.saved .save-dot{animation:none}@keyframes pulse{0%{box-shadow:0 0 #d18e3573}to{box-shadow:0 0 0 7px #d18e3500}}.gen-btn{display:inline-flex;align-items:center;gap:9px;height:40px;padding:0 18px 0 15px;border:none;border-radius:10px;background:linear-gradient(150deg,var(--brand-2),var(--brand));color:#fff;font-size:13.5px;font-weight:600;letter-spacing:-.01em;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 2px 10px #5664d359,inset 0 1px #fff3;transition:transform .14s ease,box-shadow .16s ease}.gen-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #5664d36b,inset 0 1px #ffffff40}.gen-btn:active{transform:translateY(0)}.gen-btn:disabled{cursor:default}.gen-btn .spark{display:grid;place-items:center}.gen-btn.busy{background:linear-gradient(150deg,var(--brand-2),var(--brand))}.gen-btn .shim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,oklch(1 0 0 / .28) 50%,transparent 70%);transform:translate(-100%)}.gen-btn.busy .shim{animation:shim 1.1s linear infinite}@keyframes shim{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}.gen-btn.busy .spark svg{animation:spin .9s linear infinite}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px 12px;box-shadow:var(--shadow-card);position:relative;display:flex;flex-direction:column;gap:7px}.kpi-top{display:flex;align-items:center;justify-content:space-between}.kpi-label{font-size:11.5px;font-weight:600;color:var(--ink-3);letter-spacing:.01em;text-transform:uppercase}.kpi-chip{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:20px;display:inline-flex;align-items:center;gap:3px}.kpi-chip.up{color:var(--ok);background:var(--ok-bg)}.kpi-chip.flat{color:var(--ink-3);background:var(--surface-2)}.kpi-chip.bad{color:var(--risk);background:var(--risk-bg)}.kpi-chip.warn{color:var(--warn);background:var(--warn-bg)}.kpi-val{font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1;display:flex;align-items:baseline;gap:4px}.kpi-val small{font-size:14px;font-weight:600;color:var(--ink-3);letter-spacing:-.01em}.kpi-sub{font-size:11.5px;color:var(--ink-3)}.kpi-bar{height:5px;border-radius:3px;background:var(--line-soft);overflow:hidden}.kpi-bar i{display:block;height:100%;border-radius:3px;transition:width .9s cubic-bezier(.4,0,.2,1)}.kpi-spark{display:flex;align-items:flex-end;gap:3px;height:22px}.kpi-spark i{flex:1;border-radius:2px 2px 0 0;background:var(--line);transition:height .6s ease,background .3s}.main{display:grid;grid-template-columns:1fr 320px;gap:14px;min-height:0}.left-col{display:grid;grid-template-rows:1fr auto;gap:12px;min-height:0;min-width:0}.grid-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column;min-height:0;position:relative}.grid-toolbar{display:flex;align-items:center;gap:14px;padding:11px 16px;border-bottom:1px solid var(--line);flex:0 0 auto}.grid-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.legend{display:flex;gap:13px;margin-left:auto;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-2);font-weight:500}.legend-dot{width:9px;height:9px;border-radius:3px}.grid{flex:1 1 auto;display:grid;grid-template-columns:176px repeat(7,1fr);grid-auto-rows:1fr;min-height:0}.grid-row{display:contents}.gh{display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--line);background:var(--surface-2);font-size:11.5px;font-weight:600;color:var(--ink-3);position:sticky;top:0}.gh.gh-name{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.gh-day{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}.gh-day .d-name{color:var(--ink-2);font-weight:700;font-size:12px}.gh-day .d-date{color:var(--ink-4);font-size:10.5px}.gh-day.today{background:var(--brand-bg)}.gh-day.today .d-name{color:var(--brand)}.gh-day.today .d-date{color:var(--brand-ink)}.nm{display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line);cursor:pointer;transition:background .14s ease;min-width:0}.nm:hover{background:var(--surface-2)}.row-sel .nm{background:var(--brand-bg)}.avatar{width:30px;height:30px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:#fff;letter-spacing:-.01em}.nm-text{min-width:0}.nm-name{font-size:12.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}.nm-role{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nm-warn{width:6px;height:6px;border-radius:50%;background:var(--warn);flex:0 0 auto}.cell{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);padding:5px;display:flex;transition:background .14s ease;min-width:0;position:relative}.cell.today-col{background:#5664d307}.row-sel .cell{background:#5664d30a}.row-sel .cell.today-col{background:#5664d30f}.chip{flex:1 1 auto;border-radius:var(--radius-sm);padding:6px 8px 5px 9px;display:flex;flex-direction:column;justify-content:center;gap:2px;position:relative;border:1px solid transparent;cursor:default;transition:transform .12s ease,box-shadow .14s ease;overflow:hidden;min-width:0}.chip:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px}.chip:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4048581f;z-index:2}.chip-label{font-size:11.5px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-time{font-size:10.5px;letter-spacing:-.01em;opacity:.85}.chip.frueh{background:var(--frueh-bg);color:var(--frueh-ink)}.chip.frueh:before{background:var(--frueh-bar)}.chip.spaet{background:var(--spaet-bg);color:var(--spaet-ink)}.chip.spaet:before{background:var(--spaet-bar)}.chip.nacht{background:var(--nacht-bg);color:var(--nacht-ink)}.chip.nacht:before{background:var(--nacht-bar)}.chip.we{background:var(--we-bg);color:var(--we-ink)}.chip.we:before{background:var(--we-bar)}.chip.short{background:var(--spaet-bg);color:var(--spaet-ink)}.chip.short:before{background:var(--spaet-bar)}.chip.rose{background:var(--rose-bg);color:var(--rose-ink)}.chip.rose:before{background:var(--rose-bar)}.chip.gruen{background:var(--gruen-bg);color:var(--gruen-ink)}.chip.gruen:before{background:var(--gruen-bar)}.chip.orange{background:var(--orange-bg);color:var(--orange-ink)}.chip.orange:before{background:var(--orange-bar)}.chip.slate{background:var(--slate-bg);color:var(--slate-ink)}.chip.slate:before{background:var(--slate-bar)}.chip.rot{background:var(--rot-bg);color:var(--rot-ink)}.chip.rot:before{background:var(--rot-bar)}.chip.indigo{background:var(--indigo-bg);color:var(--indigo-ink)}.chip.indigo:before{background:var(--indigo-bar)}.chip.mint{background:var(--mint-bg);color:var(--mint-ink)}.chip.mint:before{background:var(--mint-bar)}.chip.koralle{background:var(--koralle-bg);color:var(--koralle-ink)}.chip.koralle:before{background:var(--koralle-bar)}.off{flex:1 1 auto;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:500}.off.frei{color:var(--ink-4)}.off.frei .dash{width:12px;height:2px;border-radius:2px;background:currentColor;opacity:.5}.off.krank{color:var(--risk);background:var(--risk-bg);font-weight:600}.off.ferien{color:var(--ferien-ink);font-weight:600;background:repeating-linear-gradient(45deg,var(--ferien-a) 0 6px,var(--ferien-b) 6px 12px)}.gav-mark{position:absolute;top:3px;right:3px;width:14px;height:14px;border-radius:5px;background:var(--risk);color:#fff;display:grid;place-items:center;font-size:9px;font-weight:800;box-shadow:0 1px 3px #d5575966;z-index:3}.gen-sweep{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:linear-gradient(100deg,transparent 42%,oklch(.55 .17 274 / .1) 50%,transparent 58%);transform:translate(-100%)}.grid-card.busy .gen-sweep{animation:sweep 1.4s ease-in-out}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.cell .chip{animation:none}.grid-card.busy .chip{animation:settle .5s ease both}@keyframes settle{0%{opacity:.35;transform:translateY(3px) scale(.98)}to{opacity:1;transform:none}}.detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-height:0;overflow:hidden}.dt-head{padding:16px 16px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.dt-head .avatar{width:40px;height:40px;border-radius:11px;font-size:14px}.dt-name{font-size:15px;font-weight:700;letter-spacing:-.02em}.dt-role{font-size:12px;color:var(--ink-3);margin-top:1px}.dt-body{flex:1 1 auto;overflow:hidden;padding:16px;display:flex;flex-direction:column;gap:17px}.dt-sec-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-4);margin-bottom:8px}.dt-hours{display:flex;align-items:flex-end;justify-content:space-between}.dt-hours .big{font-size:27px;font-weight:700;letter-spacing:-.025em;line-height:1}.dt-hours .big small{font-size:14px;color:var(--ink-3);font-weight:600}.dt-hours .pct{font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px}.dt-hours .pct.under{color:var(--warn);background:var(--warn-bg)}.dt-hours .pct.ok{color:var(--ok);background:var(--ok-bg)}.dt-hbar{height:7px;border-radius:4px;background:var(--line-soft);margin-top:9px;position:relative;overflow:visible}.dt-hbar i{display:block;height:100%;border-radius:4px;background:var(--brand);transition:width .7s cubic-bezier(.4,0,.2,1)}.dt-hbar .soll-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-3);border-radius:2px}.chiplist{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11.5px;font-weight:500;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:5px 9px;border-radius:8px;display:inline-flex;align-items:center;gap:5px}.tag.absence{color:var(--abs-ink);background:var(--abs-bg);border-color:var(--abs-line)}.tag .tdot{width:6px;height:6px;border-radius:50%;background:var(--ink-4)}.dt-conflict{display:flex;gap:9px;align-items:flex-start;background:var(--risk-bg);border:1px solid oklch(.62 .16 22 / .18);border-radius:10px;padding:10px 11px}.dt-conflict .ci{flex:0 0 auto;width:18px;height:18px;border-radius:6px;background:var(--risk);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;margin-top:1px}.dt-conflict .ct{font-size:11.5px;line-height:1.45}.dt-conflict .ct b{color:var(--risk)}.trend{display:flex;flex-direction:column;gap:8px}.trend-chart{display:flex;align-items:flex-end;gap:6px;height:64px}.trend-chart .bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}.trend-chart .bar{width:100%;border-radius:4px 4px 2px 2px;transition:height .6s cubic-bezier(.4,0,.2,1);min-height:3px}.trend-chart .bar-lab{font-size:9.5px;color:var(--ink-4)}.trend-foot{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--ink-3)}.trend-foot .lvl{font-weight:700}.dt-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:0 28px;color:var(--ink-3)}.dt-empty .ill{width:56px;height:56px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-4)}.dt-empty p{font-size:12.5px;line-height:1.5}.sugg{background:linear-gradient(135deg,var(--brand-bg),var(--surface) 70%);border:1px solid oklch(.55 .17 274 / .22);border-radius:var(--radius);padding:13px 14px 13px 16px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-card);position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.34,1.3,.64,1),opacity .3s ease}.sugg.leaving{transform:translateY(8px);opacity:0}.sugg-ic{width:34px;height:34px;flex:0 0 auto;border-radius:10px;background:linear-gradient(150deg,var(--brand-2),var(--brand));display:grid;place-items:center;color:#fff;box-shadow:0 2px 8px #5664d366}.sugg-txt{flex:1 1 auto;min-width:0}.sugg-kicker{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand);display:flex;align-items:center;gap:6px}.sugg-main{font-size:13.5px;font-weight:500;color:var(--ink);margin-top:3px;letter-spacing:-.01em}.sugg-main b{font-weight:700}.sugg-main .hl{color:var(--brand-ink);font-weight:700}.sugg-actions{display:flex;gap:8px;flex:0 0 auto}.btn{height:36px;padding:0 15px;border-radius:9px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);transition:all .14s ease;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--surface-2);border-color:var(--ink-4);color:var(--ink)}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(150deg,var(--brand-2),var(--brand));color:#fff;border-color:transparent;box-shadow:0 2px 8px #5664d359}.btn.primary:hover{box-shadow:0 5px 14px #5664d36b;transform:translateY(-1px)}.sugg-empty{color:var(--ink-3)}.sugg-empty .sugg-ic{background:var(--ok);box-shadow:0 2px 8px #2a9d6766}.sugg-empty .sugg-kicker{color:var(--ok)}.flash{animation:flash .9s ease}@keyframes flash{0%,to{color:inherit}30%{color:var(--brand)}}.switcher{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.switcher button{border:none;background:transparent;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-3);padding:6px 14px;border-radius:7px;transition:all .15s ease}.switcher button:hover{color:var(--ink)}.switcher button.on{background:var(--surface);color:var(--brand);box-shadow:0 1px 3px #4048581f}.palette{display:flex;align-items:center;gap:7px;margin-left:auto}.palette-lbl{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-4);margin-right:2px}.pchip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink);padding:5px 10px 5px 8px;border-radius:8px;cursor:grab;border:1px solid var(--line);background:var(--surface);transition:transform .12s ease,box-shadow .14s ease}.pchip:hover{transform:translateY(-1px);box-shadow:0 3px 10px #4048581f}.pchip:active{cursor:grabbing}.pchip .pchip-bar{width:8px;height:8px;border-radius:3px}.pchip.frueh .pchip-bar{background:var(--frueh-bar)}.pchip.frueh{background:var(--frueh-bg);color:var(--frueh-ink);border-color:transparent}.pchip.spaet .pchip-bar{background:var(--spaet-bar)}.pchip.spaet{background:var(--spaet-bg);color:var(--spaet-ink);border-color:transparent}.pchip.nacht .pchip-bar{background:var(--nacht-bar)}.pchip.nacht{background:var(--nacht-bg);color:var(--nacht-ink);border-color:transparent}.pchip.we .pchip-bar{background:var(--we-bar)}.pchip.we{background:var(--we-bg);color:var(--we-ink);border-color:transparent}.cell.editable{cursor:pointer}.cell.out{background:repeating-linear-gradient(45deg,var(--surface-2) 0 7px,var(--surface) 7px 14px);border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}.cell.drop-ok{box-shadow:inset 0 0 0 2px var(--brand);border-radius:8px;background:var(--brand-bg)!important}.cell.drop-ok .cell-inner{opacity:.4}.popover{position:fixed;z-index:50;width:252px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop);transition:opacity .12s ease}.pop-grp-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-4);margin:2px 0 7px}.pop-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pop-row.off{grid-template-columns:1fr 1fr 1fr;margin-top:11px}.pop-shift{text-align:left;border:1px solid transparent;cursor:pointer;font:inherit;border-radius:9px;padding:7px 9px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:1px;transition:transform .1s ease}.pop-shift:hover{transform:translateY(-1px)}.pop-shift .pop-bar{position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:3px}.pop-shift .pop-name{font-size:12px;font-weight:700}.pop-shift .pop-time{font-size:9.5px;opacity:.8}.pop-shift.sel{outline:2px solid var(--brand);outline-offset:1px}.pop-shift.frueh{background:var(--frueh-bg);color:var(--frueh-ink)}.pop-shift.frueh .pop-bar{background:var(--frueh-bar)}.pop-shift.spaet{background:var(--spaet-bg);color:var(--spaet-ink)}.pop-shift.spaet .pop-bar{background:var(--spaet-bar)}.pop-shift.nacht{background:var(--nacht-bg);color:var(--nacht-ink)}.pop-shift.nacht .pop-bar{background:var(--nacht-bar)}.pop-shift.we{background:var(--we-bg);color:var(--we-ink)}.pop-shift.we .pop-bar{background:var(--we-bar)}.pop-off{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;font:inherit;font-size:11.5px;font-weight:600;color:var(--ink-2);border-radius:8px;padding:7px 4px;transition:all .12s ease}.pop-off:hover{border-color:var(--ink-4);color:var(--ink)}.pop-off.krank.sel,.pop-off.krank:hover{background:var(--risk-bg);color:var(--risk);border-color:transparent}.pop-off.ferien.sel,.pop-off.ferien:hover{background:var(--abs-bg);color:var(--abs-ink);border-color:transparent}.pop-off.frei.sel{background:var(--surface);border-color:var(--brand);color:var(--brand)}.pop-times{display:flex;align-items:flex-end;gap:8px;margin:2px 0 9px}.pop-tf{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-4)}.pop-tf input{font:inherit;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;width:100%;padding:6px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink)}.pop-tf input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:transparent}.pop-dash{color:var(--ink-4);padding-bottom:8px}.pop-dur{font-size:12px;font-weight:700;color:var(--brand-ink);padding-bottom:7px;min-width:40px;text-align:right}.pop-apply{width:100%;height:34px;border:none;border-radius:9px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:#fff;background:linear-gradient(150deg,var(--brand-2),var(--brand));box-shadow:0 2px 8px #5664d352;transition:transform .12s ease,box-shadow .14s ease}.pop-apply:hover{transform:translateY(-1px);box-shadow:0 5px 14px #5664d366}.pop-apply.disabled{background:var(--surface-2);color:var(--ink-4);cursor:default;box-shadow:none}.chip .custom-dot{font-style:normal;font-size:9px;margin-left:4px;opacity:.65}.chip-del{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:5px;border:none;background:#0000001f;color:inherit;display:none;place-items:center;cursor:pointer;font-size:12px;font-weight:700;line-height:1;transition:background .12s ease}.chip:hover .chip-del{display:grid}.chip:hover .gav-mark{opacity:0;transition:opacity .1s}.chip-del:hover{background:var(--risk);color:#fff}[data-theme=dark] .chip-del{background:#ffffff26}[data-theme=dark] .chip-del:hover{background:var(--risk);color:#fff}.pop-clear{width:100%;height:34px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--risk);font:inherit;font-size:12px;font-weight:600;cursor:pointer;margin-top:10px;transition:all .14s ease;display:flex;align-items:center;justify-content:center;gap:6px}.pop-clear:hover{background:var(--risk-bg);border-color:transparent}.hcell.custom .hcell-l{font-size:8.5px;opacity:.8}.shifts-content{display:flex;flex-direction:column;gap:24px;overflow-y:auto;padding-bottom:16px}.shifts-sec-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-4);margin-bottom:10px}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.shift-card{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;transition:transform .12s ease,box-shadow .14s ease}.shift-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #4048581f}.shift-card-bar{width:4px;flex-shrink:0}.shift-card.frueh .shift-card-bar{background:var(--frueh-bar)}.shift-card.spaet .shift-card-bar{background:var(--spaet-bar)}.shift-card.nacht .shift-card-bar{background:var(--nacht-bar)}.shift-card.we .shift-card-bar{background:var(--we-bar)}.shift-card.rose .shift-card-bar{background:var(--rose-bar)}.shift-card.gruen .shift-card-bar{background:var(--gruen-bar)}.shift-card.orange .shift-card-bar{background:var(--orange-bar)}.shift-card.slate .shift-card-bar{background:var(--slate-bar)}.shift-card.rot .shift-card-bar{background:var(--rot-bar)}.shift-card.indigo .shift-card-bar{background:var(--indigo-bar)}.shift-card.mint .shift-card-bar{background:var(--mint-bar)}.shift-card.koralle .shift-card-bar{background:var(--koralle-bar)}.shift-card-status.frei .shift-card-bar{background:var(--ink-4)}.shift-card-status.krank .shift-card-bar{background:var(--risk)}.shift-card-status.ferien .shift-card-bar{background:var(--abs-ink)}.shift-card-body{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:3px}.shift-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.shift-card-name{font-size:14px;font-weight:700;letter-spacing:-.01em}.shift-card-code{font-size:10.5px;font-weight:700;background:var(--surface-2);border:1px solid var(--line);padding:2px 7px;border-radius:6px;color:var(--ink-2)}.shift-card-time{font-size:12.5px;color:var(--ink-2)}.shift-card-hours,.shift-card-sub{font-size:11px;color:var(--ink-3)}.shift-card-actions{display:flex;flex-direction:column;gap:2px;padding:6px;justify-content:center}.shift-action-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;transition:all .14s ease}.shift-action-btn:hover{color:var(--ink);border-color:var(--ink-4);background:var(--surface-2)}.shift-action-del:hover{color:var(--risk);background:var(--risk-bg);border-color:transparent}.shift-theme-picker{display:flex;gap:8px}.color-dd{position:relative}.color-dd-trigger{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;width:100%;transition:border-color .14s ease}.color-dd-trigger:hover{border-color:var(--ink-4)}.color-dd-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-pop);padding:6px;max-height:260px;overflow-y:auto}.color-dd-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:none;background:transparent;font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;width:100%;text-align:left;transition:background .12s ease}.color-dd-opt:hover{background:var(--surface-2);color:var(--ink)}.color-dd-opt.on{background:var(--brand-bg);color:var(--brand);font-weight:600}.color-dd-swatch{width:16px;height:16px;border-radius:5px;flex-shrink:0}.frueh .color-dd-swatch{background:var(--frueh-bar)}.spaet .color-dd-swatch{background:var(--spaet-bar)}.nacht .color-dd-swatch{background:var(--nacht-bar)}.we .color-dd-swatch{background:var(--we-bar)}.rose .color-dd-swatch{background:var(--rose-bar)}.gruen .color-dd-swatch{background:var(--gruen-bar)}.orange .color-dd-swatch{background:var(--orange-bar)}.slate .color-dd-swatch{background:var(--slate-bar)}.rot .color-dd-swatch{background:var(--rot-bar)}.indigo .color-dd-swatch{background:var(--indigo-bar)}.mint .color-dd-swatch{background:var(--mint-bar)}.koralle .color-dd-swatch{background:var(--koralle-bar)}[data-theme=dark] .color-dd-trigger{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .color-dd-panel{background:#181926d9;-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border-color:#9c99c238;box-shadow:var(--shadow-pop),inset 0 1px #ffffff0f}.shift-theme-opt{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s ease}.shift-theme-opt:hover{border-color:var(--ink-4);color:var(--ink)}.shift-theme-opt.on{border-color:var(--brand);color:var(--brand);background:var(--brand-bg)}.shift-theme-swatch{width:14px;height:14px;border-radius:5px;flex-shrink:0}.shift-theme-opt.frueh .shift-theme-swatch{background:var(--frueh-bar)}.shift-theme-opt.spaet .shift-theme-swatch{background:var(--spaet-bar)}.shift-theme-opt.nacht .shift-theme-swatch{background:var(--nacht-bar)}.shift-theme-opt.we .shift-theme-swatch{background:var(--we-bar)}.shift-theme-opt.rose .shift-theme-swatch{background:var(--rose-bar)}.shift-theme-opt.gruen .shift-theme-swatch{background:var(--gruen-bar)}.shift-theme-opt.orange .shift-theme-swatch{background:var(--orange-bar)}.shift-theme-opt.slate .shift-theme-swatch{background:var(--slate-bar)}[data-theme=dark] .shift-card{-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);border-color:#9c99c238}.legend-hint{font-size:11px;color:var(--ink-4);font-style:italic;margin-left:4px}.mc-wd{display:grid;grid-template-columns:repeat(7,1fr);padding:8px 14px 6px;border-bottom:1px solid var(--line);flex:0 0 auto}.mc-wd-c{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em;padding-left:2px}.mc-wd-c.we{color:var(--ink-4)}.mc-grid{flex:1 1 auto;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:7px;padding:9px 14px 14px;min-height:0}.mc-cell{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 9px;cursor:pointer;text-align:left;font:inherit;display:flex;flex-direction:column;gap:6px;min-width:0;transition:border-color .14s ease,box-shadow .14s ease,transform .12s ease}.mc-cell:hover{border-color:var(--ink-4);box-shadow:0 4px 14px #4048581a;transform:translateY(-1px)}.mc-cell.empty{background:transparent;border:none;cursor:default}.mc-cell.empty:hover{transform:none;box-shadow:none}.mc-cell.we{background:var(--surface-2)}.mc-cell.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.mc-cell.inweek{background:var(--brand-bg)}.mc-top{display:flex;align-items:center;justify-content:space-between}.mc-date{font-size:14px;font-weight:700;letter-spacing:-.01em}.mc-flag{font-size:10px;font-weight:800;padding:1px 6px;border-radius:20px}.mc-flag.conf{background:var(--risk);color:#fff;width:16px;height:16px;display:grid;place-items:center;padding:0;border-radius:6px}.mc-flag.under{background:var(--warn-bg);color:var(--warn)}.mc-cov{display:flex;align-items:center;gap:7px}.mc-bar{flex:1;height:5px;border-radius:3px;background:var(--line-soft);overflow:hidden}.mc-bar i{display:block;height:100%;border-radius:3px;transition:width .6s ease}.mc-cov-num{font-size:11px;font-weight:700;color:var(--ink-2)}.mc-cov-num i{font-style:normal;color:var(--ink-4);font-weight:500}.mc-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}.mc-dot{font-size:9.5px;font-weight:700;padding:2px 5px;border-radius:5px;display:inline-flex;align-items:center;gap:2px}.mc-dot i{font-style:normal;font-weight:800}.mc-dot.frueh{background:var(--frueh-bg);color:var(--frueh-ink)}.mc-dot.spaet{background:var(--spaet-bg);color:var(--spaet-ink)}.mc-dot.nacht{background:var(--nacht-bg);color:var(--nacht-ink)}.mc-dot.we{background:var(--we-bg);color:var(--we-ink)}.mc-dot.abs{background:var(--abs-bg);color:var(--abs-ink)}.heat{flex:1 1 auto;display:grid;grid-auto-rows:1fr;min-height:0;overflow:hidden}.hh{display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--surface-2)}.hh.hh-name{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);padding-left:12px;border-right:1px solid var(--line)}.hday{flex-direction:column;justify-content:center;align-items:center;gap:0}.hday-d{font-size:10px;font-weight:700;color:var(--ink-2)}.hday-w{font-size:8.5px;color:var(--ink-4)}.hday.we{background:var(--we-tint)}.hday.today{background:var(--brand-bg)}.hday.today .hday-d{color:var(--brand)}.hrow{display:contents}.hname{display:flex;align-items:center;gap:7px;padding:0 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft);cursor:pointer;min-width:0;transition:background .14s}.hname:hover{background:var(--surface-2)}.hrow.row-sel .hname{background:var(--brand-bg)}.avatar.sm{width:22px;height:22px;border-radius:7px;font-size:9.5px}.hname-t{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hcell{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);display:grid;place-items:center;cursor:pointer;position:relative;font-size:10px;font-weight:800;transition:filter .12s ease}.hcell:hover{filter:brightness(.94);box-shadow:inset 0 0 0 1.5px var(--ink-4);z-index:2}.hcell.we{background:var(--we-tint)}.hcell.frei{color:transparent}.hcell.frueh{background:var(--frueh-bg);color:var(--frueh-ink)}.hcell.spaet{background:var(--spaet-bg);color:var(--spaet-ink)}.hcell.nacht{background:var(--nacht-bg);color:var(--nacht-ink)}.hcell.short{background:var(--spaet-bg);color:var(--spaet-ink)}.hcell.rose{background:var(--rose-bg);color:var(--rose-ink)}.hcell.gruen{background:var(--gruen-bg);color:var(--gruen-ink)}.hcell.orange{background:var(--orange-bg);color:var(--orange-ink)}.hcell.slate{background:var(--slate-bg);color:var(--slate-ink)}.hcell.rot{background:var(--rot-bg);color:var(--rot-ink)}.hcell.indigo{background:var(--indigo-bg);color:var(--indigo-ink)}.hcell.mint{background:var(--mint-bg);color:var(--mint-ink)}.hcell.koralle{background:var(--koralle-bg);color:var(--koralle-ink)}.hcell.krank{background:var(--risk-bg);color:var(--risk)}.hcell.ferien{background:repeating-linear-gradient(45deg,var(--ferien-a) 0 5px,var(--ferien-b) 5px 10px)}.hcell .hcell-l{pointer-events:none}.hcell.drop-ok{box-shadow:inset 0 0 0 2px var(--brand);z-index:3}.hconf{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--risk);box-shadow:0 0 0 1.5px var(--surface)}.hcell.we{background-color:var(--we-tint)}.hcell.frueh.we{background:var(--frueh-bg)}.hcell.spaet.we{background:var(--spaet-bg)}.hcell.nacht.we{background:var(--nacht-bg)}.hcell.short.we{background:var(--spaet-bg)}.team-hdr{display:flex;align-items:center;justify-content:space-between;gap:16px}.team-title{font-size:20px;font-weight:700;letter-spacing:-.02em}.team-sub{font-size:12px;color:var(--ink-3);margin-top:2px}.team-actions{display:flex;align-items:center;gap:10px}.team-search-wrap{display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);min-width:220px;transition:border-color .16s ease,box-shadow .2s ease}.team-search-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #5664d31f}.team-search{border:none;background:none;outline:none;font:inherit;font-size:13px;color:var(--ink);width:100%}.team-search::placeholder{color:var(--ink-4)}.team-tbl{flex:1;overflow-y:auto}.team-tbl-head{display:grid;grid-template-columns:1fr 80px 110px 120px 100px 80px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);position:sticky;top:0;z-index:2}.team-th{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-4);display:flex;align-items:center}.team-row{display:grid;grid-template-columns:1fr 80px 110px 120px 100px 80px;padding:10px 16px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .14s ease}.team-row:hover{background:var(--surface-2)}.team-row.row-sel{background:var(--brand-bg)}.team-cell{display:flex;align-items:center;gap:6px;min-width:0}.team-cell-name{gap:10px}.team-cell-num{flex-direction:column;align-items:flex-start;gap:4px}.team-cell-shifts{gap:4px;flex-wrap:wrap}.team-cell-strain{flex-direction:column;align-items:flex-start;gap:3px}.team-cell-end{justify-content:flex-end}[data-theme=dark] .team-search-wrap{background:#1d1e2980;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .team-tbl-head{background:#2c2d3866;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.month-foot{display:flex;align-items:center;gap:14px;padding:2px}.mlayout{display:inline-flex;padding:3px;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-card)}.mlayout button{border:none;background:transparent;cursor:pointer;font:inherit;font-size:12px;font-weight:600;color:var(--ink-3);padding:6px 13px;border-radius:7px;transition:all .15s ease}.mlayout button:hover{color:var(--ink)}.mlayout button.on{background:var(--brand-bg);color:var(--brand)}.month-hint{font-size:12px;color:var(--ink-3)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#02030980;display:grid;place-items:center;opacity:1}.modal{width:min(480px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-pop);opacity:1}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--line)}.modal-title{font-size:17px;font-weight:700;letter-spacing:-.02em}.modal-close{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;transition:all .14s ease}.modal-close:hover{color:var(--ink);border-color:var(--ink-4)}.modal-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-field{position:relative}.modal-field input,.modal-field select{width:100%;height:52px;padding:22px 14px 8px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;font-size:14px;transition:border-color .16s ease,box-shadow .2s ease}.modal-field input::placeholder{color:transparent}.modal-field input:focus,.modal-field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5664d31f}.modal-field label{position:absolute;left:14px;top:16px;font-size:14px;color:var(--ink-3);pointer-events:none;transform-origin:left;transition:transform .2s ease,color .2s ease}.modal-field input:focus~label,.modal-field input:not(:placeholder-shown)~label,.modal-field label.always{transform:translateY(-10px) scale(.75);color:var(--brand)}.modal-field input:not(:placeholder-shown):not(:focus)~label,.modal-field label.always:not(:focus-within){color:var(--ink-3)}.modal-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.modal-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-4);margin-bottom:8px}.modal-pensum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pensum-opt{padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:15px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:all .14s ease}.pensum-opt span{font-size:11px;font-weight:500;color:var(--ink-4)}.pensum-opt:hover{border-color:var(--ink-4);color:var(--ink)}.pensum-opt.on{background:var(--brand-bg);border-color:var(--brand);color:var(--brand)}.pensum-opt.on span{color:var(--brand-ink)}.modal-chips{display:flex;flex-wrap:wrap;gap:6px}.modal-chip{padding:7px 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s ease}.modal-chip:hover{border-color:var(--ink-4);color:var(--ink)}.modal-chip.on{background:var(--brand-bg);border-color:var(--brand);color:var(--brand)}.pensum-slider-wrap{display:flex;align-items:center;gap:16px}.pensum-slider-wrap input[type=range]{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line-soft);border-radius:3px;outline:none;cursor:pointer}.pensum-slider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(150deg,var(--brand-2),var(--brand));box-shadow:0 2px 8px #5664d366;cursor:pointer}.pensum-display{text-align:right;min-width:85px}.pensum-val{font-size:22px;font-weight:700;letter-spacing:-.02em;display:block}.pensum-hours{font-size:11px;color:var(--ink-3)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}[data-theme=dark] .modal{background:#181926bf;-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border:1px solid oklch(.7 .06 288 / .22);box-shadow:var(--shadow-pop),inset 0 1px #ffffff12}[data-theme=dark] .modal-overlay{background:#000103b3}[data-theme=dark] .modal-field input,[data-theme=dark] .modal-field select{background:#14151f99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .pensum-opt{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;background:#222630;color:#f0f2f5;padding:11px 16px;border-radius:11px;box-shadow:var(--shadow-pop);font-size:12.5px;font-weight:500;max-width:460px;animation:toastIn .32s cubic-bezier(.34,1.3,.64,1)}.toast .toast-ic{display:grid;place-items:center;color:var(--warn);flex:0 0 auto}.toast.ok .toast-ic{color:var(--ok)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 1100px){.sidebar{width:66px}.sb-brand-text,.sb-label,.sb-user-info,.sb-logout{opacity:0;width:0;overflow:hidden}.sb-item{justify-content:center;padding:10px}.sb-head{justify-content:center}.sb-toggle{border-color:transparent;background:transparent}.sb-user{justify-content:center}.sb-badge{position:absolute;top:4px;right:4px;padding:1px 4px;font-size:8px;min-width:14px;text-align:center;margin:0}.app{padding:12px 14px 14px;gap:11px}.main{grid-template-columns:1fr 272px;gap:11px}.kpis{gap:9px}.kpi{padding:11px 13px 10px;gap:6px}.kpi-val{font-size:26px}.kpi-val small{font-size:12.5px}.grid{grid-template-columns:150px repeat(7,1fr)}.nm{gap:8px;padding:0 9px}.avatar{width:27px;height:27px}.nm-name{font-size:12px}.nm-role{font-size:10px}.chip{padding:5px 6px 4px 8px}.chip-label{font-size:11px}.chip-time{font-size:10px}.legend{gap:9px}.legend-item{font-size:10.5px}.legend-hint,.brand-sub{display:none}.kw-label{min-width:132px}.gen-btn{padding:0 14px 0 12px;font-size:12.5px}.hdr{gap:12px}.hdr-right{gap:11px}.dt-head{padding:13px}.dt-body{padding:12px 13px;gap:11px}.switcher button{padding:6px 11px;font-size:12px}.palette-lbl{display:none}.pchip{padding:5px 8px;font-size:11px}.mc-date{font-size:12.5px}.mc-grid{gap:5px;padding:8px 12px 12px}.mc-cell{padding:6px 7px;gap:4px}.hname-t{font-size:10.5px}.heat{grid-template-columns:124px repeat(30,1fr)!important}.avatar.sm{width:20px;height:20px;font-size:9px}}.scene{display:none}[data-theme=dark] body{background:#0b0913}[data-theme=dark] .scene{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.scene .g{position:absolute;border-radius:50%;filter:blur(85px);opacity:.3;will-change:transform}.scene .g1{width:48vw;height:48vw;left:-10%;top:-14%;background:radial-gradient(circle,oklch(.55 .18 285),transparent 62%);animation:gsd1 32s ease-in-out infinite}.scene .g2{width:44vw;height:44vw;right:-8%;top:2%;background:radial-gradient(circle,oklch(.54 .15 248),transparent 62%);animation:gsd2 38s ease-in-out infinite}.scene .g3{width:42vw;height:42vw;left:28%;bottom:-18%;background:radial-gradient(circle,oklch(.55 .17 322),transparent 64%);animation:gsd3 35s ease-in-out infinite;opacity:.22}[data-theme=dark] .scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(135% 105% at 50% 38%,transparent 52%,#0b0913 100%)}@keyframes gsd1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(10vw,8vh) scale(1.12)}}@keyframes gsd2{0%,to{transform:translate(0) scale(1.05)}50%{transform:translate(-12vw,9vh) scale(.92)}}@keyframes gsd3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(12vw,-10vh) scale(1.14)}}[data-theme=dark] #root{position:relative;z-index:1}@media (prefers-reduced-motion: reduce){.scene .g{animation:none!important}}[data-theme=dark]{--bg: oklch(.16 .018 274);--surface: oklch(.245 .022 280 / .55);--surface-2: oklch(.31 .024 282 / .5);--line: oklch(.62 .05 285 / .22);--line-soft: oklch(.62 .05 285 / .13);--ink: oklch(.965 .006 276);--ink-2: oklch(.8 .014 278);--ink-3: oklch(.64 .016 280);--ink-4: oklch(.52 .018 282);--brand: oklch(.7 .16 284);--brand-2: oklch(.75 .15 294);--brand-ink: oklch(.84 .12 290);--brand-bg: oklch(.42 .1 286 / .32);--shadow-card: 0 1px 2px oklch(0 0 0 / .3), 0 8px 30px oklch(.04 .02 280 / .5);--shadow-pop: 0 20px 50px oklch(0 0 0 / .55), 0 2px 8px oklch(0 0 0 / .4)}[data-theme=dark] .kpi,[data-theme=dark] .grid-card,[data-theme=dark] .detail,[data-theme=dark] .popover{-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);border:1px solid oklch(.7 .06 288 / .22);box-shadow:var(--shadow-card),inset 0 1px #ffffff12}[data-theme=dark] .sugg{-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);background:linear-gradient(135deg,#4c3f8a6b,#1c1e2d80 72%);border:1px solid oklch(.7 .12 290 / .35);box-shadow:var(--shadow-card),inset 0 1px #ffffff14}[data-theme=dark] .switcher,[data-theme=dark] .kw-btn,[data-theme=dark] .theme-btn,[data-theme=dark] .mlayout,[data-theme=dark] .pchip,[data-theme=dark] .btn,[data-theme=dark] .pop-off,[data-theme=dark] .tag{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}[data-theme=dark] .switcher button.on{background:#6156a373;box-shadow:0 1px 6px #46398380}[data-theme=dark] .brand{border-right-color:#8282a433}[data-theme=dark] .gh{background:#2c2d3866;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}[data-theme=dark] .gh.gh-day.today{background:var(--brand-bg)}[data-theme=dark] .cell.today-col{background:#7a6dda12}[data-theme=dark] .nm:hover,[data-theme=dark] .hname:hover{background:#7b74c41a}[data-theme=dark] .row-sel .nm,[data-theme=dark] .hrow.row-sel .hname{background:var(--brand-bg)}[data-theme=dark] .chip.frueh{background:#66470080;background:oklch(.42 .09 80 / .5)}[data-theme=dark] .chip.spaet{background:#034d7380}[data-theme=dark] .chip.nacht{background:#4b42808c}[data-theme=dark] .chip.we{background:#00553f80;background:oklch(.4 .09 168 / .5)}[data-theme=dark] .chip.short{background:#034d7380}[data-theme=dark] .chip.rose{background:#6b314e80}[data-theme=dark] .chip.gruen{background:#1f542a80}[data-theme=dark] .chip.orange{background:#723e1480}[data-theme=dark] .chip.slate{background:#353b4580}[data-theme=dark] .chip.rot{background:#7c252480}[data-theme=dark] .chip.indigo{background:#2e3d7780}[data-theme=dark] .chip.mint{background:#00544880;background:oklch(.4 .08 178 / .5)}[data-theme=dark] .chip.koralle{background:#7a352580}[data-theme=dark] .gen-btn,[data-theme=dark] .btn.primary{box-shadow:0 6px 22px #7058d280,inset 0 1px #ffffff40}[data-theme=dark] .kpi-bar,[data-theme=dark] .dt-hbar,[data-theme=dark] .mc-bar{background:#9b9db12e}.dt-actions{display:flex;gap:8px;padding:0 16px 14px}.dt-actions .btn{flex:1;justify-content:center}.btn.danger{color:var(--risk);border-color:#d5575966}.btn.danger:hover{background:var(--risk-bg);border-color:var(--risk);color:var(--risk)}[data-theme=dark] .btn.danger:hover{background:#d5575933}.sf-auth{--brand: oklch(.58 .18 275);--brand-2: oklch(.64 .17 292);--brand-3: oklch(.62 .15 245);--accent: oklch(.66 .16 330);--bg: oklch(.145 .022 274);--ink: oklch(.965 .008 274);--ink-2: oklch(.74 .018 274);--ink-3: oklch(.58 .02 274);--line: oklch(.34 .022 274);--field: oklch(.2 .022 274 / .66);--glass: oklch(.22 .026 274 / .55);--focus-ring: oklch(.66 .17 288 / .22);--serif: "Instrument Serif", Georgia, "Times New Roman", serif;--grotesk: "Helvetica Neue", Helvetica, Arial, sans-serif;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;font-family:var(--grotesk);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow:hidden;display:grid;place-items:center}.sf-auth canvas#bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;display:block;width:100%;height:100%}.sf-auth .vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(120% 95% at 50% 35%,transparent 42%,oklch(.09 .02 274 / .72) 100%)}.sf-auth .wrap{position:relative;z-index:3;width:min(456px,calc(100vw - 36px))}.sf-auth .card{position:relative;border-radius:26px;padding:40px 38px 34px;background:var(--glass);-webkit-backdrop-filter:blur(26px) saturate(1.3);backdrop-filter:blur(26px) saturate(1.3);box-shadow:0 30px 80px #01010599,inset 0 1px #ffffff0f}.sf-auth .card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,#afadffd9,#5161911a 42%,#cf78d599);background:linear-gradient(140deg,color(xyz 0.529 0.456 1.182 / 0.851),#5161911a 42%,#cf78d599);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.sf-auth .brand{display:flex;align-items:center;gap:11px;margin-bottom:24px}.sf-auth .mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(150deg,var(--brand-2),var(--brand));box-shadow:0 4px 18px #615ed680,inset 0 1px #ffffff40}.sf-auth .mark span{width:14px;height:14px;border-radius:4px;border:3px solid #fff;border-right-color:transparent;transform:rotate(-45deg)}.sf-auth .brand-name{font-size:18px;font-weight:700;letter-spacing:-.02em}.sf-auth .brand-name b{background:linear-gradient(120deg,var(--brand-2),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.sf-auth .brand-sub{font-size:11.5px;color:var(--ink-3);margin-top:1px;letter-spacing:.02em}.sf-auth h1{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.05;letter-spacing:-.01em;margin-bottom:9px}.sf-auth h1 em{font-style:italic;color:var(--brand-2)}.sf-auth .lede{font-size:13.5px;color:var(--ink-2);line-height:1.5;margin-bottom:26px;max-width:32ch}.sf-auth form{display:flex;flex-direction:column;gap:14px}.sf-auth .field{position:relative}.sf-auth .field input{width:100%;height:56px;padding:23px 16px 9px;border-radius:14px;background:var(--field);border:1px solid var(--line);color:var(--ink);font-family:var(--grotesk);font-size:14.5px;letter-spacing:-.01em;transition:border-color .2s ease,box-shadow .25s ease,background .2s ease}.sf-auth .field input::placeholder{color:transparent}.sf-auth .field input:hover{border-color:#4d5263}.sf-auth .field input:focus{outline:none;border-color:var(--brand-2);background:#151724b3;box-shadow:0 0 0 4px var(--focus-ring),0 0 28px #7e6ade47}.sf-auth .field label{position:absolute;left:16px;top:18px;font-size:14.5px;color:var(--ink-3);pointer-events:none;transform-origin:left center;transition:transform .2s cubic-bezier(.2,.7,.2,1),color .2s ease}.sf-auth .field input:focus~label,.sf-auth .field input:not(:placeholder-shown)~label{transform:translateY(-12px) scale(.74);color:var(--brand-2)}.sf-auth .field input:not(:placeholder-shown):not(:focus)~label{color:var(--ink-3)}.sf-auth .toggle-pw{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:9px;border:none;background:transparent;color:var(--ink-3);cursor:pointer;display:grid;place-items:center;transition:color .15s ease,background .15s ease}.sf-auth .toggle-pw:hover{color:var(--ink);background:#ffffff0d}.sf-auth .opts{display:flex;align-items:center;justify-content:space-between;margin:2px 1px 4px}.sf-auth .remember{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:12.5px;color:var(--ink-2);-webkit-user-select:none;user-select:none}.sf-auth .remember input{position:absolute;opacity:0;width:0;height:0}.sf-auth .box{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line);background:var(--field);display:grid;place-items:center;transition:all .18s ease;flex:0 0 auto}.sf-auth .box svg{opacity:0;transform:scale(.5);transition:all .18s ease}.sf-auth .remember input:checked+.box,.sf-auth .check-row input:checked+.box{background:linear-gradient(150deg,var(--brand-2),var(--brand));border-color:transparent;box-shadow:0 0 14px #796ce066}.sf-auth .remember input:checked+.box svg,.sf-auth .check-row input:checked+.box svg{opacity:1;transform:scale(1)}.sf-auth .forgot{font-size:12.5px;color:var(--brand-2);text-decoration:none;transition:color .15s ease;cursor:pointer}.sf-auth .forgot:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.sf-auth .submit{position:relative;overflow:hidden;height:54px;width:100%;margin-top:6px;border:none;border-radius:14px;cursor:pointer;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-family:var(--grotesk);font-size:14.5px;font-weight:600;letter-spacing:-.01em;box-shadow:0 10px 34px #584dc573,inset 0 1px #ffffff40;transition:transform .14s ease,box-shadow .2s ease,filter .2s ease}.sf-auth .submit:hover{transform:translateY(-1px);box-shadow:0 16px 44px #584dc58c}.sf-auth .submit:active{transform:translateY(0) scale(.99)}.sf-auth .submit:disabled{cursor:default;filter:saturate(.6) brightness(.85)}.sf-auth .submit .lbl{position:relative;z-index:2;display:inline-flex;align-items:center;gap:9px}.sf-auth .submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(100deg,transparent 32%,oklch(1 0 0 / .38) 50%,transparent 68%);transform:translate(-130%);animation:sfaShimmer 4.5s ease-in-out infinite}.sf-auth .submit:hover:not(:disabled):after{animation:sfaShimmer 1.1s ease-in-out infinite}.sf-auth .submit:disabled:after{display:none}@keyframes sfaShimmer{0%{transform:translate(-130%)}55%,to{transform:translate(130%)}}.sf-auth .spinner{width:16px;height:16px;border-radius:50%;border:2px solid oklch(1 0 0 / .35);border-top-color:#fff;animation:sfaSpin .7s linear infinite}@keyframes sfaSpin{to{transform:rotate(360deg)}}.sf-auth .note{font-size:12px;color:var(--accent);min-height:16px;margin-top:2px;text-align:center;opacity:0;transform:translateY(-3px);transition:opacity .3s ease,transform .3s ease}.sf-auth .note.show{opacity:1;transform:none}.sf-auth .foot{margin-top:22px;text-align:center;font-size:11px;color:var(--ink-3);letter-spacing:.02em;line-height:1.6}.sf-auth .foot a{color:var(--brand-2);text-decoration:none;cursor:pointer}.sf-auth .foot a:hover{color:var(--accent);text-decoration:underline}.sf-auth #leave{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .55s ease}.sf-auth #leave.on{opacity:1;pointer-events:all}.sf-auth .card.leaving{opacity:0;transform:translateY(10px) scale(.985);transition:opacity .5s ease,transform .55s cubic-bezier(.4,0,.2,1)}@keyframes sfaFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes sfaCardIn{0%{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}.sf-auth .reveal{opacity:1}.sf-auth.animate .reveal{opacity:0;animation:sfaFadeUp .75s cubic-bezier(.2,.75,.25,1) forwards}.sf-auth.animate .card.intro{animation:sfaCardIn .85s cubic-bezier(.2,.75,.25,1) both}.sf-auth canvas#bg.obg{opacity:0;transition:opacity 1.3s ease}.sf-auth canvas#bg.obg.shown{opacity:1}.sf-auth .stepper{display:flex;gap:7px;margin-bottom:22px}.sf-auth .seg{flex:1;height:4px;border-radius:3px;background:var(--line);overflow:hidden}.sf-auth .seg i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2));transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.sf-auth .seg.fill i{transform:scaleX(1)}.sf-auth .steps{position:relative}.sf-auth .step{position:absolute;top:0;left:0;width:100%;opacity:0;transform:translate(26px) scale(.992);pointer-events:none;transition:opacity .42s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.sf-auth .step.active{position:relative;opacity:1;transform:none;pointer-events:auto}.sf-auth .kicker{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-2);margin-bottom:10px}.sf-auth .hl{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.sf-auth .hl-row{display:flex;gap:13px;align-items:flex-start}.sf-auth .hl-ic{width:38px;height:38px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,#434582,#34315f);border:1px solid oklch(.6 .14 285 / .4);box-shadow:inset 0 1px #ffffff1f}.sf-auth .hl-tx h3{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-bottom:2px}.sf-auth .hl-tx p{font-size:12.5px;color:var(--ink-3);line-height:1.45}.sf-auth .agb{max-height:168px;overflow-y:auto;border:1px solid var(--line);border-radius:14px;padding:15px 16px;background:#0d0f188c;margin-bottom:16px}.sf-auth .agb h4{font-size:12px;font-weight:700;color:var(--ink);margin:12px 0 4px}.sf-auth .agb h4:first-child{margin-top:0}.sf-auth .agb p{font-size:12px;color:var(--ink-2);line-height:1.55;margin-bottom:2px}.sf-auth .agb .agb-note{font-size:10.5px;color:var(--ink-3);font-style:italic;margin-top:10px}.sf-auth .check-row{display:flex;align-items:flex-start;gap:11px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:12px}.sf-auth .check-row input{position:absolute;opacity:0;width:0;height:0}.sf-auth .check-row .box{width:20px;height:20px;margin-top:1px}.sf-auth .check-row .lbl-tx{font-size:12.5px;color:var(--ink-2);line-height:1.45;padding-top:1px}.sf-auth .check-row a{color:var(--brand-2);text-decoration:none}.sf-auth .actions{display:flex;gap:10px;margin-top:18px}.sf-auth .actions .submit{flex:1;margin-top:0}.sf-auth .ghost{height:54px;padding:0 20px;border-radius:14px;background:transparent;border:1px solid var(--line);color:var(--ink-2);cursor:pointer;font-family:var(--grotesk);font-size:14px;font-weight:600;transition:all .15s ease;flex:0 0 auto}.sf-auth .ghost:hover{border-color:var(--ink-3);color:var(--ink);background:#ffffff0a}.sf-auth .done-wrap{text-align:center}.sf-auth .check-badge{width:76px;height:76px;margin:4px auto 20px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--brand),var(--brand-2));box-shadow:0 12px 40px #584dc580,inset 0 1px #ffffff4d}.sf-auth .check-badge svg{width:40px;height:40px}.sf-auth .check-path{stroke:#fff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:32}.sf-auth.animate .check-badge{animation:sfaPop .55s cubic-bezier(.2,1.6,.4,1) both}.sf-auth.animate .check-path{stroke-dashoffset:32;animation:sfaDraw .55s .2s cubic-bezier(.3,.7,.3,1) forwards}@keyframes sfaPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes sfaDraw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.sf-auth .submit:after,.sf-auth .spinner{animation:none!important}}@media (max-width: 440px){.sf-auth .card{padding:32px 24px 26px;border-radius:22px}.sf-auth h1{font-size:31px}}
