:root{--bg: #f2f6fb;--surface: #ffffff;--surface-2: #f7f9fc;--hover: #f3f6fa;--ink: #0f1422;--ink-2: #3b4458;--muted: #5f6b80;--faint: #8a94a6;--line: #e2e8f0;--line-soft: #edf1f6;--line-strong: #cbd4e1;--navy: #2c266e;--navy-hover: #241f5c;--navy-pressed: #1b1745;--teal: #28c9bf;--teal-ink: #137a74;--mint: #7eefdd;--on-navy: #ffffff;--accent-soft: rgba(40, 201, 191, .12);--navy-soft: rgba(44, 38, 110, .07);--focus: #28c9bf;--ring: 0 0 0 3px rgba(40, 201, 191, .28);--good: #0a7a57;--warn: #9a5b06;--danger: #b42318;--bar-est: #d5dde8;--bar-act: #2c266e;--bar-single: #1a9e95;--weekend: rgba(44, 38, 110, .04);--s1: #1a9e95;--s2: #4a3aa7;--s3: #eb6834;--s4: #2a78d6;--s5: #eda100;--s6: #e87ba4;--s7: #008300;--s8: #e34948;--s-other: #9aa4b5;--r-sm: 6px;--r: 8px;--r-lg: 12px;--shadow-card: 0 1px 2px rgba(16, 21, 34, .03);--shadow-pop: 0 12px 32px -8px rgba(16, 21, 34, .16), 0 2px 6px rgba(16, 21, 34, .05);--ease: cubic-bezier(.2, .8, .2, 1);--dur: .16s;--mark-bg: transparent;--topbar-bg: rgba(255, 255, 255, .86);--gradient: linear-gradient(90deg, #28c9bf 0%, #28c9bf 42%, #2c266e 58%, #2c266e 100%);--f-display: "Space Grotesk", "Segoe UI", system-ui, sans-serif;--f-body: "Manrope", "Segoe UI", system-ui, sans-serif;--f-mono: ui-monospace, "Cascadia Mono", Consolas, monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0b0e18;--surface: #121726;--surface-2: #161c2d;--hover: #1a2135;--ink: #eef1f8;--ink-2: #c5cbd9;--muted: #97a0b5;--faint: #6f7890;--line: #242b41;--line-soft: #1c2235;--line-strong: #333b56;--navy: #b3acff;--navy-hover: #c6c1ff;--navy-pressed: #a39bf5;--on-navy: #14112f;--teal-ink: #4fd8cf;--accent-soft: rgba(40, 201, 191, .14);--navy-soft: rgba(179, 172, 255, .1);--ring: 0 0 0 3px rgba(40, 201, 191, .35);--good: #3fcf8e;--warn: #e8b04b;--danger: #f07a6e;--bar-est: #343d5c;--bar-act: #a79ff5;--bar-single: #3cc4ba;--weekend: rgba(179, 172, 255, .05);--s1: #1d9e95;--s2: #9085e9;--s3: #d95926;--s4: #3987e5;--s5: #c98500;--s6: #d55181;--s7: #008300;--s8: #e66767;--s-other: #5d6680;--shadow-card: none;--shadow-pop: 0 16px 40px -8px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .3);--mark-bg: #ffffff;--topbar-bg: rgba(18, 23, 38, .86)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0b0e18;--surface: #121726;--surface-2: #161c2d;--hover: #1a2135;--ink: #eef1f8;--ink-2: #c5cbd9;--muted: #97a0b5;--faint: #6f7890;--line: #242b41;--line-soft: #1c2235;--line-strong: #333b56;--navy: #b3acff;--navy-hover: #c6c1ff;--navy-pressed: #a39bf5;--on-navy: #14112f;--teal-ink: #4fd8cf;--accent-soft: rgba(40, 201, 191, .14);--navy-soft: rgba(179, 172, 255, .1);--ring: 0 0 0 3px rgba(40, 201, 191, .35);--good: #3fcf8e;--warn: #e8b04b;--danger: #f07a6e;--bar-est: #343d5c;--bar-act: #a79ff5;--bar-single: #3cc4ba;--weekend: rgba(179, 172, 255, .05);--s1: #1d9e95;--s2: #9085e9;--s3: #d95926;--s4: #3987e5;--s5: #c98500;--s6: #d55181;--s7: #008300;--s8: #e66767;--s-other: #5d6680;--shadow-card: none;--shadow-pop: 0 16px 40px -8px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .3);--mark-bg: #ffffff;--topbar-bg: rgba(18, 23, 38, .86)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}h1,h2,h3{margin:0;text-wrap:balance}h1{font-family:var(--f-display);font-weight:600;letter-spacing:-.02em}h2,h3{font-family:var(--f-body);font-weight:650;letter-spacing:-.005em}button,input,select{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}[hidden]{display:none!important}::selection{background:var(--accent-soft)}.mono{font-variant-numeric:tabular-nums}.eyebrow{font-size:12.5px;font-weight:600;color:var(--teal-ink)}.hint{font-size:12.5px;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--topbar-bg);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}.topbar:before{content:"";display:block;height:2px;background:var(--gradient)}.topbar-in{max-width:1280px;margin:0 auto;padding:0 24px;min-height:56px;display:flex;align-items:center;gap:10px 20px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);text-decoration:none;min-width:0}.brand img{width:28px;height:28px;display:block;border-radius:50%;background:var(--mark-bg);padding:1px}.brand .wm{display:block;color:var(--navy)}.brand .wm svg{height:20px;width:auto;display:block}.app-name{font-size:14px;font-weight:600;color:var(--muted);padding-left:16px;border-left:1px solid var(--line);white-space:nowrap;text-decoration:none;transition:color var(--dur) var(--ease)}.app-name:hover{color:var(--ink)}.top-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.picker{display:flex;align-items:center;gap:8px}.picker label{font-size:12.5px;color:var(--muted);white-space:nowrap}.picker select{max-width:260px}.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;height:32px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;font-size:13px;line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow-card);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.btn:hover{background:var(--hover);border-color:var(--line-strong)}.btn:active{transform:translateY(.5px)}.btn svg{width:15px;height:15px;flex:none}.btn-primary{background:var(--navy);border-color:var(--navy);color:var(--on-navy);box-shadow:0 1px 2px #1b174533}.btn-primary:hover{background:var(--navy-hover);border-color:var(--navy-hover)}.btn-primary:active{background:var(--navy-pressed)}.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-2);box-shadow:none}.btn-ghost:hover{background:var(--hover);border-color:transparent;color:var(--ink)}.btn-danger{color:var(--danger)}.btn-danger:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.btn[disabled]{opacity:.5;cursor:not-allowed}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn svg{width:17px;height:17px}select,input[type=text],input[type=search],input[type=date]{height:32px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:0 10px;font-size:13px;min-width:0;color:var(--ink);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}select{padding-right:28px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a94a6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;cursor:pointer}select:hover,input:hover{border-color:var(--line-strong)}select:focus-visible,input:focus-visible{border-color:var(--teal);box-shadow:var(--ring);border-radius:var(--r)}input::placeholder{color:var(--faint)}.linkbtn{border:0;background:none;color:var(--teal-ink);font-weight:600;cursor:pointer;font-size:13px;padding:4px 2px;border-radius:4px;transition:color var(--dur) var(--ease)}.linkbtn:hover{color:var(--ink)}.linkbtn[disabled]{opacity:.5;cursor:default}.wrap{max-width:1280px;margin:0 auto;padding-inline:24px;padding-block:28px 72px;display:flex;flex-direction:column;gap:16px}.stack{display:flex;flex-direction:column;gap:16px}.page{animation:page-in .26s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:20px;min-width:0}.panel-h{display:flex;align-items:baseline;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;margin-bottom:16px}.panel-h h2{font-size:14px}.panel-h .hint{font-size:12px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (max-width: 900px){.grid2{grid-template-columns:1fr}}.footer{text-align:center;font-size:12px;color:var(--faint);padding-top:16px;margin:0}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;padding-bottom:4px}.page-head h1{font-size:clamp(22px,2.4vw,28px);line-height:1.2;color:var(--ink);margin-top:4px}.page-sub{margin:6px 0 0;color:var(--muted);max-width:62ch;font-size:13.5px}.stats{display:flex;flex-wrap:wrap;gap:16px 48px;margin:0}.stats>div{display:flex;flex-direction:column;gap:2px;min-width:0}.stats dt{font-size:12.5px;color:var(--muted);font-weight:500}.stats dd{margin:0;font-family:var(--f-display);font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.25}.stats dd small{font-family:var(--f-body);font-size:12.5px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}.stats dd.sm{font-family:var(--f-body);font-size:15px;font-weight:600;letter-spacing:0;padding-top:4px}.stats-sm{gap:12px 32px}.stats-sm dd{font-size:18px}.upload{animation:page-in .22s var(--ease) both}.upload-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}@media (max-width: 800px){.upload-grid{grid-template-columns:1fr}}.drop{border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--surface-2);min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.drop:hover,.drop.over{border-color:var(--teal);background:var(--accent-soft)}.drop svg{width:28px;height:28px;color:var(--teal-ink)}.drop strong{font-size:14px;font-weight:650}.drop .hint{max-width:46ch}.parse-sum{display:flex;flex-direction:column;gap:14px}.sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.sum-grid div{background:var(--surface-2);border-radius:var(--r);padding:10px 12px}.sum-grid b{display:block;font-family:var(--f-display);font-size:18px;font-weight:600}.sum-grid span{font-size:12px;color:var(--muted)}.fields{display:grid;grid-template-columns:2fr 1fr;gap:12px}@media (max-width: 560px){.fields{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600;font-size:13px}.field input{height:36px;font-size:14px}.warnlist{margin:0;padding-left:18px;color:var(--warn);font-size:12.5px}.error{color:var(--danger);font-size:13px;margin:0}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--faint)}.crumbs a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;text-decoration:none;border-radius:4px;transition:color var(--dur) var(--ease)}.crumbs a:hover{color:var(--ink)}.crumbs svg{width:14px;height:14px}.crumbs [aria-current]{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60ch}.report-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap}.report-head h1{font-size:clamp(22px,2.4vw,28px);line-height:1.2;color:var(--ink);margin-top:4px}.report-meta{margin-top:8px;color:var(--muted);font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px}.report-meta span{display:inline-flex;align-items:center;gap:6px}.report-meta svg{width:14px;height:14px}.head-actions{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.rename{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.rename input{width:min(420px,100%);height:38px;font-size:16px;font-weight:600}.copybox{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.copybox input{flex:1 1 260px;font-size:12.5px}.filters{display:flex;flex-direction:column;gap:12px;padding:14px 16px}.f-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.months{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-soft);flex-wrap:wrap}.chip-btn{height:26px;padding:0 12px;border-radius:7px;border:0;background:transparent;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.chip-btn:hover{color:var(--ink)}.chip-btn[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #10152214,0 0 0 1px var(--line)}.search{position:relative;margin-left:auto;flex:1 1 240px;max-width:340px}.search input{width:100%;padding-left:32px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--faint);pointer-events:none}.f-group{display:inline-flex;align-items:center;gap:6px}.f-group>span{font-size:12.5px;color:var(--muted)}.dates input{width:136px}.f-sep{width:1px;height:20px;background:var(--line);margin:0 4px}.ms{position:relative}.ms>summary{list-style:none;cursor:pointer;height:32px;display:flex;align-items:center;gap:6px;border:1px dashed var(--line-strong);border-radius:var(--r);padding:0 10px;background:var(--surface);font-size:13px;white-space:nowrap;color:var(--ink-2);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.ms>summary::-webkit-details-marker{display:none}.ms>summary:after{content:"";width:6px;height:6px;border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);transform:rotate(45deg) translate(-2px,-2px);margin-left:2px;transition:transform var(--dur) var(--ease)}.ms[open]>summary:after{transform:rotate(225deg) translate(-2px,-2px)}.ms>summary:hover{background:var(--hover)}.ms[data-active=true]>summary{border-style:solid;border-color:color-mix(in srgb,var(--teal) 55%,var(--line));background:var(--accent-soft);color:var(--ink)}.ms .ms-l{font-weight:600}.ms .ms-v{color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis}.ms[data-active=true] .ms-v{color:var(--teal-ink);font-weight:600}.ms-pop{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:290px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);padding:6px;display:flex;flex-direction:column;gap:4px;animation:pop-in .14s var(--ease) both;transform-origin:top left}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.ms-pop input[type=search]{width:100%}.ms-list{max-height:260px;overflow:auto;display:flex;flex-direction:column;padding:2px 0}.ms-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;transition:background var(--dur) var(--ease)}.ms-list label:hover{background:var(--hover)}.ms-list .n{margin-left:auto;font-size:12px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}.ms-list input{accent-color:var(--navy);width:14px;height:14px;flex:none}.ms-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-soft);padding:6px 4px 2px}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.active-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line-soft);padding-top:12px}.result{font-size:13px;color:var(--muted);margin-right:8px;font-variant-numeric:tabular-nums}.result b{color:var(--ink);font-weight:650}.tag{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 4px 0 10px;border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:12px;font-weight:600;animation:pop-in .14s var(--ease) both}.tag button{border:0;background:transparent;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--muted);padding:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.tag button:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}.tag button svg{width:10px;height:10px}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:4px 0}.kpi{padding:14px 20px;min-width:0;position:relative}.kpi:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:1px;background:var(--line-soft)}.kpi:first-child:before{display:none}@media (max-width: 1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:4px}.kpi:nth-child(3n+1):before{display:none}}@media (max-width: 560px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi:nth-child(n):before{display:block}.kpi:nth-child(odd):before{display:none}}.kpi .eyebrow{color:var(--muted);font-weight:500}.kpi .v{font-family:var(--f-display);font-size:clamp(20px,2vw,26px);font-weight:600;letter-spacing:-.015em;line-height:1.2;margin-top:4px;color:var(--ink);font-variant-numeric:tabular-nums}.kpi .v small{font-family:var(--f-body);font-size:13px;font-weight:500;color:var(--muted);margin-left:3px;letter-spacing:0}.kpi .s{font-size:12.5px;color:var(--muted);margin-top:2px}.kpi.hero .v{color:var(--navy)}.status{display:inline-flex;align-items:center;gap:3px;font-family:var(--f-body);font-size:12.5px;font-weight:600;letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums;vertical-align:middle}.status svg{width:12px;height:12px}.status.over{color:var(--warn)}.status.under{color:var(--good)}.status.on{color:var(--muted)}.insights ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 32px}.insights li{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);line-height:1.55}.insights li b{color:var(--ink);font-weight:650}.insights .ic,.ql-notes .ic{flex:none;width:28px;height:28px;border-radius:var(--r);display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--teal-ink)}.insights .ic svg,.ql-notes .ic svg{width:14px;height:14px}.chart-box{position:relative;width:100%}.legend{display:flex;gap:4px 14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-bottom:12px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend button{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:3px 6px;margin:-3px -6px;border-radius:var(--r-sm);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.legend button:hover{background:var(--hover);color:var(--ink)}.legend button:focus-visible{box-shadow:var(--ring)}.legend button[aria-pressed=true]{color:var(--ink);font-weight:600}.empty-chart{display:grid;place-items:center;min-height:160px;color:var(--muted);font-size:13px;text-align:center}.scroll-x{overflow-x:auto}table{border-collapse:collapse;width:100%}.matrix{border-collapse:separate;border-spacing:3px;margin:-3px;width:calc(100% + 6px)}.matrix th,.matrix td{padding:7px 10px;text-align:right;font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.matrix thead th{font-weight:500;color:var(--muted);font-size:12px;vertical-align:bottom;white-space:normal;min-width:84px;max-width:140px}.matrix tbody th{text-align:left;font-weight:600;color:var(--ink)}.matrix td.cell{color:var(--ink);padding:0;border-radius:var(--r-sm)}.matrix td.cell button{all:unset;display:block;width:100%;box-sizing:border-box;padding:7px 10px;cursor:pointer;text-align:right;border-radius:var(--r-sm);font-weight:600;transition:box-shadow var(--dur) var(--ease)}.matrix td.cell button:hover{box-shadow:inset 0 0 0 1.5px var(--navy)}.matrix td.cell button:focus-visible{box-shadow:var(--ring)}.matrix td.zero{color:var(--line-strong)}.matrix .tot{font-weight:650;color:var(--ink-2)}.matrix tfoot td,.matrix tfoot th{border-top:1px solid var(--line);padding-top:9px}.vlist{list-style:none;margin:0;padding:0}.vlist li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:11px 0;border-top:1px solid var(--line-soft)}.vlist li:first-child{border-top:0;padding-top:0}.vlist .t{font-weight:600;font-size:13.5px;color:var(--ink)}.vlist .m{font-size:12.5px;color:var(--muted);grid-column:1}.vlist .r{grid-row:1 / span 2;grid-column:2;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.vlist .r .mono{font-size:12.5px;color:var(--muted)}.vlist .none{font-weight:500;color:var(--muted)}.tbl-wrap{overflow-x:auto;margin:0 -20px}.tbl{min-width:900px}.tbl th{position:sticky;top:0;background:var(--surface);text-align:left;font-size:12px;font-weight:500;color:var(--muted);padding:0;border-bottom:1px solid var(--line);white-space:nowrap}.tbl th:first-child button,.tbl td:first-child{padding-left:20px}.tbl th:last-child button,.tbl td:last-child{padding-right:20px}.tbl th button{all:unset;display:flex;align-items:center;gap:4px;padding:10px 12px;cursor:pointer;width:100%;box-sizing:border-box;transition:color var(--dur) var(--ease)}.tbl th button:hover{color:var(--ink)}.tbl th button:focus-visible{box-shadow:inset var(--ring)}.tbl th[aria-sort] button{color:var(--ink);font-weight:600}.tbl th.num button{justify-content:flex-end}.tbl td{padding:12px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:13px;color:var(--ink-2)}.tbl tbody tr{transition:background var(--dur) var(--ease)}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tr:last-child td{border-bottom:0}.tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl td.num b{color:var(--ink);font-weight:650}.tbl td.date{font-size:12.5px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.tbl .who{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:var(--ink)}.tbl .task b{font-weight:600;display:block;color:var(--ink)}.tbl .desc{color:var(--muted);font-size:12.5px;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:560px;line-height:1.5}.tbl tr.open .desc{-webkit-line-clamp:unset;display:block}.tbl .more{border:0;background:none;padding:0;margin-top:3px;color:var(--teal-ink);font-weight:600;font-size:12px;cursor:pointer;border-radius:4px}.tbl .more:hover{color:var(--ink)}.tbl .empty{text-align:center;padding:40px 16px;color:var(--muted)}.pill{display:inline-block;font-size:12px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--line-soft)}.tbl-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:12.5px;color:var(--muted)}.lib-controls{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap}.lib-controls .search{margin-left:0;max-width:420px}.lib-controls .spacer{flex:1}.lib-group{display:flex;flex-direction:column;gap:8px}.lib-group-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13px;font-weight:650;color:var(--ink);padding:8px 4px 0}.lib-group-h .hint{font-weight:500;font-size:12.5px}.lib-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}.lib-item+.lib-item{border-top:1px solid var(--line-soft)}.lib-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding-right:16px;transition:background var(--dur) var(--ease)}.lib-row:hover{background:var(--surface-2)}.lib-item.open>.lib-row{background:var(--surface-2)}.lib-toggle{all:unset;box-sizing:border-box;cursor:pointer;padding:14px 8px 14px 16px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:4px 14px;min-width:0}.lib-toggle:focus-visible{box-shadow:inset var(--ring)}.lib-chev{width:16px;height:16px;color:var(--faint);transition:transform .22s var(--ease),color var(--dur) var(--ease)}.lib-toggle:hover .lib-chev{color:var(--ink-2)}.lib-toggle[aria-expanded=true] .lib-chev{transform:rotate(90deg);color:var(--ink)}.lib-main{display:flex;flex-direction:column;gap:1px;min-width:0}.lib-name{font-weight:650;font-size:14.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-sub{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-facts{display:flex;align-items:center;gap:4px 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.fact{white-space:nowrap;padding:0 12px}.fact b{color:var(--ink);font-weight:600}.fact-period{width:172px;color:var(--ink-2)}.fact-count{width:104px}.fact-people{width:92px}.fact-hours{width:210px;display:inline-flex;align-items:baseline;justify-content:flex-end;gap:6px}.fact-hours b{font-weight:650}.lib-open{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:var(--r);font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.lib-open svg{width:14px;height:14px;transition:transform var(--dur) var(--ease)}.lib-open:hover{color:var(--navy);background:var(--navy-soft)}.lib-open:hover svg{transform:translate(2px)}.lib-actions{display:flex;align-items:center;gap:2px}.lib-del{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:var(--r);border:0;background:transparent;font-size:13px;font-weight:600;color:var(--faint);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.lib-del svg{width:14px;height:14px}.lib-del:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.assign-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow:auto;border:1px solid var(--line-soft);border-radius:var(--r)}.assign-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;min-height:48px}.assign-list li+li{border-top:1px solid var(--line-soft)}.assign-list li.on{background:var(--surface-2)}.assign-list .check-item{align-items:flex-start}.assign-list .check-item input{margin-top:3px}.assign-list select{width:auto;height:30px}@media (max-width: 1160px){.lib-toggle{grid-template-columns:18px minmax(0,1fr)}.lib-facts{grid-column:2;flex-wrap:wrap;margin-left:-12px}.fact-period,.fact-count,.fact-people,.fact-hours{width:auto}}@media (max-width: 560px){.lib-row{grid-template-columns:1fr;padding:0 0 12px}.lib-actions{justify-self:start;margin-left:28px}.lib-name,.lib-sub{white-space:normal}}.collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s var(--ease)}.collapse.open{grid-template-rows:1fr}.collapse-in{overflow:hidden;min-height:0}.collapse .ql{opacity:0;transform:translateY(-4px);transition:opacity .2s var(--ease),transform .26s var(--ease)}.collapse.open .ql{opacity:1;transform:none;transition-delay:60ms}.ql{background:var(--surface-2);border-top:1px solid var(--line-soft);padding:20px 24px 20px 48px;display:flex;flex-direction:column;gap:22px}@media (max-width: 560px){.ql{padding:16px}}.ql h3{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:12px}.ql-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}@media (max-width: 960px){.ql-grid{grid-template-columns:1fr}}.hbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}.hbars li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:baseline}.hb-name{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb-val{font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.hb-val b{color:var(--ink);font-weight:600}.hb-track{grid-column:1 / -1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.hb-fill{display:block;height:100%;border-radius:2px;background:var(--bar-single);transform-origin:left;animation:grow .52s var(--ease) both}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.strip svg{display:block;width:100%;height:72px}.strip-axis{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--faint);margin-top:8px;font-variant-numeric:tabular-nums}.ql-notes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 32px}.ql-notes li{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.55}.ql-notes li b{color:var(--ink);font-weight:650}.ql-notes .ic{width:24px;height:24px;background:var(--surface)}.ql-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nav{display:flex;align-items:center;gap:2px;margin-left:12px;min-width:0}.nav-link{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 11px;border-radius:var(--r);font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;position:relative;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-link svg{width:16px;height:16px}.nav-link:hover{color:var(--ink);background:var(--hover)}.nav-link[aria-current=page]{color:var(--ink);background:var(--navy-soft)}.nav-link[aria-current=page] svg{color:var(--navy)}.count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--navy);color:var(--on-navy);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}@media (max-width: 1080px){.nav{order:3;flex:1 1 100%;margin:0 -8px;padding:0 0 8px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb,var(--teal) 30%,var(--surface)),color-mix(in srgb,var(--navy) 22%,var(--surface)));color:var(--ink);font-weight:700;letter-spacing:.02em}.persona-menu{position:relative}.persona-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:background var(--dur) var(--ease)}.persona-btn:hover{background:var(--hover)}.persona-name{font-size:13px;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.persona-name{display:none}.persona-btn{padding:0 4px}}.menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);padding:6px;animation:pop-in .14s var(--ease) both;transform-origin:top right}.menu-head{display:flex;gap:10px;padding:10px 10px 12px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.menu-head>div{display:flex;flex-direction:column;gap:1px;min-width:0}.menu-head .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-tag{align-self:flex-start;margin-top:4px;font-size:11.5px;font-weight:600;color:var(--teal-ink);background:var(--accent-soft);padding:1px 8px;border-radius:999px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:none;border-radius:var(--r-sm);font-size:13.5px;cursor:pointer;color:var(--ink-2);text-align:left;transition:background var(--dur) var(--ease)}.menu-item:hover{background:var(--hover);color:var(--ink)}.menu-item svg{width:16px;height:16px;color:var(--muted)}.signin{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(1200px 500px at 50% -10%,var(--accent-soft),transparent 60%),var(--bg)}.signin-card{width:min(560px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-pop);padding:32px}.signin-brand{display:flex;align-items:center;gap:12px;color:var(--navy);margin-bottom:20px}.signin-brand img{border-radius:50%;background:var(--mark-bg)}.signin-brand .wm svg{height:22px;width:auto;display:block}.signin-card h1{font-size:24px;line-height:1.25}.persona-group{margin-top:22px}.persona-group h2{font-size:13px;display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.persona-group h2 .hint{font-weight:500}.persona-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.persona{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)}.persona:hover{border-color:color-mix(in srgb,var(--teal) 60%,var(--line));background:var(--surface-2)}.persona:active{transform:translateY(.5px)}.persona[disabled]{opacity:.7;cursor:default}.persona-main{display:flex;flex-direction:column;min-width:0;flex:1}.persona-main span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-go{font-size:12.5px;font-weight:600;color:var(--teal-ink)}.signin-note{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--line-soft);font-size:12.5px;color:var(--muted)}.callout{margin:16px 0 0;padding:10px 12px;border-radius:var(--r);font-size:13px}.callout-warn{background:color-mix(in srgb,var(--warn) 10%,var(--surface));color:var(--ink-2);border:1px solid color-mix(in srgb,var(--warn) 30%,var(--surface))}.modal{padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);max-height:calc(100vh - 48px);overflow:auto}.modal[open]{animation:modal-in .2s var(--ease) both}.modal::backdrop{background:#0b0e1a61;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .2s var(--ease) both}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-in{padding:20px 22px 18px}.modal-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.modal-h h2{font-size:16px}.modal-f{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-soft)}.modal-f>:first-child{margin-right:auto}.form{display:flex;flex-direction:column;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.form-grid .span-2{grid-column:1 / -1}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.form .field>span,.form legend{font-size:12.5px;font-weight:600;color:var(--ink-2)}.form .field em,.form legend em{font-style:normal;font-weight:500;color:var(--faint);margin-left:4px}.form input,.form select,.form textarea{width:100%;height:36px;font-size:14px}fieldset.field{border:0;margin:0;padding:0;min-width:0}textarea{height:auto!important;min-height:72px;resize:vertical;padding:8px 10px;line-height:1.5;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}textarea:hover{border-color:var(--line-strong)}textarea:focus-visible{border-color:var(--teal);box-shadow:var(--ring);outline:none}input[type=number]{height:32px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:0 10px;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}input[type=number]:focus-visible{border-color:var(--teal);box-shadow:var(--ring)}.check-list{display:flex;flex-wrap:wrap;gap:6px 16px;padding-top:4px}.check-item{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;cursor:pointer}.check-item input,.check input{accent-color:var(--navy);width:15px;height:15px}.role-choices{display:grid;gap:6px;padding-top:4px}.role-choice{display:grid;grid-template-columns:auto 1fr;gap:0 10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.role-choice input{grid-row:1 / span 2;margin-top:3px;accent-color:var(--navy)}.role-choice b{font-size:13.5px}.role-choice.on{border-color:color-mix(in srgb,var(--teal) 60%,var(--line));background:var(--accent-soft)}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--ink-2)}.badge i{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}.badge-draft i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--faint)}.badge-submitted{color:var(--navy)}.badge-submitted i{background:var(--navy)}.badge-approved{color:var(--good)}.badge-approved i{background:var(--good)}.badge-rejected{color:var(--danger)}.badge-rejected i{background:var(--danger)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px 16px;color:var(--muted)}.empty-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line-soft);color:var(--teal-ink);margin-bottom:6px}.empty-ic svg{width:20px;height:20px}.empty h3{font-size:15px;color:var(--ink)}.empty-body{max-width:48ch;font-size:13.5px}.empty-body p{margin:10px 0 0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}.scope-bar{justify-content:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 14px}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line-soft);align-self:flex-start}.tab{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:7px;border:0;background:transparent;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.tab svg{width:15px;height:15px}.tab:hover{color:var(--ink)}.tab[aria-selected=true],.tab[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #10152214,0 0 0 1px var(--line)}.tab .count{background:var(--line);color:var(--ink-2)}.tab[aria-selected=true] .count{background:var(--navy);color:var(--on-navy)}.seg{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:1px}.seg .btn{height:30px}.panel.flush{padding:0;overflow:hidden}.panel.flush .tbl-wrap{margin:0}.padded{padding:16px 20px;margin:0}.panel-h.padded{margin:0;padding-bottom:12px}.tbl th .th{display:block;padding:10px 12px}.tbl th.num .th{text-align:right}.stats dd small a{color:var(--teal-ink);font-weight:600;text-decoration:none}.stats dd small a:hover{color:var(--ink)}.form input[type=number]{height:36px;font-size:14px}.tbl th:first-child .th{padding-left:20px}.tbl th:last-child .th{padding-right:20px}.tbl-click tbody tr{cursor:pointer}.row-link{color:var(--ink);font-weight:650;text-decoration:none}.row-link:hover{color:var(--navy)}.tbl tr.inactive td{opacity:.55}.tbl td select{height:30px}.week-summary{display:flex;flex-direction:column;gap:16px}.status-line{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.week-progress{height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden}.week-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--bar-single));border-radius:2px;transition:width .42s var(--ease)}.days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{position:relative;width:100%;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;gap:0 6px;padding:10px 10px 10px 12px;min-height:92px;border-radius:var(--r);border:1px solid var(--line-soft);background:var(--surface-2);text-align:left;cursor:pointer;color:var(--ink);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)}.day:hover:not([disabled]){border-color:color-mix(in srgb,var(--teal) 55%,var(--line));background:var(--surface)}.day[disabled]{cursor:default}.day.weekend{background:transparent;border-style:dashed}.day.today{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}.day-name{font-size:12px;font-weight:600;color:var(--muted)}.day-date{grid-column:1;font-size:12.5px;color:var(--faint)}.day-hours{grid-column:1;align-self:end;font-family:var(--f-display);font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.day-bar{grid-column:2;grid-row:1 / span 3;width:5px;border-radius:3px;background:var(--line);display:flex;align-items:flex-end;overflow:hidden}.day-bar span{display:block;width:100%;background:var(--bar-single);border-radius:3px;transition:height .42s var(--ease)}.day-add{position:absolute;right:14px;top:8px;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--teal-ink);opacity:0;transition:opacity var(--dur) var(--ease)}.day-add svg{width:14px;height:14px}.day:hover .day-add,.day:focus-visible .day-add{opacity:1}@media (max-width: 720px){.days{grid-template-columns:repeat(7,minmax(44px,1fr));gap:4px}.day{padding:8px 6px;min-height:76px;grid-template-columns:1fr}.day-bar,.day-add{display:none}.day-hours{font-size:14px}.day-date{font-size:11px}}.submit-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-soft);font-size:13.5px;color:var(--ink-2)}.submit-bar>span{margin-right:auto}.submit-bar.confirm{background:var(--navy-soft);border-color:color-mix(in srgb,var(--navy) 25%,var(--line))}.entry-days{padding:6px 20px}.entry-day+.entry-day{border-top:1px solid var(--line-soft)}.entry-day-h{display:flex;align-items:baseline;gap:10px;font-size:13px;padding:14px 0 4px}.entry-list{list-style:none;margin:0;padding:0}.entry-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 150px auto;gap:6px 16px;align-items:center;padding:10px 0}.entry-row+.entry-row{border-top:1px dashed var(--line-soft)}.entry-main{display:flex;flex-direction:column;gap:2px;min-width:0}.entry-title{font-weight:600;color:var(--ink)}.entry-meta{font-size:12.5px;color:var(--muted)}.entry-desc{font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.entry-note{display:inline-flex;align-items:flex-start;gap:6px;font-size:12.5px;color:var(--danger);margin-top:2px}.entry-note svg{width:14px;height:14px;flex:none;margin-top:2px}.entry-hours{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}.entry-hours b{font-weight:650}.entry-actions{display:flex;gap:2px;justify-content:flex-end;min-width:150px}.entry-toggle{display:flex;align-items:center;gap:6px;width:fit-content;max-width:100%;margin:0 0 0 -22px;padding:0 0 0 22px;border:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.entry-toggle:hover .entry-title{text-decoration:underline}.entry-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:6px}.entry-caret{width:16px;height:16px;flex:none;margin-left:-22px;color:var(--muted);transition:transform .18s var(--ease)}.entry-row.open .entry-caret{transform:rotate(90deg)}.entry-row>.collapse{grid-column:1 / -1}.entry-detail{display:flex;flex-direction:column;gap:14px;margin:4px 0 8px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface-2)}.entry-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 18px;margin:0}.entry-facts dt{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.entry-facts dd{margin:2px 0 0;font-size:13.5px;color:var(--ink);font-variant-numeric:tabular-nums}.entry-block h4{margin:0 0 6px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.entry-block p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2);white-space:pre-wrap}.entry-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.entry-log li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:2px 10px;align-items:center;position:relative}.entry-log li+li:before{content:"";position:absolute;left:10px;top:-10px;height:10px;border-left:1px dashed var(--line)}.entry-log-dot{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--muted)}.entry-log-dot svg{width:13px;height:13px}.entry-log-what{font-size:13.5px;color:var(--ink)}.entry-log time{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.entry-log-note{grid-column:2 / -1;font-size:12.5px;color:var(--danger);font-style:italic}.entry-detail-actions{display:flex;align-items:center;gap:8px}@media (max-width: 760px){.entry-row{grid-template-columns:minmax(0,1fr) auto}.entry-row .badge{grid-column:1}.entry-actions{grid-column:1 / -1;justify-content:flex-start;min-width:0;margin-left:-10px}.entry-days{padding:4px 16px}.entry-log li{grid-template-columns:22px minmax(0,1fr)}.entry-log time{grid-column:2}}.review-group{padding:0;overflow:hidden}.review-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}.review-who{display:flex;flex-direction:column;min-width:0;margin-right:auto}.review-total{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}.review-actions{display:flex;gap:6px}.check{display:inline-grid;place-items:center;width:20px}.review-list{list-style:none;margin:0;padding:0 18px}.review-list li{display:grid;grid-template-columns:20px 100px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0}.review-list li+li{border-top:1px dashed var(--line-soft)}.review-date{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width: 640px){.review-list li{grid-template-columns:20px minmax(0,1fr) auto}.review-date{display:none}}.bulk-bar{position:sticky;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;align-self:center;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 8px 8px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-pop);font-size:13.5px;animation:toast-in-up .22s var(--ease) both}.bulk-bar>span{margin-right:8px}@keyframes toast-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.budget{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.budget-bar{width:72px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.budget-bar span{display:block;height:100%;border-radius:3px;background:var(--bar-single)}.budget-near .budget-bar span{background:var(--warn)}.budget-over .budget-bar span{background:var(--danger)}.budget-over .budget-text{color:var(--danger);font-weight:600}.add-member{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 14px}.add-member select,.add-member input{min-width:220px;flex:0 1 280px}.cat-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-soft)}.cat-list li{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 20px;border-bottom:1px solid var(--line-soft);min-height:50px}.cat-list li.inactive .cat-name{color:var(--muted)}.cat-name{font-weight:600;display:inline-flex;gap:8px;align-items:center;margin-right:auto}.cat-actions{display:flex;gap:2px}.cat-edit{display:flex;gap:8px;flex:1;flex-wrap:wrap}.cat-edit input{flex:1 1 220px}.state-msg{text-align:center;padding:56px 16px;color:var(--muted)}.state-msg h2{color:var(--ink);font-size:16px;margin-bottom:6px}.state-msg p{margin:6px 0}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;font-size:13px;box-shadow:var(--shadow-pop);z-index:50;max-width:calc(100vw - 32px);animation:toast-in .22s var(--ease) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.skel{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--line-soft) 0%,var(--hover) 50%,var(--line-soft) 100%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}.skel+.skel{margin-top:12px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 640px){.topbar-in{padding:8px 16px}.wrap{padding-inline:16px;padding-block:20px 56px}.app-name{display:none}.top-actions{flex:1;justify-content:flex-end}.picker{order:3;flex:1 1 100%}.picker label{display:none}.picker select{flex:1;max-width:none;width:100%}.search{max-width:none;margin-left:0}.panel{padding:16px}.tbl-wrap{margin:0 -16px}.tbl th:first-child button,.tbl td:first-child{padding-left:16px}.brand .wm svg{height:18px}.stats{gap:14px 28px}.kpi{padding:12px 16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
