:root{font-family:-apple-system,system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#1d1d1f;background:#f5f5f7;font-size:15px;line-height:1.45;font-synthesis:none;--muted:#66666f;--line:#ececf0;--brand:#344b55;--surface:#fff}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:0;background:transparent;text-align:left}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #344b55;outline-offset:3px}svg{width:18px;height:18px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:34px;font-weight:700;line-height:1.1;letter-spacing:-.03em}h2{font-size:17px;font-weight:700}h3{font-size:15px}b,strong{font-weight:600}a{color:inherit}button:hover{filter:brightness(.985)}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh}.side{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:4px;background:white;border-right:1px solid var(--line);padding:18px 12px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.logo{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:11px;background:var(--brand);color:white;font-size:15px;font-weight:800;line-height:1}.logo em{font-style:normal;color:#d4df79}.brand-sub{font-size:12px;color:var(--muted);margin-top:3px}.navbtn{display:flex;align-items:center;gap:11px;border-radius:10px;padding:9px 10px;font-size:14.5px;line-height:1.45;min-width:0;width:100%}.navbtn svg{width:19px;height:19px;color:var(--muted)}.navbtn>span:first-of-type{flex:1}.navbtn.active{background:#e8eef0;font-weight:600}.navbtn.active svg{color:var(--brand)}.navbtn.nested{padding-left:20px}.count{padding:1px 8px;border-radius:999px;background:#fbe7e4;color:#b3362a;font-weight:600;font-size:12px}.lock{margin-left:auto;color:var(--muted);font-size:11px;font-weight:400}.foot{font-size:12px;color:var(--muted);margin-top:auto;padding:10px}.main{min-width:0}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);background:rgb(245 245 247 / 88%);backdrop-filter:blur(12px)}.crumb{font-size:14px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.crumb b{color:#1d1d1f}.sp{flex:1}.pill{background:var(--line);padding:4px 9px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.08em;border-radius:7px;white-space:nowrap}.select{border:1px solid var(--line);border-radius:10px;background-color:#fff;padding:8px 32px 8px 12px;font-size:14px;line-height:1.45;max-width:100%}.select#role{width:124px;flex-shrink:0}.mnav{display:none}.content{display:flex;flex-direction:column;gap:20px;padding:24px 24px 48px;min-width:0}.filterbar{display:flex;align-items:center;gap:10px;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line);font-size:14px}.filterbar svg{width:15px;height:15px}.filterbar .select{min-width:131px}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.head p{margin-top:6px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border:1px solid var(--line);border-radius:12px;background:white;font-size:14px;font-weight:600;line-height:1.45;box-shadow:0 3px 14px rgb(36 36 59 / 3%);flex-shrink:0}.btn svg{width:16px;height:16px}.btn.primary{background:var(--brand);color:white;border-color:var(--brand)}.btn.ghost{box-shadow:none}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.seg{display:inline-flex;align-items:center;background:var(--line);border-radius:12px;padding:3px;gap:2px;max-width:100%;overflow-x:auto;scrollbar-width:none}.seg button{flex-shrink:0;border-radius:9px;padding:7px 14px;font-size:14px;color:var(--muted);white-space:nowrap}.seg button.selected{background:white;box-shadow:0 1px 4px #0002;color:#1d1d1f;font-weight:600}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{display:flex;flex-direction:column;gap:6px;border-radius:16px;padding:16px 18px;background:white;box-shadow:0 6px 24px rgb(36 36 59 / 4%);min-width:0;font:inherit}.lbl{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.val{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.45;font-variant-numeric:tabular-nums}.sub,.s{color:var(--muted);font-size:12.5px;line-height:1.45}.feature{background:var(--brand);color:white}.feature .lbl,.feature .sub{color:rgb(255 255 255 / 75%)}.delta{font-size:12.5px;font-weight:600}.up{color:#2f7d4f}.down,.bad-text{color:#b3362a}.feature .delta{color:rgb(255 255 255 / 75%)}.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}.grid2.even{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border-radius:16px;background:white;box-shadow:0 6px 24px rgb(36 36 59 / 4%);overflow:hidden;min-width:0}.card-h{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 10px}.card-h p{font-size:13px;color:var(--muted);margin-top:3px}.card-b{padding:6px 18px 18px}.card-b.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.li{width:100%;display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);font:inherit;min-width:0}.li>svg:last-child{width:14px;height:14px;color:var(--muted);margin-left:0}.li .t{font-weight:600;font-size:14.5px}.li .s{font-size:12.5px}.li>.r{flex-shrink:0;min-width:84px}.r{text-align:right}.av{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:#e8eef0;color:var(--brand);font-size:13px;font-weight:700}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.45;border-radius:999px;background:var(--line);color:var(--muted);white-space:nowrap;flex-shrink:0}.badge i{width:5px;height:5px;background:currentColor;border-radius:50%}.badge.brand{background:#e8eef0;color:var(--brand)}.badge.bad{background:#fbe7e4;color:#b3362a}.badge.warn{background:#fbf0dc;color:#9a5b00}.badge.good{background:#e6f3eb;color:#2f7d4f}.badge.purple{background:#f1eafb;color:#76539c}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart text{font-family:inherit;fill:#87878e;font-size:11px;font-weight:400}.chart-note{margin-top:6px}.small{font-size:13px}.muted{color:var(--muted)}.bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:7px}.bar>span{display:block;height:100%;background:var(--brand);border-radius:inherit}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mini-stats>div{display:flex;flex-direction:column;gap:4px}.mini-stats span{font-size:12.5px;color:var(--muted)}.mini-stats b{font-size:18px;letter-spacing:-.02em}.footnote{font-size:12px;color:var(--muted);display:flex;gap:12px;padding-top:14px}.empty{padding:24px;color:var(--muted);text-align:center}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line)}.tabs button{padding:10px 12px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;font-size:14px}.tabs [aria-selected=true]{border-bottom-color:var(--brand);color:#1d1d1f;font-weight:600}.preview-note{font-size:14px;color:var(--muted);padding:16px 0;border-top:1px solid var(--line)}dialog:not([open]){display:none}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.grid2.even{grid-template-columns:1fr}}
@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.topbar{padding-left:16px;padding-right:16px}.content{padding-left:16px;padding-right:16px}.mnav{display:flex;overflow-x:auto;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line);background:white;scrollbar-width:none}.mnav .navbtn{width:auto;flex-shrink:0;white-space:nowrap;padding:7px 11px;font-size:13.5px;gap:11px}.mnav .navbtn.nested{padding-left:10px}.mnav .navbtn svg{width:19px;height:19px}}
@media(max-width:540px){h1{font-size:26px}.head{flex-direction:column;align-items:flex-start;gap:16px}.kpis{grid-template-columns:1fr}.val{font-size:24px}.card-h{flex-wrap:wrap}.li{flex-wrap:wrap}.li .grow{min-width:140px}.li>.r{min-width:auto}.mini-stats{gap:6px}.mini-stats b{font-size:16px}.badge{max-width:100%}.card-h>.btn{margin-left:auto}.footnote{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.skip-link{position:fixed;left:-10000px;top:8px;z-index:100;background:white;padding:10px 16px;border-radius:8px}.skip-link:focus{left:8px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='%2387878e'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}

/* Route modules retain the observed artifact component family. */
.input{border:1px solid var(--line);border-radius:10px;background:white;padding:8px 12px;max-width:100%;min-height:40px}.block{display:block}.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.val small{font-size:14px;font-weight:500}.card-b.flush{padding:0}.tablewrap{overflow-x:auto;max-width:100%;scrollbar-width:thin}table{width:100%;border-collapse:collapse;font-size:14px;min-width:740px}th{padding:10px 12px;text-align:left;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap;background:#fdfdfd}td{padding:11px 12px;border-top:1px solid var(--line);vertical-align:middle}td.r{font-variant-numeric:tabular-nums}td .bar{min-width:80px}.who{display:flex;gap:10px;align-items:center;min-width:160px}.who .av{width:30px;height:30px;font-size:11px}.who .s{font-size:11px}.who b{white-space:nowrap}.bar.bad>span{background:#b34c41}.hint{padding:10px 12px;background:#ffffff85;border-radius:12px;font-size:13px;color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}.places-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.place-box{display:flex;flex-direction:column;gap:8px;background:white;padding:14px;border:1px solid var(--line);border-radius:16px;min-width:0}.place-box h3{display:flex;gap:8px;align-items:center;font-size:14px}.place-box h3 svg,.home-text{color:#76539c}.studio-box{grid-column:1/-1}.studio-box .place-people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 28px}.place-people .row{gap:8px;font-size:13px}.home-card{border:0}.home-card .badge{font-size:11px;padding:3px 8px}.place-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.place-metrics>div{padding:12px;background:#fafafa;border-radius:10px}.place-metrics b{font-size:20px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.home-person{display:flex;align-items:center;gap:8px}.av.tiny{width:26px;height:26px;font-size:10px}.home-person .badge{white-space:normal;max-width:48%}.home-person button{font-size:12px}.home-person .s{font-size:11px}.home-card>.row:last-child{margin-top:auto}.calendar-grid{display:grid;grid-template-columns:200px repeat(5,minmax(135px,1fr));min-width:900px;background:white;border-radius:14px;overflow:hidden}.cal-head{padding:10px;font-size:12px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}.cal-group{grid-column:1/-1;padding:12px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#fafafa}.cal-name{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.cal-name .av{width:28px;height:28px;font-size:11px}.cal-name b{font-size:13px}.cal-name .s{font-size:11px}.cal-cell{display:flex;flex-direction:column;gap:4px;padding:6px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.today{background:#f0f4f5}.event{padding:5px 8px;font-size:11px;line-height:1.5;border-radius:7px}.event.studio{background:#e8eef0;color:var(--brand)}.event.home{background:#f1eafb;color:#76539c}.event.sick{background:#fbe7e4;color:#b3362a}.event.vacation{background:#fbf0dc;color:#9a5b00}.event.training{background:#e6f3eb;color:#2f7d4f}.event.off{color:#87878e}.profile-head{display:flex;gap:14px;align-items:center}.av.large{width:64px;height:64px;font-size:21px}.profile-head h1{font-size:30px}.profile-head p{margin-top:6px}.budget-big{font-size:46px;font-weight:700;line-height:1.3;letter-spacing:-.03em}.budget-bar{height:14px;border-radius:999px;overflow:hidden;display:flex;background:var(--line)}.budget-bar span:first-child{background:var(--brand)}.budget-bar span:nth-child(2){background:#a5b3ba}.budget-bar span:nth-child(3){background:repeating-linear-gradient(45deg,#a67126 0 3px,transparent 3px 6px)}.sum{font-weight:600;background:#fafafa}.sum:last-child{background:#e8eef0}.compact{padding:5px 10px}dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(720px,100%);height:100dvh;max-height:100dvh;max-width:100%;padding:20px 20px 40px;border:0;background:#f5f5f7;color:inherit;overflow-y:auto;overscroll-behavior:contain}dialog[open]{display:flex;flex-direction:column;gap:16px}dialog::backdrop{background:#0005}.drawer-head{display:flex;align-items:flex-start;gap:12px}.drawer-head .grow h2{margin:0}.drawer-head .btn{width:44px;height:44px;padding:10px}.drawer-head .s{margin-top:3px}.letter{white-space:pre-wrap;border:1px solid var(--line);padding:16px;border-radius:12px;font-size:13px;line-height:1.65}.year-grid{min-width:560px}.year-month,.year-label{display:grid;grid-template-columns:32px repeat(31,minmax(0,1fr));gap:3px;align-items:center}.year-label{font-size:10px;color:var(--muted);margin-bottom:4px;text-align:center}.year-month{margin-top:4px}.year-month:nth-child(3n+2){margin-top:14px}.year-month .s{font-size:10px}.day-square{aspect-ratio:1;border-radius:3px;background:white;border:1px solid #ececf0}.day-square.off{background:#e9e9ee}.day-square.sick{background:#b3362a}.day-square.vacation{background:#9a5b00}.day-square.training{background:#2f7d4f}.day-square.void{visibility:hidden}.day-square.current{outline:2px solid var(--brand);outline-offset:1px}.vac-text{color:#9a5b00}#toast:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--brand);color:white;border-radius:12px;padding:12px 18px;max-width:calc(100% - 32px);z-index:100;font-size:14px;box-shadow:0 4px 24px #0002}#time-form label{display:flex;flex-direction:column;gap:6px;font-size:13px}
@media(max-width:1100px){.places-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-box .place-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.places-grid,.studio-box .place-people,.kpis.three{grid-template-columns:1fr}.profile-head{flex-wrap:wrap}.profile-head .grow{min-width:200px}.profile-head h1{font-size:26px}.input{min-height:44px}.btn,.tabs button,.seg button,.who,td>button{min-height:44px}dialog{padding:16px 16px 32px}.budget-big{font-size:38px}.home-person .badge{max-width:50%}}
.tablewrap:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.period-controls{display:flex;flex-direction:column;gap:12px}.home-person button{min-width:44px;min-height:44px}.tablewrap::before{display:none}
@media(max-width:540px){.tablewrap::before{content:"Tabelle seitlich verschieben";display:block;padding:8px 12px;color:var(--muted);font-size:11px}th>button{min-height:44px;min-width:44px}}
/* Keep tall drawer sections intact; the dialog itself owns vertical scrolling. */
dialog[open]>*{flex-shrink:0}
.input{font-size:14px}

/* Small visible information glyph; full-size pointer target without taller label rows. */
.term-info{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;inline-size:44px;block-size:44px;margin-block:-12px;margin-inline:0;border:0;border-radius:50%;background:transparent;color:inherit;padding:0;font:inherit;cursor:help}
.term-info svg{inline-size:15px;block-size:15px;opacity:.78}
.term-info:hover svg,.term-info:focus-visible svg{opacity:1}
.term-info:focus-visible{outline:2px solid currentColor;outline-offset:-7px}
.term-tooltip{position:fixed;z-index:1000;inline-size:min(300px,calc(100vw - 24px));max-inline-size:calc(100vw - 24px);padding:10px 12px;border-radius:10px;background:#243f49;color:#fff;font-size:12px;font-weight:400;line-height:1.55;letter-spacing:normal;text-align:left;white-space:normal;overflow-wrap:anywhere;box-shadow:0 5px 18px rgb(0 0 0 / 16%)}
.term-tooltip[hidden]{display:none}
.lbl:has(.term-info){gap:0}
.card-h h2 .term-info{font-size:inherit}
