*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum";letter-spacing:0}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.small{font-size:12px}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:var(--radius-sm)}::-webkit-scrollbar-track{background:transparent}.container{--pad-x:26px;--pad-y:22px;max-width:1340px;margin:0 auto;padding:var(--pad-y) var(--pad-x)}.container.narrow{max-width:1060px}.container.wide{max-width:1760px}.main-area>.container{width:100%}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.icon-flip{transform:scaleX(-1)}.page-title{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--space-5)}.page-title h1{font-size:var(--text-xl)}.page-title .note{font-size:13px;color:var(--muted)}.app-shell{display:flex;align-items:stretch;min-height:100vh}.main-area{flex:1 1;min-width:0;display:flex;flex-direction:column}.sidebar{width:var(--sidebar-w);flex:none;align-self:flex-start;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--nav-bg);border-right:1px solid var(--nav-line);color:var(--nav-ink);display:flex;flex-direction:column;padding:16px 12px}.brand-mark{width:28px;height:28px;border-radius:7px;background:var(--tc-deep);color:var(--tc-soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;letter-spacing:.04em}.brand-sub{font-size:9.5px;letter-spacing:.16em;color:var(--on-dark-muted);text-transform:uppercase;margin-top:3px;line-height:1}.side-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 16px}.side-brand .brand-mark{width:32px;height:32px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;flex:none}.side-brand .brand-sub{color:var(--nav-muted);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;margin-top:0}.side-brand-switch{display:flex;align-items:center;gap:8px;padding:4px 6px 16px}.side-brand-switch .side-brand{flex:1 1 auto;min-width:0;padding:0}.brand-switch{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--nav-line);color:var(--nav-muted);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.brand-switch:hover{background:var(--nav-hover);color:var(--nav-active-ink)}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);color:var(--nav-ink);font-size:13.5px;font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.side-nav a svg{color:var(--muted-2);transition:color var(--dur-fast) var(--ease)}.side-nav a:hover{background:var(--nav-hover);color:var(--ink)}.side-nav a:hover svg{color:var(--muted)}.side-nav a.active{background:var(--nav-active-bg);font-weight:600}.side-nav a.active,.side-nav a.active svg{color:var(--nav-active-ink)}.side-nav-group{padding:14px 10px 4px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--nav-muted)}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--nav-line)}.side-foot-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);color:var(--nav-ink);font-size:13.5px;font-weight:500;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.side-foot-link svg{color:var(--muted-2);transition:color var(--dur-fast) var(--ease)}.side-foot-link:hover{background:var(--nav-hover);color:var(--ink)}.side-foot-link:hover svg{color:var(--muted)}.side-foot-link.active{background:var(--nav-active-bg);font-weight:600}.side-foot-link.active,.side-foot-link.active svg{color:var(--nav-active-ink)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky);display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;gap:12px;height:var(--topbar-h);padding:0 20px;background:var(--topbar-bg);border-bottom:1px solid var(--line)}.topbar-left{font-size:var(--text-sm);color:var(--note-ink)}.topbar-right{justify-self:end}.topbar-right,.topbar-right form{display:flex;align-items:center;gap:var(--space-2)}.user-chip{display:inline-flex;align-items:center;gap:var(--space-2);font:inherit;color:var(--text-strong);background:transparent;border:1px solid transparent;border-radius:9px;padding:4px 8px 4px 5px}.user-chip-name{font-size:13px;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{font:inherit;cursor:pointer;border:1px solid var(--line-control);background:var(--card);color:var(--text-strong);border-radius:var(--radius);padding:9px 15px;font-weight:600;font-size:13px;min-height:var(--control-h);display:inline-flex;align-items:center;gap:7px;text-decoration:none;transition:filter var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.btn:hover{filter:brightness(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--tc-deep);border-color:var(--tc-deep);color:var(--on-accent)}.btn-primary:hover{background:var(--tc-deep-2)}.btn-danger{background:var(--card);border-color:var(--line-danger);color:var(--over)}.btn-sm{padding:7px 12px;font-size:12px;border-radius:7px}.btnrow{display:flex;flex-wrap:wrap;gap:9px}.f-label{display:block;margin-bottom:5px;font-size:12px;font-weight:600;color:var(--text-mid)}.f-label .note{font-weight:500;color:var(--muted-2)}.fld{width:100%;font:inherit;font-size:13px;border:1px solid var(--line-control);border-radius:var(--radius);padding:8px 11px;min-height:var(--control-h);background:var(--card);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.fld:hover{border-color:var(--text-mid-2)}.fld::placeholder{color:var(--muted-2)}.fld:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--tc)}.fld[aria-invalid=true],.fld[aria-invalid=true]:focus,.fld[aria-invalid=true]:focus-visible,.fld[aria-invalid=true]:hover{border-color:var(--line-danger);border-width:2px;transition:none}.fld[aria-invalid=true]:focus{box-shadow:var(--focus-ring)}.fld:disabled{background:var(--surface-3);color:var(--muted-2);opacity:1;cursor:not-allowed}.fld:disabled,.fld:disabled:hover{border-color:var(--line)}.fld-num{max-width:6rem;text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum";letter-spacing:0}textarea.fld{resize:vertical;min-height:60px}select.fld{cursor:pointer}.f-hint{font-size:var(--text-xs);color:var(--muted)}.f-err,.f-hint{display:block;margin-top:4px;max-width:min(100%,60ch)}.f-err{font-size:var(--text-sm);font-weight:600;color:var(--over)}input[type=checkbox]{width:24px;height:24px;flex:none;margin:0;accent-color:var(--tc);border-color:var(--line-control);cursor:pointer}.chk{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-h);font-size:var(--text-sm);color:var(--text-mid);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chk.on{color:var(--tc);font-weight:600}.f-grow{flex:1 1;min-width:0}.f-narrow{min-width:9rem}.f-mid{min-width:12rem}.f-wide{min-width:14rem}.f-xwide{min-width:16rem}.f-err.flush,.f-hint.flush{margin-top:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:18px}.panel-head{padding:13px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}.panel-title{font-weight:700;font-size:var(--text-lg)}.panel-head .right,.panel-note{font-size:12px;color:var(--muted-2)}.panel-head .right{margin-left:auto}.panel-body{padding:16px 18px}.list-head{padding:9px 18px;border-bottom:1px solid var(--line-soft);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);font-weight:600}.list-head.entry-row{align-items:baseline}.list-head .num{text-align:right}.list-row{padding:12px 18px;border-bottom:1px solid var(--line-softer);transition:background var(--dur-fast) var(--ease)}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--surface-hover)}.entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(var(--act-w,0),auto);grid-gap:12px;gap:12px;align-items:center}.entry-list{--act-w:14rem}.entry-list.acts-one{--act-w:5rem}.entry-row>*{min-width:0}.entry-row .t{display:block;font-size:var(--text-md);font-weight:600}.entry-row .sub,.entry-row .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-row .sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 8px;margin-top:2px;font-size:11.5px;color:var(--muted)}.entry-row .sub-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.entry-row .act{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.entry-row .dur{font-size:var(--text-duration);font-weight:600;color:var(--tc-deep);line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.list-row.row-total{border-top:1px solid var(--line);border-bottom:none;background:var(--surface-3)}.list-row.row-total .dur{color:var(--text-mid)}.list-row.row-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.list-row.row-wrap>.main{flex:1 1 16rem;min-width:0}.person-list{--role-w:19rem;--act-w:15rem}.person-list .list-row.row-wrap>form.filterbar{flex:0 0 var(--role-w);min-width:0}.person-list .list-row.row-wrap>form.filterbar>.fld{flex:0 0 11rem}.person-list .list-row.row-wrap>.act{flex:0 0 var(--act-w)}.list-row.row-edit{display:block;background:var(--surface-3)}.kv{display:grid;grid-template-columns:1fr 1fr}.field{padding:11px 16px;border-bottom:1px solid var(--line-softer);min-width:0}.field .l{font-size:10.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.field .v{font-size:13.5px;margin-top:3px;word-break:break-word}.field .v.empty{color:var(--muted-2)}.state-chip{display:inline-block;padding:3px 9px;border-radius:var(--radius-sm);background:var(--chip-bg);color:var(--text-mid)}.pill,.state-chip{font-size:11.5px;font-weight:600;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill)}.pill .dot{width:7px;height:7px;border-radius:50%}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.ok .dot{background:var(--ok-dot)}.pill.due{background:var(--due-bg);color:var(--due)}.pill.due .dot{background:var(--due-dot)}.pill.over{background:var(--over-bg);color:var(--over)}.pill.over .dot{background:var(--over-dot)}.pill.rest{background:var(--rest-bg);color:var(--rest)}.pill.rest .dot{background:var(--rest-dot)}.code-chip{font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:11px;font-weight:600;color:var(--muted);background:var(--chip-bg-2);border:1px solid var(--line-soft);border-radius:5px;padding:1px 7px;letter-spacing:.02em;white-space:nowrap}.avatar{flex:none;border-radius:50%;color:var(--on-accent);font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filterbar.inpanel{padding:12px 18px;margin-bottom:0;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}.filterbar.labelled{align-items:flex-start}.filterbar.labelled>.btn,.filterbar.labelled>.chk,.filterbar.labelled>.note,.filterbar.labelled>a.btn,.filterbar.labelled>button{margin-top:var(--label-h)}.filterbar.boxed{padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-2);margin-bottom:14px}.filterbar.bare{background:transparent;border:0;padding:0;margin-bottom:0}.seg{display:inline-flex;gap:2px}.filterbar.labelled>.seg{margin-top:var(--label-h)}.filterbar .note{flex:1 1 14rem;font-size:var(--text-sm);color:var(--muted)}.filt-search{min-width:230px;flex:1 1;max-width:340px}.tbl-scroll{overflow-x:auto}.panel>.panel-body+.tbl-scroll,.panel>form+.tbl-scroll{border-top:1px solid var(--line-soft)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead th{text-align:left;padding:10px 14px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);font-weight:600;border-bottom:1px solid var(--line-soft);white-space:nowrap;background:var(--surface-2)}.data-table tbody th,.data-table td{padding:11px 14px;border-bottom:1px solid var(--line-softer);vertical-align:middle;white-space:nowrap}.data-table tbody tr:last-child td,.data-table tbody tr:last-child th{border-bottom:none}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.data-table .lbl-col{text-align:left;white-space:normal;overflow-wrap:break-word}.data-table tbody th.lbl-col{width:18rem;font-weight:400}.data-table tfoot td,.data-table tfoot th{border-top:1px solid var(--line);border-bottom:0;font-weight:600;padding:11px 14px}.data-table tfoot th{text-align:left}.data-table td.empty{color:var(--muted-2)}.data-table .wrap-col{white-space:normal;overflow-wrap:break-word}.data-table tr.row-click{cursor:pointer}.data-table tr.row-click:hover td{background:var(--surface-hover)}.tbl-scroll.edged{overscroll-behavior-x:contain;background:linear-gradient(to right,var(--card) 30%,var(--transparent)) 0,linear-gradient(to left,var(--card) 30%,var(--transparent)) 100%,radial-gradient(farthest-side at 0 50%,var(--line-strong),var(--transparent)) 0,radial-gradient(farthest-side at 100% 50%,var(--line-strong),var(--transparent)) 100%;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.tbl-scroll.edged:focus-visible{outline:2px solid var(--tc-deep);outline-offset:-2px;box-shadow:none}.metrics{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:14px;gap:14px;margin-bottom:18px}.metric{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:15px 16px}.metric .l{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600}.metric .v{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum";font-weight:600;font-size:30px;line-height:1.05;margin-top:9px;color:var(--tc-deep)}.metric .s{font-size:12px;color:var(--muted-2);margin-top:4px}.metric.flush{background:none;border:0;border-radius:0;padding:0}.metric.flush .v{margin-top:2px}.empty-state{flex-direction:column;gap:6px;padding:34px 16px;text-align:center}.empty-state,.empty-state .ic{display:flex;align-items:center}.empty-state .ic{width:38px;height:38px;border-radius:50%;background:var(--chip-bg);color:var(--muted);justify-content:center;margin-bottom:3px}.empty-state .t{font-weight:700;font-size:var(--text-md)}.empty-state .h{font-size:var(--text-sm);color:var(--muted-2);max-width:360px;line-height:1.5}.empty-state .act{margin-top:8px}.skel{display:block;width:100%;background:linear-gradient(90deg,var(--line-softer) 25%,var(--line-soft) 37%,var(--line-softer) 63%);background-size:400% 100%;animation:skel-wave 1.4s var(--ease) infinite;border-radius:var(--radius-sm)}.skel-t{height:18px;max-width:16rem}.skel-m{height:13px;max-width:10rem}.skel+.skel{margin-top:var(--space-2)}@keyframes skel-wave{0%{background-position:100% 0}to{background-position:0 0}}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius);background:var(--card);color:var(--ink);font-size:var(--text-sm);font-weight:600;transform:translateY(-250%);transition:transform var(--dur) var(--ease-out)}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}.cell-pop{position:fixed;z-index:var(--z-popover);width:440px;max-width:calc(100vw - 16px);display:grid;grid-gap:12px;gap:12px;padding:14px 16px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}.ce-head{display:grid;grid-gap:2px;gap:2px}.ce-when{font-size:var(--text-md);font-weight:700;color:var(--text-strong)}.ce-ctx{font-size:var(--text-sm);color:var(--text-mid)}.ce-free{font-size:12px;color:var(--muted)}.ce-list{display:grid;grid-gap:4px;gap:4px;margin:0;padding:0;list-style:none}.ce-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 10px;border:1px solid var(--line-softer);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-sm)}.ce-list li.is-editing{border-color:var(--tc);background:var(--tc-soft)}.ce-task{flex:1 1 8rem;min-width:0;overflow-wrap:anywhere}.ce-act{display:flex;gap:6px;margin-left:auto}.ce-form{display:grid;grid-template-columns:7rem minmax(0,1fr);grid-gap:10px 14px;gap:10px 14px;align-items:start}.ce-form>*{display:grid;grid-template-rows:minmax(var(--label-h),auto) auto auto;align-content:start;min-width:0}.ce-submit,.ce-task-fld{grid-column:1/-1}.ce-bill>*,.ce-submit>*{grid-row:2}.ce-submit>.btnrow{display:flex;flex-wrap:wrap;gap:8px}.ce-form .fld-num{max-width:none}.panel-head.as-toggle{padding:0;border-bottom:none;display:block;font-size:inherit}.table-panel.is-open .panel-head.as-toggle{border-bottom:1px solid var(--line-soft)}.tp-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:2.75rem;padding:13px 18px;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.tp-btn:hover{background:var(--surface-hover)}.tp-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-inset)}.tp-caret{display:inline-flex;flex:none;color:var(--muted);transition:transform var(--dur) var(--ease)}.table-panel.is-open .tp-caret{transform:rotate(90deg)}.tp-name{font-weight:700;font-size:var(--text-lg);min-width:0;overflow-wrap:anywhere}.tp-sum{margin-left:auto;flex:none;font-size:12px;font-weight:600;color:var(--tc-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tp-sum.is-empty{font-weight:400;color:var(--muted-2)}.cbx{position:relative}.cbx-list{position:fixed;z-index:var(--z-combobox);margin:0;padding:4px;list-style:none;max-height:17rem;overflow-y:auto;overscroll-behavior:contain;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-2)}.cbx-opt{padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-strong);cursor:pointer;overflow-wrap:anywhere}.cbx-hint,.cbx-name,.cbx-opt{display:block}.cbx-hint{margin-top:1px;font-size:var(--text-xs);color:var(--muted)}.cbx-opt.is-active .cbx-hint{color:var(--tc-deep-2)}.cbx-opt.is-active{background:var(--tc-soft);color:var(--tc-deep)}.cbx-new{display:flex;align-items:center;gap:var(--space-2);margin-top:4px;padding-top:9px;border-top:1px solid var(--line-soft);border-radius:0;color:var(--text-mid)}.cbx-new:first-child{margin-top:0;padding-top:7px;border-top:none}.cbx-new .ic{flex:none;display:inline-flex;color:var(--tc)}.cbx-new-text{min-width:0;overflow-wrap:anywhere}.cbx-new.is-active,.data-table td.today,.data-table th.today{background:var(--tc-soft);color:var(--tc-deep)}.data-table th.today a{font-weight:700}.data-table thead th .sub{display:block;font-size:10px;color:var(--muted);font-weight:400}.week-grid{table-layout:fixed}.week-grid .lbl-col{width:15rem}.week-grid td:last-child,.week-grid th:last-child{width:5.5rem}.week-grid td.cell{padding:0;vertical-align:top}.c-btn{display:block;width:100%;padding:8px 10px;min-height:2.75rem;border:none;background:none;font:inherit;color:inherit;text-align:right;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease)}.c-btn:hover{background:var(--surface-hover)}.c-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-inset)}.c-empty{display:block;color:var(--muted-2)}.c-list{display:grid;grid-gap:3px;gap:3px}.c-item{display:block;min-width:0}.c-num{display:block;font-size:var(--text-md);font-weight:600;color:var(--tc-deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.c-task{display:block;font-size:var(--text-xs);color:var(--text-mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid td.cell.is-open{background:var(--tc-soft);box-shadow:inset 0 0 0 2px var(--tc)}.week-grid td.row-sum{color:var(--text-mid)}.week-grid td.cell.is-locked{background:var(--surface-3)}.c-locked{display:block;padding:8px 10px;color:var(--muted-2);cursor:default}.day-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0;padding:0;list-style:none}.d-day{display:grid;justify-items:center;grid-gap:5px;gap:5px;min-width:0}.d-track{width:100%;height:56px;display:flex;align-items:flex-end;background:var(--surface-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden}.d-fill{width:100%;background:var(--tc);border-radius:0 0 2px 2px;transition:height var(--dur) var(--ease-out)}.d-day.is-today .d-track{border-color:var(--tc);background:var(--tc-soft)}.d-lbl{font-size:var(--text-xs);font-weight:600;color:var(--text-mid);text-align:center}.d-lbl .sub{display:block;font-weight:400;color:var(--muted)}.d-val{font-size:var(--text-sm);font-weight:600;color:var(--text-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.day-chart+.panel-note{display:block;margin-top:12px}.day-chart.is-pending{opacity:.55}.banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--chip-bg);color:var(--text-mid);font-size:var(--text-sm);margin-bottom:14px}.banner .ic{flex:none;display:inline-flex;margin-top:1px}.banner .fld{margin:var(--space-2) 0}.banner.warn{background:var(--due-bg);border-color:var(--due-dot);color:var(--pill-due-ink)}.banner.error{background:var(--over-bg);border-color:var(--line-danger);color:var(--over)}.banner.ok{background:var(--ok-bg);border-color:var(--line-mint);color:var(--ok)}.panel-body>.banner:last-child,.panel>.banner{margin:var(--space-4)}.pill.due{color:var(--pill-due-ink)}.pill.rest{color:var(--pill-rest-ink)}.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-gap:14px;gap:14px}.rate-grid .fld-num{max-width:none}.rate-grid .f-label{min-height:36px}.btn{border-color:var(--line-control)}.btn-quiet{background:transparent;border-color:transparent;color:var(--muted)}.btn-quiet:hover{background:var(--hover-wash);color:var(--ink);filter:none}.btn-quiet:disabled{background:transparent;border-color:transparent}.btn-danger{transition:none}.btn-danger:hover{border-color:var(--over);filter:none}.gate{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);background:linear-gradient(160deg,var(--gate-bg-1),var(--gate-bg-2))}.gate-panel{width:100%;max-width:23rem;padding:32px 32px 26px;background:var(--card);border:1px solid var(--gate-line);border-radius:var(--radius-lg);box-shadow:var(--gate-shadow)}.gate-panel h1{font-size:var(--text-xl);margin-bottom:var(--space-2)}.gate-panel .note{font-size:13px;color:var(--muted);margin:0 0 var(--space-5)}.gate-form{display:grid;grid-gap:13px;gap:13px}.gate-form .btn{width:100%;justify-content:center}.gate-foot{margin:var(--space-4) 0 0;text-align:center;font-size:13px;color:var(--muted)}.gate-foot a{color:var(--muted);text-decoration:underline}.gate-foot a:hover{color:var(--ink)}.panel-head{flex-wrap:wrap;row-gap:var(--space-2)}.page-title .note{color:var(--note-ink)}.empty-state .h{color:var(--muted)}@media (max-width:1200px){.metrics{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.list-head{display:none}}@media (max-width:820px){.app-shell,.sidebar{flex-direction:column}.sidebar{width:auto;height:auto;position:static;align-self:stretch;padding:12px 14px;gap:8px;border-right:none;border-bottom:1px solid var(--nav-line)}.side-brand,.side-brand-switch{padding:2px 4px 6px}.brand-switch{width:2.75rem;height:2.75rem}.side-nav{flex-direction:row;flex-wrap:wrap;gap:4px}.side-nav-group{flex:0 0 100%;margin-top:6px}.side-nav-group:first-child{margin-top:0}.side-nav a{padding:7px 10px}.side-foot{margin-top:4px;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:10px;border-top:none}.topbar{height:auto;padding:8px 14px;gap:8px}.topbar-left,.user-chip-name{display:none}.btn,.fld{min-height:2.75rem}input[type=checkbox]{width:28px;height:28px}.chk{min-height:2.75rem}.c-btn{padding:10px 12px}.week-grid{min-width:46rem}.entry-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.entry-row .sub,.entry-row .t{white-space:normal;overflow:visible}.entry-row .act{grid-column:1/-1;justify-content:flex-end}.person-list{--role-w:auto;--act-w:auto}}@media (max-width:48rem){.ce-form{grid-template-columns:minmax(0,1fr)}
  /* !important ist hier das kleinere Übel: die Zellen tragen ihre
     grid-column mit derselben Spezifität, und jede einzeln zurückzusetzen
     wäre eine Liste, die beim nächsten neuen Feld unvollständig ist. */.ce-form>*{grid-column:1/-1!important;grid-row:auto!important;justify-self:stretch!important}.ce-bill,.ce-submit{grid-template-rows:auto}.ce-bill>*,.ce-submit>*{grid-row:auto}.ce-submit .btn{flex:1 1 10rem;justify-content:center}.cell-pop{left:8px!important;right:8px;width:auto}}@media (max-width:640px){.day-chart{gap:6px}.d-track{height:44px}.container{--pad-x:14px;--pad-y:16px}.brand-sub{display:none}.page-title{flex-wrap:wrap;gap:4px 10px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px}.filt-search{min-width:0;max-width:none;flex:1 1 100%}.filterbar.inpanel select{flex:1 1 auto}}@media (max-width:480px){.gate-panel{padding:26px 22px 22px}}@media (max-width:400px){.container{--pad-x:12px;--pad-y:14px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skel{animation:none!important;background:var(--line-softer)}}