:root{color-scheme:dark;--est-es-blue: #1ea7e0;--est-es-teal: #3eb6a1;--est-es-green: #6cc04a;--est-es-orange: #d9853f;--est-bg: #0b0d10;--est-bg-elev: #0f1216;--est-surface: #161a1f;--est-surface-2: #1c2129;--est-line: #2a2f37;--est-line-strong: #3a4049;--est-line-focus: var(--est-es-blue);--est-ink: #e7eaef;--est-ink-soft: #c4c9d2;--est-muted: #8b929e;--est-placeholder: #5e6571;--est-accent: var(--est-es-blue);--est-accent-ink: #ffffff;--est-accent-hover: #2bb3ec;--est-warn-bg: #2a2310;--est-warn-line: #5a4c20;--est-warn-ink: #e8c97a;--est-ok-bg: #122a23;--est-ok-line: #2d6655;--est-ok-ink: #76d3a8;--est-err: #ff7a7a;--est-err-bg: #2a1414;--est-err-line: #5a2424;--est-radius: 8px;--est-radius-lg: 12px;--est-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--est-shadow-md: 0 4px 16px rgba(0, 0, 0, .45)}:root[data-theme=light]{color-scheme:light;--est-bg: #f4f6f9;--est-bg-elev: #ffffff;--est-surface: #ffffff;--est-surface-2: #eef1f5;--est-line: #d6dbe2;--est-line-strong: #b3bac4;--est-ink: #1a1d22;--est-ink-soft: #3e4550;--est-muted: #6a727f;--est-placeholder: #9aa1ac;--est-accent-ink: #ffffff;--est-warn-bg: #fdf3dd;--est-warn-line: #d4ba6d;--est-warn-ink: #7a5817;--est-ok-bg: #dff3e8;--est-ok-line: #8cc7a9;--est-ok-ink: #166441;--est-err: #c43030;--est-err-bg: #fce3e3;--est-err-line: #d59c9c;--est-shadow-sm: 0 1px 2px rgba(20, 26, 35, .06);--est-shadow-md: 0 4px 14px rgba(20, 26, 35, .1)}:root[data-palette=graphite]{--est-bg: #17181a;--est-bg-elev: #1b1d1f;--est-surface: #1f2124;--est-surface-2: #26292d;--est-line: #34383d;--est-line-strong: #454a50;--est-line-focus: var(--est-accent);--est-ink: #ecebe8;--est-ink-soft: #c6c5c1;--est-muted: #8d8b86;--est-placeholder: #63615c;--est-accent: #5aa0dc;--est-accent-ink: #0b0f14;--est-accent-hover: #6fb0e6;--est-warn-bg: #2b2513;--est-warn-line: #5c5024;--est-warn-ink: #e6cd88;--est-ok-bg: #16271f;--est-ok-line: #2f6152;--est-ok-ink: #79c6a0;--est-err: #ef8a86;--est-err-bg: #2a1614;--est-err-line: #5a2624}:root[data-palette=graphite][data-theme=light]{--est-bg: #f3f3f1;--est-bg-elev: #ffffff;--est-surface: #ffffff;--est-surface-2: #ececea;--est-line: #dbdbd7;--est-line-strong: #bcbcb6;--est-line-focus: var(--est-accent);--est-ink: #1e1e1c;--est-ink-soft: #45463f;--est-muted: #74736c;--est-placeholder: #a2a19a;--est-accent: #2f7fc0;--est-accent-ink: #ffffff;--est-accent-hover: #3f8fce;--est-warn-bg: #f6efdb;--est-warn-line: #d6bd72;--est-warn-ink: #6f5312;--est-ok-bg: #e2f0e6;--est-ok-line: #8cc7a9;--est-ok-ink: #1c6444;--est-err: #c23a30;--est-err-bg: #fbe4e2;--est-err-line: #d59c9c}:root[data-palette=teal]{--est-bg: #081311;--est-bg-elev: #0b1a16;--est-surface: #10201b;--est-surface-2: #163029;--est-line: #234a41;--est-line-strong: #2f6157;--est-line-focus: var(--est-accent);--est-ink: #e6f0ec;--est-ink-soft: #bcd4cc;--est-muted: #7fa398;--est-placeholder: #5b7d72;--est-accent: #3eb6a1;--est-accent-ink: #04140f;--est-accent-hover: #4fc7b1;--est-warn-bg: #29260f;--est-warn-line: #55501f;--est-warn-ink: #e6cf83;--est-ok-bg: #0e2a20;--est-ok-line: #2c6a54;--est-ok-ink: #8fe0bc;--est-err: #ff8b8b;--est-err-bg: #2a1414;--est-err-line: #5a2424}:root[data-palette=teal][data-theme=light]{--est-bg: #eef4f2;--est-bg-elev: #ffffff;--est-surface: #ffffff;--est-surface-2: #e5efec;--est-line: #d0e0da;--est-line-strong: #a9c6bd;--est-line-focus: var(--est-accent);--est-ink: #14201c;--est-ink-soft: #35504a;--est-muted: #5f857b;--est-placeholder: #94b0a7;--est-accent: #1f8f7c;--est-accent-ink: #ffffff;--est-accent-hover: #29a08c;--est-warn-bg: #f6efd8;--est-warn-line: #cdb968;--est-warn-ink: #6b5310;--est-ok-bg: #d9f0e5;--est-ok-line: #83c4a8;--est-ok-ink: #14624a;--est-err: #c23a3a;--est-err-bg: #fce2e2;--est-err-line: #d59c9c}:root[data-palette=copper]{--est-bg: #14100c;--est-bg-elev: #191309;--est-surface: #1e1811;--est-surface-2: #271f16;--est-line: #3a2f22;--est-line-strong: #4d3f2e;--est-line-focus: var(--est-accent);--est-ink: #f0e9df;--est-ink-soft: #d0c4b3;--est-muted: #9a8b76;--est-placeholder: #6f624f;--est-accent: #dd8a44;--est-accent-ink: #14100c;--est-accent-hover: #ea9a54;--est-warn-bg: #2c2510;--est-warn-line: #6a5320;--est-warn-ink: #ecc978;--est-ok-bg: #182417;--est-ok-line: #3d5f38;--est-ok-ink: #86c98f;--est-err: #e8695a;--est-err-bg: #2a1512;--est-err-line: #5a2822}:root[data-palette=copper][data-theme=light]{--est-bg: #f6f1ea;--est-bg-elev: #fffdfa;--est-surface: #fffdfa;--est-surface-2: #efe7db;--est-line: #e0d5c4;--est-line-strong: #c3b39b;--est-line-focus: var(--est-accent);--est-ink: #241d13;--est-ink-soft: #4d4335;--est-muted: #857661;--est-placeholder: #b0a189;--est-accent: #b56a25;--est-accent-ink: #ffffff;--est-accent-hover: #c67a33;--est-warn-bg: #f6ecd2;--est-warn-line: #cdaf63;--est-warn-ink: #6d4f13;--est-ok-bg: #e6efdd;--est-ok-line: #a3c58f;--est-ok-ink: #3f6a2e;--est-err: #c14a35;--est-err-bg: #f9e4de;--est-err-line: #dcb0a3}:root[data-palette=arctic]{--est-bg: #232a33;--est-bg-elev: #283039;--est-surface: #2b333d;--est-surface-2: #333c47;--est-line: #3f4a58;--est-line-strong: #4c5a6b;--est-line-focus: var(--est-accent);--est-ink: #e5ecf3;--est-ink-soft: #c3cdd9;--est-muted: #8b97a6;--est-placeholder: #667284;--est-accent: #88c0d0;--est-accent-ink: #1b222b;--est-accent-hover: #9ad0de;--est-warn-bg: #3a3524;--est-warn-line: #665c39;--est-warn-ink: #ebcb8b;--est-ok-bg: #2c3a2c;--est-ok-line: #55704a;--est-ok-ink: #a3be8c;--est-err: #bf616a;--est-err-bg: #382026;--est-err-line: #6b3a41}:root[data-palette=arctic][data-theme=light]{--est-bg: #eef1f5;--est-bg-elev: #ffffff;--est-surface: #ffffff;--est-surface-2: #e4e9f0;--est-line: #d3dbe6;--est-line-strong: #aeb9c9;--est-line-focus: var(--est-accent);--est-ink: #1a2230;--est-ink-soft: #3b4759;--est-muted: #667286;--est-placeholder: #9aa6b8;--est-accent: #3b7ea0;--est-accent-ink: #ffffff;--est-accent-hover: #478db0;--est-warn-bg: #f3edd6;--est-warn-line: #cbb66d;--est-warn-ink: #665019;--est-ok-bg: #e6eddd;--est-ok-line: #a6bd8e;--est-ok-ink: #4a6b2f;--est-err: #b0434c;--est-err-bg: #f8e3e5;--est-err-line: #d9a8ac}:where(body) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):focus,:where(body) select:focus,:where(body) textarea:focus{outline:none;border-color:var(--est-line-focus);box-shadow:0 0 0 3px #1ea7e02e}:where(body) input[type=checkbox],:where(body) input[type=radio]{accent-color:var(--est-accent)}:where(body) input:focus-visible,:where(body) select:focus-visible,:where(body) textarea:focus-visible{outline:2px solid var(--est-accent);outline-offset:0}#es-topbar,.est-topbar{min-height:128px;box-sizing:border-box}.est-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 2rem;border-bottom:1px solid var(--est-line);margin-bottom:1.5rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--est-ink)}.est-topbar-left{display:flex;align-items:center;gap:1.25rem}.est-topbar-right{display:flex;align-items:center;gap:1.5rem}.est-topbar-cell-extras{display:flex;flex-direction:column;gap:.5rem;align-items:stretch;justify-content:center}.est-brand{display:flex;align-items:center;gap:.83rem;color:var(--est-ink);text-decoration:none}.est-brand .est-brand-logo{height:96px;width:auto;display:block}.est-brand .est-brand-secondary{height:48px;width:auto;display:block;padding-left:1.25rem;border-left:1px solid var(--est-line)}.est-brand-link{display:flex;align-items:center;text-decoration:none;color:var(--est-ink)}.est-pending{display:inline-flex;flex-direction:column;align-items:stretch;gap:5px;width:max-content;padding:8px 9px 9px;background:var(--est-surface-2);border:1px solid var(--est-line);border-radius:11px;font:inherit;font-size:.85rem;line-height:1.2;cursor:pointer;white-space:nowrap;text-decoration:none;color:var(--est-ink);transition:filter .15s ease,border-color .15s ease}.est-pending:hover{filter:brightness(1.08);border-color:var(--est-line-strong)}.est-pending-loading{opacity:.55;pointer-events:none}.est-pending-label{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--est-muted);margin:0 2px 1px}.est-pending-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:118px;padding:4px 11px;border:1px solid transparent;border-radius:999px;font-size:.8rem;font-variant-numeric:tabular-nums}.est-pending-row-label{font-weight:500;color:var(--est-ink-soft)}.est-pending-row-count{font-weight:700}.est-pending-row.time{background:#1ea7e026;border-color:#1ea7e06b;color:#1ea7e0}.est-pending-row.exp{background:#3eb6a126;border-color:#3eb6a175;color:#3eb6a1}.est-pending-row.inv{background:#d9853f26;border-color:#d9853f75;color:#d9853f}.est-pending-row.zero{background:#ffffff09;border-color:transparent;color:var(--est-muted)}:root[data-theme=light] .est-pending-row.zero{background:#00000009}.est-pending-caught{font-size:.8rem;font-weight:600;color:var(--est-ok-ink);text-align:center;margin-top:2px;padding:2px 2px 1px}.est-pending.caught-up{background:var(--est-ok-bg);border-color:var(--est-ok-line)}.est-topbar-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .95rem;background:var(--est-ok-bg);border:1px solid var(--est-ok-line);color:var(--est-ok-ink);border-radius:10px;font-size:.85rem;font-weight:500;white-space:nowrap;line-height:1.25;text-decoration:none;cursor:pointer;transition:border-color .15s ease}.est-topbar-indicator:hover{border-color:var(--est-ok-ink)}.est-topbar-indicator-dot{width:8px;height:8px;border-radius:50%;background:var(--est-ok-ink);box-shadow:0 0 0 3px #76d3a82e;flex-shrink:0}.est-topbar-indicator-error{background:var(--est-err-bg);border-color:var(--est-err-line);color:var(--est-err)}.est-topbar-indicator-error:hover{border-color:var(--est-err)}.est-topbar-indicator-error .est-topbar-indicator-dot{background:var(--est-err);box-shadow:0 0 0 3px #ff7a7a2e;animation:est-indicator-pulse 1.4s ease-in-out infinite}@keyframes est-indicator-pulse{0%,to{opacity:1}50%{opacity:.4}}.est-topbar-signout{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .95rem;background:transparent;border:1px solid var(--est-line);border-radius:999px;color:var(--est-accent);cursor:pointer;font:inherit;font-size:.82rem;font-weight:500;white-space:nowrap;transition:background .12s ease,color .12s ease,border-color .12s ease}.est-topbar-signout:hover{color:var(--est-accent-hover);border-color:var(--est-line-strong);background:var(--est-bg-elev)}.est-topbar-signout:focus-visible{outline:2px solid var(--est-accent);outline-offset:1px}.est-theme-toggle{position:relative;display:inline-block;cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}.est-theme-toggle input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer;z-index:1}.est-theme-toggle-track{position:relative;display:inline-block;width:46px;height:22px;border-radius:999px;background:var(--est-surface-2);border:1px solid var(--est-line);transition:background .18s ease,border-color .18s ease;vertical-align:middle}.est-theme-toggle:hover .est-theme-toggle-track{border-color:var(--est-line-strong)}.est-theme-toggle input:focus-visible+.est-theme-toggle-track{outline:2px solid var(--est-accent);outline-offset:2px}.est-theme-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--est-ink);transition:transform .18s ease,background .18s ease;box-shadow:0 1px 2px #00000040}.est-theme-toggle--dark .est-theme-toggle-knob{transform:translate(22px)}.est-theme-toggle-icon{position:absolute;top:50%;transform:translateY(-50%);font-family:Segoe UI Symbol,Apple Symbols,"Noto Sans Symbols 2","Segoe UI Emoji","Apple Color Emoji",system-ui,sans-serif;font-size:11px;line-height:1;opacity:.55;color:var(--est-ink-soft);pointer-events:none}.est-theme-toggle-icon-sun{left:5px}.est-theme-toggle-icon-moon{right:5px}.est-theme-controls{display:inline-flex;align-items:center;gap:.6rem}.est-palette{position:relative;display:inline-flex}.est-palette-gear{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;padding:0;background:none;border:0;border-radius:var(--est-radius);cursor:pointer;color:var(--est-muted);transition:color .12s ease}.est-palette-gear svg{width:16px;height:16px}.est-palette-gear:hover,.est-palette-gear.active{color:var(--est-ink-soft)}.est-palette-gear:focus-visible{outline:2px solid var(--est-accent);outline-offset:2px}.est-palette-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:140;width:200px;padding:6px;border:1px solid var(--est-line-strong);border-radius:var(--est-radius-lg);background:var(--est-surface);box-shadow:var(--est-shadow-md)}.est-palette-pop[hidden]{display:none}.est-palette-lab{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--est-muted);padding:3px 7px 7px}.est-palette-opts{display:flex;flex-direction:column;gap:2px}.est-palette-opt{display:flex;align-items:center;gap:9px;width:100%;padding:6px 7px;font:inherit;font-size:.78rem;text-align:left;color:var(--est-ink);background:none;border:1px solid transparent;border-radius:7px;cursor:pointer}.est-palette-opt:hover{background:var(--est-surface-2)}.est-palette-opt.selected{background:var(--est-surface-2);border-color:var(--est-line-strong)}.est-palette-opt:focus-visible{outline:2px solid var(--est-accent);outline-offset:1px}.est-palette-trio{display:inline-flex;flex:none}.est-palette-trio i{width:11px;height:17px;display:inline-block;border:1px solid rgba(128,128,128,.28);border-left:0}.est-palette-trio i:first-child{border-radius:4px 0 0 4px;border-left:1px solid rgba(128,128,128,.28)}.est-palette-trio i:last-child{border-radius:0 4px 4px 0}.est-palette-name{flex:1}.est-palette-check{color:var(--est-accent);font-size:11px;opacity:0}.est-palette-opt.selected .est-palette-check{opacity:1}.est-sidebar{width:240px;flex:0 0 240px;background:transparent;border:0;border-radius:0;padding:4px 0;display:flex;flex-direction:column;gap:.6rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--est-ink)}.est-sidebar-section{background:var(--est-surface);border:1px solid var(--est-line);border-radius:8px;padding:.6rem .55rem}.est-sidebar-heading{margin:4px 6px 8px;padding:0 0 0 6px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--est-muted);line-height:1.2}.est-sidebar-list{display:flex;flex-direction:column;gap:2px}.est-sidebar-item{display:block;width:100%;text-align:left;text-decoration:none;padding:9px 12px;border:0;border-radius:6px;background:transparent;color:var(--est-ink-soft);cursor:pointer;font:inherit;font-size:.86rem;position:relative;transition:background .12s ease,color .12s ease}.est-sidebar-item:hover{background:#1ea7e01a;color:var(--est-ink)}.est-sidebar-item:focus-visible{outline:2px solid var(--est-accent);outline-offset:1px}.est-sidebar-item.active{background:#1ea7e01a;color:var(--est-es-blue);font-weight:600;cursor:default}.est-sidebar-item.active:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--est-es-blue)}.est-sidebar-item.active:hover{background:#1ea7e024}.est-chrome-body{display:flex;gap:14px;padding:0 18px 18px;height:calc(100vh - 156px);min-height:0}.est-chrome-content{flex:1 1 auto;min-width:0;min-height:0;overflow:auto}.es-panel{background:var(--est-surface);border:1px solid var(--est-line);border-radius:var(--est-radius);box-shadow:var(--est-shadow-sm);padding:18px 20px;margin-bottom:16px}.es-panel-heading{margin:0 0 14px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--est-muted)}.es-page-title{margin:0;font-size:1.15rem;font-weight:600;color:var(--est-ink)}.es-page-lede{margin:2px 0 0;color:var(--est-muted);font-size:.85rem}@media (max-width: 960px){.est-topbar{flex-wrap:wrap;min-height:0}#es-topbar{min-height:0}.est-topbar-right{width:100%;justify-content:flex-start;flex-wrap:wrap;row-gap:.75rem}}@media (max-width: 640px){.est-topbar{padding:.75rem 1rem;gap:.75rem}.est-brand .est-brand-logo{height:64px}.est-brand .est-brand-secondary{height:36px;padding-left:.85rem}.est-topbar-right{column-gap:1rem}}:root{--bqe-css-recovery-revision: 20260820;--es-blue: var(--est-es-blue);--es-teal: var(--est-es-teal);--es-green: var(--est-es-green);--es-orange: var(--est-es-orange);--es-grad: linear-gradient(180deg, var(--es-blue) 0%, var(--es-teal) 50%, var(--es-green) 100%);--type-time: var(--es-blue);--type-expense: var(--es-teal);--type-invoice: var(--es-orange);--bg: var(--est-bg);--bg-elev: var(--est-bg-elev);--surface: var(--est-surface);--surface-2: var(--est-surface-2);--line: var(--est-line);--line-strong: var(--est-line-strong);--line-focus: var(--est-line-focus);--ink: var(--est-ink);--ink-soft: var(--est-ink-soft);--muted: var(--est-muted);--placeholder: var(--est-placeholder);--accent: var(--est-accent);--accent-ink: var(--est-accent-ink);--accent-hover: var(--est-accent-hover);--warn-bg: var(--est-warn-bg);--warn-line: var(--est-warn-line);--warn-ink: var(--est-warn-ink);--ok-bg: var(--est-ok-bg);--ok-line: var(--est-ok-line);--ok-ink: var(--est-ok-ink);--err: var(--est-err);--err-bg: var(--est-err-bg);--err-line: var(--est-err-line);--radius: var(--est-radius);--radius-lg: var(--est-radius-lg);--shadow-sm: var(--est-shadow-sm);--shadow-md: var(--est-shadow-md)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:none;margin:0;padding:0 2rem 4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);container-type:inline-size;width:100%}.card.narrow{max-width:28rem;margin:4rem auto}.card h2{margin:0 0 .5rem;font-size:1.15rem;font-weight:600}.card>p:first-of-type{margin-top:0}.banner{border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1.1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.4rem;font-size:.92rem}.banner.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink);flex-direction:row;justify-content:space-between;align-items:center}.banner.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.banner p{margin:0}.workspace{display:grid;grid-template-columns:195px minmax(0,1fr);gap:1.25rem;align-items:start}.workspace>section{min-width:0;container:workspace / inline-size}@media (max-width: 720px){.workspace{grid-template-columns:1fr}}.app-sidebar{position:sticky;top:1rem;width:auto;flex:initial;padding:0}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.row.row-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.row.row-1-2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}@media (max-width: 720px){.row.row-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width: 560px){.row,.row.row-3,.row.row-1-2{grid-template-columns:1fr}}@container (max-width: 360px){.row,.row.row-3,.row.row-1-2{grid-template-columns:1fr}}.form-shell{display:flex;flex-direction:column;gap:1.25rem;width:100%;min-width:0;container:form / inline-size}.form-header{background:var(--surface);margin:-1.5rem -1.5rem 0;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem}.form-header h2{margin:0;font-size:1.15rem;font-weight:600;min-width:0;overflow-wrap:anywhere}.form-header button,.form-header .button{flex-shrink:0}.form-status{margin-bottom:0}.banner.err{background:var(--err-bg);border-color:var(--err-line);color:var(--err)}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem 2.5rem;align-items:start}@media (max-width: 960px){.form-grid{grid-template-columns:1fr;gap:1.25rem}}.form-col{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.form-col-full{grid-column:1 / -1}.project-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:1.25rem;align-items:start}@media (max-width: 960px){.project-form-grid{grid-template-columns:1fr}}.project-form-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start;min-width:0}@media (max-width: 1200px){.project-form-content{grid-template-columns:1fr}}.project-form-left,.project-form-right{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.project-form-project,.project-form-team,.project-form-phases{display:flex;flex-direction:column;gap:.5rem;min-width:0;margin-bottom:0}.project-form-sidebar{display:flex;flex-direction:column;gap:.4rem;position:sticky;top:1rem;align-self:start}.project-form-sidebar .project-form-submit{margin-top:1rem}@media (max-width: 960px){.project-form-sidebar{position:static}}.client-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start;min-width:0}@media (max-width: 1200px){.client-form-grid{grid-template-columns:1fr}}.client-form-left,.client-form-right{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.client-form-card{display:flex;flex-direction:column;gap:.75rem;min-width:0;margin-bottom:0}.client-form-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.client-form-card-title{margin:0;font-size:.85rem;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.client-form-contacts{margin-top:1.25rem}.opportunity-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start;min-width:0}@media (max-width: 1200px){.opportunity-form-grid{grid-template-columns:1fr}}.opportunity-form-col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.opportunity-form-card{display:flex;flex-direction:column;gap:.75rem;min-width:0;margin-bottom:0}.opportunity-form-card-title{margin:0;font-size:.85rem;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.opportunity-prob-row{display:flex;align-items:center;gap:.75rem}.opportunity-prob-row input[type=number]{width:5rem;flex:none}.opportunity-prob-row input[type=range]{flex:1;accent-color:var(--accent)}.contact-list-row{padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.15rem}.contact-list-row:last-child{border-bottom:0}.contact-list-name{font-weight:500;display:flex;align-items:center;gap:.5rem}.contact-list-primary-tag{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.1rem .35rem;border-radius:3px;background:var(--accent);color:#fff}.contact-list-detail{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.85rem;color:var(--muted)}.form-with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:1.25rem;align-items:start}@media (max-width: 960px){.form-with-sidebar{grid-template-columns:1fr}}.form-with-sidebar>.form-shell{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.form-shell.flat-shell{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.approvals-table-wrap.active-projects-wrap,.approvals-table-wrap.opportunities-wrap{box-shadow:var(--shadow-sm)}.form-fieldset{border:0;margin:0;padding:0;min-width:0}.form-fieldset:disabled{opacity:.5}.form-sidebar{display:flex;flex-direction:column;gap:.4rem;position:sticky;top:1rem;align-self:start}@media (max-width: 960px){.form-sidebar{position:static}}.form-with-sidebar .form-header,.form-shell.flat-shell .form-header{margin:0;padding:0 0 1rem;background:transparent;border-bottom:1px solid var(--line);border-radius:0}.switch-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem;align-items:center;width:100%;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;cursor:pointer;-webkit-user-select:none;user-select:none;font:inherit;font-size:.85rem;color:var(--ink);text-align:left;transition:border-color .12s,background .12s}.switch-box:hover{border-color:var(--line-strong)}.switch-box:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch-box.on{border-color:var(--accent)}.switch-box-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.switch-box-icon svg{width:100%;height:100%}.switch-box:not(.on) .switch-box-icon{opacity:.6}.switch-box-label{font-size:.85rem;color:var(--ink-soft)}.switch-box.on .switch-box-label{color:var(--ink)}.switch-box-track{position:relative;width:36px;height:20px;background:var(--bg);border:1px solid var(--line);border-radius:999px;transition:background .15s,border-color .15s;flex-shrink:0}.switch-box-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--muted);border-radius:50%;transition:transform .15s,background .15s}.switch-box.on .switch-box-track{background:var(--accent);border-color:var(--accent)}.switch-box.on .switch-box-thumb{transform:translate(16px);background:#fff}.submit-box{background:#112532;color:#6cc2ef;border:1px solid #2c5170;border-radius:8px;padding:.55rem .75rem;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s,opacity .12s;text-align:center;margin-top:.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.submit-box:hover:not(:disabled){background:#163350;border-color:var(--accent);color:#9cd6f5}.submit-box:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.submit-box:disabled{opacity:.55;cursor:not-allowed}:root[data-theme=light] .submit-box{background:#e7f3fb;color:#176aa0;border-color:#a9d3ed}:root[data-theme=light] .submit-box:hover:not(:disabled){background:#d6ecf8;border-color:var(--accent);color:#125a87}.file-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--line);border-radius:8px;padding:18px 14px;background:var(--surface-2);transition:border-color .15s,background .15s;cursor:pointer;min-height:120px}.file-drop:hover{border-color:var(--accent);background:var(--bg-elev)}.file-drop.dragover{border-color:var(--accent);background:var(--ok-bg)}.file-drop.is-disabled{cursor:not-allowed;opacity:.55}.file-drop-icon{width:36px;height:36px;border-radius:50%;background:var(--line);color:var(--muted);position:relative;font-size:0;line-height:0;margin-bottom:8px;transition:background .15s,color .15s}.file-drop-icon:before,.file-drop-icon:after{content:"";position:absolute;top:50%;left:50%;background:currentColor;border-radius:1px}.file-drop-icon:before{width:14px;height:2px;transform:translate(-50%,-50%)}.file-drop-icon:after{width:2px;height:14px;transform:translate(-50%,-50%)}.file-drop:hover .file-drop-icon,.file-drop.dragover .file-drop-icon{background:var(--accent);color:#fff}.file-drop-primary{color:var(--ink);font-size:13px;margin-bottom:3px;text-align:center;word-break:break-word;max-width:100%}.file-drop-secondary{color:var(--muted);font-size:11px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}.file-drop-pick{color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;background:transparent;border:0;font:inherit;padding:0}.file-drop-pick:hover{filter:brightness(1.15)}.file-drop-clear{position:absolute;top:6px;right:8px;width:22px;height:22px;border-radius:50%;border:0;background:var(--bg-elev);color:var(--muted);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.file-drop-clear:hover{color:var(--ink)}.file-drop.populated{border-style:solid;border-color:var(--ok-line);background:var(--ok-bg);cursor:default}.file-drop.populated:hover{border-color:var(--ok-line);background:var(--ok-bg)}.file-drop.populated .file-drop-icon{background:var(--ok-line);color:var(--ok-ink);font-size:0}.file-drop.populated .file-drop-icon:before{content:"✓";width:auto;height:auto;background:transparent;border-radius:0;font-size:20px;line-height:1;transform:translate(-50%,calc(-50% + 1px))}.file-drop.populated .file-drop-icon:after{display:none}.file-drop.populated .file-drop-primary{font-weight:600}.file-drop.errored{border-style:solid;border-color:var(--err-line);background:var(--err-bg);cursor:pointer}.file-drop.errored .file-drop-icon{background:var(--err-line);color:var(--err);font-size:0}.file-drop.errored .file-drop-icon:before{content:"!";width:auto;height:auto;background:transparent;border-radius:0;font-size:22px;font-weight:700;line-height:1;transform:translate(-50%,-50%)}.file-drop.errored .file-drop-icon:after{display:none}.wizard-header{border-bottom:none;padding-bottom:.25rem}.wizard-progress{display:flex;align-items:center;gap:0;list-style:none;padding:0;margin:0 0 1.25rem}.wizard-step-pill{display:flex;align-items:center;gap:.5rem;padding:.45rem .85rem;color:var(--muted);font-size:.92rem;position:relative}.wizard-step-pill+.wizard-step-pill:before{content:"";display:inline-block;width:32px;height:1px;background:var(--line);margin-right:.5rem}.wizard-step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.78rem;flex-shrink:0}.wizard-step-pill.active{color:var(--ink)}.wizard-step-pill.active .wizard-step-num{background:var(--accent);color:var(--accent-ink)}.wizard-step-pill.done .wizard-step-num{background:#1ea7e02e;color:var(--es-blue)}.wizard-step-pill.done{color:var(--ink-soft)}.wizard-step-content{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.75rem 1.75rem 1.5rem;margin-bottom:1rem}.wizard-fields{display:flex;flex-direction:column;gap:1.25rem;max-width:760px;width:100%;margin-inline:auto}.wizard-actions{display:flex;align-items:center;gap:.75rem;padding-top:.5rem}.wizard-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.warn-text{color:var(--warn-ink);font-weight:500}.field-error{display:block;margin-top:.25rem;color:var(--warn-ink)}.form-drift-banner{margin-top:1rem;padding:.75rem 1rem;border:1px solid var(--warn-line, var(--line));background:var(--warn-bg, var(--surface-2));color:var(--ink);border-radius:6px;font-size:.9rem}.form-drift-banner strong{display:block;margin-bottom:.25rem}.form-drift-banner code{background:var(--surface-1);padding:0 .25rem;border-radius:3px;font-size:.85em}button.ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line);padding:.6rem 1.1rem;border-radius:6px;font:inherit;font-weight:500;cursor:pointer}button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}button.ghost:disabled{opacity:.5;cursor:not-allowed}.form-shell.summary{gap:1rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.summary-group{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1rem 1.1rem .85rem}.form-shell.summary .summary-group{background:var(--surface);box-shadow:var(--shadow-sm)}.summary-group-title{margin:0 0 .65rem;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.summary-list{display:grid;grid-template-columns:minmax(0,fit-content(50%)) minmax(0,1fr);gap:.4rem 1rem;margin:0;font-size:.9rem}.summary-list dt{color:var(--muted);font-weight:500;min-width:0;overflow-wrap:anywhere}.summary-list dd{margin:0;color:var(--ink);min-width:0;word-break:break-word}.summary-list dd.tone-ok{color:var(--ok-ink)}.summary-list dd.tone-err{color:var(--err)}.summary-list dd.tone-warn{color:var(--warn-ink)}.form-shell.summary .success-title{display:flex;align-items:center;min-width:0;flex:1 1 auto}.form-shell.summary .form-header.success{animation:project-created-pulse 1.5s ease-out}.header-checkmark{width:32px;height:32px;border-radius:50%;background:var(--ok-ink);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-right:.7rem;animation:header-pop .35s cubic-bezier(.34,1.56,.64,1)}.header-checkmark svg{width:20px;height:20px}.header-checkmark path{fill:none;stroke:var(--bg);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:header-tick-draw .55s cubic-bezier(.4,0,.2,1) .1s forwards}.summary-list dd.tone-ok,.summary-list dd.tone-err,.summary-list dd.tone-warn{animation:row-pop .4s cubic-bezier(.34,1.56,.64,1);transform-origin:right center}@keyframes header-pop{0%{transform:scale(.5)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes header-tick-draw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes row-pop{0%{transform:scale(.55);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}@keyframes project-created-pulse{0%{box-shadow:0 0 #2d6655d9}to{box-shadow:0 0 0 22px #2d665500}}.summary-list a{color:var(--es-blue);text-decoration:none}.summary-list a:hover{text-decoration:underline}.summary-pending{display:inline-flex;align-items:center;gap:.45em;animation:summary-pulse 1.4s ease-in-out infinite}.summary-pending:before{content:"";display:inline-block;width:.9em;height:.9em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:summary-spin .7s linear infinite}@keyframes summary-spin{to{transform:rotate(360deg)}}@keyframes summary-pulse{0%,to{opacity:.65}50%{opacity:1}}.btn-spinner{display:inline-block;width:.9em;height:.9em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:summary-spin .7s linear infinite;flex-shrink:0}button:has(>.btn-spinner){display:inline-flex;align-items:center;justify-content:center;gap:.45em}.ll-section{margin:0 auto 2rem;max-width:920px;width:100%}.ll-section-title{margin:0 0 .85rem;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:.5rem;border-bottom:1px solid var(--line)}.field-ll{display:grid;grid-template-columns:160px minmax(0,1fr);gap:1rem 1.5rem;align-items:start;padding:.85rem 0}.field-ll+.field-ll{border-top:1px solid var(--line)}@media (max-width: 640px){.field-ll{grid-template-columns:1fr;padding:.5rem 0}}.field-ll-label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:.7rem;line-height:1.4}.field-ll-label em{color:var(--err);font-style:normal;font-weight:700}.field-ll-input{max-width:520px;min-width:0}.field-ll-input>input,.field-ll-input>.combobox,.field-ll-input>.currency-wrap{width:100%}.field-ll-input .helper{margin:.4rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.4}.ll-phase{padding:1rem 0 0;margin-top:.5rem;border-top:1px solid var(--line)}.ll-phase-title{margin:0 0 .5rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--es-blue)}.phase-total{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#1ea7e014;border:1px solid rgba(30,167,224,.3);border-radius:8px;margin-top:.5rem}.phase-total span{color:var(--muted);font-size:.9rem}.phase-total strong{color:var(--ink);font-size:1.05rem}.phase-group{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.1rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;container-type:inline-size}@container (max-width: 360px){.phase-group .row,.phase-group .row.row-3,.phase-group .row.row-1-2{grid-template-columns:1fr}}.phase-group+.phase-group{margin-top:.75rem}.phase-rules{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.85rem}.phase-group-title{margin:0 0 .25rem;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.bs-grid{display:grid;grid-template-columns:minmax(0,140px) minmax(0,110px) minmax(0,1fr);gap:.45rem .5rem;align-items:center}@container (max-width: 320px){.phase-group .bs-grid{grid-template-columns:1fr}}.bs-head{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:.2rem}.bs-grid input,.bs-grid .currency-wrap{margin:0}.phase-billing{margin-top:.25rem;padding-top:.75rem;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:.5rem}.phase-billing-title{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.phase-billing-total{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.85rem;color:var(--muted)}.phase-billing-total strong{color:var(--ink);font-size:.95rem}.phases-editor{display:flex;flex-direction:column;gap:.5rem}.phase-row{display:grid;grid-template-columns:28px minmax(180px,1fr) minmax(180px,1.5fr) 32px;gap:.5rem;align-items:center}.phase-index{display:inline-flex;align-items:center;justify-content:center;height:28px;width:28px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.8rem;font-weight:600}.icon-button{background:transparent;border:1px solid var(--line);border-radius:6px;width:32px;height:32px;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover:not(:disabled){border-color:var(--err-line);color:var(--err)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.add-button{background:transparent;border:1px dashed var(--line-strong);color:var(--muted);border-radius:6px;padding:.5rem .9rem;font:inherit;font-size:.9rem;cursor:pointer;align-self:flex-start}.add-button:hover{color:var(--accent);border-color:var(--accent)}@media (max-width: 560px){.phase-row{grid-template-columns:28px 1fr 32px}.phase-row .phase-desc{grid-column:2 / span 1;grid-row:2}}.vendor-bill-line-item{display:grid;grid-template-columns:14rem minmax(0,1fr) 9rem auto auto;gap:.5rem;align-items:center;margin-bottom:.5rem}@media (max-width: 640px){.vendor-bill-line-item{grid-template-columns:minmax(0,1fr) 7rem auto auto}.vendor-bill-line-item>select:first-child{grid-column:1 / -1}}.form-section{margin:0 0 1.5rem}.form-section:last-child{margin-bottom:0}.form-section-header{display:flex;align-items:baseline;gap:.6rem;margin:0 0 .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.form-section-header .step{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.75rem;font-weight:600}.form-section-header h3{margin:0;font-size:.98rem;font-weight:600;color:var(--ink);letter-spacing:-.005em}.form-section-header .hint{margin-left:auto;font-size:.8rem;color:var(--muted)}.field{display:flex;flex-direction:column;gap:.25rem}.field>.label,.label-text{display:block;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .05rem}.field>.label{display:flex;align-items:baseline;gap:.3rem}.field .helper{font-size:.78rem;color:var(--muted);margin:0}.field em,.label-text em{color:var(--err);font-style:normal;font-weight:700}input,select,textarea{font:inherit;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:.55rem .75rem;color:var(--ink);width:100%}input[type=checkbox],input[type=radio]{width:auto;padding:0;border:0;background:transparent;border-radius:0}input::placeholder,textarea::placeholder{color:var(--placeholder)}select:has(option[value=""]:checked){color:var(--placeholder)}select option{color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--line-focus);box-shadow:0 0 0 3px #1ea7e02e}textarea{resize:vertical;min-height:80px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='%238b929e' d='M6 8.5 1.5 4h9z'/></svg>");background-repeat:no-repeat;background-position:right .7rem center;background-size:12px;padding-right:2rem}select:disabled,input:disabled{opacity:.6;cursor:not-allowed}.currency-wrap{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:6px;background:var(--bg-elev);overflow:hidden}.currency-wrap:focus-within{border-color:var(--line-focus);box-shadow:0 0 0 3px #1ea7e02e}.currency-prefix{background:var(--surface-2);border-right:1px solid var(--line);padding:.55rem .75rem;color:var(--muted);font-weight:600}.currency-wrap input{border:none;background:transparent;border-radius:0}.currency-wrap input:focus{box-shadow:none}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.radio-group{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding:.4rem 0 .1rem}.radio-option{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;cursor:pointer;color:var(--ink)}.radio-option input{width:1rem;height:1rem;margin:0;padding:0;accent-color:var(--accent);cursor:pointer}.radio-option input:focus,.radio-option input:focus-visible{outline:none;box-shadow:none}.seg-toggle{display:inline-flex;flex-wrap:wrap;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);align-self:flex-start;padding:4px;gap:2px}.seg-toggle button{background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--muted);padding:.4rem .95rem;font:inherit;font-size:.88rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease;display:inline-flex;align-items:center;white-space:nowrap;max-width:100%}.seg-toggle button:hover:not(.on){background:var(--bg-elev);color:var(--ink-soft)}.seg-toggle button.on{background:#1ea7e026;color:#9cd6f5;box-shadow:inset 0 0 0 1px #1ea7e073}:root[data-theme=light] .seg-toggle button.on{background:#1ea7e021;color:#176aa0}.seg-toggle.seg-sliding{position:relative}.seg-toggle.seg-sliding>button{position:relative;z-index:1}.seg-toggle.seg-sliding button.on,:root[data-theme=light] .seg-toggle.seg-sliding button.on{background:transparent;box-shadow:none}.seg-toggle-thumb{position:absolute;top:0;left:0;z-index:0;width:0;height:0;border-radius:calc(var(--radius) - 2px);background:#1ea7e026;box-shadow:inset 0 0 0 1px #1ea7e073;transition:transform .22s cubic-bezier(.4,0,.2,1),width .22s cubic-bezier(.4,0,.2,1),height .22s cubic-bezier(.4,0,.2,1);pointer-events:none}:root[data-theme=light] .seg-toggle-thumb{background:#1ea7e021}@media (prefers-reduced-motion: reduce){.seg-toggle-thumb{transition:none}}.billing-cycle-list{display:flex;flex-direction:column;gap:2px;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);padding:4px;align-self:flex-start}.billing-cycle-option{display:flex;align-items:baseline;gap:.45rem;background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--muted);padding:.4rem .7rem;font:inherit;font-size:.88rem;font-weight:500;cursor:pointer;text-align:left;white-space:nowrap;transition:background .15s ease,color .15s ease}.billing-cycle-option:hover:not(.on){background:var(--bg-elev);color:var(--ink-soft)}.billing-cycle-option.on{background:#1ea7e026;color:#9cd6f5;box-shadow:inset 0 0 0 1px #1ea7e073}:root[data-theme=light] .billing-cycle-option.on{background:#1ea7e021;color:#176aa0}.billing-cycle-tag{font-size:.72rem;font-weight:600;color:var(--muted)}.billing-cycle-option.on .billing-cycle-tag{color:inherit;opacity:.85}.seg-toggle-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:.4rem;border-radius:999px;border:1px solid transparent;font-size:.7rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.seg-toggle-badge-time{background:#1ea7e02e;border-color:#1ea7e066;color:var(--type-time)}.seg-toggle-badge-expense{background:#3eb6a12e;border-color:#3eb6a173;color:var(--type-expense)}.seg-toggle-badge-invoice{background:#d9853f2e;border-color:#d9853f73;color:var(--type-invoice)}.chip{display:inline-flex;align-items:center;gap:.45rem;background:#1ea7e01f;border:1px solid rgba(30,167,224,.4);color:var(--ink);padding:.2rem .25rem .2rem .65rem;border-radius:999px;font-size:.82rem;line-height:1.4}.chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0}.chip button:hover{color:var(--ink);background:#ffffff0f}.chip.chip-team-current{background:#3eb6a124;border-color:#3eb6a166;color:var(--es-teal);padding:.25rem .75rem}.chip.chip-team-pending{background:var(--est-warn-bg, #fff7d6);border-color:var(--est-warn-line);color:var(--ink);padding:.25rem .4rem .25rem .75rem;gap:.55rem}.chip.chip-employee-group{background:#8b5cf61f;border-color:#8b5cf673}.combobox{position:relative;display:flex;flex-direction:column;gap:.5rem}.combobox-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:.55rem .75rem;font:inherit;color:var(--ink);cursor:pointer;text-align:left;min-height:40px}.combobox-trigger:hover:not(:disabled){border-color:var(--line-strong)}.combobox-trigger:focus,.combobox-trigger:focus-visible{outline:none;border-color:var(--line-focus);box-shadow:0 0 0 3px #1ea7e02e}.combobox-trigger:disabled{opacity:.6;cursor:not-allowed}.combobox-trigger>span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-placeholder{color:var(--placeholder)}.combobox-chevron{color:var(--muted);flex-shrink:0;transition:transform .15s ease}.combobox-trigger[aria-expanded=true] .combobox-chevron{transform:rotate(180deg)}.combobox-required{position:absolute;opacity:0;pointer-events:none;height:0;width:0;padding:0;margin:0;border:0}.combobox-popup{position:absolute;top:calc(100% + 4px);left:0;min-width:max(240px,100%);max-width:calc(100vw - 32px);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow-md);z-index:20;overflow:hidden;display:flex;flex-direction:column;max-height:320px}.combobox-search{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--line);color:var(--muted);background:var(--surface)}.combobox-search input{flex:1;border:none;background:transparent;padding:.15rem 0;color:var(--ink);font:inherit;font-size:.9rem;width:auto}.combobox-search input:focus{outline:none;box-shadow:none}.combobox-list{list-style:none;margin:0;padding:.3rem;overflow-y:auto;flex:1}.combobox-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:5px;cursor:pointer;color:var(--ink);font-size:.9rem}.combobox-item.highlight,.combobox-item:hover{background:#1ea7e017}.combobox-item.is-disabled{cursor:default;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding-top:.6rem}.combobox-item.is-disabled:hover{background:transparent}.combobox-item.selected .combobox-check{color:var(--accent)}.combobox-item-phase-indent{display:inline-block;padding-left:1.1rem}.combobox-item>span:last-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-check{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;color:var(--es-blue);flex-shrink:0}.combobox-empty{padding:.75rem;color:var(--muted);font-size:.85rem;text-align:center;list-style:none}.combobox-chips{display:flex;flex-wrap:wrap;gap:.35rem}button.primary,a.button.primary{background:var(--accent);color:var(--accent-ink);border:none;padding:.7rem 1.4rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:background .15s ease}button.primary:hover:not(:disabled),a.button.primary:hover{background:var(--accent-hover)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;border:none;color:var(--muted);font:inherit;font-size:.88rem;cursor:pointer;text-decoration:underline;padding:0}button.link:hover{color:var(--ink-soft)}button.danger{background:var(--err-bg);color:var(--err);border:1px solid var(--err-line);padding:.6rem 1.1rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}button.danger:hover:not(:disabled){border-color:var(--err)}button.danger:disabled{opacity:.5;cursor:not-allowed}button.success{background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line);padding:.6rem 1.1rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}button.success:hover:not(:disabled){border-color:var(--ok-ink)}button.success:disabled{opacity:.5;cursor:not-allowed}button.info{background:#1ea7e021;color:#6fc3ef;border:1px solid rgba(30,167,224,.45);padding:.6rem 1.1rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}button.info:hover:not(:disabled){border-color:var(--accent)}button.info:disabled{opacity:.5;cursor:not-allowed}:root[data-theme=light] button.info{color:#176aa0}button.small-btn,a.button.small-btn{padding:.35rem .75rem;font-size:.85rem;font-weight:500}button.unapprove-button{white-space:nowrap}button.link-btn{background:none;border:none;color:var(--es-blue);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;padding:.2rem .4rem;border-radius:4px}button.link-btn:hover{background:#1ea7e01f}.actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding-top:1rem;border-top:1px solid var(--line);margin-top:1.5rem}.muted{color:var(--muted)}.small{font-size:.85rem}.ok-text{color:var(--ok-ink);margin:0}.err-text{color:var(--err);margin:0;font-size:.85rem}.approvals-shell{min-width:0}.approvals-actions{display:flex;align-items:center;gap:.75rem;padding:.75rem .25rem}.approvals-actions-inline{padding:0;gap:.5rem}.approvals-actions-inline>div{margin-left:0!important}.approvals-actions-inline button{padding:.35rem .75rem;font-size:.85rem;font-weight:500}.approvals-header-row .approvals-view-toggle{flex-wrap:wrap;row-gap:.5rem}.approvals-expand-controls{display:flex;gap:.35rem;margin-left:.5rem;padding-left:.75rem;border-left:1px solid var(--line)}.approvals-projects{display:flex;flex-direction:column;gap:.85rem}.invoice-cards-list{display:flex;flex-direction:column;gap:.85rem;margin-top:1rem}.invoice-batch-result{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.invoice-batch-result .banner{margin-bottom:0}.invoice-result-list{margin:.35rem 0 0;padding-left:1.1rem}.invoice-result-list li{margin:.15rem 0}.approvals-project-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);overflow:hidden;container-type:inline-size}@container (max-width: 640px){.approvals-project-card .client-hours-col,.approvals-project-card .approvals-table td.client-hours-cell{display:none}.approvals-project-card .approvals-table th,.approvals-project-card .approvals-table td{padding:.45rem .5rem}.approvals-project-card .approvals-table td.desc-cell{max-width:140px}}.approvals-project-banner{display:flex;align-items:center;gap:.85rem;padding:.75rem .9rem;background:#1ea7e024;cursor:default;box-shadow:inset 4px 0 0 var(--es-blue)}.approvals-project-banner:hover{background:#1ea7e02e}.approvals-project-card.expanded .approvals-project-banner{border-bottom:1px solid var(--line)}.approvals-project-banner input[type=checkbox]{width:1rem;height:1rem;margin:0}button.banner-disclosure{background:none;border:none;color:inherit;font:inherit;font-size:.95rem;cursor:pointer;padding:.15rem .25rem;display:inline-flex;align-items:center;gap:.7rem;text-align:left}button.banner-disclosure:hover{color:var(--ink)}button.banner-disclosure .caret{display:inline-block;width:.85rem;text-align:center;color:var(--es-blue);font-size:.95rem}button.banner-disclosure .project-name{font-size:1rem;font-weight:600;color:var(--ink);letter-spacing:-.005em}.approvals-project-banner .banner-summary{margin-left:auto;display:inline-flex;align-items:center;gap:.6rem;color:var(--muted);font-size:1rem;font-weight:500;white-space:nowrap}.budget-pill{display:inline-flex;flex-direction:column;gap:.25rem;width:240px;padding:.35rem .75rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;font-variant-numeric:tabular-nums}.budget-pill-row{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;font-size:.92rem}.budget-pill-label{display:inline-flex;align-items:center;gap:.25rem;line-height:1;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.budget-pill-figure{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;white-space:nowrap}.budget-pill-size-md .budget-pill-figure{font-size:.84rem;gap:.3rem}.budget-pill-size-sm .budget-pill-figure{font-size:.76rem;gap:.28rem}.budget-pill-size-xs .budget-pill-figure{font-size:.68rem;gap:.25rem}.budget-pill-bar{position:relative;height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.budget-pill-bar>i{display:block;height:100%}.budget-pill-ok .budget-pill-figure{color:var(--ok-ink)}.budget-pill-warn .budget-pill-figure{color:var(--warn-ink)}.budget-pill-over .budget-pill-figure{color:var(--es-red, #d04545)}.budget-pill-ok .budget-pill-bar>i{background:var(--ok-ink)}.budget-pill-warn .budget-pill-bar>i{background:var(--warn-ink)}.budget-pill-over .budget-pill-bar>i{background:var(--es-red, #d04545)}.budget-pill.has-fixedfee{flex-direction:row;align-items:stretch;width:auto;gap:0}.budget-pill.has-fixedfee .budget-pill-main{display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:216px;padding-right:.75rem}.budget-pill-fixedfee{display:flex;flex-direction:column;justify-content:flex-start;gap:.25rem;min-width:168px;padding:.35rem .75rem;border-left:1px solid var(--line);background:#d9853f0f;margin:-.35rem -.75rem -.35rem 0}.budget-pill-fixedfee-row{display:flex;flex-direction:column;gap:.1rem}.budget-pill-fixedfee-label{display:inline-flex;align-items:center;gap:.25rem;line-height:1;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.budget-pill-fixedfee-amount{font-size:.92rem;font-weight:600;white-space:nowrap;color:var(--es-orange, #d9853f);font-variant-numeric:tabular-nums}.budget-pill-fixedfee-bar{position:relative;height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.budget-pill-fixedfee-bar>i{display:block;height:100%;border-radius:999px;background:var(--es-orange, #d9853f)}.budget-pill-clickable{cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.budget-pill-clickable:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm, 0 1px 4px rgba(0, 0, 0, .18))}.budget-pill-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.budget-pill-empty .budget-pill-figure{color:var(--ok-ink)}.budget-pill-loading .budget-pill-figure{color:var(--muted);font-weight:500;font-size:.88rem}.budget-pill-spinner{display:inline-block;width:.85rem;height:.85rem;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:budget-pill-spin .8s linear infinite;flex-shrink:0}@keyframes budget-pill-spin{to{transform:rotate(360deg)}}.approvals-project-body{overflow-x:auto}.approvals-project-card .approvals-table{border-radius:0}.invoice-expand-btn{background:transparent;border:0;color:var(--muted);cursor:pointer;width:24px;height:24px;padding:0;border-radius:4px;font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.invoice-expand-btn:hover{color:var(--ink)}.approvals-table tbody tr.invoice-row>td{background:#3eb6a121}.approvals-table tbody tr.invoice-row:hover>td{background:#3eb6a12b}.approvals-table tbody tr.invoice-row>td:first-child{box-shadow:inset 4px 0 0 var(--es-teal)}.invoice-line-items-row>td{background:transparent;padding:0;box-shadow:none}.invoice-count-summary{margin-right:.85rem;white-space:nowrap}.invoice-line-items-table tbody tr:last-child>td{border-bottom:0}.invoice-line-items-table tbody tr:hover>td{background:transparent}.invoice-phase-table{width:100%;margin:0}.approvals-table.grouped.invoice-phase-table tbody tr.employee-row>td:first-child{padding-left:0}.approvals-table.grouped.invoice-phase-table tbody tr.employee-row>td{background:#d9853f21}.approvals-table.grouped.invoice-phase-table tbody tr.employee-row:hover>td{background:#d9853f2e}.approvals-table.grouped.invoice-phase-table tbody tr.employee-row>td:first-child{box-shadow:inset 4px 0 0 var(--es-orange)}.approvals-table.grouped.invoice-phase-table tbody tr.entry-row>td{background:#94a3b81a}.approvals-table.grouped.invoice-phase-table tbody tr.entry-row:hover>td{background:#94a3b826}.approvals-table.grouped.invoice-phase-table tbody tr.entry-row>td:first-child{box-shadow:inset 4px 0 0 var(--muted)}.approvals-table.grouped.invoice-phase-table td.group-row-title{width:100%}.approvals-table.grouped.invoice-phase-table td.group-row-summary{text-align:right;padding-right:.85rem;white-space:nowrap}.approvals-table.grouped.invoice-phase-table td.group-row-summary.invoice-amount{color:var(--ink);font-weight:600}.approvals-table.grouped.invoice-phase-table td.invoice-amount .invoice-margin{margin-left:.45rem}.approvals-table.grouped.invoice-phase-table td.invoice-amount .invoice-wud-from{color:var(--muted);font-weight:400}.approvals-table.grouped.invoice-phase-table tbody tr.entry-row>td.invoice-leaf-title{padding-left:7rem}.approvals-table.grouped.invoice-phase-table tbody tr.invoice-level-row>td{border-top:1px solid var(--line)}.invoice-level-label{padding-left:3.5rem;font-weight:600}button.group-disclosure:disabled{cursor:default}button.group-disclosure:disabled:hover{color:inherit}.invoice-phase-kind{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:.05rem .4rem;border-radius:999px}.invoice-phase-kind.kind-hourly{background:#1ea7e026;color:var(--type-time)}.invoice-phase-kind.kind-fixed{background:#d9853f26;color:var(--es-orange)}.invoice-phase-kind.kind-other{background:#94a3b826;color:var(--muted)}.invoice-margin{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-variant-numeric:tabular-nums;padding:.05rem .45rem;border-radius:999px}.invoice-margin.is-up{background:#3eb6a129;color:var(--es-teal)}.invoice-margin.is-down{background:var(--est-warn-bg, #fff7d6);color:var(--warn-ink)}.approvals-project-card .approvals-table thead tr:first-child th:first-child,.approvals-project-card .approvals-table thead tr:first-child th:last-child,.approvals-project-card .approvals-table tbody tr:last-child>td:first-child,.approvals-project-card .approvals-table tbody tr:last-child>td:last-child{border-radius:0}.approvals-table-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);overflow-x:auto}.approvals-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}.approvals-table th,.approvals-table td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--line);vertical-align:middle}.approvals-table th.col-center,.approvals-table td.col-center{text-align:center}.approvals-table thead th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}.header-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:.3rem;color:var(--ink-soft);cursor:help;vertical-align:middle;letter-spacing:0;text-transform:none}.header-help:hover,.header-help:focus-visible{color:var(--accent);outline:none}.header-help svg{display:block}.header-help-tip,.header-help:before{position:absolute;opacity:0;visibility:hidden;transition:opacity .12s,visibility .12s;pointer-events:none;z-index:50}.header-help-tip{top:calc(100% + 8px);left:50%;transform:translate(-50%);width:max-content;max-width:clamp(220px,32rem,90vw);padding:.5rem .7rem;background:var(--ink);color:var(--bg);border-radius:5px;box-shadow:var(--shadow-md);font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.4;white-space:normal;text-align:left}.header-help-tip-portal{left:auto;transform:none}.header-help-tip strong{font-weight:700}.header-help:before{content:"";top:calc(100% + 2px);left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:var(--ink)}.header-help-portal:before{display:none}.header-help:hover .header-help-tip,.header-help:hover:before,.header-help:focus-visible .header-help-tip,.header-help:focus-visible:before{opacity:1;visibility:visible}.approvals-table tbody tr:hover>td{background:#1ea7e00d}.approvals-table tbody tr.sel>td{background:#1ea7e01a}.approvals-table tbody tr:last-child>td{border-bottom:none}.approvals-table thead tr:first-child th:first-child{border-top-left-radius:var(--radius-lg)}.approvals-table thead tr:first-child th:last-child{border-top-right-radius:var(--radius-lg)}.approvals-table tbody tr:last-child>td:first-child{border-bottom-left-radius:var(--radius-lg)}.approvals-table tbody tr:last-child>td:last-child{border-bottom-right-radius:var(--radius-lg)}.approvals-table tbody tr:has(+tr.employee-row)>td{border-bottom:none}.approvals-table input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:var(--accent);cursor:pointer}.approvals-table.grouped tbody tr.group-row>td:first-child,.approvals-table.grouped tbody tr.entry-row>td:first-child,.approvals-table.grouped tbody tr.edit-row>td:first-child{vertical-align:middle}.approvals-table.grouped tbody tr.group-row>td{border-bottom:none}.approvals-table.grouped tbody tr.employee-row>td{background:#3eb6a121}.approvals-table.grouped tbody tr.employee-row:hover>td{background:#3eb6a12b}.approvals-table.grouped tbody tr.employee-row>td:first-child{box-shadow:inset 4px 0 0 var(--es-teal);padding-left:1.85rem}.approvals-table.grouped tbody tr.employee-row>td{border-top:1px solid var(--line)}.approvals-table.grouped tbody tr.entry-row>td{background:#d9853f0f}.approvals-table.grouped tbody tr.entry-row:hover>td{background:#d9853f1a}.approvals-table.grouped tbody tr.entry-row.sel>td{background:#1ea7e02e}.approvals-table.grouped tbody tr.edit-row>td{background:#d9853f1a}.approvals-table.grouped tbody tr.entry-row>td:first-child,.approvals-table.grouped tbody tr.edit-row>td:first-child{box-shadow:inset 4px 0 0 var(--es-orange);padding-left:3rem}.billable-toggle{display:inline-flex;align-items:center;font-size:.78rem;padding:.1rem 0}.approvals-table tr.entry-row>td+td{position:relative}.approvals-table tr.entry-row>td+td:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:1.2rem;width:1px;background:var(--line);pointer-events:none}button.billable-switch{background:transparent;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center}button.billable-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.billable-switch-track{position:relative;width:32px;height:18px;background:var(--bg);border:1px solid var(--line);border-radius:999px;transition:background .15s,border-color .15s}.billable-switch-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--muted);border-radius:50%;transition:transform .15s,background .15s}.billable-switch-on .billable-switch-track{background:var(--accent);border-color:var(--accent)}.billable-switch-on .billable-switch-thumb{transform:translate(14px);background:#fff}.billable-switch-mixed .billable-switch-track{background:var(--bg-elev);border-color:var(--line-strong);border-style:dashed}.billable-switch-mixed .billable-switch-thumb{transform:translate(7px);background:var(--ink-soft)}.entry-row-actions{display:flex;gap:.35rem;justify-content:flex-end;align-items:center}.row-kebab{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:6px;background:none;border:1px solid transparent;color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer}.row-kebab:hover:not(:disabled),.row-kebab.active{background:var(--surface-2);border-color:var(--line);color:var(--ink)}.row-kebab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row-kebab:disabled{opacity:.5;cursor:not-allowed}.row-menu{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:.35rem;display:flex;flex-direction:column}.row-menu-item{display:flex;align-items:center;width:100%;text-align:left;font:inherit;font-size:.88rem;background:none;border:none;color:var(--ink);padding:.5rem .6rem;border-radius:6px;cursor:pointer}.row-menu-item:hover:not(:disabled){background:var(--surface-2)}.row-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.row-menu-item:disabled{opacity:.5;cursor:not-allowed}.row-menu-item.danger{color:var(--err)}.transfer-preview{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:.55rem .7rem;margin-top:.5rem}.transfer-preview .arrow{color:var(--muted)}.transfer-preview .to{font-weight:600;color:var(--ink)}.batch-fields{display:flex;flex-direction:column;gap:.6rem}.batch-field-row{display:flex;align-items:center;gap:.55rem;cursor:pointer}.batch-field-row>.label{margin:0;cursor:pointer}.batch-field-row input[type=checkbox]{flex:none}.batch-field-input{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto}.batch-field-input .prefix{color:var(--muted)}.batch-field-input input[type=number]{text-align:right}button.link-btn-danger{color:var(--err)}button.link-btn-danger:hover{background:var(--err-bg)}.approvals-table td.billable-pending{color:var(--es-orange);font-weight:600}.pending-dot{display:inline-block;margin-left:.2rem;color:var(--es-orange);font-weight:700}.split-tag{display:inline-block;margin-left:.4rem;font-size:.72rem;color:var(--es-text-muted, #8a94a6);white-space:nowrap}.link-btn.split-link{margin-left:.4rem;font-size:.78rem}.approvals-table td.hours-cell input[type=number]{width:80px}.reject-target{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.25rem .85rem;margin:.5rem 0 0;font-size:.88rem}.reject-target dt{color:var(--muted);font-weight:500}.reject-target dd{margin:0;color:var(--ink);word-break:break-word}button.group-disclosure{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:.15rem .25rem;display:inline-flex;align-items:center;gap:.7rem;text-align:left}button.group-disclosure:hover{color:var(--ink)}button.group-disclosure .caret{display:inline-block;width:.85rem;text-align:center;color:var(--es-blue);font-size:.95rem}button.group-disclosure.indent-1{padding-left:1.75rem}button.group-disclosure.indent-1 .caret{color:var(--es-teal)}button.group-disclosure.indent-2{padding-left:3.5rem}button.group-disclosure.indent-2 .caret{color:var(--es-teal)}.approvals-table.grouped tbody tr.approvals-phase-row>td{background:var(--surface-alt, transparent)}.approvals-project-card .approvals-table thead tr:first-child th:first-child,.approvals-table.grouped tbody tr.approvals-phase-row>td:first-child{box-shadow:inset 4px 0 0 var(--es-blue)}.approvals-table.grouped tbody tr.approvals-phase-row button.group-disclosure{font-size:.9rem}button.group-disclosure strong{font-weight:600}.approvals-project-banner .project-code{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:#1ea7e024;border:1px solid rgba(30,167,224,.4);color:var(--es-blue);font-size:.78rem;font-weight:600;letter-spacing:.02em}.approvals-project-banner .client-pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;background:#3eb6a124;border:1px solid rgba(62,182,161,.4);color:var(--es-teal);font-size:.78rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}.approvals-project-card.locked .approvals-project-banner{background:#8b929e14;box-shadow:inset 4px 0 0 var(--muted)}.approvals-project-card.locked .approvals-project-banner:hover{background:#8b929e1f}.approvals-project-card.locked .project-name{color:var(--muted)}.approvals-project-card.locked .project-code,.approvals-project-card.locked .client-pill{background:#8b929e1f;border-color:var(--line-strong);color:var(--muted)}.approvals-project-card.approved .approvals-project-banner,.approvals-project-card.approved .approvals-project-banner:hover{background:var(--ok-bg);box-shadow:inset 4px 0 0 var(--ok-ink)}.approvals-project-card.approved .banner-disclosure .caret{color:var(--ok-ink)}.approvals-project-approved-badge{flex:0 0 auto}.approvals-table.grouped tbody tr.entry-row.locked>td{color:var(--muted)}.entry-row.locked .client-hours-cell input,.entry-row.locked input[type=checkbox]:disabled,.approvals-project-banner input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.entry-row.locked .link-btn:disabled{opacity:.4;cursor:not-allowed}button.billable-switch:disabled{opacity:.4;cursor:not-allowed}.approvals-table tbody tr.entry-row.edited>td,.approvals-table tbody tr.entry-row.edited:hover>td{background:#8b5cf617}.approvals-table tbody tr.entry-row.edited>td:first-child{box-shadow:inset 3px 0 #8b5cf6}.approvals-table tbody tr.entry-row.staged>td,.approvals-table tbody tr.entry-row.staged:hover>td{background:#d9853f1a}.approvals-table tbody tr.entry-row.staged>td:first-child{box-shadow:inset 3px 0 0 var(--es-orange)}.approvals-table tbody tr.entry-row.split-child>td{border-top:0;padding-top:.1rem}.approvals-table tbody tr.entry-row.split-child>td:first-child input[type=checkbox]{visibility:hidden}.approvals-table tbody tr.entry-row.split-child>td:nth-child(2){padding-left:1.4rem;color:var(--es-text-muted, #8a94a6)}.approvals-table tbody tr.entry-row.split-child>td:nth-child(2):before{content:"↳";margin-right:.35rem;opacity:.7}.approvals-table tbody tr.entry-row.approved>td,.approvals-table tbody tr.entry-row.approved:hover>td,.approvals-table.grouped tbody tr.entry-row.approved>td,.approvals-table.grouped tbody tr.entry-row.approved:hover>td{background:var(--ok-bg)}.approvals-table tbody tr.entry-row.approved>td:first-child,.approvals-table.grouped tbody tr.entry-row.approved>td:first-child{box-shadow:inset 4px 0 0 var(--ok-ink)}.approvals-table tbody tr.entry-row.approving>td,.approvals-table tbody tr.entry-row.approving:hover>td,.approvals-table.grouped tbody tr.entry-row.approving>td,.approvals-table.grouped tbody tr.entry-row.approving:hover>td{background:#1ea7e01a;color:var(--es-blue)}.approvals-table tbody tr.entry-row.approving>td:first-child,.approvals-table.grouped tbody tr.entry-row.approving>td:first-child{box-shadow:inset 4px 0 0 var(--es-blue)}.badge-approving{display:inline-flex;align-items:center;gap:.4rem;padding:.18rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;background:#1ea7e024;border:1px solid rgba(30,167,224,.5);color:var(--es-blue);animation:summary-pulse 1.4s ease-in-out infinite}.badge-approving:before{content:"";display:inline-block;width:.85em;height:.85em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:summary-spin .7s linear infinite;flex-shrink:0}.approvals-table.grouped tbody tr.group-row>td.group-row-summary{color:var(--muted);font-size:.82rem;font-weight:500;white-space:nowrap}.approvals-table.grouped tbody tr.group-row>td.group-row-action{text-align:right;white-space:nowrap}.approvals-page-title{display:flex;align-items:center;gap:.6rem;margin:0 0 .85rem}.approvals-page-title h2{margin:0;font-size:1.1rem;font-weight:600}.approvals-header-row{display:flex;align-items:start;gap:1rem;flex-wrap:wrap}.approvals-header-row .approvals-view-toggle{margin-top:1.3rem}.approvals-header-row .approvals-filters{flex:1 1 42rem}.approvals-view-toggle{display:flex;justify-content:flex-end;flex:0 1 auto;min-width:0;max-width:100%;margin-left:auto}.est-sidebar-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.est-sidebar-item-label{flex:1 1 auto}.est-sidebar-item-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#b91c1c;color:#fff;font-size:.72rem;font-weight:700;line-height:1;flex:0 0 auto}.sidebar-editbar{display:flex;align-items:center;gap:6px;flex:0 0 auto}.sidebar-edit-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.sidebar-edit-toggle:hover{background:var(--surface-2);color:var(--ink)}.sidebar-edit-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sidebar-edit-toggle svg{width:16px;height:16px;display:block;transition:transform .25s ease}.sidebar-edit-toggle[aria-pressed=true]{background:#1ea7e01f;color:var(--es-blue);border-color:#1ea7e059}.sidebar-edit-toggle[aria-pressed=true] svg{transform:rotate(60deg)}.sidebar-reset-order{font:inherit;font-size:.72rem;font-weight:600;color:var(--muted);background:none;border:1px solid var(--line);border-radius:6px;padding:3px 8px;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.sidebar-reset-order:hover{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong)}.sidebar-reset-order:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-sidebar .est-sidebar-section{position:relative}.app-sidebar.editing{-webkit-user-select:none;user-select:none}.app-sidebar.editing .est-sidebar-section{border-style:dashed;border-color:var(--line-strong);cursor:grab;touch-action:none}.app-sidebar.editing .est-sidebar-section:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.app-sidebar.editing .est-sidebar-heading{padding-right:26px}.app-sidebar.editing .est-sidebar-item{pointer-events:none}.sidebar-drag-handle{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:5px;background:none;color:var(--placeholder);cursor:grab;touch-action:none}.sidebar-drag-handle:hover{color:var(--muted);background:var(--surface-2)}.sidebar-drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px;color:var(--muted)}.sidebar-drag-handle svg{width:15px;height:15px;display:block}.app-sidebar .est-sidebar-section.dragging{cursor:grabbing;border-style:solid;border-color:var(--accent);box-shadow:var(--shadow-md);opacity:.95}@media (prefers-reduced-motion: reduce){.sidebar-edit-toggle svg{transition:none}}.approvals-filters{display:flex;flex-wrap:wrap;gap:1rem;min-width:0;align-items:start}.approvals-filters>.field{flex:1 1 11rem;min-width:0;max-width:100%}.approvals-filters>.field:has(.billing-cycle-list){flex:1 1 13rem}.approvals-filters .billing-cycle-option{flex-wrap:wrap;white-space:normal}.approvals-header-row .approvals-actions-inline,.approvals-header-row .approvals-actions-inline>div{min-width:0;max-width:100%;flex-wrap:wrap}.approvals-table-wrap.flat-wrap{overflow-x:auto;box-shadow:var(--shadow-sm)}.approvals-table.flat{min-width:1100px}.approvals-table.flat td.flat-project-cell{white-space:nowrap;display:flex;align-items:center;gap:.45rem;font-size:.88rem}.approvals-table.flat td.flat-project-cell .project-code{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:#1ea7e024;border:1px solid rgba(30,167,224,.4);color:var(--es-blue);font-size:.72rem;font-weight:600}.approvals-table tbody tr.edit-row>td{background:#1ea7e00f}.approvals-table tbody tr.edit-row:hover>td{background:#1ea7e00f}.approvals-table tbody tr.edit-row input,.approvals-table tbody tr.edit-row textarea{padding:.35rem .5rem;font-size:.88rem}.approvals-table tbody tr.edit-row textarea{min-height:38px;resize:vertical}.edit-row-actions{display:flex;gap:.35rem;justify-content:flex-end}.approvals-table td.desc-cell{max-width:280px;word-break:break-word}.approvals-table td.memo-cell{max-width:360px;word-break:break-word}.approvals-table td.memo-cell .memo-text{color:var(--ink-soft);font-size:.85rem;line-height:1.4;white-space:pre-wrap;display:block}.inline-check{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.88rem;color:var(--ink-soft)}.inline-check input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:var(--accent)}.badge{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.75rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}.badge-info{background:#1ea7e01f;border:1px solid rgba(30,167,224,.4);color:var(--es-blue)}.badge-warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink)}.badge-ok{background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok-ink)}.badge-edited{display:inline-flex;align-items:center;gap:.25rem;background:#8b5cf61f;border:1px solid rgba(139,92,246,.45);color:#a78bfa}:root[data-theme=light] .badge-edited{color:#7c3aed}.badge-unsaved{display:inline-flex;align-items:center;gap:.25rem;background:#d9853f1f;border:1px solid rgba(217,133,63,.45);color:var(--es-orange)}.cell-badges{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:1.25rem 1.5rem 1.5rem;width:100%;max-width:480px;box-shadow:var(--shadow-md)}.modal h3{font-size:1.05rem;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.client-create-modal,.invoice-create-modal{max-width:900px;max-height:calc(100vh - 2rem);overflow-y:auto}.pac-container{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow-md);font-family:inherit;margin-top:4px;z-index:1000}.pac-item{color:var(--ink);padding:.5rem .75rem;cursor:pointer;border-top:1px solid var(--line);font-size:.88rem}.pac-item:first-child{border-top:none}.pac-item:hover,.pac-item-selected{background:#1ea7e02e}.pac-item-query{color:var(--ink);font-weight:600}.pac-matched{font-weight:700;color:var(--es-blue)}.pac-item-context,.pac-secondary-text{color:var(--muted);font-size:.85rem}.pac-icon{display:none}.pac-logo:after{filter:invert(.6) opacity(.7)}:root[data-theme=light] .pac-logo:after{filter:none}.metrics-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:1rem;row-gap:.4rem;margin:.5rem 0 0;font-size:.9rem}.metrics-grid dt{color:var(--muted);font-weight:500}.metrics-grid dd{margin:0;font-family:monospace;word-break:break-word}.metrics-grid dd.warn{color:var(--warn-ink);font-weight:600}.pill{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em;font-family:monospace}.pill.ok{background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line)}.pill.warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}.pill.muted{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.person-pill{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);font-size:.8rem;font-weight:500;white-space:nowrap}.person-pill-group{display:inline-flex;flex-wrap:wrap;gap:.25rem}.dept-pill{display:inline-flex;align-items:center;padding:.12rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.dept-pill.dept-reg{background:#3eb6a124;color:var(--es-teal);border-color:#3eb6a159}.dept-pill.dept-tem{background:#1ea7e024;color:var(--es-blue);border-color:#1ea7e059}.dept-pill.dept-other{background:var(--surface-2);color:var(--ink-soft);border-color:var(--line)}.active-projects-table tbody td{padding-top:.75rem;padding-bottom:.75rem}.active-projects-table tbody tr.project-row>td{background:#ffffff06}.active-projects-table tbody tr.project-row>td:first-child{box-shadow:inset 4px 0 0 var(--line-strong)}.active-projects-table tbody tr.project-row:hover>td{background:#ffffff0d}.active-projects-table tbody tr.project-row.dept-reg>td{background:#3eb6a10f}.active-projects-table tbody tr.project-row.dept-reg:hover>td{background:#3eb6a11c}.active-projects-table tbody tr.project-row.dept-reg>td:first-child{box-shadow:inset 4px 0 0 var(--es-teal)}.active-projects-table tbody tr.project-row.dept-tem>td{background:#1ea7e012}.active-projects-table tbody tr.project-row.dept-tem:hover>td{background:#1ea7e01f}.active-projects-table tbody tr.project-row.dept-tem>td:first-child{box-shadow:inset 4px 0 0 var(--es-blue)}.active-projects-table tbody tr.project-row.dept-other>td:first-child{box-shadow:inset 4px 0 0 var(--es-teal)}.sidebar-refresh{padding:0 .6rem .5rem}.sidebar-refresh-row{display:flex;align-items:center;gap:6px}.sidebar-refresh-btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto;width:100%;padding:.35rem .5rem;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.sidebar-refresh-btn:hover:not(:disabled){background:var(--bg-elev);border-color:var(--line-strong)}.sidebar-refresh-btn:disabled{opacity:.7;cursor:wait}.sidebar-refresh-msg{margin:.3rem 0 0;font-size:.7rem;line-height:1.3;word-break:break-word}.sidebar-refresh-msg.ok{color:var(--ok-ink)}.sidebar-refresh-msg.warn{color:var(--warn-ink)}.sidebar-ask{padding:.5rem .6rem 0}.sidebar-ask-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:100%;padding:.35rem .5rem;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--ink);text-decoration:none;font-size:.75rem;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.sidebar-ask-btn:hover{background:var(--bg-elev);border-color:var(--line-strong)}.sidebar-ask-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:0 0 14px}.sidebar-ask-icon svg{width:100%;height:100%;display:block}.sidebar-ask-label{flex:0 1 auto;text-align:center;line-height:1.2}.refresh-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.refresh-modal-panel{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 48px #00000073;width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.refresh-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.refresh-modal-header h2{margin:0;font-size:1.05rem;font-weight:600}.refresh-modal-close{background:transparent;border:0;color:var(--ink-soft);font-size:1.4rem;line-height:1;cursor:pointer;padding:.2rem .5rem;border-radius:4px}.refresh-modal-close:hover{background:var(--bg-elev);color:var(--ink)}.refresh-modal-status{margin:0;padding:.6rem 1.25rem;font-size:.85rem;color:var(--ink-soft)}.refresh-modal-status.warn{color:var(--warn-ink)}.refresh-modal-progress-bar{height:6px;background:var(--bg-elev);border-bottom:1px solid var(--line);overflow:hidden}.refresh-modal-progress-fill{height:100%;background:var(--accent);transition:width .25s ease-out}.refresh-modal-entity-list{list-style:none;margin:0;padding:.25rem 0 .5rem;overflow-y:auto;flex:1}.refresh-modal-entity{display:flex;align-items:center;justify-content:space-between;padding:.45rem 1.25rem;font-size:.9rem;border-top:1px solid var(--line)}.refresh-modal-entity:first-child{border-top:0}.refresh-modal-entity-name{font-weight:500;text-transform:capitalize}.refresh-modal-entity-status{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.82rem}.refresh-modal-entity.pending .refresh-modal-entity-name{color:var(--ink-soft)}.refresh-modal-entity.busy .refresh-modal-entity-status{color:var(--ink)}.refresh-modal-entity.ok .refresh-modal-entity-status{color:var(--ok-ink)}.refresh-modal-entity.partial .refresh-modal-entity-status,.refresh-modal-entity.err .refresh-modal-entity-status{color:var(--warn-ink)}.refresh-modal-entity.skipped .refresh-modal-entity-name,.refresh-modal-entity.skipped .refresh-modal-entity-status{color:var(--ink-soft);font-style:italic}.refresh-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--line)}.budget-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.budget-detail-panel{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-lg, 10px);box-shadow:0 16px 48px #00000073;width:min(680px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.budget-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.budget-detail-titles h2{margin:0;font-size:1.05rem;font-weight:600}.budget-detail-project{display:block;margin-top:.15rem;font-size:.85rem;color:var(--ink-soft)}.budget-detail-close{background:transparent;border:0;color:var(--ink-soft);font-size:1.5rem;line-height:1;cursor:pointer;padding:.1rem .45rem;border-radius:4px;flex-shrink:0}.budget-detail-close:hover{background:var(--bg-elev);color:var(--ink)}.budget-detail-summary{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--line);background:var(--bg-elev)}.budget-detail-stat{display:flex;flex-direction:column;gap:.1rem}.budget-detail-stat-label{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.budget-detail-stat-value{font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums}.budget-detail-stat-strong .budget-detail-stat-value{color:var(--accent)}.budget-detail-body{flex:1;overflow-y:auto;padding:.75rem 1.25rem 1rem}.budget-detail-state{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1rem;color:var(--ink-soft);font-size:.9rem}.budget-detail-state-error{color:var(--warn-ink)}.budget-detail-warn{margin:0 0 .6rem;font-size:.82rem;color:var(--warn-ink)}.budget-detail-spinner{display:inline-block;width:.9rem;height:.9rem;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:budget-pill-spin .8s linear infinite}.budget-detail-table-wrap{border:1px solid var(--line);border-radius:var(--radius, 8px);overflow:hidden}.budget-detail-table{width:100%;table-layout:fixed}.budget-detail-table col.bd-col-rail{width:10px}.budget-detail-table col.bd-col-meta{width:120px}.budget-detail-table col.bd-col-amt{width:118px}.budget-detail-table tbody tr>td:first-child,.budget-detail-table thead th:first-child{padding-left:0;padding-right:0}.budget-detail-table.approvals-table.grouped tbody tr.employee-row>td:first-child,.budget-detail-table.approvals-table.grouped tbody tr.entry-row>td:first-child{padding-left:0}.budget-detail-table tbody tr.bd-sec-invoices{--bd-accent: var(--es-orange)}.budget-detail-table tbody tr.bd-sec-hours{--bd-accent: var(--es-blue)}.budget-detail-table tbody tr.bd-sec-expenses{--bd-accent: var(--es-teal)}.budget-detail-table.approvals-table.grouped tbody tr.approvals-phase-row>td:first-child,.budget-detail-table.approvals-table.grouped tbody tr.employee-row>td:first-child,.budget-detail-table.approvals-table.grouped tbody tr.entry-row>td:first-child{box-shadow:inset 4px 0 0 var(--bd-accent)}.budget-detail-table tbody tr.approvals-phase-row .caret,.budget-detail-table tbody tr.employee-row .caret{color:var(--bd-accent)}.budget-detail-table.approvals-table.grouped tbody tr.approvals-phase-row>td{background:var(--bg-elev);background:color-mix(in srgb,var(--bd-accent) 15%,transparent)}.budget-detail-table.approvals-table.grouped tbody tr.employee-row>td{background:var(--surface);background:color-mix(in srgb,var(--bd-accent) 9%,transparent)}.budget-detail-table.approvals-table.grouped tbody tr.entry-row>td{background:var(--surface);background:color-mix(in srgb,var(--bd-accent) 5%,transparent)}.budget-detail-table.approvals-table.grouped tbody tr.employee-row:hover>td{background:color-mix(in srgb,var(--bd-accent) 14%,transparent)}.budget-detail-table.approvals-table.grouped tbody tr.entry-row:hover>td{background:color-mix(in srgb,var(--bd-accent) 9%,transparent)}.budget-detail-table tbody tr.approvals-phase-row .group-disclosure{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.budget-detail-table td.group-row-summary,.budget-detail-table td.bd-amt,.budget-detail-table thead th.bd-amt-h{text-align:right;padding-right:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}.budget-detail-table td.group-row-summary,.budget-detail-table td.bd-amt{font-weight:600;color:var(--ink)}.budget-detail-table .group-static{cursor:default}.budget-detail-table .group-static .caret{visibility:hidden}.budget-detail-table td.bd-leaf{padding-left:3.5rem}.budget-detail-table td.bd-leaf.bd-leaf-shallow{padding-left:1.9rem}.budget-detail-table td.bd-meta{color:var(--ink-soft);font-variant-numeric:tabular-nums}.budget-detail-muted{color:var(--muted)}.budget-detail-count{margin-left:.5rem;font-size:.7rem;font-weight:600;color:var(--ink-soft);background:var(--surface-2);border-radius:999px;padding:.05rem .4rem;text-transform:none;letter-spacing:0}.bd-block{margin:0 0 1rem}.bd-block-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .4rem;font-size:.95rem;font-weight:600}.bd-block-total{font-variant-numeric:tabular-nums}.budget-detail-plain-table{width:100%}.budget-detail-plain-table th.bd-num,.budget-detail-plain-table td.bd-num{text-align:right;font-variant-numeric:tabular-nums}.budget-detail-plain-table tr.bd-total-row>td{font-weight:600;border-top:1px solid var(--line-strong, var(--line))}.budget-detail-table.budget-detail-plain tbody tr>td:first-child{box-shadow:none}.budget-detail-table.budget-detail-plain tbody tr>td{background:transparent}.budget-detail-plain tr.bd-section>td{padding-top:.6rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong, var(--line))}.budget-detail-plain tr.bd-category>td{font-weight:600;color:var(--ink);background:var(--surface-2)}.budget-detail-plain tr.bd-line>td{color:var(--ink-soft)}.budget-detail-plain tr.bd-line td.bd-leaf{padding-left:1.5rem}.budget-detail-plain td.bd-amt,.budget-detail-plain td.group-row-summary{text-align:right;font-variant-numeric:tabular-nums}.budget-detail-tag{margin-left:.4rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--warn-ink);border:1px solid currentColor;border-radius:4px;padding:0 .25rem;vertical-align:middle}.budget-detail-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--line)}.api-console-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:.75rem;margin-top:.5rem}.api-console-row>label{margin:0}.api-console-method select,.api-console-path input{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem}.api-console-body{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;min-height:140px}.api-console-presets{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.75rem 0;padding:.5rem 0;border-top:1px solid var(--line)}.api-console-presets button.ghost.small{font-size:.78rem;padding:.2rem .55rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.api-console-response{margin-top:.5rem}.api-console-status-row{display:flex;align-items:center;gap:.6rem;margin:.5rem 0;flex-wrap:wrap}.api-console-body-out{background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:.75rem;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;line-height:1.4;max-height:60vh;overflow:auto;white-space:pre;color:var(--ink)}.api-console-history{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid var(--line)}.api-console-history-header{display:flex;justify-content:space-between;align-items:center}.api-console-history-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.api-console-history-item{display:grid;grid-template-columns:50px 60px 1fr auto;gap:.6rem;align-items:center;width:100%;padding:.4rem .6rem;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;text-align:left;font:inherit;color:inherit}.api-console-history-item:hover{background:var(--bg-elev);border-color:var(--line)}.api-console-history-method{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;font-weight:600;color:var(--ink-soft)}.api-console-history-path{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:.1rem .4rem;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;font-weight:600;border:1px solid transparent}.status-pill.ok{background:var(--ok-bg, #1e3a25);color:var(--ok-ink, #6fdc8c);border-color:var(--ok-ink, #6fdc8c)}.status-pill.warn{background:var(--warn-bg, #4a3b14);color:var(--warn-ink, #f0c674);border-color:var(--warn-ink, #f0c674)}.status-pill.err{background:var(--err-bg, #4a1f1f);color:var(--err-ink, #f08080);border-color:var(--err-ink, #f08080)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.timecard-shell{max-width:none;width:100%}.timecard-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.85rem}.timecard-title{margin:0;font-size:1.55rem;font-weight:600;color:var(--ink)}.timecard-topbar-right{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.timecard-show,.timecard-period{display:inline-flex;align-items:center;gap:.4rem;margin:0}.timecard-show select,.timecard-employee,.timecard-period select{height:2.1rem;padding:0 .5rem}.timecard-employee{min-width:12rem}.timecard-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:0;font-size:1rem;color:var(--accent);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer}.timecard-icon-btn:hover{background:var(--bg-elev);border-color:var(--line)}.timecard-submit{white-space:nowrap}.timecard-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.5rem 0;margin-bottom:.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.timecard-menu-btn{white-space:nowrap}.timecard-daterange{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.timecard-daterange-label{padding:0 .75rem;font-size:.9rem;color:var(--ink);white-space:nowrap}.timecard-nav-btn{width:2rem;height:2rem;border:0;background:var(--surface-2);color:var(--ink);cursor:pointer;font-size:1.1rem;line-height:1}.timecard-nav-btn:hover{background:var(--bg-elev)}.timecard-filter{color:var(--ink-soft);margin-left:auto}.timecard-toggle{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;cursor:pointer;color:var(--ink);font-size:.9rem;padding:0}.timecard-toggle-track{position:relative;width:2.1rem;height:1.1rem;border-radius:999px;background:var(--line-strong);transition:background .15s ease;flex:none}.timecard-toggle-thumb{position:absolute;top:2px;left:2px;width:.8rem;height:.8rem;border-radius:50%;background:#fff;transition:transform .15s ease}.timecard-toggle.on .timecard-toggle-track{background:var(--accent)}.timecard-toggle.on .timecard-toggle-thumb{transform:translate(1rem)}.timecard-table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;background:var(--bg-elev)}.timecard-table{width:100%;border-collapse:collapse;font-size:.9rem;color:var(--ink)}.timecard-table col.tc-col-check{width:2.4rem}.timecard-table col.tc-col-project{width:13rem}.timecard-table col.tc-col-activity{width:9rem}.timecard-table col.tc-col-desc{width:auto}.timecard-table col.tc-col-day{width:5.2rem}.timecard-table col.tc-col-total{width:6.5rem}.timecard-table col.tc-col-action{width:5.5rem}.timecard-table th,.timecard-table td{padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}.timecard-table thead th{background:var(--surface-2);font-weight:600;border-bottom:2px solid var(--line-strong);position:sticky;top:0;z-index:1}.timecard-table .tc-left{text-align:left}.timecard-table .tc-check{text-align:center;padding-left:.4rem;padding-right:.4rem}.timecard-table .tc-day,.timecard-table .tc-action{text-align:center}.tc-day-short{display:block;font-weight:600}.tc-day-date{display:block;font-size:.72rem;color:var(--ink-soft);font-weight:400}.tc-total-head{white-space:normal;line-height:1.1}.tc-entry-row td{background:var(--surface)}.tc-input{width:100%;height:2rem;padding:0 .45rem}.tc-hrs-input{width:100%;max-width:4rem;height:2rem;padding:0 .3rem;text-align:center}.tc-hrs-input::placeholder{font-style:italic;color:var(--muted)}.tc-total-cell{font-variant-numeric:tabular-nums}.tc-save-btn{padding:.3rem .9rem}.tc-loadmore-row td{padding:.4rem .6rem}.tc-loadmore{background:transparent;border:0;color:var(--accent);cursor:pointer;font-size:.85rem;padding:.1rem 0}.tc-loadmore:hover{text-decoration:underline}.tc-group-row td{background:var(--surface-2)}.tc-group-toggle{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink);padding:0}.tc-caret{color:var(--ink-soft);font-size:.8rem}.tc-group-total{font-weight:600;font-variant-numeric:tabular-nums}.tc-add-btn{width:1.6rem;height:1.6rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elev);color:var(--accent);cursor:pointer;font-size:1rem;line-height:1}.tc-add-btn:hover{background:var(--surface)}.tc-data-row td{background:var(--bg-elev)}.tc-row-total{font-variant-numeric:tabular-nums}.tc-cell-filled{display:inline-flex;flex-direction:column;align-items:center;gap:.1rem;font-variant-numeric:tabular-nums}.tc-approved{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;background:var(--ok-bg);color:var(--ok-ink);font-size:.7rem;line-height:1}.tc-cell-filled .tc-hrs{display:inline-flex;align-items:center;gap:.25rem}.tc-note-icon{font-size:.7rem;opacity:.6}.timecard-table tfoot td{background:var(--surface-2);border-top:2px solid var(--line-strong);border-bottom:0;font-weight:600}.tc-subtotals{display:flex;align-items:center;gap:.5rem}.tc-subtotals select{height:2rem}.tc-total-label{text-align:right}.tc-foot-total{font-variant-numeric:tabular-nums}.tc-grand{color:var(--ink)}.timecard-note{margin:.75rem 0 0}.timecard-employee-name{display:inline-flex;align-items:center;min-width:12rem;height:2.1rem;padding:0 .6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--ink);font-size:.9rem}.timecard-refresh-btn{padding:.2rem .55rem}.timecard-banner{margin:.6rem 0}.tc-state{text-align:center;padding:1.5rem .6rem;font-size:.9rem}.tc-submitted{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;background:var(--warn-bg);color:var(--warn-ink);font-size:.7rem;line-height:1}.tc-add-cell{width:1.9rem;height:1.9rem;border-radius:var(--radius);border:1px dashed var(--line-strong);background:transparent;color:var(--accent);cursor:pointer;font-size:1.1rem;line-height:1}.tc-add-cell:hover:not(:disabled){background:var(--surface);border-style:solid}.tc-add-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tc-add-cell:disabled{opacity:.35;cursor:not-allowed}.tc-add-hint{white-space:nowrap}button.tc-cell-edit{border:1px solid transparent;border-radius:var(--radius);background:transparent;color:inherit;font:inherit;cursor:pointer;padding:.15rem .3rem}button.tc-cell-edit:hover{background:var(--surface);border-color:var(--line)}button.tc-cell-edit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tc-cell-locked{cursor:default}.tc-edit-modal{max-width:420px}.tc-edit-context{margin:.25rem 0 1rem;display:grid;gap:.3rem;padding:.55rem .75rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}.tc-edit-context>div{display:flex;justify-content:space-between;gap:1rem}.tc-edit-context dt{margin:0;color:var(--ink-soft);font-size:.8rem}.tc-edit-context dd{margin:0;font-size:.85rem;font-weight:500;text-align:right}.tc-edit-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.tc-edit-field>span{font-size:.85rem;font-weight:600}.tc-edit-field textarea{width:100%;min-height:3.5rem}.tc-edit-field-hours input{max-width:7rem;height:2rem}.tc-req{color:var(--err)}.tc-edit-hint{margin:0 0 .5rem}.tc-edit-actions{align-items:center}.tc-edit-delete{margin-right:auto}.contract-badge{display:inline-flex;align-items:center;margin-left:.5rem;padding:.12rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}.contract-badge.ct-hourly{color:#2563eb;background:#2563eb1f;border-color:#2563eb4d}.contract-badge.ct-fixed{color:#c2680c;background:#d9770624;border-color:#d9770652}.contract-badge.ct-recurring{color:#7c3aed;background:#7c3aed21;border-color:#7c3aed4d}.contract-badge.ct-other{color:var(--muted);background:var(--surface-2);border-color:var(--line)}.proj-status-pill{display:inline-flex;align-items:center;padding:.12rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}.proj-status-active{color:var(--ok-ink, #6fdc8c);background:#6fdc8c1f;border-color:#6fdc8c52}.proj-status-hold{color:var(--warn-ink, #f0c674);background:#f0c6741f;border-color:#f0c67452}.proj-status-canceled{color:var(--err-ink, #f08080);background:#f080801f;border-color:#f080804d}.proj-status-completed{color:#6ba7e6;background:#6ba7e61f;border-color:#6ba7e64d}.proj-status-inactive,.proj-status-draft,.proj-status-other{color:var(--ink-soft);background:var(--surface-2);border-color:var(--line)}.partner-scope-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.partner-scope-toggle button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-soft);padding:.4rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer}.partner-scope-toggle button+button{border-left:1px solid var(--line)}.partner-scope-toggle button.active{color:var(--es-teal);background:#3eb6a124}.partner-dashboard-table .contract-badge{margin-left:0}.bqe-open-link{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.35rem;color:var(--muted);text-decoration:none;font-size:.85em;opacity:.6;white-space:nowrap}.bqe-open-link:hover,.bqe-open-link:focus-visible{color:var(--es-teal, #2f9e8f);opacity:1}.partner-dashboard-table .partner-budget-cell{min-width:150px}.partner-dashboard-table .budget-pill,.client-panel-body .budget-pill{width:190px;padding:.2rem .55rem;gap:.14rem}.partner-dashboard-table .budget-pill-row,.client-panel-body .budget-pill-row{font-size:.8rem}.partner-dashboard-table .budget-pill-label,.client-panel-body .budget-pill-label{font-size:.6rem}.partner-dashboard-table .budget-pill-bar,.client-panel-body .budget-pill-bar{height:4px}.partner-dashboard-table .budget-pill-size-md .budget-pill-figure,.client-panel-body .budget-pill-size-md .budget-pill-figure{font-size:.72rem}.partner-dashboard-table .budget-pill-size-sm .budget-pill-figure,.client-panel-body .budget-pill-size-sm .budget-pill-figure{font-size:.6rem}.partner-dashboard-table .budget-pill-size-xs .budget-pill-figure,.client-panel-body .budget-pill-size-xs .budget-pill-figure{font-size:.54rem}.partner-dashboard-table .budget-pill.has-fixedfee,.client-panel-body .budget-pill.has-fixedfee{width:225px;flex:0 0 225px;overflow:hidden}.partner-dashboard-table .budget-pill.has-fixedfee .budget-pill-main,.client-panel-body .budget-pill.has-fixedfee .budget-pill-main{flex:0 0 130px;min-width:130px;max-width:130px;padding-right:.4rem;overflow:hidden}.partner-dashboard-table .budget-pill-fixedfee,.client-panel-body .budget-pill-fixedfee{flex:0 0 95px;min-width:95px;max-width:95px;overflow:hidden;margin:-.2rem -.55rem -.2rem 0;padding:.2rem .55rem .2rem .5rem;align-self:stretch;border-radius:0 8px 8px 0;background:#d9853f29}.partner-dashboard-table .budget-pill-fixedfee-amount,.client-panel-body .budget-pill-fixedfee-amount{font-size:.8rem;line-height:inherit}.partner-dashboard-table .budget-pill-fixedfee-row,.client-panel-body .budget-pill-fixedfee-row{font-size:.8rem;gap:.1rem}.partner-dashboard-table .budget-pill-fixedfee-label,.client-panel-body .budget-pill-fixedfee-label{font-size:.6rem}.partner-dashboard-table .budget-pill-fixedfee-bar,.client-panel-body .budget-pill-fixedfee-bar{height:4px}.partner-billings-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 3px #00000040;padding:.6rem .9rem .5rem;margin-bottom:1rem}.partner-billings-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem}.partner-billings-title{margin:0;font-size:1rem;font-weight:600;white-space:nowrap}.partner-billings-total{font-size:1.35rem;font-weight:700;color:var(--es-teal);font-variant-numeric:tabular-nums;white-space:nowrap}.partner-billings-chart{display:flex;align-items:flex-end;gap:.35rem;margin-top:.4rem}.pbill-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center}.pbill-val{font-size:.72rem;font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums;min-height:1em;margin-bottom:.2rem;white-space:nowrap}.pbill-track{width:100%;height:64px;display:flex;align-items:flex-end;padding:0 12%;box-sizing:border-box}.pbill-fill{width:100%;min-height:2px;background:var(--es-teal);border-radius:3px 3px 0 0;transition:opacity .12s ease}.pbill-col:hover .pbill-fill{opacity:.82}.pbill-x{margin-top:.35rem;font-size:.72rem;color:var(--muted);white-space:nowrap}.partner-charts-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:start;gap:1rem;margin-bottom:1rem}.partner-charts-row .partner-billings-card{margin-bottom:0}.par-terms-cell{white-space:nowrap}.par-terms-cell>span{display:inline-block;min-width:3.4rem}.par-terms-btn{font-size:.72rem;padding:.15rem .5rem;white-space:nowrap}.par-terms-panel{margin:.75rem 1.25rem 0;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.par-terms-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.par-terms-row select{width:auto;min-width:12rem}.par-terms-title{font-weight:600;font-size:.85rem}.partner-status-filter{width:200px}.partner-status-filter .combobox-chips{display:none}.partner-dashboard-table tbody tr.pd-summary-row>td{padding:.75rem 1rem .9rem;background:var(--surface)}.pd-summary-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}@media (max-width: 1100px){.pd-summary-tiles{grid-template-columns:1fr}}.pd-summary-tile{display:flex;flex-direction:column;gap:.25rem;padding:.7rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.pd-summary-label{font-size:.78rem;font-weight:600;color:var(--ink-soft)}.pd-summary-value{font-size:1.35rem;font-weight:700;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.pd-summary-sub{font-size:.75rem;color:var(--muted)}.pd-summary-loading{display:flex;align-items:center;min-height:2.6rem}.pd-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:pd-spin .8s linear infinite}@keyframes pd-spin{to{transform:rotate(360deg)}}.pd-summary-invoices{list-style:none;margin:.15rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.pd-summary-invoices li{display:flex;justify-content:space-between;gap:.75rem}.pd-summary-figs{display:inline-flex;gap:.6rem;font-variant-numeric:tabular-nums}.pd-summary-count{font-weight:700;color:var(--ink)}.pd-phases-card{margin-top:.75rem}.pd-phase-scroll{margin-top:.25rem;overflow-x:auto}.pd-phase-scroll-on{max-height:22rem;overflow-y:auto}.pd-phase-table{width:100%;border-collapse:collapse;font-size:.82rem}.pd-phase-table th,.pd-phase-table td{padding:.3rem .5rem;border-top:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}.pd-phase-table th{border-top:0;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.pd-phase-table .pd-num{text-align:right;font-variant-numeric:tabular-nums}.pd-phase-table .pd-phase-name{white-space:normal;min-width:14rem;overflow-wrap:anywhere}.pd-phase-name-inner,.bqe-link-row{display:inline-flex;align-items:center;gap:.4rem}.pd-phase-name-inner .bqe-open-link,.bqe-link-row .bqe-open-link{margin-left:0}.pd-phase-table tr.pd-phase-main>td{background:var(--surface-2);color:var(--ink-soft);border-bottom:1px solid var(--line-strong, var(--line))}.pd-phase-table tr.pd-phase-main>td:first-child{border-left:3px solid var(--es-teal, #2f9e8f)}.pd-phase-table tr.pd-phase-main .pd-phase-name{font-weight:600;color:var(--ink)}.pd-phase-table tr:not(.pd-phase-main)>td{border-top-color:transparent}.pd-phase-table tr:not(.pd-phase-main)+tr:not(.pd-phase-main)>td{border-top-color:var(--line)}.pd-phase-table tr:not(.pd-phase-main) .pd-phase-name{position:relative;padding-left:1.9rem}.pd-phase-table tr:not(.pd-phase-main) .pd-phase-name:before{content:"";position:absolute;left:.85rem;top:0;bottom:0;border-left:1px solid var(--line-strong, var(--line))}.pd-phase-table tr:not(.pd-phase-main) .pd-phase-name:after{content:"";position:absolute;left:.85rem;top:50%;width:.6rem;border-top:1px solid var(--line-strong, var(--line))}.pd-phase-table tr:not(.pd-phase-main):last-child .pd-phase-name:before{bottom:50%}.pd-phase-table .pd-bar-col{width:8rem}.pd-budget-cell{cursor:pointer}.bqe-open-link.bqe-open-link-emphasis{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:1.5rem;height:1.5rem;padding:0;margin-left:.1rem;border-radius:6px;font-size:1.05rem;font-weight:700;line-height:1;color:var(--accent);opacity:1;vertical-align:-.35em}.bqe-open-link.bqe-open-link-emphasis:hover{background:var(--surface-2);text-decoration:none}.bqe-open-link.bqe-open-link-emphasis:hover{text-decoration:underline}.contract-badge.ct-main{background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.pd-budget-cell:hover{background:var(--bg-elev)}.pd-budget-bar{display:block;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.pd-budget-bar>i{display:block;height:100%;background:var(--muted)}.pd-band-ok{color:var(--ok-ink)}.pd-band-near{color:var(--warn-ink)}.pd-band-over{color:var(--es-red, #d04545)}.pd-budget-bar.pd-band-ok>i{background:var(--ok-ink)}.pd-budget-bar.pd-band-near>i{background:var(--warn-ink)}.pd-budget-bar.pd-band-over>i{background:var(--es-red, #d04545)}.partner-table-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem .75rem;border-bottom:1px solid var(--line)}.partner-table-search{display:flex;align-items:center;gap:.5rem;width:320px;max-width:100%;padding:0 .6rem;border:1px solid var(--line);border-radius:6px;background:var(--bg-elev);color:var(--muted)}.partner-table-search:focus-within{border-color:var(--accent)}.partner-table-search svg{flex:0 0 auto}.partner-table-search input[type=search]{flex:1 1 auto;min-width:0;width:auto;border:0;border-radius:0;background:transparent;box-shadow:none;padding:.4rem 0;font:inherit;color:var(--ink)}.partner-table-search input[type=search]:focus{outline:none;box-shadow:none}.partner-table-toolbar+.approvals-table thead tr:first-child th:first-child,.partner-table-toolbar+.approvals-table thead tr:first-child th:last-child{border-top-left-radius:0;border-top-right-radius:0}.partner-billings-basis{margin:.1rem 0 0;color:var(--muted);font-size:.7rem;font-weight:400;font-style:italic}@media (max-width: 1100px){.partner-charts-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.partner-charts-row>.par-card{grid-column:1 / -1}}@media (max-width: 720px){.partner-charts-row{grid-template-columns:1fr}.partner-charts-row>.par-card{grid-column:auto}}.par-card .par-tiles{display:grid;grid-template-columns:1fr;gap:.4rem;margin-top:.5rem}.par-tile{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;padding:.4rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.par-tile:hover{border-color:var(--es-teal);background:var(--bg-elev)}.par-tile:focus-visible{outline:2px solid var(--es-teal);outline-offset:2px}.par-tile-label{font-size:.78rem;font-weight:600;color:var(--ink-soft)}.par-tile-figures{display:flex;align-items:baseline;gap:.5rem}.par-tile-count{font-size:1.15rem;font-weight:700;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.par-tile-amount{font-size:1rem;font-weight:700;color:var(--es-teal);font-variant-numeric:tabular-nums}.par-tile-caption{margin:0}.par-modal{max-width:760px}.par-modal.par-modal-wide{width:min(1100px,96vw);max-width:1100px}.par-modal .budget-detail-table-wrap{overflow-x:auto}.par-invoice-table th,.par-invoice-table td{padding:.45rem .6rem;font-size:.82rem}.par-invoice-table .par-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.prbc-head{flex-wrap:wrap;align-items:center;gap:.5rem}.prbc-head .partner-billings-title{font-size:.9rem}.prbc-head .partner-billings-total{font-size:1.1rem}.prbc-head-right{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;min-width:0}.prbc-range button{white-space:nowrap;font-size:.66rem;padding:.18rem .4rem}.prbc-range{margin:0}.prbc-range button{font-size:.7rem;padding:.2rem .55rem}.prbc-chart{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.prbc-row{display:grid;grid-template-columns:minmax(0,8.5rem) 1fr auto;align-items:center;gap:.6rem}.prbc-name{font-size:.78rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prbc-track{height:12px;border-radius:6px;background:var(--surface-2);overflow:hidden}.prbc-fill{display:block;height:100%;min-width:2px;background:var(--es-teal);border-radius:6px;transition:opacity .12s ease}.prbc-row:hover .prbc-fill{opacity:.82}.prbc-row-other .prbc-fill{background:var(--muted);opacity:.6}.prbc-val{font-size:.74rem;font-weight:600;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.partner-dashboard-table tbody td{padding-top:.3rem;padding-bottom:.3rem}.partner-dashboard-table .phase-disclosure{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-soft);cursor:pointer;width:1.1rem;margin-right:.15rem;padding:0;font-size:.7rem;line-height:1}.partner-dashboard-table .phase-disclosure:hover{color:var(--ink)}.partner-dashboard-table tbody tr.pd-phase-row>td{background:#ffffff05}.partner-dashboard-table tbody tr.pd-phase-row .phase-project{padding-left:1.65rem}.partner-dashboard-table tbody tr.pd-phase-row .project-code{opacity:.85}.util-chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem 1.15rem .85rem;margin:.85rem 0 1rem}.util-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.35rem}.util-chart-head-left{display:inline-flex;align-items:center;gap:.6rem;flex-wrap:wrap}.util-chart-title{font-size:.95rem;font-weight:700;color:var(--ink)}.util-clear{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink-soft);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600;cursor:pointer}.util-clear:hover{color:var(--es-teal);border-color:var(--es-teal)}.util-headline{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.05}.util-headline-figure{font-size:1.35rem;font-weight:700;color:var(--es-teal)}.util-headline-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.util-chart-scroll{width:100%}.util-chart{display:block;width:100%;height:280px}.util-grid{stroke:var(--line);stroke-width:1;opacity:.5}.util-grid-100{opacity:.9;stroke-dasharray:3 3}.util-axis-line{stroke:var(--line-strong);stroke-width:1}.util-axis{fill:var(--muted);font-size:10px}.util-bar{fill:var(--es-teal)}.util-bar-partial{fill:#3eb6a152;stroke:var(--es-teal);stroke-width:1.5}.util-bar-val{fill:var(--ink-soft);font-size:10px;font-weight:600}.employee-utilization-table tbody td{padding-top:.4rem;padding-bottom:.4rem}.employee-utilization-table td.util-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.employee-utilization-table tbody tr.util-row{cursor:pointer}.employee-utilization-table tbody tr.util-row:hover>td{background:#3eb6a114}.employee-utilization-table tbody tr.util-row.selected>td{background:#3eb6a129}.employee-utilization-table tbody tr.util-row.selected>td:first-child{box-shadow:inset 3px 0 0 var(--es-teal)}.employee-utilization-table tbody tr.util-row:focus-visible{outline:2px solid var(--es-teal);outline-offset:-2px}.util-cell{display:inline-flex;align-items:center;gap:.5rem;justify-content:flex-end}.util-meter{position:relative;width:84px;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;flex:0 0 auto}.util-meter-fill{position:absolute;inset:0 auto 0 0;height:100%;background:var(--es-teal);border-radius:999px}.util-pct{min-width:3.4rem;text-align:right;color:var(--ink);font-weight:600}.util-table-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.25rem 0 .6rem}.util-toolbar-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.util-updating{font-style:italic}.util-status-note{flex-basis:100%;margin:.1rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.35;max-width:70ch}.employee-utilization-table th .header-help-tip{left:auto;right:0;transform:none}.bill-ready{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.1;margin:0 .25rem}.bill-ready-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.bill-ready-figure{font-size:1.05rem;font-weight:700;color:var(--ok-ink)}.bill-breakdown{table-layout:fixed}.bill-breakdown td.group-row-summary{text-align:right;padding-right:.85rem;white-space:nowrap;color:var(--ink);font-weight:600}.bill-breakdown td.bill-actions{white-space:nowrap}.bill-breakdown td.bill-actions .billable-toggle{vertical-align:middle;margin-right:.5rem}.bill-breakdown td.bill-actions .btn-spinner{vertical-align:middle;margin-right:.35rem}.bill-breakdown tbody tr.bill-cat>td{background:var(--surface-2);border-top:1px solid var(--line);padding-top:.5rem;padding-bottom:.5rem}.bill-breakdown tbody tr.bill-cat>td:first-child{box-shadow:inset 4px 0 0 var(--bill-accent, var(--es-blue))}.bill-breakdown tbody tr.bill-cat .group-disclosure{color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.bill-breakdown tbody tr.bill-cat .caret{color:var(--bill-accent, var(--es-blue))}.bill-cat-time{--bill-accent: var(--es-blue)}.bill-cat-expense{--bill-accent: var(--es-teal)}.bill-cat-fixed{--bill-accent: var(--es-orange)}.bill-cat-margin{--bill-accent: var(--muted)}.bill-cat-margin .group-row-summary{color:var(--muted)!important;font-weight:600}.bill-margin-tag{text-transform:none;letter-spacing:0;font-weight:500;font-size:.72rem;color:var(--muted);margin-left:.5rem}.bill-breakdown tbody tr.bill-row-margin>td{color:var(--muted)}.bill-breakdown tbody tr.bill-row-margin>td:first-child{box-shadow:inset 4px 0 0 var(--muted)!important}button.group-disclosure.indent-3{padding-left:5.25rem}button.group-disclosure.indent-3 .caret{color:var(--es-teal)}.bill-breakdown tbody tr.approvals-phase-row .caret{color:var(--es-blue)}.bill-breakdown tbody tr.approvals-phase-row .group-row-summary{color:var(--ink);font-weight:700}.project-dashboard-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);box-shadow:var(--shadow-sm);padding:1.1rem 1.4rem 1.25rem;margin-top:1rem}.project-dashboard-card-title{margin:0 0 .25rem;font-size:1rem}.contract-figures{display:flex;flex-wrap:wrap;gap:.75rem 2.5rem;margin:.6rem 0 .9rem}.contract-figure-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.contract-figure-value{font-size:1.35rem;font-weight:650;font-variant-numeric:tabular-nums}.contract-bar{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.contract-bar>i{display:block;height:100%;border-radius:999px;transition:width .4s ease}.contract-band-ok .contract-bar>i{background:var(--ok-ink)}.contract-band-warn .contract-bar>i{background:var(--warn-ink)}.contract-band-over .contract-bar>i{background:var(--err)}.contract-band-ok .contract-figure-used{color:var(--ok-ink)}.contract-band-warn .contract-figure-used{color:var(--warn-ink)}.contract-band-over .contract-figure-used{color:var(--err)}.deliverable-list{list-style:none;margin:.5rem 0 0;padding:0}.deliverable-item{border-top:1px solid var(--line)}.deliverable-item:first-child{border-top:none}.deliverable-row{display:grid;grid-template-columns:auto minmax(10rem,1.4fr) 13rem minmax(8rem,1fr) auto auto;gap:.75rem;align-items:center;padding:.45rem .25rem}.deliverable-row.done .deliverable-title{text-decoration:line-through;color:var(--muted)}.deliverable-deps{display:block;margin-top:.1rem}.deliverable-due{white-space:nowrap}.deliverable-overdue{color:var(--err);font-weight:600}.deliverable-row-btn{font-size:.8rem;padding:.2rem .5rem;line-height:1}.deliverable-edit-grid{display:grid;grid-template-columns:minmax(9rem,1.3fr) 8.5rem 8.5rem minmax(9rem,1fr) minmax(9rem,1fr) auto;gap:.5rem;align-items:start;padding:.55rem .25rem}.deliverable-add-row{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line-strong)}.deliverable-field{display:flex;flex-direction:column;gap:.15rem;min-width:0}.deliverable-field-label{line-height:1.2}.deliverable-edit-actions{display:inline-flex;gap:.4rem}.deliverable-check{width:22px;height:22px;flex:0 0 auto;border-radius:50%;border:1.5px solid var(--line-strong);background:transparent;color:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.deliverable-check:hover:not(:disabled){border-color:var(--ok-ink);color:var(--ok-ink)}.deliverable-check.is-done{background:var(--ok-ink);border-color:var(--ok-ink);color:var(--accent-ink)}.deliverable-check:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 900px){.deliverable-row,.deliverable-edit-grid{grid-template-columns:1fr 1fr}}.gantt-scroll{overflow-x:auto;margin-top:.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.gantt-svg{display:block}.gantt-gridline{stroke:var(--line);stroke-width:1}.gantt-rowline{stroke:var(--line);stroke-width:1;opacity:.5}.gantt-axis{stroke:var(--line-strong);stroke-width:1}.gantt-month{fill:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.gantt-label{fill:var(--ink);font-size:.8rem}.gantt-label-done{fill:var(--muted);text-decoration:line-through}.gantt-bar.gantt-bar-open,.gantt-milestone.gantt-bar-open{fill:var(--accent)}.gantt-bar.gantt-bar-done,.gantt-milestone.gantt-bar-done{fill:var(--ok-ink);opacity:.55}.gantt-bar.gantt-bar-over,.gantt-milestone.gantt-bar-over{fill:var(--err)}.gantt-arrow{fill:none;stroke:var(--ink-soft);stroke-width:1.5;opacity:.8}.gantt-arrowhead{fill:var(--ink-soft)}.gantt-today{stroke:var(--es-orange);stroke-width:1.5;stroke-dasharray:4 3}.tcal-shell{max-width:none;width:100%}.tcal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.tcal-header-left{display:inline-flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}.tcal-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--ink)}.tcal-employee{color:var(--ink-soft);font-weight:500}.tcal-header-right{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tcal-saving{font-size:.8rem;color:var(--muted);font-style:italic}.tcal-undo{color:var(--accent);border-color:var(--line-strong)}.tcal-submit{white-space:nowrap}.tcal-weeknav{display:inline-flex;align-items:center;gap:.35rem}.tcal-weeklabel{min-width:12.5rem;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.tcal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;font-size:1.1rem;color:var(--accent);background:transparent;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.tcal-nav-btn:hover{background:var(--bg-elev);border-color:var(--line-strong)}.tcal-toggle-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink-soft);border-radius:999px;padding:.25rem .7rem;font-size:.78rem;font-weight:600;cursor:pointer}.tcal-toggle-btn:hover{border-color:var(--line-strong);color:var(--ink)}.tcal-toggle-btn.on{color:var(--accent-ink, #fff);background:var(--accent);border-color:var(--accent)}.tcal-banner{position:relative;margin-bottom:.75rem}.tcal-banner-dismiss{position:absolute;top:.4rem;right:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer;opacity:.7}.tcal-banner-dismiss:hover{opacity:1}.tcal-bonus{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.6rem .85rem;margin-bottom:.75rem}.tcal-bonus-over{border-color:var(--ok-line);background:var(--ok-bg)}.tcal-bonus-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.tcal-bonus-label{font-weight:600;color:var(--ink)}.tcal-bonus-figure{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.tcal-bonus-over .tcal-bonus-figure{color:var(--ok-ink)}.tcal-bonus-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin:.4rem 0 .3rem}.tcal-bonus-bar>i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.tcal-bonus-over .tcal-bonus-bar>i{background:var(--ok-ink)}.tcal-bonus-sub{display:block}.tcal-bonus-head-right{display:inline-flex;align-items:baseline;gap:.5rem;white-space:nowrap}.tcal-bonus-cog{align-self:center;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:var(--radius);padding:0 .35rem;font-size:.95rem;line-height:1.5;cursor:pointer}.tcal-bonus-cog:hover,.tcal-bonus-cog[aria-expanded=true]{background:var(--surface-2);color:var(--ink)}.tcal-bonus-editor{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-top:.55rem;padding-top:.55rem;border-top:1px solid var(--line)}.tcal-bonus-field{display:flex;flex-direction:column;gap:.15rem}.tcal-bonus-field input{width:7rem;text-align:right}.tcal-bonus-editor-actions{display:flex;gap:.4rem}.tcal-bonus-custom{font-style:italic;cursor:help}.tcal-legend{display:flex;align-items:center;gap:.4rem .85rem;flex-wrap:wrap;margin-bottom:.6rem;font-size:.8rem}.tcal-legend-item{display:inline-flex;align-items:center;gap:.35rem}.tcal-legend-swatch{width:.7rem;height:.7rem;border-radius:3px;background:hsl(var(--tcal-color));flex:0 0 auto}.tcal-legend-label{color:var(--ink-soft)}.tcal-legend-hrs{color:var(--muted);font-variant-numeric:tabular-nums}.tcal-body{position:relative}.tcal-grid{--tcal-head-h: 2.6rem;display:grid;align-items:start;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.tcal-gutter{display:flex;flex-direction:column;border-right:1px solid var(--line)}.tcal-corner{height:var(--tcal-head-h);border-bottom:1px solid var(--line)}.tcal-gutter-col{position:relative}.tcal-hour-label{position:absolute;right:.35rem;transform:translateY(-.55em);font-size:.66rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.tcal-daycol{display:flex;flex-direction:column;border-right:1px solid var(--line);min-width:0}.tcal-daycol:last-child{border-right:0}.tcal-today{background:#1ea7e00a}.tcal-dayhead{height:var(--tcal-head-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;border-bottom:1px solid var(--line);line-height:1.1}.tcal-dayhead-short{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tcal-dayhead-date{font-size:.9rem;font-weight:600;color:var(--ink)}.tcal-today .tcal-dayhead-date{color:var(--accent)}.tcal-daycol-collapsed{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-right:1px solid var(--line);background:var(--surface-2);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.5rem 0;color:var(--ink-soft)}.tcal-daycol-collapsed:hover{background:var(--bg-elev);color:var(--ink)}.tcal-collapsed-label{writing-mode:vertical-rl;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.tcal-collapsed-total{font-size:.66rem;font-variant-numeric:tabular-nums;color:var(--muted)}.tcal-col{position:relative;touch-action:none;background-image:repeating-linear-gradient(to top,var(--line-strong),var(--line-strong) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(to top,var(--line),var(--line) .5px,transparent .5px,transparent 10px)}.tcal-col:hover{cursor:crosshair}.tcal-target{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed var(--ink-soft);z-index:3;pointer-events:none}.tcal-target-label{position:absolute;right:.2rem;top:-.9em;font-size:.62rem;color:var(--muted);background:var(--surface);padding:0 .15rem}.tcal-block{position:absolute;left:1px;right:1px;box-sizing:border-box;margin:0;padding:.1rem .3rem;text-align:left;overflow:hidden;border:1px solid hsl(var(--tcal-color) / .55);border-left:3px solid hsl(var(--tcal-color));border-radius:4px;background:hsl(var(--tcal-color) / .2);color:var(--ink);font:inherit;font-size:.7rem;line-height:1.2;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;display:flex;flex-direction:column;gap:.05rem;z-index:2}.tcal-block:hover{background:hsl(var(--tcal-color) / .32)}.tcal-block.tcal-locked{opacity:.82;cursor:pointer}.tcal-block-head{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.tcal-block-proj{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcal-block-hrs{flex:0 0 auto;color:var(--ink-soft);font-variant-numeric:tabular-nums}.tcal-block-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.tcal-block-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}.tcal-status-rejected{border-style:dashed}.tcal-selected{outline:2px solid var(--accent);outline-offset:1px;z-index:4}.tcal-block:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tcal-dimmed{opacity:.4}.tcal-resize{position:absolute;left:0;right:0;height:6px;cursor:ns-resize;z-index:5}.tcal-resize-top{top:0}.tcal-ghost{position:absolute;left:1px;right:1px;border:1px dashed var(--accent);border-radius:4px;background:#1ea7e029;pointer-events:none;z-index:6;overflow:hidden}.tcal-ghost-label{display:block;padding:.1rem .3rem;font-size:.66rem;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.tcal-drag-preview{position:fixed;z-index:200;pointer-events:none;display:flex;align-items:center;gap:.4rem;max-width:240px;padding:.25rem .5rem;border-radius:5px;border:1px solid var(--line-strong);border-left:3px solid var(--tcal-fill, hsl(var(--tcal-color)));background:var(--surface);color:var(--ink);font-size:.72rem;line-height:1.2;white-space:nowrap;box-shadow:0 8px 22px #00000059}.tcal-drag-preview-code{font-weight:700}.tcal-drag-preview-hrs{color:var(--ink-soft);font-variant-numeric:tabular-nums}.tcal-drag-badge{padding:.02rem .35rem;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.62rem}.tcal-drop .tcal-col{box-shadow:inset 0 0 0 2px var(--accent)}.tcal-locked-day .tcal-col{cursor:not-allowed;background-image:repeating-linear-gradient(45deg,transparent,transparent 7px,rgba(128,128,128,.1) 7px,rgba(128,128,128,.1) 8px),repeating-linear-gradient(to top,var(--line-strong),var(--line-strong) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(to top,var(--line),var(--line) .5px,transparent .5px,transparent 10px)}.tcal-locked-day .tcal-dayhead-date{color:var(--muted)}.tcal-daycol-total{border-top:1px solid var(--line);padding:.3rem;text-align:center;font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums}.tcal-daycol-total.tcal-met{color:var(--ok-ink)}.tcal-state{padding:1.5rem .5rem;text-align:center}.tcal-summary{display:flex;justify-content:flex-end;margin-top:.6rem}.tcal-weektotal{display:inline-flex;align-items:baseline;gap:.5rem}.tcal-weektotal-val{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.tcal-note{margin-top:.75rem;max-width:80ch}.tcal-editor{max-width:440px}.tcal-editor-day{margin:0 0 .75rem}.tcal-editor-banner{margin-bottom:.75rem}.tcal-editor-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.7rem}.tcal-editor-field>label{font-size:.82rem;font-weight:600}.tcal-editor-field input[type=text],.tcal-editor-field textarea{width:100%}.tcal-hours-input{display:flex;align-items:center;gap:.4rem}.tcal-hours-input input[type=number]{width:5rem;height:2rem;text-align:center}.tcal-hours-step{width:2rem;height:2rem;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:var(--radius);cursor:pointer;font-size:1.1rem;line-height:1}.tcal-hours-step:hover:not(:disabled){background:var(--bg-elev);border-color:var(--line-strong)}.tcal-hours-step:disabled{opacity:.4;cursor:not-allowed}.tcal-editor-billable{display:inline-flex;align-items:center;gap:.45rem;margin:.35rem 0 .25rem;cursor:pointer}.tcal-editor-hint{margin:.35rem 0 0}.tcal-editor-actions{align-items:center}.tcal-editor-delete{margin-right:auto}.tcal-req{color:var(--err)}.tcal-err{margin:.1rem 0 0;color:var(--warn-ink);font-size:.78rem}.tcal-c0{--tcal-color: 210 90% 56%}.tcal-c1{--tcal-color: 162 62% 42%}.tcal-c2{--tcal-color: 28 84% 54%}.tcal-c3{--tcal-color: 265 68% 62%}.tcal-c4{--tcal-color: 338 74% 58%}.tcal-c5{--tcal-color: 96 46% 45%}.tcal-c6{--tcal-color: 190 78% 44%}.tcal-c7{--tcal-color: 44 88% 50%}.invoice-workspace-shell{display:flex;flex-direction:column;gap:1rem;min-width:0}.invoice-workspace{display:grid;grid-template-columns:minmax(270px,320px) minmax(0,1fr);gap:1rem;align-items:start}.invoice-list-panel{min-width:0;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;position:sticky;top:1rem;align-self:start;max-height:calc(100vh - 2rem)}.invoice-email-card,.invoice-doc-card,.invoice-placeholder-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.invoice-email-card{flex:0 0 auto;padding:.9rem 1rem}.invoice-email-card>.invoice-editor-section:last-child{margin-bottom:0;border-bottom:0;padding-bottom:0}.invoice-doc-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:visible}.invoice-placeholder-card{flex:1 1 auto;min-height:0;display:flex}.invoice-list-panel{display:flex;flex-direction:column}.invoice-list-header{padding:.85rem .85rem 0}.invoice-list-header .invoice-create-btn{width:100%}.invoice-list-controls{padding:.85rem;display:grid;gap:.55rem;border-bottom:1px solid var(--line)}.invoice-list-controls input,.invoice-list-controls select{background:var(--bg-elev)}.invoice-list-date-filter{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.invoice-date-field{display:grid;gap:.2rem;font-size:.72rem;color:var(--muted)}.invoice-list-summary{padding:.45rem .85rem;color:var(--muted);font-size:.76rem;border-bottom:1px solid var(--line)}.invoice-list-scroll{overflow-y:auto;overscroll-behavior:contain}.invoice-empty{text-align:center;padding:2rem 1rem;margin:0}.invoice-list-error{margin:.75rem}.invoice-list-error button{align-self:flex-start}.invoice-list-item{display:flex;flex-direction:column;gap:.25rem;width:100%;padding:.8rem .85rem;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-left:3px solid transparent;text-align:left;font:inherit;cursor:pointer}.invoice-list-item:hover{background:var(--surface-2)}.invoice-list-item.selected{background:var(--bg-elev);border-left-color:var(--type-invoice)}.invoice-list-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.invoice-list-line{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.invoice-list-line strong{font-size:.9rem}.invoice-list-line>span:last-child{font-size:.84rem;font-variant-numeric:tabular-nums}.invoice-list-client{font-size:.88rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-list-project{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-list-meta{margin-top:.15rem;color:var(--muted);font-size:.72rem}.invoice-status-badge,.invoice-sent-badge{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.12rem .45rem;font-size:.66rem!important;font-weight:700;line-height:1.25;text-transform:capitalize}.invoice-status-badge.finalized{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.invoice-status-badge.draft{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.invoice-status-badge.void{background:var(--err-bg);border-color:var(--err-line);color:var(--err)}.invoice-sent-badge{background:color-mix(in srgb,var(--es-blue) 12%,transparent);border-color:color-mix(in srgb,var(--es-blue) 45%,var(--line));color:var(--ink-soft)}.invoice-detail-panel{display:flex;flex-direction:column;gap:1rem;min-width:0;min-height:0}.invoice-detail-empty{margin:auto;padding:2rem;text-align:center;max-width:32rem}.invoice-detail-empty h2{margin:0 0 .3rem}.invoice-actionbar{position:static;flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);background:var(--bg-elev)}.invoice-title-block{min-width:0}.invoice-title-row{display:flex;align-items:center;gap:.55rem}.invoice-title-block h2{margin:0;font-size:1.05rem}.invoice-title-block p{margin:.15rem 0 0;color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.invoice-actions button{white-space:nowrap;padding:.48rem .7rem;font-size:.8rem}.invoice-doc-card>.banner{margin:.7rem .85rem 0}.invoice-detail-grid{display:grid;grid-template-columns:minmax(290px,350px) minmax(430px,1fr);flex:1 1 auto;min-height:0}.invoice-billing-form{min-width:0;min-height:0;padding:.9rem;border-right:1px solid var(--line)}.invoice-detail-panel input,.invoice-detail-panel select,.invoice-detail-panel textarea{padding:.42rem .6rem}.invoice-editor-section{padding:0 0 .7rem;margin:0 0 .7rem;border-bottom:1px solid var(--line)}.invoice-editor-section h3{margin:0 0 .45rem;font-size:.88rem}.invoice-editor-section>label,.invoice-email-fields>label{display:block;margin-bottom:.45rem}.invoice-editor-heading{display:flex;justify-content:space-between;align-items:start;gap:.5rem}.invoice-editor-heading h3{margin-bottom:.1rem}.invoice-editor-heading p{margin:0 0 .4rem}.invoice-editor-heading strong{font-size:.88rem;font-variant-numeric:tabular-nums}.invoice-form-two-col{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.invoice-form-two-col>label{min-width:0;margin-bottom:.45rem}.invoice-form-city-state{grid-template-columns:minmax(0,1.45fr) minmax(80px,.55fr)}.invoice-save{width:100%;justify-content:center}.invoice-save-note{margin:.35rem 0 .6rem;line-height:1.35}.invoice-compose-heading{display:flex;align-items:start;justify-content:space-between;gap:.5rem}.invoice-compose-heading h3{margin-bottom:.1rem}.invoice-compose-heading p{margin:0 0 .4rem;line-height:1.35}.invoice-compose-heading button.link{font-size:.75rem;white-space:nowrap}.invoice-outlook-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem;margin-bottom:.55rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--muted);font-size:.75rem;line-height:1.35}.invoice-outlook-status.connected{color:var(--ok-ink);border-color:var(--ok-line);background:var(--ok-bg)}.invoice-outlook-status button{padding:.3rem .5rem;font-size:.72rem}.invoice-outlook-dot{width:.48rem;height:.48rem;border-radius:50%;background:var(--muted)}.invoice-outlook-status.connected .invoice-outlook-dot{background:var(--ok-ink)}.invoice-compose-section textarea{resize:vertical;min-height:5rem;line-height:1.4}.invoice-compose-section>button.link{font-size:.75rem}.invoice-attachment{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.75rem;color:var(--muted)}.invoice-attachment.is-syncing{color:var(--ink-soft)}.invoice-attachment-icon{font-size:.9rem;line-height:1}.invoice-compose-to-from{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.invoice-compose-section input[readonly]{font-style:italic;color:var(--muted)}.invoice-compose-section label{display:block}.invoice-compose-section .label-text{margin:0 0 .1rem;padding:0;font-size:.62rem;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--muted)}.invoice-email-defaults{padding-top:.2rem}.invoice-section-toggle{width:100%;display:flex;justify-content:space-between;padding:0;color:var(--ink);background:transparent;border:0;font:inherit;font-size:.88rem;font-weight:650;cursor:pointer}.invoice-email-fields{padding-top:.75rem}.invoice-email-fields p{margin:.35rem 0 0}.invoice-sent-note{display:flex;flex-direction:column;gap:.1rem;padding:.75rem;border-radius:var(--radius);background:var(--bg-elev)}.invoice-sent-note strong{font-size:.82rem}.invoice-preview-panel{display:flex;flex-direction:column;min-height:0;min-width:0;background:#cfd5de}.invoice-preview-toolbar{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .75rem;color:var(--ink-soft);background:var(--surface-2);border-bottom:1px solid var(--line);font-size:.72rem;font-weight:600}.invoice-preview-toolbar span:last-child{color:var(--muted);font-weight:400}.invoice-preview-frame{display:block;width:100%;min-height:760px;border:0;background:#d9dee6}@media (max-width: 1320px){.invoice-workspace{grid-template-columns:minmax(250px,285px) minmax(0,1fr)}.invoice-detail-grid{grid-template-columns:310px minmax(410px,1fr)}.invoice-actionbar{align-items:flex-start}}@media (max-width: 1120px){.invoice-workspace{height:auto;min-height:0;grid-template-columns:minmax(230px,280px) minmax(0,1fr)}.invoice-email-card{max-height:none;overflow:visible}.invoice-doc-card{overflow:visible}.invoice-actionbar{position:static}.invoice-detail-grid{grid-template-columns:1fr}.invoice-billing-form{border-right:0;border-bottom:1px solid var(--line);max-height:none;overflow:visible}.invoice-preview-frame{height:760px;flex:none}}@media (max-width: 820px){.invoice-workspace{grid-template-columns:1fr}.invoice-list-panel{position:static;max-height:430px}.invoice-actionbar{flex-direction:column;align-items:stretch}.invoice-actions{justify-content:flex-start}.invoice-preview-frame{height:650px}}@media (max-width: 520px){.invoice-form-two-col{grid-template-columns:1fr;gap:0}.invoice-actions button{flex:1}.invoice-preview-panel{display:none}}.approvals-clientbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:.25rem 0 .9rem}.approvals-clientbar-left{display:flex;align-items:center;gap:.6rem}.view-mode-toggle{flex:0 0 auto}.view-mode-toggle button{padding:.4rem .6rem;line-height:0}.view-mode-toggle button svg{display:block}.approvals-clients-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:.25rem 0 1.1rem}.acs-card{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem}.acs-label{color:var(--muted);font-size:.78rem}.acs-num{color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1.2}.acs-num.danger{color:var(--err, #d04545)}.acs-num.warn{color:var(--warn-ink)}.approvals-clients-open{display:flex;flex-direction:column;gap:14px;margin:0 0 14px}.approvals-clients{display:grid;grid-template-columns:repeat(auto-fill,minmax(246px,1fr));gap:14px;align-items:stretch}.client-tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 17px;display:flex;flex-direction:column;cursor:pointer;min-height:150px}.client-tile:hover{border-color:var(--line-strong)}.client-tile.flag-over{border:2px solid var(--err, #d04545);padding:14px 16px}.client-tile.flag-near{border:2px solid var(--warn-ink);padding:14px 16px}.client-tile-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}.client-tile-name{font-weight:600;font-size:.98rem;color:var(--ink);line-height:1.25;min-height:2.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.client-tile-head{align-items:flex-start}.client-tile-headleft{display:flex;align-items:flex-start;gap:8px;min-width:0}.client-tile-headleft input[type=checkbox]{margin-top:3px;flex:0 0 auto}.client-panel-head>input[type=checkbox]{margin:0;flex:0 0 auto}.client-tile-headright{display:flex;align-items:center;gap:7px}.tile-caret{color:var(--muted);font-size:.9rem}.client-tile-metric{display:flex;align-items:baseline;gap:7px;margin:13px 0 5px}.client-tile-num{font-size:1.85rem;font-weight:700;color:var(--ink);line-height:1}.client-tile-sub{color:var(--muted);font-size:.83rem}.client-tile-money{color:var(--ink-soft);font-size:.9rem}.client-tile-moneylabel{color:var(--muted);font-size:.85em}.client-tile-pills{display:flex;flex-direction:column;gap:6px;margin-top:12px;min-height:26px}.client-tile-foot{margin-top:auto;padding-top:12px}.client-tile-foot .ghost.small-btn{width:100%;justify-content:center}.tile-pill{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-size:.78rem;font-weight:500;padding:3px 9px;border-radius:999px;border:1px solid}.tile-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.tile-pill.over{background:var(--err-bg);border-color:var(--err-line);color:var(--err, #d04545)}.tile-pill.near{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.client-panel{grid-column:1 / -1;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}@keyframes client-rowbody-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.client-panel-body .approvals-project-body{animation:none}}.client-panel.flag-over{border:2px solid var(--err, #d04545)}.client-panel.flag-near{border:2px solid var(--warn-ink)}.client-panel-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);cursor:pointer;flex-wrap:wrap}.client-panel-caret{color:var(--ink-soft);font-size:.95rem}.client-panel-name{font-weight:600;font-size:1rem;color:var(--ink)}.client-panel-meta{color:var(--muted);font-size:.85rem}.client-panel-pills{display:flex;gap:8px;flex-wrap:wrap}.client-panel-spacer{flex:1}.client-panel-body{padding:0}.client-panel-body .approvals-projects{margin:0}.client-panel-body .approvals-summary-projects{padding:4px 16px 14px;overflow-x:auto}.client-panel-body .approvals-summary-projects .approvals-table th{text-align:left;font-weight:600;color:var(--muted);font-size:.8rem;padding:6px 10px;border-bottom:1px solid var(--line)}.client-panel-body .approvals-summary-projects .approvals-table td{padding:7px 10px;border-bottom:1px solid var(--line)}.client-panel-body .approvals-summary-projects .approvals-table tr:last-child td{border-bottom:0}.client-panel-body .approvals-project-body{animation:client-rowbody-in .18s ease-out both}.client-panel-body .client-pill{display:none}.client-panel-body .approvals-project-card{border:0;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid var(--line)}.client-panel-body .approvals-project-card:last-child{border-bottom:0}.client-panel-body .approvals-project-banner{background:transparent;box-shadow:none}.client-panel-body .approvals-project-banner:hover{background:var(--surface-2)}.client-panel-body .approvals-project-card.expanded .approvals-project-banner{border-bottom:1px solid var(--line)}.approve-project-btn{margin-left:.4rem}.client-tile-skeleton{cursor:default;pointer-events:none}.client-tile-skeleton .cts-bar{display:block;background:var(--surface-2);border-radius:6px;animation:cts-pulse 1.2s ease-in-out infinite}.cts-title{width:55%;height:15px}.cts-metric{width:42%;height:24px;margin-top:12px}.cts-sub{width:66%;height:12px;margin-top:8px}.cts-foot{width:100%;height:32px;margin-top:auto;border-radius:8px}@keyframes cts-pulse{0%,to{opacity:1}50%{opacity:.5}}.approvals-project-banner.compact{padding:8px 14px;gap:10px;flex-wrap:nowrap}.approvals-project-banner.compact .banner-disclosure{min-width:0;overflow:hidden}.approvals-project-banner.compact .project-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approvals-project-banner.compact .banner-summary{margin-left:auto}.proj-compact-meta{color:var(--muted);font-size:.82rem;white-space:nowrap}.client-panel-body .contract-badge{background:transparent;border-color:transparent;color:var(--muted);padding:0;font-weight:500}.client-panel-body .project-code{background:transparent;border:0;padding:0;color:var(--muted)}.approve-project-btn,.client-tile-foot .ghost.small-btn,.client-panel-head .ghost.small-btn,.approvals-clientbar-left .ghost.small-btn{color:var(--ok-ink);border-color:color-mix(in srgb,var(--ok-ink) 42%,var(--border-strong))}.approve-project-btn:hover,.client-tile-foot .ghost.small-btn:hover,.client-panel-head .ghost.small-btn:hover,.approvals-clientbar-left .ghost.small-btn:hover{background:color-mix(in srgb,var(--ok-ink) 12%,transparent);border-color:var(--ok-ink)}.bs-field{margin-bottom:1.5rem}.bs-field>.bs-panel{margin-bottom:0}.bs-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:1.5rem}.bs-head{border-radius:12px 12px 0 0}.bs-foot{border-radius:0 0 12px 12px}.bs-panel .approvals-table td{overflow:visible}.bs-head{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--surface-2);flex-wrap:wrap;min-height:40px;cursor:pointer;overflow:visible;-webkit-user-select:none;user-select:none}.bs-head:hover{background:var(--surface)}.bs-head .tile-caret{color:var(--muted);font-size:.9rem;line-height:1}.bs-panel[data-open=true] .bs-head{border-bottom:1px solid var(--line)}.bs-head-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bs-head-title strong{font-size:.92rem;font-weight:600;color:var(--ink)}.bs-head-sub{color:var(--ink-soft);font-size:.88rem}.bs-head-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.bs-panel .approvals-table th{background:var(--surface-2)}.bs-panel .approvals-table td{vertical-align:middle}.bs-panel .approvals-table td input:not([type=checkbox]){width:100%}.bs-due-input{width:130px;padding-left:6px;padding-right:2px}.bs-memo{width:100%;min-height:2.1em;resize:none;field-sizing:content;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.35}.bs-panel .approvals-table td.memo-cell{min-width:14rem}.bs-panel .approvals-table td.bs-actions{white-space:nowrap;text-align:right;max-width:22rem}.bs-panel .approvals-table td.bs-actions .bs-row-error{display:inline-block;white-space:normal;overflow-wrap:anywhere;text-align:left;margin-right:6px;max-width:16rem;vertical-align:middle}.bs-panel .approvals-table td{white-space:normal}.bs-panel .approvals-table td:nth-child(1),.bs-panel .approvals-table td:nth-child(2),.bs-panel .approvals-table td:nth-child(3){max-width:180px}.bs-amount{display:inline-block;max-width:150px}.bs-amount .currency-wrap input{text-align:right}tr.bs-pending .bs-amount input{pointer-events:none;opacity:.6}.bs-due-input.soon{border-color:var(--warn-ink);color:var(--warn-ink);font-weight:600}.bs-due-input.overdue{border-color:var(--err);color:var(--err);font-weight:600}tr.bs-dirty td{background:var(--warn-bg)}tr.bs-pending td{opacity:.75}tr.bs-due-row td{background:var(--warn-bg)}tr.bs-upcoming-row td{background:var(--surface);color:var(--ink-soft)}tr.bs-created td{background:var(--ok-bg)}.bs-head .banner-disclosure{padding:0}.bs-foot{display:flex;align-items:center;gap:12px;padding:8px 16px;border-top:1px solid var(--line);background:var(--surface-2)}.bs-foot .banner-disclosure{padding:0}.bs-foot-actions{margin-left:auto}.bs-upcoming .approvals-table th{background:var(--surface)}.bs-pill{font-weight:500}.bs-head-title{align-items:center}.bs-panel .bs-head{border-radius:11px}.bs-panel[data-open=true] .bs-head{border-radius:11px 11px 0 0}.bs-panel .approvals-table{border-radius:0 0 11px 11px;overflow:hidden}.bs-head-actions .small-btn{line-height:1.2;display:inline-flex;align-items:center}.bs-delete{color:var(--muted);padding-left:8px;padding-right:8px}.bs-delete:hover{color:var(--err);border-color:var(--err-line)}.bqe-open-link-icon{display:block;flex:0 0 auto;width:.7em;height:.7em}.bqe-open-link.bqe-open-link-emphasis .bqe-open-link-icon{width:.75rem;height:.75rem}.budget-pill-label .header-help,.budget-pill-fixedfee-label .header-help{margin-left:0}.budget-pill-label,.budget-pill-fixedfee-label{gap:.15rem}.link-btn.link-btn-save{color:var(--es-teal, #2f9e8f);font-weight:600}.approvals-refresh-btn{padding-left:.6rem;padding-right:.6rem;font-size:1rem;line-height:1}.approvals-header-row .approvals-view-toggle>*{align-self:center}.approvals-header-row .approvals-view-toggle .seg-toggle{align-items:stretch}.approvals-header-row .approvals-view-toggle .seg-toggle button,.approvals-header-row .approvals-view-toggle .approvals-actions-inline button,.approvals-header-row .approvals-refresh-btn{box-sizing:border-box;height:34px;display:inline-flex;align-items:center;justify-content:center}.approvals-header-row .approvals-view-toggle .view-mode-toggle button{line-height:0}.partner-dashboard-table{table-layout:fixed}.partner-dashboard-table>tbody>tr.project-row>td:first-child{white-space:normal;overflow-wrap:anywhere}.form-grid>*,.form-header>*,.form-with-sidebar>*,.project-form-grid>*,.partner-charts-row>*,.pd-summary-tiles>*{min-width:0}.form-header>*{max-width:100%}.form-section-header,.form-footer,.partner-billings-head,.timecard-toolbar,.tcal-weeknav{flex-wrap:wrap}.partner-billings-title{white-space:normal}.partner-billings-chart{overflow-x:auto}.pbill-col{min-width:3.5rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.approvals-clients{grid-template-columns:repeat(auto-fill,minmax(min(100%,246px),1fr))}.invoice-detail-panel{container:invoice-detail / inline-size}.invoice-line-item,.invoice-catalog-line-item,.fee-copy-row{display:grid;grid-template-columns:minmax(0,1fr) 9rem auto;gap:.5rem;align-items:start;margin-bottom:.5rem}.invoice-catalog-line-item{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) 9rem auto}.invoice-line-item>*,.invoice-catalog-line-item>*,.fee-copy-row>*{min-width:0}.responsive-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem}@container workspace (max-width: 60rem){.project-form-content,.client-form-grid,.opportunity-form-grid{grid-template-columns:minmax(0,1fr)}.partner-charts-row{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-charts-row>:last-child{grid-column:1 / -1}}@container workspace (max-width: 52rem){.form-with-sidebar,.project-form-grid{grid-template-columns:minmax(0,1fr)}.form-sidebar,.project-form-sidebar{position:static}.deliverable-row,.deliverable-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-summary-tiles{grid-template-columns:minmax(0,1fr)}}@container workspace (max-width: 42rem){.partner-charts-row,.invoice-workspace{grid-template-columns:minmax(0,1fr)}.invoice-list-panel{position:static;max-height:430px}}@container invoice-detail (max-width: 48rem){.invoice-detail-grid{grid-template-columns:minmax(0,1fr)}.invoice-billing-form{border-right:0;border-bottom:1px solid var(--line);max-height:none;overflow:visible}.invoice-preview-frame{height:760px;flex:none}.invoice-actionbar{position:static;flex-wrap:wrap}}@container (max-width: 40rem){.form-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem}.vendor-bill-line-item{grid-template-columns:minmax(0,1fr) 7rem auto auto}.vendor-bill-line-item>select:first-child{grid-column:1 / -1}.invoice-catalog-line-item{grid-template-columns:minmax(0,1fr) 9rem auto}.invoice-catalog-line-item>select:first-child{grid-column:1 / -1}.phase-row{grid-template-columns:28px minmax(0,1fr) 32px}.phase-row .phase-desc{grid-column:2;grid-row:2}}@container (max-width: 28rem){.invoice-line-item,.invoice-catalog-line-item,.fee-copy-row{grid-template-columns:minmax(0,1fr) auto}.invoice-line-item>:first-child,.invoice-catalog-line-item>:nth-child(2),.fee-copy-row>:first-child{grid-column:1 / -1}.vendor-bill-line-item{grid-template-columns:minmax(0,1fr) auto auto}.vendor-bill-line-item>input[type=text]{grid-column:1 / -1}}.bulk-field-row{display:grid;grid-template-columns:24px minmax(0,220px) minmax(0,1fr);align-items:center;gap:.5rem}.opportunity-metric-row{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;align-items:center;gap:.75rem}@container (max-width: 32rem){.bulk-field-row{grid-template-columns:24px minmax(0,1fr)}.bulk-field-row>:last-child{grid-column:2}.opportunity-metric-row{grid-template-columns:minmax(0,1fr) auto}.opportunity-metric-row>:first-child{grid-column:1 / -1}}.fee-copy-row{padding:.5rem .75rem;background:var(--surface);border:1px dashed var(--line);border-radius:6px;align-items:center}.partner-dashboard-table{min-width:1120px}@container (max-width: 40rem){.row.row-1-2{grid-template-columns:minmax(0,1fr)}}.approvals-phase-row .phase-pending-value{color:var(--muted);font-size:.82rem;white-space:nowrap;margin-left:10px}
