@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent:#6366f1;--accent-strong:#4f46e5;--accent-soft:#e7e7ff;--accent-softer:#f2f2ff;--accent-ink:#4338ca;--wordmark:#7257bf;--bg:#f6f6fb;--surface:#fff;--card:#fff;--surface-2:#f1f1f7;--surface-3:#e9e9f1;--ink:#1c1c28;--ink-2:#55556a;--ink-soft:#8a8a9c;--ink-inverse:#fff;--line:#e9e9f1;--line-strong:#d7d7e3;--line-hover:#c7c7d6;--border-2:#d7d7e3;--mix-base:#fff;--block-tint:14%;--tooltip-bg:#1c1c28;--tooltip-ink:#fff;--backdrop:#14142859;--ok:#17915c;--ok-soft:#e3f5ec;--ok-strong:#0f7a4b;--warn:#b4770f;--warn-soft:#fdf1dc;--warn-line:#f0d9a8;--danger:#c0433a;--danger-soft:#fbe9e7;--danger-strong:#a5352d;--t1:#6b7280;--t1-soft:#eef0f4;--t2:#17915c;--t2-soft:#e3f5ec;--t3:#2f6feb;--t3-soft:#e7f0fe;--t4:#0d97a5;--t4-soft:#dff4f6;--t5:#c0433a;--t5-soft:#fbe9e7;--t6:#d1457a;--t6-soft:#fce7f0;--t7:#7c5cdf;--t7-soft:#efeafc;--t8:#c67c1e;--t8-soft:#fbeed6;--font-sans:"Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fs-h1:19px;--fs-h2:15px;--fs-h3:14px;--fs-body:14px;--fs-small:12.5px;--fs-micro:11px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow-1:0 1px 2px #1e1e3c0f, 0 1px 1px #1e1e3c0a;--shadow-2:0 6px 20px #1e1e3c1f, 0 2px 6px #1e1e3c0f;--shadow-3:0 20px 50px #1c1c3c3d;--ring:0 0 0 3px #6366f147;--dur-fast:.12s;--dur:.16s;--dur-slow:.24s;--ease:cubic-bezier(.4, 0, .2, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#7679f2;--accent-strong:#8f92f6;--accent-soft:#353662;--accent-softer:#2b2b4e;--accent-ink:#bcbefc;--wordmark:#ab93f2;--bg:#1c1c25;--surface:#25252f;--card:#25252f;--surface-2:#2e2e3a;--surface-3:#373744;--ink:#ececf4;--ink-2:#b2b2c4;--ink-soft:#9393a8;--ink-inverse:#fff;--line:#353542;--line-strong:#454554;--line-hover:#556;--border-2:#454554;--mix-base:#2c2c38;--block-tint:50%;--tooltip-bg:#3b3b55;--tooltip-ink:#f0f0f8;--backdrop:#00000080;--ok:#2aa06a;--ok-soft:#1d3c30;--ok-strong:#5fce9c;--warn:#d9a13c;--warn-soft:#40341b;--warn-line:#5e4c26;--danger:#d1584f;--danger-soft:#452a28;--danger-strong:#e78d86;--t1:#9aa1ad;--t1-soft:#31353d;--t2:#3dbd83;--t2-soft:#1d3c30;--t3:#6b9bf2;--t3-soft:#24324e;--t4:#41b9c6;--t4-soft:#1d3c41;--t5:#e0736b;--t5-soft:#452a28;--t6:#e06f9b;--t6-soft:#422a34;--t7:#a48bf0;--t7-soft:#322c4f;--t8:#daa04f;--t8-soft:#40331d;--shadow-1:0 1px 2px #0000004d, 0 1px 1px #0003;--shadow-2:0 6px 20px #0006, 0 2px 6px #00000040;--shadow-3:0 20px 50px #00000080;--ring:0 0 0 3px #7679f259}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);letter-spacing:-.006em;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}img{max-width:100%;display:block}button{font-family:inherit}::placeholder{color:var(--ink-soft);opacity:1}h1,h2,h3{color:var(--ink)}h1{font-size:var(--fs-h1);margin:0 0 var(--sp-4);letter-spacing:-.014em;font-weight:600;line-height:1.3}h2{font-size:var(--fs-h2);margin:var(--sp-6) 0 var(--sp-2);letter-spacing:-.008em;font-weight:600;line-height:1.4}h3{font-size:var(--fs-h3);margin:var(--sp-4) 0 var(--sp-2);font-weight:600;line-height:1.4}p{margin:0 0 var(--sp-3)}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}strong,b{font-weight:600}.muted{color:var(--ink-soft);font-size:var(--fs-small)}.tabular{font-variant-numeric:tabular-nums}.num{text-align:right;font-variant-numeric:tabular-nums}main{max-width:none;margin:var(--sp-6) auto;padding:0 var(--sp-7)}main.wide{max-width:none}:focus{outline:none}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}.topbar{z-index:40;align-items:center;gap:var(--sp-6);height:56px;padding:0 var(--sp-6);background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:var(--sp-2);letter-spacing:.1px;color:var(--wordmark);font-size:15px;font-weight:600;display:flex}.topbar .brand img{width:auto;height:24px}.topbar nav{gap:var(--sp-1);flex:1;display:flex}.topbar nav button{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);font:inherit;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;padding:7px 12px;font-weight:500;display:inline-flex}.topbar nav button svg{color:var(--ink-soft);transition:color var(--dur) var(--ease)}.topbar nav button:hover{background:var(--surface-2);color:var(--ink)}.topbar nav button:hover svg{color:var(--ink-2)}.topbar nav button.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.topbar nav button.active svg{color:var(--accent)}.topbar .user{align-items:center;gap:var(--sp-3);color:var(--ink-soft);font-size:13px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-1);padding:var(--sp-5);margin-bottom:var(--sp-4)}.card>h2:first-child,.card>h1:first-child{margin-top:0}button.primary,button.ghost,button.subtle,button.btn-danger{font:inherit;justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur-fast) var(--ease);font-weight:600;line-height:1;display:inline-flex}button.primary{background:var(--accent);color:var(--ink-inverse);box-shadow:var(--shadow-1);border:1px solid #0000;padding:9px 16px}button.primary:hover{background:var(--accent-strong)}button.primary:active{box-shadow:none;transform:translateY(1px)}button.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);padding:8px 15px}button.ghost:hover{background:var(--surface-2);border-color:var(--line-strong)}button.ghost:active{background:var(--surface-3)}button.subtle{color:var(--ink-2);background:0 0;border:1px solid #0000;padding:8px 12px}button.subtle:hover{background:var(--surface-2);color:var(--ink)}button.btn-danger{background:var(--danger);color:var(--ink-inverse);border:1px solid #0000;padding:9px 16px}button.btn-danger:hover{background:var(--danger-strong)}button:disabled{opacity:.5;cursor:default;box-shadow:none}button.primary:disabled:hover{background:var(--accent)}button.ghost.danger{color:var(--danger);border-color:var(--danger)}button.ghost.danger:hover{background:var(--danger-soft)}button.btn-sm{padding:6px 12px;font-size:13px}button.mini{padding:2px 8px;font-size:12px}button.icon{justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}button.ghost.icon{width:34px;height:34px}button.toggled{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}button.toggled:hover{background:var(--accent-soft)}input[type=text],input[type=email],input[type=search],input[type=date],input[type=number],input[type=password],select,textarea{font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:8px 11px}input:hover,select:hover,textarea:hover{border-color:var(--line-hover)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--ink-soft);cursor:default}textarea{resize:vertical;min-height:68px;line-height:1.5}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%238a8a9c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding-right:30px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px}label{cursor:default}table{border-collapse:collapse;width:100%;font-size:var(--fs-body)}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:11.5px;font-weight:600}td{border-bottom:1px solid var(--line);padding:10px 12px}tr:last-child td{border-bottom:none}tr.subrow td{background:var(--surface-2)}tfoot td{background:var(--surface-2);border-top:2px solid var(--line-strong);border-bottom:none;font-weight:600}.badge{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.badge.ok{background:var(--ok-soft);color:var(--ok-strong)}.badge.err{background:var(--danger-soft);color:var(--danger-strong)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.notice.notice-ok{background:var(--ok-soft);border-color:var(--ok-soft);color:var(--ok-strong)}.badge.neutral{background:var(--surface-2);color:var(--ink-2)}.pill{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.pill:hover{background:var(--surface-2)}.pill.empty{color:var(--ink-soft);border-style:dashed}.pill:disabled{opacity:.55;cursor:default}.chip{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;line-height:1.5;display:inline-flex}.dot{border-radius:var(--r-pill);flex-shrink:0;width:10px;height:10px;display:inline-block}.status-dot{border-radius:var(--r-pill);flex-shrink:0;width:11px;height:11px}.status-dot.ok{background:var(--ok)}.status-dot.off{background:var(--surface-2);border:1px solid var(--line-strong)}.progress-track{border-radius:var(--r-pill);background:var(--surface-3);height:8px;margin:var(--sp-2) 0 var(--sp-1);overflow:hidden}.progress-fill{background:var(--accent);border-radius:var(--r-pill);height:100%;transition:width var(--dur-slow) var(--ease)}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.segmented button{font:inherit;font-size:var(--fs-small);color:var(--ink-2);border-radius:var(--r-pill);cursor:pointer;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:0 0;border:none;padding:6px 14px;font-weight:500}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-1);font-weight:600}.menu-wrap{position:relative}.menu{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);min-width:190px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.menu button{font:inherit;text-align:left;border-radius:var(--r-xs);cursor:pointer;color:var(--ink);transition:background-color var(--dur) var(--ease);background:0 0;border:none;padding:9px 12px}.menu button:hover{background:var(--accent-soft)}.menu button.danger{color:var(--danger)}.menu button.danger:hover{background:var(--danger-soft)}.picker-dropdown{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);max-height:320px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.picker-item{align-items:center;gap:var(--sp-2);text-align:left;width:100%;font:inherit;cursor:pointer;border-radius:var(--r-xs);transition:background-color var(--dur) var(--ease);background:0 0;border:none;padding:8px 10px;display:flex}.picker-item:hover{background:var(--surface-2)}.picker-item.active{background:var(--accent-soft)}.picker-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.picker-sub{color:var(--ink-soft);font-size:12px}.picker-empty{color:var(--ink-soft);padding:10px 12px;font-size:13px}.billable-pill{font:inherit;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);border:1px solid #0000;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.billable-pill.on{background:var(--ok-soft);color:var(--ok-strong);border-color:#bfe3d1}.billable-pill.off{background:var(--danger-soft);color:var(--danger-strong);border-color:#edc7c2}.billable-pill.neutral{background:var(--surface-2);color:var(--ink-soft);border-color:var(--line)}.billable-pill.budget{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.billable-pill.override{background:var(--ok-soft);color:var(--ok-strong);border-color:var(--warn-line)}.billable-pill-note{text-transform:uppercase;letter-spacing:.03em;color:var(--warn);border-left:1px solid var(--warn-line);padding-left:6px;font-size:11px;font-weight:600}.billable-pill:disabled{opacity:.55;cursor:default}.transfer-btn{font:inherit;letter-spacing:.01em;border-radius:var(--r-sm);cursor:pointer;background:var(--ok);color:var(--ink-inverse);white-space:nowrap;transition:background-color var(--dur) var(--ease);border:none;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:13px;font-weight:600;display:inline-flex}.transfer-btn:hover:not(:disabled){background:var(--ok-strong)}.transfer-btn svg{flex-shrink:0}.transfer-btn:disabled{cursor:default}.transfer-btn.done{background:var(--surface-2);color:var(--ink-soft)}.transfer-btn.failed{background:var(--danger)}.transfer-btn.failed:hover:not(:disabled){background:var(--danger-strong)}.spinner{border-radius:var(--r-pill);border:2px solid #ffffff59;border-top-color:#fff;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite spin}.spinner.dark{border-color:#00000026;border-top-color:var(--accent)}button.ghost .spinner,button.subtle .spinner{vertical-align:-2px;margin-right:6px;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.undo-toast{bottom:var(--sp-6);z-index:50;background:var(--tooltip-bg);color:var(--tooltip-ink);border-radius:var(--r-sm);box-shadow:var(--shadow-3);gap:var(--sp-3);align-items:center;padding:10px 16px;font-size:13px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.undo-toast button{color:#b9a8ff;font:inherit;cursor:pointer;background:0 0;border:none;font-weight:600}.undo-toast button:hover{color:#cfc4ff}.error-toast{bottom:var(--sp-6);z-index:90;background:var(--danger);color:var(--ink-inverse);border-radius:var(--r-sm);box-shadow:var(--shadow-3);max-width:90vw;padding:10px 18px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}.notice{background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--r-sm);margin-bottom:var(--sp-2);color:var(--ink);padding:8px 12px;font-size:13px}.modal-backdrop{z-index:60;background:var(--backdrop);padding:var(--sp-4);place-items:center;display:grid;position:fixed;inset:0}.modal{border-radius:var(--r-lg);width:420px;max-width:90vw;box-shadow:var(--shadow-3)}.multi-day{gap:var(--sp-3);width:600px;display:grid}.multi-day h2{margin:0}.multi-day-lead{margin:-6px 0 0}.multi-day-field{gap:4px;min-width:0;display:grid}.multi-day-label{font-size:var(--fs-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.multi-day-row{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;display:flex}.multi-day-row .multi-day-field{flex:1}.multi-day-row .date-input{width:100%;min-width:156px}.multi-day-row .type-select-wrap{width:100%;display:flex}.multi-day-row .type-select{flex:1;min-width:120px}.md-new-project{white-space:nowrap;align-self:stretch;margin-left:auto}.md-new-project svg{flex-shrink:0}.md-edit{cursor:pointer;color:var(--line-strong);transition:color var(--dur) var(--ease);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0 2px;display:inline-flex}.md-edit:hover{color:var(--accent-strong)}.new-project{gap:var(--sp-3);width:560px;display:grid}.new-project h2{margin:0}.new-project-lead{margin:-6px 0 0}.new-project-field{flex:1;gap:4px;min-width:0;display:grid}.new-project-label{font-size:var(--fs-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.new-project-row{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-start;display:flex}.new-project-preview{font-size:var(--fs-small);color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-md);padding:7px 11px}.new-project-preview.err{background:var(--danger-soft);color:var(--danger-strong)}.new-project-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.modal-backdrop.over-popup{z-index:80}.multi-day-opts{gap:var(--sp-4);flex-wrap:wrap;display:flex}.multi-day-check{font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;align-items:center;gap:7px;display:inline-flex}.multi-day-preview{background:var(--accent-soft);color:var(--accent-strong);border-radius:var(--r-sm);font-size:var(--fs-small);gap:2px;padding:10px 12px;display:grid}.multi-day-preview .muted{color:var(--accent-ink);opacity:.85}.multi-day-preview.empty{background:var(--surface-2);color:var(--ink-soft)}.multi-day-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.multi-day-btn{align-items:center;gap:6px;display:inline-flex}.multi-day-btn svg{color:var(--ink-2)}.chart-tooltip{background:var(--tooltip-bg);color:var(--tooltip-ink);border-radius:var(--r-xs);pointer-events:none;white-space:nowrap;z-index:10;box-shadow:var(--shadow-2);padding:6px 10px;font-size:12px;position:absolute;top:0;transform:translate(-50%)}.chart-tooltip .muted{color:#b9b9c9}.chart-tooltip-row{align-items:center;gap:6px;margin-top:3px;display:flex}.chart-tooltip-total{border-top:1px solid #fff3;margin-top:5px;padding-top:4px}.chart-legend{gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-2);font-size:var(--fs-small);color:var(--ink-2);flex-wrap:wrap;display:flex}.chart-legend-item{align-items:center;gap:5px;display:inline-flex}.chart-legend-swatch{border-radius:var(--r-xs);flex-shrink:0;width:11px;height:11px;display:inline-block}.login-wrap{min-height:100vh;padding:var(--sp-4);place-items:center;display:grid}.login-card{text-align:center;width:360px;max-width:100%;padding:var(--sp-8) var(--sp-7);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}.login-card .brand-logo{width:auto;height:44px;margin:0 auto var(--sp-2)}.login-card .brand{color:var(--wordmark);margin-bottom:var(--sp-1);font-size:22px;font-weight:600}.login-card p{color:var(--ink-soft);margin:0 0 var(--sp-6)}.desktop-shell{margin:var(--sp-5) 0 var(--sp-6);padding:0 var(--sp-5);text-align:center;gap:var(--sp-2);justify-items:center;display:grid;overflow-x:hidden}.desktop-logo{width:auto;height:48px}.desktop-title{color:var(--wordmark);font-size:17px;font-weight:600}.desktop-version{margin-top:-4px;font-size:11px}.desktop-report{margin:0;font-size:15px}.act-toggle{gap:6px;margin:4px 0;display:inline-flex}.act-onoff{border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font:inherit;font-size:var(--fs-small);color:var(--ink-soft);cursor:pointer;padding:6px 20px;font-weight:600}.act-onoff.off.active{color:#b3261e;background:#f6d6d6;border-color:#e0a3a3}.act-onoff.on.active{color:#1f7a4d;background:#d7f0e0;border-color:#a3d9ba}.act-levels{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.download-app{align-items:stretch;display:inline-flex;position:relative}.download-app-btn{border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;gap:6px;display:inline-flex}.download-app-caret{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding-left:8px;padding-right:8px}.download-app-menu{z-index:60;min-width:240px;box-shadow:var(--shadow-2);gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.download-app-menu button{justify-content:space-between;align-items:center;gap:var(--sp-3);text-align:left;cursor:pointer;width:100%;font:inherit;font-size:var(--fs-small);color:var(--ink);border-radius:var(--r-sm);background:0 0;border:none;padding:8px 10px;display:flex}.download-app-menu button:hover{background:var(--surface-2)}.download-app-opt{align-items:center;gap:9px;display:inline-flex}.download-app-opt svg{color:var(--ink-2);flex:none}.download-app-hint{white-space:nowrap;font-size:var(--fs-micro);color:var(--wordmark);background:color-mix(in oklab, #a384eb 18%, var(--mix-base));border-radius:var(--r-pill);flex:none;padding:2px 8px;font-weight:600}.desktop-hint{color:var(--ink-soft);font-size:11px}.desktop-shell .card{text-align:left;width:100%}.desktop-shell .filter-pill:hover{border-color:#a384eb}.desktop-shell .filter-pill.on{color:#fff;background:#a384eb;border-color:#a384eb}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.topbar .user .shell-avatar{border-radius:var(--r-pill);background:var(--accent-soft);width:28px;height:28px;color:var(--accent-ink);font-size:var(--fs-micro);letter-spacing:.02em;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex;overflow:hidden}.topbar .user img.shell-avatar{object-fit:cover}.topbar .user .shell-user-name{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-weight:500;overflow:hidden}.user-menu-trigger{align-items:center;gap:var(--sp-2);cursor:pointer;font:inherit;border-radius:var(--r-pill);color:var(--ink-soft);background:0 0;border:none;padding:4px 6px;display:inline-flex}.user-menu-trigger:hover{background:var(--surface-2)}.user-menu-trigger .nav-caret{opacity:.7;color:var(--ink-2)}.user-menu .user-menu-list{left:auto;right:0}.user-menu-list button{align-items:center;gap:var(--sp-2);display:flex}.user-menu-list button svg{color:var(--ink-2)}.login-primary{justify-content:center;width:100%}.login-dev{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--line);gap:var(--sp-2);text-align:left;display:grid}.login-dev-head{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-1);font-weight:500}.login-dev button.ghost{width:100%;margin-top:var(--sp-1);justify-content:center}.login-dev .badge.err{justify-self:start}.desktop-account{font-size:var(--fs-small);margin:0}.desktop-shell .card.desktop-status{align-items:center;gap:var(--sp-1);padding:var(--sp-4) var(--sp-5);text-align:center;flex-direction:column;display:flex}.desktop-status-label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.desktop-status-value{font-size:var(--fs-h1);color:var(--ink);font-weight:700;line-height:1.2}.desktop-login,.desktop-logout{justify-content:center;width:100%}.timer-head{margin-bottom:var(--sp-5);justify-content:space-between;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;display:flex}.timer-head h1{margin:0}.timer-head .muted{margin:var(--sp-1) 0 0}.timer-filter{align-items:center;gap:var(--sp-2);display:flex}.timer-layout{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}@media (width<=900px){.timer-layout{grid-template-columns:minmax(0,1fr)}}.sidebar{gap:var(--sp-4);display:grid}.sidebar .card{margin-bottom:0}.overview-card h2{margin-top:0}.overview-stats{gap:var(--sp-2);margin-bottom:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.overview-stat{padding:var(--sp-3);background:var(--surface-2);border-radius:var(--r-sm);flex-direction:column;gap:2px;display:flex}.overview-stat:first-child:nth-last-child(odd){grid-column:1/-1}.overview-label{font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.overview-value{font-size:var(--fs-h1);color:var(--ink);font-weight:600;line-height:1.2}.overview-alert{margin-top:var(--sp-3)}.overview-note{margin:var(--sp-3) 0 0}.overview-refresh{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line);gap:var(--sp-1);display:grid}.fyll-card h2{margin-top:0}.fyll-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.fyll-head h2{margin:0}.fyll-head>div{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.fyll-empty{margin:0 0 var(--sp-1)}.fyll-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.suggestion-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-3);gap:var(--sp-2);align-content:start;display:grid}.suggestion-source{font-size:var(--fs-micro);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:5px;font-weight:600;display:inline-flex}.suggestion-title{font-weight:600;line-height:1.35}.suggestion-icon{flex-shrink:0}.suggestion-desc{margin:0}.suggestion-why{font-size:var(--fs-small);color:var(--ink-soft);padding:var(--sp-2);border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--line);margin:0;line-height:1.4}.suggestion-actions{gap:var(--sp-2);display:flex}.fyll-footer{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line)}.fyll-mail-link{color:var(--accent-ink);font-size:var(--fs-small);text-decoration:none}.fyll-mail-link:hover{text-decoration:underline}.entry-list{gap:var(--sp-4);display:grid}.list-toolbar{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.entry-empty{text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--ink-soft)}.entry-empty-icon{margin-bottom:var(--sp-2);opacity:.8;font-size:28px}.entry-empty p{margin:0}.day-card{margin-bottom:0;padding:0;overflow:visible}.day-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--line);display:flex}.day-header-title{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-h3);min-width:0;font-weight:600;display:inline-flex}.day-header-title .muted{font-weight:400}.day-header-meta{align-items:center;gap:var(--sp-3);flex-shrink:0;display:inline-flex}.entry-row{align-items:center;gap:var(--sp-3);padding:11px var(--sp-5);border-bottom:1px solid var(--line);transition:background-color var(--dur) var(--ease);display:flex}.entry-row:last-child{border-bottom:none}.entry-row.clickable{cursor:pointer}.entry-row.clickable:hover{background:var(--surface-2)}.entry-row.transferred{opacity:.72}.entry-date{min-width:78px;font-size:var(--fs-small);text-transform:capitalize;flex-shrink:0}.entry-main{align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.entry-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.entry-project{color:var(--ink-2);font-size:var(--fs-small);white-space:nowrap;flex-basis:100%;align-items:center;gap:5px;display:inline-flex}.entry-time{font-size:var(--fs-small);white-space:nowrap;flex-shrink:0}.entry-duration{text-align:right;flex-shrink:0;min-width:72px;font-weight:600}.popup-backdrop{z-index:70;position:fixed;inset:0}.entry-popup{z-index:71;gap:var(--sp-3);border-radius:var(--r-lg);width:468px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-3);margin-bottom:0;display:grid;position:fixed}.popup-customer{font-size:var(--fs-small);color:var(--ink-2);margin-top:calc(-1 * var(--sp-2))}.popup-description{font:inherit;font-size:var(--fs-h2);color:var(--ink);border:none;border-bottom:1px solid var(--line);padding:0 2px var(--sp-2);resize:none;box-sizing:border-box;background:0 0;border-radius:0;outline:none;width:100%;min-height:0;max-height:180px;font-weight:600;line-height:1.4;overflow-y:hidden}.popup-description:focus{border-bottom-color:var(--accent);box-shadow:none}.popup-description:disabled{color:var(--ink);background:0 0}.popup-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.popup-times .muted{padding:0 2px}.popup-hours{margin-top:-4px}.popup-hours .budget-bar-track{flex:0 0 130px}.popup-status{margin-top:-2px}.project-chip{white-space:nowrap;text-overflow:ellipsis;max-width:210px;overflow:hidden}.project-chip .dot{margin-right:2px}.type-select{font-size:var(--fs-small)}.type-select-wrap{align-items:center;gap:var(--sp-2);display:inline-flex}.type-select-wrap .type-select-icon,.entry-type-icon{flex-shrink:0}.type-badge{align-items:center;gap:5px;display:inline-flex}.type-badge svg{flex-shrink:0}.cal-block-type{vertical-align:-2px;margin-right:3px}.time-input,.date-input{font:inherit;font-size:var(--fs-small);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);font-variant-numeric:tabular-nums;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:7px 10px}.time-input:hover,.date-input:hover{border-color:var(--line-hover)}.time-input:focus,.date-input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.time-input{text-align:center;width:96px}.time-input.narrow{width:74px}.popup-projects{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);display:grid;overflow:hidden}.popup-projects input{font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:none;border-bottom:1px solid var(--line);border-radius:0;outline:none;padding:9px 11px}.popup-projects input::placeholder{color:var(--ink-soft)}.popup-projects input:focus{box-shadow:none;border-bottom-color:var(--accent)}.popup-projects .picker-item:hover,.popup-projects .picker-item.active{background:var(--accent-soft)}.popup-projects-list{max-height:264px;overflow-y:auto}.picker-group+.picker-group{border-top:1px solid var(--line)}.picker-group-head{z-index:1;background:var(--surface-2);font-size:var(--fs-micro);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;padding:6px 10px 3px;font-weight:700;position:sticky;top:0}.popup-projects .picker-label{white-space:normal;text-overflow:clip;text-align:left;overflow:visible}.picker-empty{padding:10px}.popup-actions{gap:var(--sp-2);align-items:stretch;display:flex}.popup-spacer{flex:1}.popup-action-btn{white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:5px;padding-left:8px;padding-right:8px;display:inline-flex}.cal-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.cal-nav,.cal-controls{align-items:center;gap:var(--sp-2);display:flex}.cal-range{margin-left:var(--sp-2);font-size:var(--fs-h2);color:var(--ink);font-variant-numeric:tabular-nums;text-transform:capitalize;font-weight:600}.cal-btngroup{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);align-items:center;gap:2px;padding:3px;display:inline-flex}.cal-btngroup button.icon{border-radius:var(--r-pill);width:32px;height:30px;color:var(--ink-2);background:0 0;border:none;padding:0;font-size:18px;line-height:1}.cal-btngroup button.icon:hover{background:var(--surface);color:var(--ink)}.cal-wrap{position:relative}.cal-bulk{top:var(--sp-2);z-index:25;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);border-left:3px solid var(--accent);box-shadow:var(--shadow-2);display:flex;position:sticky}.cal-bulk>span{color:var(--ink);font-weight:600}.billable-mark{font-size:var(--fs-micro);color:var(--t2);background:var(--t2-soft);border-radius:var(--r-pill);padding:1px 7px;font-weight:700;display:inline-block}.cal-headers{display:flex}.cal-day-head{padding:var(--sp-2) 0;text-align:center;flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.cal-day-weekday{font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.cal-day-date{font-size:var(--fs-small);color:var(--ink-2);font-variant-numeric:tabular-nums;padding:1px 8px;font-weight:600}.cal-day-hours{min-height:17px;font-size:var(--fs-micro);color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-pill);padding:1px 8px;font-weight:600}.cal-day-hours:empty{visibility:hidden}.cal-day-hours.full{color:var(--ok-strong);background:var(--ok-soft)}.cal-day-hours.short{color:var(--danger-strong);background:var(--danger-soft)}.cal-day-hours.partial{color:var(--warn);background:var(--warn-soft)}.cal-day-head.today .cal-day-weekday{color:var(--accent-strong)}.cal-day-head.today .cal-day-date{color:var(--ink-inverse);background:var(--accent);border-radius:var(--r-pill)}.cal-grid{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);height:auto;max-height:calc(100vh - 170px);box-shadow:var(--shadow-1);-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow-y:auto}.cal-canvas{position:relative}.cal-gutter{z-index:2;width:52px;height:100%;position:absolute;top:0;left:0}.cal-hour-label{font-size:var(--fs-micro);color:var(--ink-soft);font-variant-numeric:tabular-nums;position:absolute;right:8px;transform:translateY(-7px)}.cal-hour-line{border-top:1px solid var(--line);position:absolute;left:52px;right:0}.cal-days{display:flex;position:absolute;top:0;bottom:0;right:0}.cal-day-col{border-left:1px solid var(--line);flex:1;position:relative}.cal-block{box-sizing:border-box;cursor:grab;border-radius:var(--r-sm);border-left:3px solid var(--accent);box-shadow:var(--shadow-1);transition:box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease);padding:4px 8px;position:absolute;overflow:hidden}.cal-block:hover{box-shadow:var(--shadow-2);filter:brightness(.98);z-index:7}.cal-block:active{cursor:grabbing}.cal-block.running{border-style:dashed;animation:2s infinite pulse}@keyframes pulse{50%{filter:brightness(1.05)}}.cal-block.selected{outline:2px solid var(--accent);outline-offset:-1px;box-shadow:var(--shadow-2)}.cal-block.locked{cursor:default}.cal-block-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;padding-right:34px;font-size:12px;font-weight:600;line-height:1.35;overflow:hidden}.cal-block-sub{font-size:var(--fs-micro);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;line-height:1.35;overflow:hidden}.cal-block-time{color:var(--ink-soft);font-variant-numeric:tabular-nums}.cal-block-firma{color:var(--ink);font-weight:600}.cal-block.needs-project{outline-offset:-1.5px;border-left-color:#d1780f;outline:1.5px solid #f0b45a}.cal-block-warn{color:#b45309;font-weight:600}.cal-block-hours{z-index:3;font-size:var(--fs-micro);color:var(--ink-soft);pointer-events:none;font-weight:600;position:absolute;top:3px;right:6px}.cal-block-handle{z-index:4;cursor:ns-resize;height:7px;position:absolute;left:0;right:0}.cal-block-handle.top{top:0}.cal-block-handle.bottom{bottom:0}.outlook-draft{z-index:71;gap:var(--sp-2);border-radius:var(--r-lg);width:288px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-3);display:grid;position:fixed}.outlook-draft-src{font-size:var(--fs-micro);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.outlook-draft-title{font-weight:600;line-height:1.35}.outlook-draft-time{font-variant-numeric:tabular-nums}.outlook-draft-actions{gap:var(--sp-2);margin-top:var(--sp-1);display:flex}.activity-detail{z-index:71;gap:var(--sp-3);border-radius:var(--r-lg);width:320px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);box-shadow:var(--shadow-3);display:grid;position:fixed;overflow-y:auto}.activity-detail-head{justify-content:space-between;align-items:center;display:flex}.activity-detail-head h3{margin:0;font-size:20px}.activity-detail-close{cursor:pointer;color:var(--ink-2);background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.activity-detail-close:hover{color:var(--ink)}.activity-detail-stats{gap:4px;margin:0;display:grid}.activity-detail-stats>div{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.activity-detail-stats dt{color:var(--ink-soft);font-size:var(--fs-small)}.activity-detail-stats dd{margin:0;font-weight:600}.activity-detail-apps{padding:var(--sp-2) 0 0;border-top:1px solid var(--line);gap:2px;margin:0;list-style:none;display:grid}.activity-app-row{align-items:center;gap:var(--sp-2);cursor:pointer;width:100%;font:inherit;border-radius:var(--r-sm);text-align:left;color:var(--ink);background:0 0;border:none;padding:6px 4px;display:flex}.activity-app-row:hover{background:var(--surface-2)}.activity-chevron{color:var(--ink-soft);width:12px;transition:transform var(--dur) var(--ease);font-size:15px;line-height:1}.activity-chevron.open{transform:rotate(90deg)}.activity-app-name{flex:1;font-weight:600}.activity-app-pct{color:var(--ink-2);font-weight:600}.activity-titles{padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border-radius:var(--r-sm);gap:4px;margin:2px 0 6px 20px;display:grid}.activity-titles-total{font-size:var(--fs-micro);color:var(--ink-soft);text-align:right;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.activity-title-row{justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-small);display:flex}.activity-title-text{color:var(--ink-2);word-break:break-word}.activity-title-dur{color:var(--ink-soft);white-space:nowrap}.activity-detail-draft{justify-self:stretch}.ghost-block{background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--r-sm);z-index:5}.cal-lane-sep{z-index:1;border-left:1px dashed var(--line);pointer-events:none;width:0;position:absolute;top:0;bottom:0}.cal-now-line{border-top:2px solid var(--accent);z-index:8;pointer-events:none;height:0;position:absolute;left:0;right:0}.cal-now-line:before{content:"";border-radius:var(--r-pill);background:var(--accent);width:9px;height:9px;position:absolute;top:-5px;left:-4px;box-shadow:0 0 0 3px #6366f12e}.cal-activity-pill{border-radius:var(--r-xs);cursor:pointer;z-index:4;transition:outline-color var(--dur) var(--ease);background:#a384eb;position:absolute}.cal-activity-pill:hover{outline:2px solid #7257bf;opacity:1!important}.cal-block.dragging{pointer-events:none;opacity:.9;box-shadow:var(--shadow-2);z-index:8}.ctx-menu{z-index:71;border-radius:var(--r-lg);min-width:196px;box-shadow:var(--shadow-3);gap:2px;padding:6px;display:grid;position:fixed}.ctx-menu button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.ctx-menu button:hover:not(:disabled){background:var(--surface-2)}.ctx-menu button:disabled{color:var(--ink-soft);cursor:default;opacity:.6}.ctx-menu button svg{color:var(--ink-2)}.ctx-menu .ctx-menu-danger{color:var(--danger)}.ctx-menu .ctx-menu-danger:hover:not(:disabled){background:var(--danger-soft)}.ctx-menu .ctx-menu-danger svg{color:var(--danger)}.ctx-menu-sep{background:var(--line);height:1px;margin:4px 2px}.cal-outlook-event{z-index:3;cursor:pointer;font-size:var(--fs-micro);color:var(--ink-2);background:color-mix(in oklab, #a384eb 16%, var(--mix-base));border-radius:var(--r-sm);border:1px dashed color-mix(in oklab, #a384eb 45%, var(--mix-base));white-space:nowrap;text-overflow:ellipsis;transition:box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);border-left:3px solid #a384eb;padding:3px 6px;position:absolute;overflow:hidden}.cal-outlook-event:hover{color:var(--ink);box-shadow:var(--shadow-1);border-left-color:#7257bf}a.ghost.outlook-connect{border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);background:var(--surface);transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);align-items:center;padding:8px 15px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}a.ghost.outlook-connect:hover{background:var(--surface-2)}.report-filters{gap:var(--sp-3);display:grid}.filter-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.filter-sep{flex:auto}.filter-label{color:var(--ink-soft);font-size:var(--fs-small);font-weight:500}.range-presets{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);flex-wrap:wrap;align-items:center;gap:2px;padding:3px;display:inline-flex}.range-preset{font:inherit;font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;border-radius:var(--r-pill);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:0 0;border:none;padding:6px 14px;font-weight:500}.range-preset:hover{color:var(--ink)}.range-preset.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-1);font-weight:600}.check-inline{font-size:var(--fs-body);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.rep-stats{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.rep-stat{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);gap:var(--sp-1);align-content:start;display:grid}.rep-stat-label{font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.rep-stat-value{color:var(--ink);font-size:19px;font-weight:600;line-height:1.2}.rep-stat-value .unit{color:var(--ink-soft);margin-left:3px;font-size:13px;font-weight:600}.rep-stat.accent{background:var(--accent-soft);border-color:#0000}.rep-stat.accent .rep-stat-value{color:var(--accent-ink)}.rep-stat.accent .rep-stat-label{color:var(--accent-ink);opacity:.85}.rep-chart{margin-bottom:var(--sp-5)}.rep-chart-head{font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:var(--sp-2);font-weight:600}.rep-groupby{margin-bottom:var(--sp-3)}.rep-table-wrap{overflow-x:auto}.sort-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sort-th:hover{color:var(--ink)}.sort-arrow{color:var(--line-strong);font-size:10px}.sort-th:hover .sort-arrow{color:var(--ink-soft)}.sort-th.active .sort-arrow{color:var(--accent)}.rep-row-clickable{cursor:pointer}.rep-row-clickable:hover{background:var(--surface-2)}tr.rep-group-row{cursor:pointer}tr.rep-group-row:hover td{background:var(--surface-2)}.rep-group-toggle{color:var(--ink);align-items:center;gap:6px;font-weight:600;display:inline-flex}.rep-caret{color:var(--ink-soft);text-align:center;width:10px;font-size:10px;display:inline-block}.margin-pos{color:var(--ok-strong);font-weight:700}.margin-neg{color:var(--danger-strong);font-weight:700}.byday-chart{position:relative}.byday-chart svg{width:100%;height:148px;display:block;overflow:visible}.byday-bar{transition:opacity var(--dur) var(--ease)}.flate-empty{text-align:center;color:var(--ink-soft);padding:var(--sp-8) var(--sp-4);font-size:var(--fs-body);line-height:1.5}.flate-empty .emoji{margin-bottom:var(--sp-2);opacity:.85;font-size:26px;display:block}.notice.notice-error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger-strong)}.salary-cost{margin-top:var(--sp-4);border-top:1px solid var(--line);padding-top:var(--sp-4)}.salary-cost-title{gap:var(--sp-2);cursor:pointer;align-items:center;font-weight:600;display:flex}.cost-field{align-items:center;gap:6px;display:inline-flex}.cost-field .num-input{width:70px}.num-input{width:90px}.cost-preview{color:var(--ink);font-weight:600}.cost-preview .tabular{color:var(--accent-strong)}.md-table-card{padding:0;overflow-x:auto}.md-fixed{table-layout:fixed;width:100%;min-width:950px}.md-fixed th,.md-fixed td{overflow:hidden}.md-fixed .type-select-wrap{width:100%;display:flex}.md-fixed .type-select{flex:1;min-width:0;max-width:100%}.md-fixed .product-input{box-sizing:border-box;width:100%}.fav-star{cursor:pointer;color:var(--line-strong);transition:color var(--dur) var(--ease), transform var(--dur) var(--ease);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:15px;line-height:1}.fav-star:hover{color:#e0a92b;transform:scale(1.15)}.fav-star.on{color:#f0b429}.fav-card{gap:var(--sp-3);display:grid}.fav-head{gap:2px;display:grid}.fav-head h2{margin:0}.fav-list{gap:var(--sp-2);display:grid}.fav-chip{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);align-items:center;gap:8px;padding:7px 10px 7px 12px;display:flex}.fav-chip:hover{border-color:var(--accent);background:var(--surface)}.fav-chip-main{cursor:grab;text-align:left;min-width:0;font:inherit;font-size:var(--fs-small);color:var(--ink);background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;font-weight:500;display:flex}.fav-chip-main:active{cursor:grabbing}.fav-chip .dot{flex-shrink:0}.fav-chip-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.fav-chip-name{white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left}.fav-chip-cust{font-size:var(--fs-micro);color:var(--ink-soft);white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left}.fav-dur{font-size:var(--fs-small);color:var(--ink-soft);border-left:1px solid var(--line);flex-shrink:0;align-items:center;gap:3px;padding-left:8px;display:inline-flex}.fav-dur input{text-align:right;width:44px;font:inherit;font-size:var(--fs-small);border:1px solid var(--line-strong);border-radius:var(--r-xs);background:var(--surface);color:var(--ink);padding:3px 5px}.md-name{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.md-color{flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.md-color-input{appearance:none;cursor:pointer;background:0 0;border:none;border-radius:50%;width:15px;height:15px;padding:0}.md-color-input::-webkit-color-swatch-wrapper{padding:0}.md-color-input::-webkit-color-swatch{border:1px solid var(--line-strong);border-radius:50%}.md-color-input::-moz-color-swatch{border:1px solid var(--line-strong);border-radius:50%}.md-color-reset{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.md-color-reset:hover{color:var(--ink)}.md-name>span:not(.dot):not(.muted){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-name .muted{flex-shrink:0}.md-overflow-note{padding:var(--sp-3) var(--sp-4);margin:0}.search-input{min-width:240px;max-width:420px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex:240px;padding:8px 11px}.search-input:hover{border-color:var(--line-hover)}.search-input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.product-input,.domain-input{font:inherit;font-size:var(--fs-small);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:6px 9px}.product-input{width:72px}.domain-input{width:180px}.product-input:hover,.domain-input:hover{border-color:var(--line-hover)}.product-input:focus,.domain-input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.active-pill{font:inherit;font-size:var(--fs-small);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:4px 12px;font-weight:600}.active-pill.on{color:var(--ok);background:#e3f1ea;border-color:#b9d8cc}.active-pill.off{color:var(--danger);background:#f9e8e4;border-color:#e3c0b8}.color-cell{align-items:center;gap:6px;display:inline-flex}.color-cell input[type=color]{border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;background:0 0;width:28px;height:26px;padding:0}tr.inactive-row td{opacity:.45}.card-head{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.card-head h2{flex:auto;margin:0}.count-chips{gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-3);flex-wrap:wrap;display:flex}.sync-output{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-3);margin:var(--sp-3) 0 0;max-height:240px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-small);color:var(--ink-2);line-height:1.5;overflow:auto}.user-employee{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:inline-flex}.integration-head{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.integration-head h2{font-size:var(--fs-h2);flex:auto;margin:0}.integration-actions{gap:var(--sp-2);display:flex}.integration-meta{color:var(--ink-soft);font-size:var(--fs-small);margin:var(--sp-1) 0 0}.integration-form{gap:var(--sp-2);margin-top:var(--sp-3);max-width:440px;display:grid}.integration-form label{gap:3px;display:grid}.err-cell{word-break:break-word}.nowrap{white-space:nowrap}.type-tag{font-size:var(--fs-small);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.budget-extra{color:var(--warn);white-space:nowrap}.desc-suggest{margin-top:calc(-1 * var(--sp-2));border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);max-height:220px;padding:4px;display:grid;overflow-y:auto}.desc-suggest .picker-item:hover,.desc-suggest .picker-item.active{background:var(--accent-soft)}.desc-suggest .picker-sub{flex-shrink:0}.popup-extra{font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;line-height:1.3;display:inline-flex}.popup-extra input{accent-color:var(--accent);margin:0}.popup-extra strong{color:var(--ink);font-weight:600}.budget-warning{align-items:center;gap:var(--sp-3);background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn);border-radius:var(--r-sm);padding:var(--sp-3);font-size:var(--fs-small);flex-wrap:wrap;line-height:1.4;display:flex}.budget-warning strong{color:var(--warn)}.budget-warning button{flex-shrink:0;margin-left:auto}.budget-warning.accepted{background:var(--surface-2);border-color:var(--line);color:var(--ink-soft)}.budget-warning.accepted strong{color:var(--ink)}.nav-dropdown{position:relative}.nav-dropdown .nav-caret{opacity:.7;margin-left:2px}.nav-menu{z-index:60;min-width:210px;padding:var(--sp-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);gap:1px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.nav-menu button{font:inherit;font-size:var(--fs-body);text-align:left;cursor:pointer;color:var(--ink);border-radius:var(--r-sm);background:0 0;border:none;padding:9px 12px}.nav-menu button:hover{background:var(--surface-2)}.rep-header{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.rep-header h1{margin:0}.rep-subnav{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.rep-subnav-btn{font:inherit;font-size:var(--fs-small);color:var(--ink-2);cursor:pointer;border-radius:var(--r-pill);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:0 0;border:none;padding:6px 14px;font-weight:500}.rep-subnav-btn:hover{color:var(--ink)}.rep-subnav-btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-1);font-weight:600}.fr-status{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.fr-status-btn{font:inherit;font-size:var(--fs-small);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:var(--r-pill);white-space:nowrap;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:4px 10px;font-weight:500}.fr-status-btn:hover{color:var(--ink)}.fr-status-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-1);font-weight:600}.fr-status-btn[data-status=done].active{color:#fff;background:#17915c;border-color:#17915c}.fr-status-btn[data-status=declined].active{color:#fff;background:#c0433a;border-color:#c0433a}.fr-status-new{font-size:var(--fs-small);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 8px}.filter-panel{gap:var(--sp-4);display:grid}.filter-top{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.filter-dates{align-items:center;gap:var(--sp-2);display:flex}.filter-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.filter-field{flex-direction:column;gap:5px;min-width:0;display:flex}.filter-field>span{font-size:var(--fs-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.filter-field select,.filter-field input{width:100%}.filter-search{grid-column:span 2}.filter-bottom{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.filter-rounding{max-width:220px}.dept-bars{gap:var(--sp-3);margin-top:var(--sp-2);display:grid}.dept-bar-row{align-items:center;gap:var(--sp-3);grid-template-columns:120px 1fr 72px;display:grid}.dept-bar-label{font-size:var(--fs-small);font-weight:500}.dept-bar-track{background:var(--surface-2);border-radius:var(--r-xs);height:22px;overflow:hidden}.dept-bar-fill{border-radius:var(--r-xs);min-width:2px;height:100%;transition:width var(--dur-slow) var(--ease)}.dept-bar-billable{border-radius:var(--r-xs);height:100%}.dept-bar-value{font-size:var(--fs-small);text-align:right;color:var(--ink-2)}.dept-bar-legend{margin-top:var(--sp-3);font-size:var(--fs-micro);align-items:center;gap:6px;display:flex}.dept-legend-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.dept-legend-swatch.billable{background:var(--ink-2)}.dept-legend-swatch.total{background:var(--surface-3);margin-left:var(--sp-3)}.dept-name{align-items:center;gap:var(--sp-2);display:inline-flex}.rep-detail-head{margin-bottom:var(--sp-3)}.rep-groupby{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.budget-bar{align-items:center;gap:var(--sp-2);display:flex}.budget-bar-track{border-radius:var(--r-pill);background:var(--surface-2);flex:1;min-width:60px;height:8px;overflow:hidden}.budget-bar-fill{border-radius:var(--r-pill);background:var(--ok);height:100%;transition:width var(--dur-slow) var(--ease)}.budget-bar.warn .budget-bar-fill{background:var(--warn)}.budget-bar.over .budget-bar-fill{background:var(--danger)}.budget-bar-num{font-size:var(--fs-micro);white-space:nowrap}.budget-detail{gap:var(--sp-3);font-size:var(--fs-micro);margin-top:3px;display:flex}.proj-summary{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.util-track{height:22px}tr.md-expandable{cursor:pointer}tr.md-expandable:hover td{background:var(--surface-2)}.md-toolbar{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.md-toolbar select{max-width:190px}.md-toolbar .ss.ss-inline .ss-input{max-width:210px}.md-subtable-row>td{background:var(--surface-2);padding:0!important}.md-subtable{padding:var(--sp-2) var(--sp-3) var(--sp-3) var(--sp-7)}.md-subtable table{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)}.md-subtable th{font-size:var(--fs-micro)}.pager{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-3);display:flex}.cal-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.cal-main{min-width:0}.cal-side{gap:var(--sp-3);top:calc(56px + var(--sp-4));max-height:calc(100vh - 56px - var(--sp-4) * 2);overscroll-behavior:contain;scrollbar-width:thin;align-content:start;margin:-2px -4px -6px -2px;padding:2px 4px 6px 2px;display:grid;position:sticky;overflow-y:auto}.cal-week-stat{gap:2px;display:grid}.cal-week-stat .overview-label{font-size:var(--fs-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.cal-week-stat .overview-value{font-size:var(--fs-h1);font-weight:600}@media (width<=1100px){.cal-layout{grid-template-columns:1fr}.cal-side{max-height:none;position:static;overflow:visible}}.fab-feedback{z-index:55;cursor:pointer;background:var(--accent);color:#fff;width:52px;height:52px;box-shadow:var(--shadow-3);transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease);border:none;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:22px;right:22px}.fab-feedback:hover{background:var(--accent-strong,#4f46e5);transform:translateY(-2px)}.feedback-panel{z-index:56;gap:var(--sp-2);width:320px;max-width:calc(100vw - 44px);box-shadow:var(--shadow-3);display:grid;position:fixed;bottom:86px;right:22px}.feedback-head{justify-content:space-between;align-items:center;display:flex}.feedback-text{font:inherit;box-sizing:border-box;resize:vertical;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);padding:8px 10px}.feedback-text:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.feedback-actions{justify-content:flex-end;display:flex}.feedback-thanks{margin:var(--sp-2) 0}.desktop-update{flex-direction:column;align-items:center;gap:4px;display:flex}.ss{width:100%;display:block;position:relative}.ss-input{width:100%;min-width:0;font:inherit;font-size:var(--fs-small);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:8px 11px;display:flex}.ss-input:hover{border-color:var(--line-hover)}.ss-input:disabled{opacity:.55;cursor:not-allowed}.ss.ss-inline{vertical-align:middle;width:auto;display:inline-flex}.ss.ss-inline .ss-input{width:auto;min-width:160px}.ss-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ss-value-sub{color:var(--ink-soft)}.ss-menu{z-index:40;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);width:max(100%,240px);box-shadow:var(--shadow-2);position:absolute;top:calc(100% + 4px);left:0;overflow:hidden}.ss-search{box-sizing:border-box;border:none;border-bottom:1px solid var(--line);width:100%;font:inherit;outline:none;padding:8px 11px}.ss-list{max-height:280px;overflow-y:auto}.ss-opt{text-align:left;cursor:pointer;width:100%;font:inherit;font-size:var(--fs-small);color:var(--ink);background:0 0;border:none;flex-direction:column;padding:7px 11px;display:flex}.ss-opt:hover{background:var(--surface-2)}.ss-opt.active{background:var(--accent-soft)}.ss-opt.on{background:var(--accent-soft);color:var(--accent-strong)}.ss-opt-sub{font-size:var(--fs-micro);color:var(--ink-soft)}.ss-empty{padding:10px 11px}.cpr-toolbar{justify-content:space-between;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;display:flex}.cpr-customer{gap:4px;display:grid}.cpr-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.cpr-dates{align-items:center;gap:6px;display:inline-flex}.cpr-groupby{align-items:center;gap:var(--sp-2);display:inline-flex}.cpr-groupby .filter-label{margin:0}.cpr-export{justify-content:center;align-items:center;gap:6px;min-width:96px;display:inline-flex}.cpr-pills{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.cpr-section-head{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:8px;display:flex}.budget-meter{align-items:center;gap:10px;min-width:220px;display:inline-flex}.budget-meter-track{background:var(--surface-2);border-radius:999px;flex:none;width:130px;height:7px;position:relative;overflow:hidden}.budget-meter-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .2s;position:absolute;inset:0 auto 0 0}.budget-meter.near .budget-meter-fill{background:#d98a1f}.budget-meter.over .budget-meter-track{background:#f6d6d6}.budget-meter.over .budget-meter-fill{background:#cc3d3d}.budget-meter-label{font-size:var(--fs-small);color:var(--ink-soft);white-space:nowrap}.budget-meter-pct{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:8px;font-weight:600}.budget-meter.near .budget-meter-pct{color:#b5761a}.budget-meter.over .budget-meter-pct{color:#cc3d3d}.wr-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.wr-head h1{margin:0}.wr-weeknav{align-items:center;gap:var(--sp-2);display:inline-flex}.wr-week{white-space:nowrap;font-weight:600}.wr-stats{gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.wr-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex:1;gap:4px;min-width:150px;padding:12px 16px;display:grid}.wr-stat-label{font-size:var(--fs-small);color:var(--ink-soft)}.wr-stat-value{font-size:22px;font-weight:700}.wr-section{margin-bottom:var(--sp-3)}.wr-section h2{align-items:center;gap:8px;margin-top:0;display:flex}.wr-ok{color:var(--ok-strong);align-items:center;gap:8px;display:inline-flex}.wr-clickrow{cursor:pointer}.wr-clickrow:hover{background:var(--surface-2)}.wr-days{gap:8px;display:grid}.wr-day{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:14px;margin:0 -6px;padding:4px 6px;display:flex}.wr-day:hover{background:var(--surface-2)}.wr-flexcell{flex:none;align-items:center;gap:8px;display:inline-flex}.wr-day-name{font-size:var(--fs-small);flex:0 0 150px}.wr-day-bar{background:var(--surface-2);border-radius:999px;flex:auto;height:8px;display:flex;position:relative;overflow:hidden}.wr-day-seg{height:100%}.wr-day-seg.worked{background:#a384ea}.wr-day-seg.worked.under{background:#d98a1f}.wr-day-seg.flex{background:#3aa76d}.wr-day-hours{text-align:right;font-size:var(--fs-small);color:var(--ink-soft);flex:none;margin-left:auto}.wr-ot{color:#7257bf;font-weight:600}.wr-flexnote{color:#3aa76d;font-weight:600}.wr-flexinput{font-size:var(--fs-small);white-space:nowrap;justify-self:end;align-items:center;gap:5px;display:inline-flex}.wr-flexinput input{text-align:right;width:64px;font:inherit;font-size:var(--fs-small);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:4px 6px}.wr-flexinput input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.wr-transfer{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.wr-fail{margin:6px 0 0;padding-left:18px}.wr-expand{align-items:center;gap:6px;font-weight:600;display:inline-flex}.wr-subrow>td{background:var(--surface-2);font-size:var(--fs-small)}.wr-subrow-cell{padding-left:20px}.wr-weekgrid{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.wr-weekcell{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:84px;height:46px;font-size:var(--fs-small);color:var(--ink);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-weight:600;display:flex;position:relative}.wr-weekcell-no{font-size:var(--fs-small);font-weight:600}.wr-weekcell-dates{font-size:var(--fs-micro);opacity:.8;font-weight:400}.wr-weekcell.done{background:var(--ok-soft);border-color:var(--ok-soft);color:var(--ok-strong)}.wr-weekcell.partial{color:#8a5a12;background:#fbe9d3;border-color:#f0cfa0}.wr-weekcell.current{background:repeating-linear-gradient(45deg, var(--surface-2), var(--surface-2) 4px, var(--surface) 4px, var(--surface) 8px)}.wr-weekcell.sel{outline:2px solid var(--accent);outline-offset:1px}.wr-weekcell-badge{color:#fff;background:#cc3d3d;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;display:flex;position:absolute;top:-5px;right:-5px}.wr-legend{font-size:var(--fs-small);color:var(--ink-soft);flex-wrap:wrap;gap:16px;display:flex}.wr-legend span{align-items:center;gap:6px;display:inline-flex}.wr-dot{border-radius:3px;width:12px;height:12px;display:inline-block}.wr-dot.done{background:var(--ok-strong)}.wr-dot.partial{background:#d98a1f}.wr-dot.current{background:var(--line-strong)}.filter-pill{font:inherit;font-size:var(--fs-small);cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:var(--r-pill);transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);padding:6px 14px;font-weight:500}.filter-pill:hover{border-color:var(--accent);color:var(--ink)}.filter-pill.on{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .topbar .brand img,:root[data-theme=dark] .login-card .brand-logo,:root[data-theme=dark] .desktop-logo{filter:invert()hue-rotate(180deg)}:root[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23a8a8bc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme=dark] .spinner.dark{border-color:#ffffff2e;border-top-color:var(--accent)}:root[data-theme=dark] .act-onoff.off.active{color:#ef9a93;background:#452a28;border-color:#703a3d}:root[data-theme=dark] .act-onoff.on.active{color:#5fce9c;background:#1d3c30;border-color:#33624c}:root[data-theme=dark] .active-pill.on{background:var(--ok-soft);color:var(--ok-strong);border-color:#33624c}:root[data-theme=dark] .active-pill.off{background:var(--danger-soft);color:var(--danger-strong);border-color:#703a3d}:root[data-theme=dark] .billable-pill.on{border-color:#33624c}:root[data-theme=dark] .billable-pill.off{border-color:#703a3d}:root[data-theme=dark] .cal-block.needs-project{border-left-color:#e79b3a;outline-color:#8a5f1e}:root[data-theme=dark] .cal-block-warn{color:#e7a35a}:root[data-theme=dark] .wr-weekcell.partial{color:#dfa64f;background:#40341b;border-color:#5e4c26}:root[data-theme=dark] .wr-ot{color:#ab93f2}:root[data-theme=dark] .budget-meter.over .budget-meter-track{background:#452a28}:root[data-theme=dark] .budget-meter.near .budget-meter-pct{color:#dfa64f}:root[data-theme=dark] .budget-meter.over .budget-meter-pct{color:#ef7c74}.pf-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pf-head h2{margin:0;font-size:1.15rem}.pf-head .muted{font-size:var(--fs-small)}.pf-back{border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:inherit;border-radius:8px;padding:4px 12px}.pf-back:hover{background:var(--surface-2)}.pf-section-head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:20px 0 4px;font-size:11.5px;font-weight:700;display:flex}.pf-group-row td{background:var(--surface-2);font-weight:600;font-size:var(--fs-small)}.pf-text-row td{color:var(--ink-soft);font-style:italic}.pf-row-selected td{background:color-mix(in oklab, var(--accent) 8%, var(--surface))}.pf-actionbar{background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:12px 0 4px;display:flex;position:sticky;bottom:0}.pf-actionbar .muted{font-size:var(--fs-small);margin-left:auto}.pf-btn{border:1px solid var(--line-strong);background:var(--surface);color:inherit;font:inherit;cursor:pointer;border-radius:8px;padding:6px 14px;font-weight:600}.pf-btn:hover:not(:disabled){background:var(--surface-2)}.pf-btn:disabled{opacity:.45;cursor:default}.pf-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.pf-btn.primary:hover:not(:disabled){background:var(--accent-strong,var(--accent))}.pf-dialog-backdrop{z-index:90;background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.pf-dialog{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:min(500px,92vw);padding:20px;box-shadow:0 12px 40px #00000040}.pf-dialog h3{margin:0 0 10px}.pf-dialog .pf-dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.pf-desc-input{width:100%;font:inherit;border:1px solid var(--line-strong);background:var(--surface);color:inherit;border-radius:7px;padding:6px 8px}.pf-inline-edit{width:100%;font:inherit;border:1px solid var(--accent);background:var(--surface);color:inherit;border-radius:5px;padding:2px 6px}.pf-error{color:var(--danger,#b3261e);font-size:var(--fs-small)}.pf-check{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.pf-merged-badge{cursor:help}tr.cpr-extra-row td{color:var(--ink-soft)}.cpr-extra-badge{background:var(--warn-soft);color:var(--warn);margin-left:8px}.pf-order-pill{background:var(--accent-soft,#ede9fe);color:var(--accent-strong,var(--accent))}.pf-pill-btn{cursor:pointer;font:inherit;background:var(--surface-2);color:var(--ink-soft);border:none;font-size:11px;font-weight:700}.pf-pill-btn:hover:not(:disabled){background:var(--warn-soft);color:var(--warn)}.pf-pill-btn:disabled{opacity:.45;cursor:default}.pf-budget{flex-wrap:wrap;align-items:center;gap:14px;margin:2px 0 10px;display:flex}.pf-budget-title{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:11.5px;font-weight:700}.pf-budget .budget-meter{flex:0 420px}.pf-budget-left{font-size:var(--fs-small)}.pf-pdf-btn{cursor:pointer;font:inherit;background:var(--accent-soft,#ede9fe);color:var(--accent-strong,var(--accent));border:none;font-size:11px;font-weight:700}.pf-pdf-btn:hover{filter:brightness(.96);text-decoration:underline}.pf-loading{justify-content:center;padding:32px 0 24px;display:flex}.spinner.lg{border-width:3px;width:26px;height:26px}.pf-overview-wrap{overflow:visible}.pf-overview-table thead th{z-index:5;background:var(--surface);box-shadow:inset 0 -1px 0 var(--line);position:sticky;top:56px}
