:root{--ts-font:"Segoe UI", system-ui, -apple-system, sans-serif;--ts-size-9:9px;--ts-size-10:10px;--ts-size-11:11px;--ts-size-12:12px;--ts-size-14:14px;--ts-size-16:16px;--ts-size-18:18px;--ts-size-22:22px;--ts-fw-regular:400;--ts-fw-semibold:600;--ts-fw-bold:700;--ts-primary-5:#fcfdff;--ts-primary-10:#f8faff;--ts-primary-20:#f2f4fb;--ts-primary-30:#e8edfb;--ts-primary-35:#eaeffe;--ts-primary-50:#eef2ff;--ts-primary-75:#e0edff;--ts-primary-100:#e0e7ff;--ts-primary-150:#cfe3ff;--ts-primary-200:#c7d2fe;--ts-primary-400:#818cf8;--ts-primary-500:#6366f1;--ts-primary-600:#4f46e5;--ts-primary-700:#4338ca;--ts-primary-900:#312e81;--ts-secondary-50:#fffbeb;--ts-secondary-200:#fff5cc;--ts-secondary-400:#d97706;--ts-secondary-700:#b45309;--ts-soft-warn-50:#fff1f2;--ts-soft-warn-100:#ffe4e6;--ts-soft-warn-200:#fecdd3;--ts-soft-warn-300:#fda4af;--ts-soft-warn-400:#fb7185;--ts-soft-warn-800:#9f1239;--ts-hard-warn-50:#fef2f2;--ts-hard-warn-100:#fee2e2;--ts-hard-warn-200:#fecaca;--ts-hard-warn-300:#fca5a5;--ts-hard-warn-500:#dc2626;--ts-hard-warn-600:#e11d48;--ts-hard-warn-700:#991b1b;--ts-hard-warn-800:#b91c1c;--ts-approved-50:#f0fdf4;--ts-approved-75:#e3f4e9;--ts-approved-100:#dcfce7;--ts-approved-150:#cffce1;--ts-approved-200:#bbf7d0;--ts-approved-250:#a7f3c0;--ts-approved-300:#86efac;--ts-approved-400:#4ade80;--ts-approved-600:#16a34a;--ts-approved-700:#15803d;--ts-grey-50:#f8fafc;--ts-grey-100:#f1f5f9;--ts-grey-150:#eef2f7;--ts-grey-175:#e9eaed;--ts-grey-200:#e5e7eb;--ts-grey-250:#e2e8f0;--ts-grey-300:#dbe3ef;--ts-grey-350:#d1d5db;--ts-grey-400:#cbd5e1;--ts-grey-500:#9ca3af;--ts-grey-600:#64748b;--ts-grey-700:#475569;--ts-grey-800:#334155;--ts-text:#0f172a;--ts-surface:#fff;--ts-color-surface:var(--ts-surface);--ts-color-surface-dim:var(--ts-grey-50);--ts-color-surface-disabled:var(--ts-grey-100);--ts-color-surface-tint:var(--ts-primary-5);--ts-color-row-hover-tint:var(--ts-primary-10);--ts-color-hover-bg:var(--ts-primary-30);--ts-color-weekend-bg:var(--ts-primary-20);--ts-color-weekend-hover:var(--ts-primary-30);--ts-color-total-bg:var(--ts-primary-50);--ts-color-total-hover:var(--ts-primary-100);--ts-color-locked-bg:var(--ts-grey-100);--ts-color-overlay:#0f172a73;--ts-color-header-bg:var(--ts-grey-50);--ts-color-text:var(--ts-text);--ts-color-text-secondary:var(--ts-grey-800);--ts-color-text-subdued:var(--ts-grey-700);--ts-color-text-muted:var(--ts-grey-600);--ts-color-text-disabled:var(--ts-grey-500);--ts-color-sep:var(--ts-grey-200);--ts-color-sep-light:var(--ts-grey-100);--ts-color-sep-card:var(--ts-grey-150);--ts-color-sep-list:var(--ts-grey-100);--ts-color-sep-form:var(--ts-grey-250);--ts-color-sep-grid:var(--ts-grey-300);--ts-color-sep-grid-light:var(--ts-grey-150);--ts-color-sep-band:var(--ts-grey-300);--ts-color-border:var(--ts-grey-350);--ts-color-border-input:var(--ts-grey-400);--ts-color-cell-border:var(--ts-grey-175);--ts-color-focus:var(--ts-primary-500);--ts-color-focus-glow:#6366f126;--ts-color-approved-bg:var(--ts-approved-50);--ts-color-approved-hover:var(--ts-approved-75);--ts-color-edited-bg:var(--ts-secondary-50);--ts-color-edited-hover:var(--ts-secondary-200);--ts-color-rejected-bg:var(--ts-soft-warn-50);--ts-color-rejected-hover:var(--ts-soft-warn-100);--ts-color-pending-bg:var(--ts-primary-50);--ts-color-pending-hover:var(--ts-primary-100);--ts-color-violation-bg:var(--ts-hard-warn-100);--ts-color-violation-text:var(--ts-hard-warn-800);--ts-color-error-bg:var(--ts-hard-warn-50);--ts-color-error-border:var(--ts-hard-warn-200);--ts-color-error-text:var(--ts-hard-warn-700);--ts-color-danger:var(--ts-hard-warn-500);--ts-color-accent:var(--ts-primary-600);--ts-color-status-submitted-bg:var(--ts-secondary-50);--ts-color-status-submitted-border:var(--ts-secondary-400);--ts-color-status-submitted-text:var(--ts-secondary-700);--ts-color-status-approved-bg:var(--ts-approved-50);--ts-color-status-approved-border:var(--ts-approved-600);--ts-color-status-approved-text:var(--ts-approved-700);--ts-color-status-partial-bg:var(--ts-primary-50);--ts-color-status-partial-border:var(--ts-primary-500);--ts-color-status-partial-text:var(--ts-primary-700);--ts-color-status-rejected-bg:var(--ts-soft-warn-50);--ts-color-status-rejected-border:var(--ts-hard-warn-600);--ts-color-status-rejected-text:var(--ts-soft-warn-800);--ts-color-nav-hover-bg:var(--ts-primary-50);--ts-color-nav-hover-border:var(--ts-primary-100);--ts-color-nav-active-bg:var(--ts-primary-100);--ts-color-nav-active-border:var(--ts-primary-200);--ts-color-nav-active-text:var(--ts-primary-700);--ts-color-modal-close-bg:var(--ts-primary-50);--ts-color-modal-close-hover:var(--ts-primary-100);--ts-color-modal-close-text:var(--ts-primary-700);--ts-color-btn-primary-bg-start:var(--ts-primary-50);--ts-color-btn-primary-bg-end:var(--ts-primary-100);--ts-color-btn-primary-border:var(--ts-primary-200);--ts-color-btn-primary-text:var(--ts-primary-900);--ts-color-btn-primary-hover-border:var(--ts-primary-500);--ts-color-btn-submit-bg-start:var(--ts-approved-100);--ts-color-btn-submit-bg-end:var(--ts-approved-200);--ts-color-btn-submit-border:var(--ts-approved-300);--ts-color-btn-submit-hover-border:var(--ts-approved-400);--ts-color-btn-recall-bg-start:var(--ts-soft-warn-50);--ts-color-btn-recall-bg-end:var(--ts-soft-warn-100);--ts-color-btn-recall-border:var(--ts-soft-warn-300);--ts-color-btn-recall-hover-border:var(--ts-soft-warn-400);--ts-color-btn-recall-text:var(--ts-soft-warn-800);--ts-color-btn-reject-bg-start:var(--ts-soft-warn-50);--ts-color-btn-reject-bg-end:var(--ts-soft-warn-100);--ts-color-btn-reject-border:var(--ts-hard-warn-200);--ts-color-btn-reject-hover-border:var(--ts-soft-warn-300);--ts-color-btn-reject-text:var(--ts-soft-warn-800);--ts-color-btn-hover-start:var(--ts-primary-10);--ts-color-btn-active-start:var(--ts-primary-35);--ts-color-btn-primary-hover-start:var(--ts-primary-75);--ts-color-btn-primary-hover-end:var(--ts-primary-150);--ts-color-btn-submit-hover-start:var(--ts-approved-150);--ts-color-btn-submit-hover-end:var(--ts-approved-250);--ts-color-pill-hover-start:var(--ts-primary-30);--ts-color-pill-hover-end:var(--ts-grey-300);--ts-color-pill-active-hover-end:var(--ts-primary-50);--ts-color-link-active:var(--ts-primary-600);--ts-color-link-hover:#6366f11a;--ts-color-band-0:#fef9c3;--ts-color-band-1:#f5d0fe;--ts-color-band-2:var(--ts-primary-100);--ts-color-band-3:var(--ts-hard-warn-100)}.main-menu-page{border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);height:100dvh;font-family:var(--ts-font);border-radius:12px;grid-template-rows:1fr;grid-template-columns:240px minmax(0,1fr);display:grid;overflow:hidden}.main-menu-sidebar{border-right:1px solid var(--ts-color-sep);background:var(--ts-color-surface-dim);flex-direction:column;gap:18px;padding:16px 10px;display:flex}.main-menu-brand{align-items:center;gap:10px;padding:4px 8px;display:flex}.main-menu-brand-icon{background:linear-gradient(180deg, var(--ts-primary-500) 0%, var(--ts-primary-600) 100%);width:28px;height:28px;color:var(--ts-color-surface);font-size:var(--ts-size-14);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.main-menu-brand-text{font-size:var(--ts-size-16);font-weight:var(--ts-fw-bold);color:var(--ts-color-text)}.main-menu-nav{flex-direction:column;gap:4px;display:flex}.main-menu-nav-item{color:var(--ts-color-text);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:10px 12px}.main-menu-nav-item:hover:not(:disabled){background:var(--ts-color-nav-hover-bg);border-color:var(--ts-color-nav-hover-border)}.main-menu-nav-item.is-active{background:var(--ts-color-nav-active-bg);color:var(--ts-color-nav-active-text);border-color:var(--ts-color-nav-active-border)}.main-menu-nav-item:disabled{opacity:1;color:var(--ts-color-text-subdued);cursor:default}.main-menu-content{flex-direction:column;gap:12px;min-height:0;padding:16px;display:flex;overflow:hidden}.main-menu-content-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.main-menu-content-header h1{font-size:var(--ts-size-22);font-weight:var(--ts-fw-bold);color:var(--ts-color-text);margin:0}.main-menu-create-btn{border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);width:auto;min-width:96px;height:36px;color:var(--ts-color-text-secondary);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;padding:0 16px}.main-menu-create-btn:hover{border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-color-btn-hover-start) 0%, var(--ts-primary-50) 100%);box-shadow:0 2px 8px #4f46e51f}.main-menu-error{border:1px solid var(--ts-color-error-border);background:var(--ts-color-error-bg);color:var(--ts-color-error-text);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border-radius:10px;padding:10px 12px}.main-menu-table-wrapper{border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);border-radius:10px;flex:auto;min-height:300px;overflow:auto}.main-menu-table{border-collapse:collapse;table-layout:fixed;width:100%}.main-menu-table th,.main-menu-table td{border-bottom:1px solid var(--ts-color-sep-card);font-size:var(--ts-size-14);color:var(--ts-color-text);text-align:left;vertical-align:middle;padding:10px 12px}.main-menu-table th{background:var(--ts-color-surface-dim);z-index:1;position:sticky;top:0}.main-menu-table th:first-child{width:33%}.main-menu-table th:nth-child(2){width:19%}.main-menu-table th:nth-child(3),.main-menu-table th:nth-child(4){width:24%}.main-menu-sort-btn{color:var(--ts-color-text-muted);font-size:var(--ts-size-11);font-weight:var(--ts-fw-bold);text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0}.main-menu-status-pill{min-width:104px;min-height:24px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border:1px dotted #0000;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;display:inline-flex}.main-menu-status-pill.tone-draft{background:var(--ts-color-surface-dim);color:var(--ts-color-text-subdued);border-color:var(--ts-color-text-muted)}.main-menu-status-pill.tone-submitted{background:var(--ts-color-status-submitted-bg);color:var(--ts-color-status-submitted-text);border-color:var(--ts-color-status-submitted-border)}.main-menu-status-pill.tone-approved{background:var(--ts-color-status-approved-bg);color:var(--ts-color-status-approved-text);border-color:var(--ts-color-status-approved-border)}.main-menu-status-pill.tone-partially-approved{background:var(--ts-color-status-partial-bg);color:var(--ts-color-status-partial-text);border-color:var(--ts-color-status-partial-border)}.main-menu-status-pill.tone-rejected{background:var(--ts-color-status-rejected-bg);color:var(--ts-color-status-rejected-text);border-color:var(--ts-color-status-rejected-border)}.main-menu-status-cell{align-items:center;gap:6px;display:inline-flex}.main-menu-status-warning{border:1px solid var(--ts-hard-warn-200);background:var(--ts-soft-warn-50);width:20px;height:20px;color:var(--ts-color-violation-text);font-size:var(--ts-size-12);cursor:help;border-radius:999px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.main-menu-row-action{border:1px solid var(--ts-color-btn-primary-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-bg-start) 0%, var(--ts-color-btn-primary-bg-end) 100%);width:auto;min-width:84px;height:30px;color:var(--ts-color-btn-primary-text);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;padding:0 12px}.main-menu-row-action:hover{border-color:var(--ts-color-btn-primary-hover-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-start) 0%, var(--ts-color-btn-primary-hover-end) 100%)}.main-menu-row-action:disabled{opacity:.6;cursor:default}.main-menu-actions-cell{align-items:center;gap:8px;display:inline-flex}.main-menu-row-action--recall{border-color:var(--ts-color-btn-recall-border);background:linear-gradient(180deg, var(--ts-color-btn-recall-bg-start) 0%, var(--ts-color-btn-recall-bg-end) 100%);color:var(--ts-color-btn-recall-text)}.main-menu-row-action--recall:hover:not(:disabled){border-color:var(--ts-color-btn-recall-hover-border);background:linear-gradient(180deg, var(--ts-soft-warn-100) 0%, var(--ts-soft-warn-200) 100%)}.main-menu-empty{text-align:center;color:var(--ts-color-text-muted);font-weight:var(--ts-fw-semibold);padding:20px 0}.main-menu-create-backdrop{z-index:1200;background:var(--ts-color-overlay);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.main-menu-create-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep-form);border-radius:16px;width:min(640px,100vw - 48px);padding:24px;box-shadow:0 22px 60px #0f172a47}.main-menu-create-title{color:var(--ts-color-text);font-size:var(--ts-size-22);font-weight:var(--ts-fw-bold);margin:0 0 8px}.main-menu-create-subtitle{color:var(--ts-color-text-subdued);font-size:var(--ts-size-14);margin:0 0 18px}.main-menu-create-input{border:1px solid var(--ts-color-border-input);width:100%;height:56px;color:var(--ts-color-text);font-size:var(--ts-size-18);font-weight:var(--ts-fw-semibold);background:var(--ts-color-surface);border-radius:12px;padding:0 16px}.main-menu-create-input:focus{border-color:var(--ts-color-focus);box-shadow:0 0 0 3px var(--ts-color-focus-glow);outline:none}.main-menu-create-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.main-menu-create-btn-secondary,.main-menu-create-btn-primary{height:40px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border:1px solid var(--ts-color-border);cursor:pointer;background:var(--ts-color-surface);color:var(--ts-color-text);border-radius:10px;padding:0 16px}.main-menu-create-btn-primary{border-color:var(--ts-color-btn-primary-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-bg-start) 0%, var(--ts-color-btn-primary-bg-end) 100%);color:var(--ts-color-btn-primary-text)}@media (height<=500px){.main-menu-page{grid-template-rows:auto;height:auto;min-height:100dvh}.main-menu-content{overflow:visible}}@media (width<=980px){.main-menu-page{grid-template-columns:1fr}.main-menu-sidebar{border-right:none;border-bottom:1px solid var(--ts-color-sep);flex-direction:row;align-items:center;gap:8px;padding:6px 12px}.main-menu-brand{padding:0}.main-menu-nav{flex-flow:row;gap:4px}.main-menu-nav-item{padding:6px 10px}.main-menu-content{gap:8px;padding:10px 12px 6px}}.approvals-page{border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);height:100dvh;font-family:var(--ts-font);border-radius:12px;grid-template-rows:1fr;grid-template-columns:240px minmax(0,1fr);display:grid;overflow:hidden}.approvals-page .main-menu-sidebar{border-right:1px solid var(--ts-color-sep);background:var(--ts-color-surface-dim);flex-direction:column;gap:18px;padding:16px 10px;display:flex}.approvals-page .main-menu-brand{align-items:center;gap:10px;padding:4px 8px;display:flex}.approvals-page .main-menu-brand-icon{background:linear-gradient(180deg, var(--ts-primary-500) 0%, var(--ts-primary-600) 100%);width:28px;height:28px;color:var(--ts-color-surface);font-size:var(--ts-size-14);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.approvals-page .main-menu-brand-text{font-size:var(--ts-size-16);font-weight:var(--ts-fw-bold);color:var(--ts-color-text)}.approvals-page .main-menu-nav{flex-direction:column;gap:4px;display:flex}.approvals-page .main-menu-nav-item{color:var(--ts-color-text);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:10px 12px}.approvals-page .main-menu-nav-item:hover:not(:disabled){background:var(--ts-color-nav-hover-bg);border-color:var(--ts-color-nav-hover-border)}.approvals-page .main-menu-nav-item.is-active{background:var(--ts-color-nav-active-bg);color:var(--ts-color-nav-active-text);border-color:var(--ts-color-nav-active-border)}.approvals-page .main-menu-nav-item:disabled{opacity:1;color:var(--ts-color-text-subdued);cursor:default}.approvals-content{flex-direction:column;gap:12px;min-height:0;padding:16px 16px 8px;display:flex;overflow:hidden}.approvals-mode-content{flex-direction:column;flex:auto;gap:12px;min-height:0;display:flex;overflow:hidden}.approvals-mode-content.is-hidden{display:none}.approvals-mode-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.approvals-mode-header h1{font-size:var(--ts-size-22);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);justify-self:start;margin:0}.approvals-mode-header-spacer{min-height:1px}.approvals-mode-pill{border:1px solid var(--ts-color-border-input);background:linear-gradient(180deg, var(--ts-color-surface-dim) 0%, var(--ts-color-sep-form) 100%);border-radius:999px;grid-template-columns:1fr 1fr;justify-self:center;gap:0;width:min(740px,100%);height:38px;padding:0;display:grid;position:relative;overflow:hidden}.approvals-mode-pill:before{content:"";background:var(--ts-color-border-input);pointer-events:none;width:1px;position:absolute;top:6px;bottom:6px;left:50%;transform:translate(-.5px)}.approvals-mode-pill-option{background:linear-gradient(180deg, var(--ts-color-sep-card) 0%, var(--ts-color-sep-form) 100%);color:var(--ts-color-text);font-size:var(--ts-size-14);font-weight:var(--ts-fw-bold);cursor:pointer;border:0;border-radius:0;transition:background .12s,color .12s,box-shadow .12s}.approvals-mode-pill-option:hover:not(.is-active){background:linear-gradient(180deg, var(--ts-color-pill-hover-start) 0%, var(--ts-color-pill-hover-end) 100%);color:var(--ts-color-text)}.approvals-mode-pill-option.is-active{background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-row-hover-tint) 100%);color:var(--ts-color-link-active);box-shadow:inset 0 0 0 1px #bfdbfed9}.approvals-mode-pill-option.is-active:hover{background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-pill-active-hover-end) 100%);color:var(--ts-primary-700)}.approvals-mode-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.approvals-toolbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.approvals-toolbar-actions--left{justify-self:start}.approvals-toolbar-actions--right{justify-self:end}.approvals-ghost-btn{border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);min-width:96px;height:36px;color:var(--ts-color-text-secondary);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;transition:background .12s,border-color .12s,box-shadow .12s,transform 60ms}.approvals-ghost-btn:hover:not(:disabled){border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-color-btn-hover-start) 0%, var(--ts-primary-50) 100%);box-shadow:0 2px 8px #4f46e51f}.approvals-ghost-btn:active:not(:disabled){background:linear-gradient(180deg, var(--ts-color-btn-active-start) 0%, var(--ts-primary-100) 100%);transform:translateY(1px)}.approvals-ghost-btn:disabled{opacity:1;border-color:var(--ts-color-border);background:var(--ts-color-surface-disabled);color:var(--ts-color-text-disabled);box-shadow:none;cursor:not-allowed}.approvals-count{font-size:var(--ts-size-14);font-weight:var(--ts-fw-bold)}.approvals-count--pending{color:var(--ts-color-danger)}.approvals-count--approved{color:var(--ts-color-text)}.approvals-approve-btn{border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);min-width:108px;height:36px;color:var(--ts-color-text-secondary);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;transition:background .12s,border-color .12s,box-shadow .12s,transform 60ms}.approvals-approve-btn.is-active{border-color:var(--ts-color-btn-submit-border);background:linear-gradient(180deg, var(--ts-color-btn-submit-bg-start) 0%, var(--ts-color-btn-submit-bg-end) 100%);color:var(--ts-color-text)}.approvals-approve-btn.is-active:hover:not(:disabled){border-color:var(--ts-color-btn-submit-hover-border);background:linear-gradient(180deg, var(--ts-color-btn-submit-hover-start) 0%, var(--ts-color-btn-submit-hover-end) 100%);box-shadow:0 3px 10px #4ade8040}.approvals-approve-btn.is-active:active:not(:disabled){background:linear-gradient(180deg, var(--ts-approved-200) 0%, var(--ts-approved-300) 100%);transform:translateY(1px)}.approvals-reject-btn.is-active{border-color:var(--ts-color-btn-reject-border);background:linear-gradient(180deg, var(--ts-color-btn-reject-bg-start) 0%, var(--ts-color-btn-reject-bg-end) 100%);color:var(--ts-color-btn-reject-text)}.approvals-reject-btn.is-active:hover:not(:disabled){border-color:var(--ts-color-btn-reject-hover-border);background:linear-gradient(180deg, var(--ts-soft-warn-100) 0%, var(--ts-soft-warn-200) 100%);box-shadow:0 3px 10px #f43f5e33}.approvals-reject-btn.is-active:active:not(:disabled){background:linear-gradient(180deg, var(--ts-soft-warn-200) 0%, var(--ts-soft-warn-300) 100%);transform:translateY(1px)}.approvals-approve-btn:disabled{opacity:1;border-color:var(--ts-color-border);background:var(--ts-color-surface-disabled);color:var(--ts-color-text-disabled);box-shadow:none;cursor:not-allowed}.approvals-error{border:1px solid var(--ts-color-error-border);background:var(--ts-color-error-bg);color:var(--ts-color-error-text);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border-radius:10px;padding:10px 12px}.approvals-empty-panel{border:1px solid var(--ts-color-sep-form);background:var(--ts-color-surface-dim);min-height:280px;color:var(--ts-color-text-subdued);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);border-radius:12px;justify-content:center;align-items:center;display:flex}.approvals-timesheets-shell{--approvals-timesheets-select-col:44px;border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);border-radius:12px;flex:auto;min-height:300px;overflow:auto}.approvals-timesheets-table{width:100%}.approvals-timesheets-row{grid-template-columns:var(--approvals-timesheets-select-col) minmax(0, 25fr) minmax(0, 20fr) minmax(0, 15fr) minmax(0, 10fr) minmax(0, 15fr) minmax(0, 15fr);border-bottom:1px solid var(--ts-color-sep-card);align-items:center;min-height:44px;transition:background-color .12s;display:grid}.approvals-timesheets-row:hover:not(.approvals-timesheets-row--header){background:var(--ts-color-row-hover-tint)}.approvals-timesheets-row:last-child{border-bottom:none}.approvals-timesheets-row--header{background:var(--ts-color-surface-dim);min-height:42px}.approvals-timesheets-cell{font-size:var(--ts-size-12);color:var(--ts-color-text);border-right:1px solid var(--ts-color-sep-grid-light);white-space:normal;overflow-wrap:anywhere;word-break:break-word;align-items:center;min-width:0;min-height:44px;padding:8px 10px;line-height:1.35;display:flex}.approvals-timesheets-row--header .approvals-timesheets-cell{min-height:42px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);color:var(--ts-color-text-subdued);text-transform:uppercase;padding-top:6px;padding-bottom:6px}.approvals-timesheets-cell:last-child{border-right:none}.approvals-timesheets-cell--select{justify-content:center;padding:0}.approvals-timesheets-cell--period,.approvals-timesheets-cell--resource{text-align:left;justify-content:flex-start}.approvals-timesheets-cell--submitted,.approvals-timesheets-cell--hours,.approvals-timesheets-cell--status{text-align:center;font-variant-numeric:tabular-nums;justify-content:center}.approvals-timesheets-status-pill{min-width:104px;min-height:24px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border:1px dotted #0000;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;display:inline-flex}.approvals-timesheets-status-pill.tone-draft{background:var(--ts-color-surface-dim);color:var(--ts-color-text-subdued);border-color:var(--ts-color-text-muted)}.approvals-timesheets-status-pill.tone-submitted{background:var(--ts-color-status-submitted-bg);color:var(--ts-color-status-submitted-text);border-color:var(--ts-color-status-submitted-border)}.approvals-timesheets-status-pill.tone-approved{background:var(--ts-color-status-approved-bg);color:var(--ts-color-status-approved-text);border-color:var(--ts-color-status-approved-border)}.approvals-timesheets-status-pill.tone-partially-approved{background:var(--ts-color-status-partial-bg);color:var(--ts-color-status-partial-text);border-color:var(--ts-color-status-partial-border)}.approvals-timesheets-status-pill.tone-rejected{background:var(--ts-color-status-rejected-bg);color:var(--ts-color-status-rejected-text);border-color:var(--ts-color-status-rejected-border)}.approvals-timesheets-cell--actions{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}.approvals-timesheets-open-btn{min-width:72px;height:30px}.approvals-timesheets-comments-btn{width:30px;height:30px}.approvals-grid-shell{border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);border-radius:12px;flex:auto;min-height:300px;position:relative;overflow:hidden}.approvals-grid-scroll{width:100%;height:100%;position:relative;overflow:auto}.approvals-grid-table{min-height:100%}.approvals-row{border-bottom:1px solid var(--ts-color-sep-card);box-sizing:border-box;height:34px;display:flex}.approvals-row--header{z-index:20;border-bottom:1px solid var(--ts-color-sep-grid);background:var(--ts-color-surface-dim);height:68px;position:sticky;top:0}.approvals-row-right{flex:auto;min-width:0;display:flex}.approvals-cell{box-sizing:border-box;border-right:1px solid var(--ts-color-sep-grid-light);font-size:var(--ts-size-12);color:var(--ts-color-text);flex:none;justify-content:center;align-items:center;display:inline-flex}.approvals-cell--left{z-index:12;background:var(--ts-color-surface);border-right:1px solid var(--ts-color-sep-grid);justify-content:flex-start;gap:8px;width:360px;padding:0 10px;position:sticky;left:0}.approvals-cell--header.approvals-cell--left{z-index:30;background:var(--ts-color-surface-dim);font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);color:var(--ts-color-text-subdued)}.approvals-cell--total{z-index:11;width:76px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);background:var(--ts-color-surface);border-right:1px solid var(--ts-color-sep-grid);flex-direction:column;gap:0;position:sticky;left:436px}.approvals-cell--remaining{z-index:11;width:76px;font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);background:var(--ts-color-surface);border-right:1px solid var(--ts-color-sep-grid);flex-direction:column;gap:0;position:sticky;left:360px}.approvals-cell--remaining.is-user-intent{color:var(--ts-color-danger)}.approvals-cell--total small,.approvals-cell--remaining small,.approvals-cell--header small{font-size:var(--ts-size-10);color:var(--ts-color-text-muted);font-weight:var(--ts-fw-bold)}.approvals-days-strip{flex:auto;align-items:stretch;min-width:0;display:inline-flex}.approvals-header-days{flex-direction:column;flex:auto;min-width:0;display:flex}.approvals-months-strip{border-bottom:1px solid var(--ts-color-sep-grid);align-items:stretch;min-width:0;height:22px;display:inline-flex}.approvals-month-band{border-right:1px solid var(--ts-color-sep-band);color:var(--ts-color-text);font-size:var(--ts-size-11);font-weight:var(--ts-fw-bold);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.approvals-month-band.tone-0{background:var(--ts-color-band-0)}.approvals-month-band.tone-1{background:var(--ts-color-band-1)}.approvals-month-band.tone-2{background:var(--ts-color-band-2)}.approvals-month-band.tone-3{background:var(--ts-color-band-3)}.approvals-days-strip--header{height:calc(100% - 22px)}.approvals-cell--day{width:72px}.approvals-cell--header.approvals-cell--day{font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);flex-direction:column;gap:0}.approvals-cell--day.is-weekend,.approvals-cell--header.approvals-cell--day.is-weekend{background:var(--ts-color-sep-list)}.approvals-value{font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text)}.approvals-value.is-pending{color:var(--ts-color-danger)}.approvals-row--project .approvals-cell--total,.approvals-row--resource .approvals-cell--total,.approvals-row--project .approvals-cell--remaining,.approvals-row--resource .approvals-cell--remaining{font-weight:var(--ts-fw-regular);font-size:var(--ts-size-10);color:var(--ts-color-text-muted)}.approvals-row--project .approvals-value,.approvals-row--resource .approvals-value{font-weight:var(--ts-fw-regular);font-size:var(--ts-size-11);color:var(--ts-color-text-muted)}.approvals-row--project .approvals-value.is-pending,.approvals-row--resource .approvals-value.is-pending{color:var(--ts-color-danger);font-weight:var(--ts-fw-regular)}.approvals-toggle{width:20px;height:20px;color:var(--ts-color-text-muted);font-size:var(--ts-size-14);cursor:pointer;background:0 0;border:none;padding:0}.approvals-node{white-space:nowrap;text-overflow:ellipsis;align-items:center;min-width:0;display:inline-flex;overflow:hidden}.approvals-node--project{font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);color:var(--ts-color-text)}.approvals-node--resource{font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold);color:var(--ts-color-text-secondary)}.approvals-node--task{font-size:var(--ts-size-12);font-weight:var(--ts-fw-regular);color:var(--ts-color-text-secondary)}.approvals-checkbox{width:14px;height:14px;accent-color:var(--ts-color-accent)}.approvals-badge{background:var(--ts-color-violation-bg);min-width:26px;height:18px;color:var(--ts-color-danger);font-size:var(--ts-size-11);font-weight:var(--ts-fw-bold);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 8px;display:inline-flex}.approvals-badge--jump{cursor:pointer}.approvals-badge--jump:hover:not(:disabled){background:var(--ts-hard-warn-200);border-color:var(--ts-hard-warn-300)}.approvals-badge--jump:disabled{cursor:default;opacity:.85}.approvals-task-actions{align-items:center;gap:2px;margin-left:auto;display:inline-flex}.approvals-task-actions .approvals-badge{margin-left:0}.approvals-comments-btn{width:26px;height:26px;color:var(--ts-color-text-disabled);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.approvals-comments-btn:hover{background:var(--ts-color-link-hover)}.approvals-comments-btn.has-comments{color:var(--ts-color-link-active)}.approvals-comments-icon{box-sizing:border-box;border:2px solid;border-radius:4px;width:16px;height:12px;display:block;position:relative}.approvals-comments-icon:after{content:"";border-bottom:2px solid;border-left:2px solid;width:5px;height:5px;position:absolute;bottom:-5px;left:2px;transform:skew(-18deg)rotate(-30deg)}.approvals-row--project .approvals-cell--left,.approvals-row--resource .approvals-cell--left{background:var(--ts-color-surface-tint)}.approvals-row--task .approvals-cell--left{background:var(--ts-color-surface)}.approvals-row--header .approvals-cell--total,.approvals-row--header .approvals-cell--remaining{z-index:31;background:var(--ts-color-surface-dim)}.approvals-row .depth-1{padding-left:28px}.approvals-row .depth-2{padding-left:52px}.approvals-extend-bar{z-index:45;width:14px;color:var(--ts-color-text-secondary);cursor:pointer;background:linear-gradient(#94a3b824 0%,#94a3b842 100%);border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:68px;bottom:14px;box-shadow:0 0 0 1px #94a3b829,0 6px 18px #0f172a14}.approvals-extend-bar--left{border-right:1px solid #94a3b859;left:513px}.approvals-extend-bar--right{border-left:1px solid #94a3b859;right:0}.approvals-extend-bar:hover{background:linear-gradient(#94a3b833 0%,#94a3b857 100%)}.approvals-extend-bar-chevron{font-size:var(--ts-size-14);line-height:1;transform:translateY(-1px)}.approvals-comments-backdrop{background:var(--ts-color-overlay);z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.approvals-comments-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep);border-radius:12px;flex-direction:column;width:min(780px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;box-shadow:0 18px 48px #0f172a47}.approvals-comments-modal-header{border-bottom:1px solid var(--ts-color-sep-card);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.approvals-comments-modal-header h2{font-size:var(--ts-size-16);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);margin:0}.approvals-comments-close{background:var(--ts-color-modal-close-bg);width:30px;height:30px;color:var(--ts-color-modal-close-text);font-size:var(--ts-size-18);cursor:pointer;border:none;border-radius:999px;line-height:1}.approvals-comments-close:hover{background:var(--ts-color-modal-close-hover)}.approvals-comments-modal-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex;overflow:auto}.approvals-comments-label{color:var(--ts-color-text-secondary);font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold)}.approvals-comments-select{border:1px solid var(--ts-color-border-input);height:34px;color:var(--ts-color-text);background:var(--ts-color-surface);font-size:var(--ts-size-12);border-radius:8px;padding:0 10px}.approvals-comments-history{border:1px solid var(--ts-color-sep-form);background:var(--ts-color-surface-dim);border-radius:8px;min-height:120px;max-height:280px;padding:10px;overflow:auto}.approvals-comments-history-content{color:var(--ts-color-text);font-size:var(--ts-size-12);line-height:1.5}.approvals-comments-empty{color:var(--ts-color-text-muted);font-size:var(--ts-size-12)}.approvals-comments-textarea{resize:vertical;border:1px solid var(--ts-color-border-input);width:100%;min-height:90px;font:inherit;color:var(--ts-color-text);background:var(--ts-color-surface);border-radius:8px;padding:8px 10px}.approvals-comments-textarea:focus,.approvals-comments-select:focus{border-color:var(--ts-color-focus);box-shadow:0 0 0 2px var(--ts-color-focus-glow);outline:none}.approvals-comments-modal-actions{border-top:1px solid var(--ts-color-sep-card);justify-content:flex-end;gap:10px;padding:12px 16px 16px;display:flex}.approvals-pill-action-btn{border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);min-width:84px;height:36px;color:var(--ts-color-text-secondary);font:inherit;font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;transition:background .12s,border-color .12s,box-shadow .12s,transform 60ms}.approvals-pill-action-btn:hover:not(:disabled){border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-color-btn-hover-start) 0%, var(--ts-primary-50) 100%);box-shadow:0 2px 8px #4f46e51f}.approvals-pill-action-btn:active:not(:disabled){background:linear-gradient(180deg, var(--ts-color-btn-active-start) 0%, var(--ts-primary-100) 100%);transform:translateY(1px)}.approvals-pill-action-btn--primary{border-color:var(--ts-color-btn-primary-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-bg-start) 0%, var(--ts-color-btn-primary-bg-end) 100%);color:var(--ts-color-btn-primary-text)}.approvals-pill-action-btn--primary:hover:not(:disabled){border-color:var(--ts-color-btn-primary-hover-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-start) 0%, var(--ts-color-btn-primary-hover-end) 100%);box-shadow:0 4px 12px #60a5fa3d}.approvals-pill-action-btn--primary:active:not(:disabled){background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-end) 0%, var(--ts-color-btn-primary-border) 100%)}.approvals-pill-action-btn:disabled{opacity:.6;cursor:not-allowed}@media (height<=500px){.approvals-page{grid-template-rows:auto;height:auto;min-height:100dvh}.approvals-content,.approvals-mode-content{overflow:clip visible}.approvals-grid-shell{flex:none;height:calc(100dvh - 160px);min-height:300px}}@media (width<=980px){.approvals-page{grid-template-columns:1fr}.approvals-page .main-menu-sidebar{border-right:none;border-bottom:1px solid var(--ts-color-sep);flex-direction:row;align-items:center;gap:8px;padding:6px 12px}.approvals-page .main-menu-brand{padding:0}.approvals-page .main-menu-nav{flex-flow:row;gap:4px}.approvals-page .main-menu-nav-item{padding:6px 10px}.approvals-mode-header{grid-template-columns:1fr}.approvals-mode-header h1,.approvals-mode-header-spacer{display:none}.approvals-content{gap:8px;padding:10px 12px 6px}.approvals-cell--left{width:270px}.approvals-cell--remaining{left:270px}.approvals-cell--total{left:346px}.approvals-extend-bar--left{left:423px}.approvals-timesheets-shell{--approvals-timesheets-select-col:40px}.approvals-timesheets-cell{padding-left:8px;padding-right:8px}}:root{--ts-cell-w:58px;--ts-cell-h:44px;--ts-left-w:35%;--ts-right-w:10%;--ts-project-row-h:20px;--ts-remaining-w:80px;--ts-assignment-date-w:72px;--ts-comments-w:34px;--ts-action-btn-w:calc(12ch + 26px);--ts-shadow-card:0 1px 3px #00000014, 0 0 1px #0000000d;--ts-radius:8px}.grid-surface{min-height:0;font-family:var(--ts-font);font-size:var(--ts-size-12);color:var(--ts-color-text);flex-direction:column;flex:auto;gap:10px;display:flex}@media (width>=1000px){.grid-surface{--ts-left-w:40%;--ts-right-w:10%}}.week-layout .grid-header,.week-layout .grid-row,.week-layout .grid-footer{width:100%;min-width:0}.week-layout .pane-center{flex:50%;min-width:0}.week-layout .day-headers,.week-layout .day-cells{grid-template-columns:repeat(var(--ts-days-count), minmax(0, 1fr));width:100%;min-width:0;display:grid}.week-layout .day-header,.week-layout .day-cell{width:auto;min-width:0}.month-layout{--ts-month-left-w:300px;--ts-month-right-w:80px}@media (width>=1000px){.month-layout{--ts-month-left-w:450px}}.month-layout .pane-left{flex:0 0 var(--ts-month-left-w);width:var(--ts-month-left-w);min-width:var(--ts-month-left-w);max-width:var(--ts-month-left-w)}.month-layout .pane-right{flex:0 0 var(--ts-month-right-w);width:var(--ts-month-right-w);min-width:var(--ts-month-right-w);max-width:var(--ts-month-right-w)}.timesheet-grid{border-radius:var(--ts-radius);min-height:0;box-shadow:var(--ts-shadow-card);border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);flex-direction:column;flex:auto;display:flex;overflow:hidden}.grid-scroll{flex:auto;min-height:300px;overflow:auto}.grid-header,.grid-row{min-width:max-content;display:flex}.grid-header{z-index:30;background:var(--ts-color-header-bg);position:sticky;top:0;box-shadow:inset 0 -1px #e5e7ebd9}.grid-row{border-bottom:1px solid #f0f1f48c;transition:background 80ms}.grid-row:last-child{border-bottom:none}.grid-row:hover{background:var(--ts-color-hover-bg)}.project-row,.grid-body .grid-row{border-bottom:none}.project-row:hover{background:var(--ts-color-hover-bg)}.project-row:hover .pane-left{background:var(--ts-color-surface)}.project-row:hover .pane-right{background:var(--ts-color-total-bg)}.project-row:hover .weekend-cell{background:var(--ts-color-weekend-bg)}.pane{flex-direction:column;display:flex}.pane-left{flex:0 0 var(--ts-left-w);width:var(--ts-left-w);min-width:var(--ts-left-w);max-width:var(--ts-left-w);z-index:20;background:var(--ts-color-surface);position:sticky;left:0;overflow:hidden;box-shadow:inset -1px 0 #e5e7ebbf}.pane-center{flex:auto;min-width:max-content}.pane-right{flex:0 0 var(--ts-right-w);width:var(--ts-right-w);min-width:var(--ts-right-w);max-width:var(--ts-right-w);z-index:20;background:var(--ts-color-total-bg);position:sticky;right:0;box-shadow:inset 1px 0 #e5e7ebbf}.grid-header .pane-left,.grid-header .pane-right{background:var(--ts-color-header-bg);z-index:31}.grid-row:hover .pane-left{background:var(--ts-color-hover-bg)}.grid-row:hover .pane-right{background:var(--ts-color-total-hover)}.day-headers,.day-cells{min-width:max-content;display:flex}.header-cell{flex-direction:column;justify-content:center;align-items:center;height:52px;padding:6px 0;display:flex}.header-cell:last-child{border-right:none}.day-num{font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);line-height:1.2}.day-name{font-size:var(--ts-size-11);font-weight:var(--ts-fw-regular);color:var(--ts-color-text-muted);text-transform:capitalize;line-height:1.2}.day-header{width:var(--ts-cell-w);min-width:var(--ts-cell-w);box-shadow:inset -1px 0 0 var(--ts-color-sep)}.day-header--rule-violation{background:var(--ts-color-violation-bg)}.day-header--rule-violation .day-num,.day-header--rule-violation .day-name{color:var(--ts-color-violation-text)}.pane-left .header-cell{width:100%;height:52px;font-size:var(--ts-size-11);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text-muted);text-transform:uppercase;border-right:none;justify-content:center;align-items:center;padding:0 12px}.assignment-header-cell{grid-template-columns:minmax(0, 1fr) var(--ts-remaining-w) var(--ts-comments-w);text-transform:uppercase;justify-content:stretch;align-items:center;column-gap:0;width:100%;height:100%;padding:0 12px;display:grid}.assignment-header-cell--with-dates{grid-template-columns:minmax(0, 1fr) var(--ts-assignment-date-w) var(--ts-assignment-date-w) var(--ts-remaining-w) var(--ts-comments-w)}.assignment-header-label,.assignment-date-header-label,.remaining-header-label{height:100%;font-size:var(--ts-size-11);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text-muted);align-items:center;display:flex}.assignment-header-label{text-align:left;justify-content:flex-start;min-width:0}.assignment-date-header-label,.remaining-header-label{text-align:center;justify-content:center}.pane-right .header-cell{border-right:none;justify-content:center;align-items:center;width:100%;height:52px;padding:0}.total-header .day-num{color:var(--ts-color-accent)}.total-header .day-name{color:var(--ts-primary-400)}.body-cell{height:var(--ts-cell-h);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:flex}.body-cell:last-child{border-right:none}.day-cell{width:var(--ts-cell-w);min-width:var(--ts-cell-w);box-shadow:inset -1px 0 0 var(--ts-color-sep-light)}.project-day-cell{height:var(--ts-project-row-h)}.pane-left .body-cell{width:100%;min-width:0;max-width:100%;font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);border-right:none;justify-content:flex-start;padding:0 12px}.assignment-body-cell{grid-template-columns:minmax(0, 1fr) var(--ts-remaining-w) var(--ts-comments-w);align-items:center;column-gap:0;width:100%;display:grid}.assignment-body-cell--with-dates{grid-template-columns:minmax(0, 1fr) var(--ts-assignment-date-w) var(--ts-assignment-date-w) var(--ts-remaining-w) var(--ts-comments-w)}.assignment-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.assignment-date-value{text-align:center;height:100%;font-size:var(--ts-size-12);color:var(--ts-color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:center;align-items:center;display:flex}.assignment-column,.assignment-date-column,.remaining-column,.comments-column{height:100%}.assignment-header-cell .assignment-column,.assignment-header-cell .assignment-date-column,.assignment-header-cell .remaining-column,.assignment-header-cell .comments-column{border-bottom:1px solid var(--ts-color-sep);border-right-color:var(--ts-color-sep);border-right-style:solid;border-right-width:1px}.assignment-header-cell .remaining-column,.assignment-header-cell .comments-column{justify-content:center}.assignment-column{align-items:center;min-width:0;padding:0 8px 0 0;display:flex}.assignment-text-column{justify-content:flex-start}.assignment-date-column{padding:0 8px}.remaining-column{justify-content:center;align-items:center;height:100%;padding:0 6px;display:flex}.comments-column{justify-content:center;align-items:center;padding:0;display:flex}.comments-button{width:30px;height:30px;color:var(--ts-color-text-disabled);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.comments-button:hover{background:var(--ts-color-link-hover)}.comments-icon{box-sizing:border-box;border:2px solid;border-radius:4px;width:18px;height:14px;display:block;position:relative}.comments-icon:after{content:"";border-bottom:2px solid;border-left:2px solid;width:6px;height:6px;position:absolute;bottom:-5px;left:3px;transform:skew(-18deg)rotate(-30deg)}.comments-button--active{color:var(--ts-color-link-active)}.remaining-editor{width:var(--ts-remaining-w);min-width:var(--ts-remaining-w);flex:none;justify-content:center;align-items:center;height:32px;margin-left:0;display:inline-flex;position:relative}.remaining-editor--hidden{visibility:hidden}.remaining-input{width:100%;min-width:100%;font-size:var(--ts-size-11);margin:0;padding:0 10px 0 4px}.remaining-input.remaining-input--approved{background:var(--ts-color-approved-bg)}.remaining-input.remaining-input--approved:hover:not(:disabled),.remaining-input.remaining-input--approved:focus{background:var(--ts-color-approved-hover)}.remaining-input.remaining-input--rejected{background:var(--ts-color-rejected-bg)}.remaining-input.remaining-input--rejected:hover:not(:disabled),.remaining-input.remaining-input--rejected:focus{background:var(--ts-color-rejected-hover)}.remaining-input.remaining-input--pending{background:var(--ts-color-pending-bg)}.remaining-input.remaining-input--pending:hover:not(:disabled),.remaining-input.remaining-input--pending:focus{background:var(--ts-color-pending-hover)}.remaining-input.remaining-input--edited{background:var(--ts-color-edited-bg)}.remaining-input.remaining-input--edited:hover:not(:disabled),.remaining-input.remaining-input--edited:focus{background:var(--ts-color-edited-hover)}.remaining-lock-indicator{width:12px;height:12px;color:var(--ts-color-text-muted);font-size:var(--ts-size-9);pointer-events:none;opacity:.85;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:absolute;top:2px;right:2px}.remaining-lock-indicator.is-locked{color:var(--ts-color-text-secondary)}.pane-right .body-cell{width:100%;font-weight:var(--ts-fw-semibold);color:var(--ts-color-accent);border-right:none;justify-content:center;padding:0}.project-label{height:var(--ts-project-row-h);min-height:var(--ts-project-row-h);align-items:center;padding:0 0 0 2px;display:flex}.project-pill{max-width:100%;height:var(--ts-project-row-h);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);text-transform:uppercase;border:1px solid #0000;border-radius:999px;align-items:center;padding:0 8px;line-height:1;display:inline-flex}.project-pill--clamped{white-space:nowrap;text-overflow:ellipsis;text-align:left;align-items:center;max-width:100%;display:inline-flex;overflow:hidden}.weekend-header,.weekend-cell{background:var(--ts-color-weekend-bg)}.grid-row:hover .weekend-cell{background:var(--ts-color-weekend-hover)}.approved-cell .cell-input{background:var(--ts-color-approved-bg)}.approved-cell .cell-input:hover:not(:disabled),.approved-cell .cell-input:focus{background:var(--ts-color-approved-hover)}.rejected-cell .cell-input{background:var(--ts-color-rejected-bg)}.rejected-cell .cell-input:hover:not(:disabled),.rejected-cell .cell-input:focus{background:var(--ts-color-rejected-hover)}.pending-cell .cell-input{background:var(--ts-color-pending-bg)}.pending-cell .cell-input:hover:not(:disabled),.pending-cell .cell-input:focus{background:var(--ts-color-pending-hover)}.edited-cell .cell-input{background:var(--ts-color-edited-bg)}.edited-cell .cell-input:hover:not(:disabled),.edited-cell .cell-input:focus{background:var(--ts-color-edited-hover)}.locked-cell{background:var(--ts-color-locked-bg);pointer-events:none}.locked-cell .cell-input{opacity:0}.cell-input{box-sizing:border-box;border:1.5px solid var(--ts-color-cell-border);width:calc(100% - 10px);height:32px;font-family:var(--ts-font);font-size:var(--ts-size-12);font-variant-numeric:tabular-nums;text-align:center;color:var(--ts-color-text);cursor:pointer;appearance:textfield;background:#ffffff80;border-radius:6px;outline:none;margin:0 5px;transition:border-color .1s,background .1s}.cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cell-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cell-input:hover:not(:disabled){border-color:var(--ts-color-border);background:#ffffff8c}.cell-input:focus{border-color:var(--ts-color-accent);background:var(--ts-color-surface);cursor:text}.total-input{color:var(--ts-color-accent);font-weight:var(--ts-fw-semibold)}.total-input:focus{border-color:var(--ts-color-accent)}.cell-input.assignment-locked-input,.approved-cell .cell-input.assignment-locked-input,.edited-cell .cell-input.assignment-locked-input,.rejected-cell .cell-input.assignment-locked-input,.pending-cell .cell-input.assignment-locked-input{color:var(--ts-color-text-muted);background:var(--ts-color-surface-disabled);border-color:var(--ts-color-border);cursor:not-allowed}.cell-input.assignment-locked-input:hover:not(:disabled),.cell-input.assignment-locked-input:focus,.approved-cell .cell-input.assignment-locked-input:hover:not(:disabled),.approved-cell .cell-input.assignment-locked-input:focus,.edited-cell .cell-input.assignment-locked-input:hover:not(:disabled),.edited-cell .cell-input.assignment-locked-input:focus,.rejected-cell .cell-input.assignment-locked-input:hover:not(:disabled),.rejected-cell .cell-input.assignment-locked-input:focus,.pending-cell .cell-input.assignment-locked-input:hover:not(:disabled),.pending-cell .cell-input.assignment-locked-input:focus{color:var(--ts-color-text-muted);background:var(--ts-color-surface-disabled);border-color:var(--ts-color-border)}.grid-footer{z-index:30;background:var(--ts-color-header-bg);min-width:max-content;display:flex;position:sticky;bottom:0;box-shadow:inset 0 1px #e5e7ebd9}.grid-footer .pane-left,.grid-footer .pane-right{background:var(--ts-color-header-bg);z-index:31}.footer-cell{height:var(--ts-cell-h);font-variant-numeric:tabular-nums;font-size:var(--ts-size-11);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text-muted);justify-content:center;align-items:center;display:flex}.pane-left .footer-cell{text-transform:uppercase;justify-content:flex-start;width:100%;padding:0 12px}.pane-right .footer-cell{justify-content:center;width:100%}.grand-total-cell{color:var(--ts-color-accent);font-weight:var(--ts-fw-semibold)}.day-cell--rule-violation{background:var(--ts-color-violation-bg);color:var(--ts-color-violation-text);font-weight:var(--ts-fw-bold)}.total-header--rule-violation{background:var(--ts-color-violation-bg)}.total-header--rule-violation .day-num,.total-header--rule-violation .day-name{color:var(--ts-color-violation-text)}.grand-total-cell--rule-violation{background:var(--ts-color-violation-bg);color:var(--ts-color-violation-text);font-weight:var(--ts-fw-bold)}.grid-actions{border-top:1px solid var(--ts-color-sep);background:var(--ts-color-surface);justify-content:flex-end;gap:10px;padding:12px;display:flex}.pill-action-btn{width:var(--ts-action-btn-w);border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);height:36px;color:var(--ts-color-text-secondary);font-family:var(--ts-font);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:999px;transition:background .12s,border-color .12s,box-shadow .12s,transform 60ms}.pill-action-btn:hover:not(:disabled){border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-color-btn-hover-start) 0%, var(--ts-primary-50) 100%);box-shadow:0 2px 8px #4f46e51f}.pill-action-btn:active:not(:disabled){background:linear-gradient(180deg, var(--ts-color-btn-active-start) 0%, var(--ts-primary-100) 100%);transform:translateY(1px)}.pill-action-btn--primary{border-color:var(--ts-color-btn-primary-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-bg-start) 0%, var(--ts-color-btn-primary-bg-end) 100%);color:var(--ts-color-btn-primary-text)}.pill-action-btn--primary:hover:not(:disabled){border-color:var(--ts-color-btn-primary-hover-border);background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-start) 0%, var(--ts-color-btn-primary-hover-end) 100%);box-shadow:0 4px 12px #60a5fa3d}.pill-action-btn--primary:active:not(:disabled){background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-end) 0%, var(--ts-color-btn-primary-border) 100%)}.pill-action-btn--recall{border-color:var(--ts-color-btn-recall-border);background:linear-gradient(180deg, var(--ts-color-btn-recall-bg-start) 0%, var(--ts-color-btn-recall-bg-end) 100%);color:var(--ts-color-btn-recall-text)}.pill-action-btn--recall:hover:not(:disabled){border-color:var(--ts-color-btn-recall-hover-border);background:linear-gradient(180deg, var(--ts-soft-warn-100) 0%, var(--ts-soft-warn-200) 100%);box-shadow:0 4px 12px #f472b638}.pill-action-btn--recall:active:not(:disabled){background:linear-gradient(180deg, var(--ts-soft-warn-200) 0%, var(--ts-soft-warn-300) 100%)}.pill-action-btn:disabled{opacity:.6;cursor:not-allowed}.assignment-modal-backdrop{background:var(--ts-color-overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.assignment-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep);border-radius:12px;flex-direction:column;width:min(920px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;box-shadow:0 18px 48px #0f172a47}.assignment-modal-header{border-bottom:1px solid var(--ts-color-sep-card);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.assignment-modal-header h2{font-size:var(--ts-size-16);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);margin:0}.assignment-modal-close{background:var(--ts-color-modal-close-bg);width:30px;height:30px;color:var(--ts-color-modal-close-text);font-size:var(--ts-size-18);cursor:pointer;border:none;border-radius:999px;line-height:1}.assignment-modal-close:hover{background:var(--ts-color-modal-close-hover)}.assignment-modal-body{padding:12px 16px;overflow:auto}.assignment-modal-empty{color:var(--ts-color-text-muted);font-size:var(--ts-size-12);padding:8px 2px}.assignment-list{flex-direction:column;gap:8px;display:flex}.assignment-project-group{border:1px solid var(--ts-color-sep-card);background:var(--ts-color-surface-tint);border-radius:10px;padding:6px 10px}.assignment-project-group .project-label{min-height:26px;padding:0}.assignment-project-toggle{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:0;display:flex}.assignment-project-toggle:hover .project-pill{filter:brightness(.98)}.assignment-project-count{font-size:var(--ts-size-11);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text-muted);font-variant-numeric:tabular-nums;margin-left:auto}.assignment-project-chevron{text-align:center;width:14px;font-size:var(--ts-size-12);color:var(--ts-color-text-subdued)}.assignment-item{grid-template-columns:24px minmax(220px,2fr) minmax(150px,1fr) minmax(120px,1fr);align-items:center;gap:10px;min-height:38px;padding:4px 2px;display:grid}.assignment-item+.assignment-item{border-top:1px solid var(--ts-color-sep-list)}.assignment-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--ts-color-accent)}.assignment-item-name{color:var(--ts-color-text);font-size:var(--ts-size-12);font-weight:var(--ts-fw-regular);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.assignment-item-meta{color:var(--ts-color-text-muted);font-size:var(--ts-size-12);font-variant-numeric:tabular-nums;white-space:nowrap}.assignment-modal-actions{border-top:1px solid var(--ts-color-sep-card);justify-content:flex-end;gap:10px;padding:12px 16px 16px;display:flex}.comments-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep);border-radius:12px;flex-direction:column;width:min(780px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;box-shadow:0 18px 48px #0f172a47}.comments-modal-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex;overflow:auto}.comments-history{border:1px solid var(--ts-color-sep-form);background:var(--ts-color-surface-dim);border-radius:8px;min-height:120px;max-height:280px;padding:10px;overflow:auto}.comments-history-content{color:var(--ts-color-text);font-size:var(--ts-size-12);line-height:1.5}.comments-empty{color:var(--ts-color-text-muted);font-size:var(--ts-size-12)}.comments-input-label{color:var(--ts-color-text-secondary);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold)}.comments-textarea{resize:vertical;border:1px solid var(--ts-color-border-input);width:100%;min-height:90px;font:inherit;color:var(--ts-color-text);background:var(--ts-color-surface);border-radius:8px;padding:8px 10px}.comments-textarea:focus{border-color:var(--ts-color-focus);box-shadow:0 0 0 2px var(--ts-color-focus-glow);outline:none}.grid-save-error{color:var(--ts-color-violation-text);font-size:var(--ts-size-12);margin-top:4px}.timesheet-page{box-sizing:border-box;flex-direction:column;min-height:100dvh;padding:16px;display:flex}.app-header{border:1px solid var(--ts-color-sep);background:var(--ts-color-surface);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 12px;display:flex}.app-header-left{align-items:center;gap:10px;min-width:0;display:flex}.app-header-right{align-items:center;gap:10px;display:flex}.app-header-right .pill-action-btn,.app-header-right .app-header-status{width:calc(var(--ts-action-btn-w) + 5px)}.app-header .pill-action-btn--submit{border-color:var(--ts-color-btn-submit-border);background:linear-gradient(180deg, var(--ts-color-btn-submit-bg-start) 0%, var(--ts-color-btn-submit-bg-end) 100%);color:var(--ts-color-text)}.app-header .pill-action-btn--submit:hover:not(:disabled){border-color:var(--ts-color-btn-submit-hover-border);background:linear-gradient(180deg, var(--ts-color-btn-submit-hover-start) 0%, var(--ts-color-btn-submit-hover-end) 100%);box-shadow:0 3px 10px #4ade8040}.app-header .pill-action-btn--submit:active:not(:disabled){background:linear-gradient(180deg, var(--ts-approved-200) 0%, var(--ts-approved-300) 100%)}.app-header .pill-action-btn--reject{border-color:var(--ts-color-btn-reject-border);background:linear-gradient(180deg, var(--ts-color-btn-reject-bg-start) 0%, var(--ts-color-btn-reject-bg-end) 100%);color:var(--ts-color-btn-reject-text)}.app-header .pill-action-btn--reject:hover:not(:disabled){border-color:var(--ts-color-btn-reject-hover-border);background:linear-gradient(180deg, var(--ts-soft-warn-100) 0%, var(--ts-soft-warn-200) 100%);box-shadow:0 3px 10px #f43f5e33}.app-header .pill-action-btn--reject:active:not(:disabled){background:linear-gradient(180deg, var(--ts-soft-warn-200) 0%, var(--ts-soft-warn-300) 100%)}.app-header .pill-action-btn:disabled{opacity:1;border-color:var(--ts-color-border);background:var(--ts-color-surface-disabled);color:var(--ts-color-text-disabled);box-shadow:none;cursor:not-allowed}.timesheet-comments-btn{border:1px solid var(--ts-color-border);background:linear-gradient(180deg, var(--ts-color-surface) 0%, var(--ts-color-surface-dim) 100%);width:36px;min-width:36px;height:36px;color:var(--ts-color-text-disabled);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:background .12s,border-color .12s,box-shadow .12s,color .12s,transform 60ms;display:inline-flex}.timesheet-comments-btn:hover{border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-color-btn-hover-start) 0%, var(--ts-primary-50) 100%);box-shadow:0 2px 8px #4f46e51f}.timesheet-comments-btn:active{transform:translateY(1px)}.timesheet-comments-btn.has-comments{color:var(--ts-color-link-active);border-color:var(--ts-primary-200);background:linear-gradient(180deg, var(--ts-primary-50) 0%, var(--ts-primary-100) 100%)}.timesheet-comments-icon{box-sizing:border-box;border:2px solid;border-radius:4px;width:16px;height:12px;display:block;position:relative}.timesheet-comments-icon:after{content:"";border-bottom:2px solid;border-left:2px solid;width:5px;height:5px;position:absolute;bottom:-5px;left:2px;transform:skew(-18deg)rotate(-30deg)}.app-header-alert{border:1px solid var(--ts-color-error-border);background:var(--ts-color-error-bg);color:var(--ts-color-error-text);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold);border-radius:10px;align-items:center;gap:8px;margin:0 0 10px;padding:10px 12px 10px 8px;display:flex}.app-header-alert--error{border-color:var(--ts-color-error-border);background:var(--ts-color-error-bg);color:var(--ts-color-error-text)}.app-header-alert-close{width:20px;height:20px;color:inherit;font-size:var(--ts-size-16);font-weight:var(--ts-fw-bold);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;padding:0;line-height:1}.app-header-alert-close:hover{background:#991b1b1a}.app-header-alert-text{min-width:0}.app-header-nav-btn{border:1px solid var(--ts-color-border);background:var(--ts-color-surface);height:40px;color:var(--ts-color-text);font-family:var(--ts-font);font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);cursor:pointer;border-radius:10px;padding:0 14px;line-height:1}.app-header-nav-btn:hover{border-color:var(--ts-color-border-input);background:var(--ts-color-surface-dim)}.app-header-back-btn{white-space:nowrap}.app-header-period-nav{align-items:center;gap:8px;min-width:0;display:flex}.app-header-arrow-btn{width:40px;font-size:var(--ts-size-16);padding:0}.app-header-period-label{border:1px solid var(--ts-color-border);height:40px;color:var(--ts-color-text);font-size:var(--ts-size-18);font-weight:var(--ts-fw-semibold);white-space:nowrap;border-radius:10px;align-items:center;padding:0 12px;display:flex}.app-header-jump-btn{white-space:nowrap}.app-header-group-gap{flex:0 0 clamp(8px,5vw,72px);width:clamp(8px,5vw,72px)}.app-header-date-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.app-header-status{width:var(--ts-action-btn-w);height:36px;font-size:var(--ts-size-14);font-weight:var(--ts-fw-semibold);white-space:nowrap;border:2px dotted #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-family:inherit;display:inline-flex}.app-header-status--draft{background:var(--ts-color-surface-dim);border-color:var(--ts-color-text-muted);color:var(--ts-color-text-subdued)}.app-header-status--submitted{background:var(--ts-color-status-submitted-bg);border-color:var(--ts-color-status-submitted-border);color:var(--ts-color-status-submitted-text)}.app-header-status--approved{background:var(--ts-color-status-approved-bg);border-color:var(--ts-color-status-approved-border);color:var(--ts-color-status-approved-text)}.app-header-status--partially-approved{background:var(--ts-color-status-partial-bg);border-color:var(--ts-color-status-partial-border);color:var(--ts-color-status-partial-text)}.app-header-status--rejected{background:var(--ts-color-status-rejected-bg);border-color:var(--ts-color-status-rejected-border);color:var(--ts-color-status-rejected-text)}.app-header-jump-backdrop{z-index:1200;background:var(--ts-color-overlay);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.timesheet-comments-backdrop{background:var(--ts-color-overlay);z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.timesheet-comments-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep);border-radius:12px;flex-direction:column;width:min(780px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;box-shadow:0 18px 48px #0f172a47}.timesheet-comments-modal-header{border-bottom:1px solid var(--ts-color-sep-card);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.timesheet-comments-modal-header h2{font-size:var(--ts-size-16);font-weight:var(--ts-fw-semibold);color:var(--ts-color-text);margin:0}.timesheet-comments-close{background:var(--ts-color-modal-close-bg);width:30px;height:30px;color:var(--ts-color-modal-close-text);font-size:var(--ts-size-18);cursor:pointer;border:none;border-radius:999px;line-height:1}.timesheet-comments-close:hover:not(:disabled){background:var(--ts-color-modal-close-hover)}.timesheet-comments-close:disabled{opacity:.6;cursor:not-allowed}.timesheet-comments-modal-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex;overflow:auto}.timesheet-comments-history{border:1px solid var(--ts-color-sep-form);background:var(--ts-color-surface-dim);border-radius:8px;min-height:120px;max-height:280px;padding:10px;overflow:auto}.timesheet-comments-history-content{color:var(--ts-color-text);font-size:var(--ts-size-12);line-height:1.5}.timesheet-comments-empty{color:var(--ts-color-text-muted);font-size:var(--ts-size-12)}.timesheet-comments-label{color:var(--ts-color-text-secondary);font-size:var(--ts-size-12);font-weight:var(--ts-fw-bold)}.timesheet-comments-textarea{resize:vertical;border:1px solid var(--ts-color-border-input);width:100%;min-height:90px;font:inherit;color:var(--ts-color-text);background:var(--ts-color-surface);border-radius:8px;padding:8px 10px}.timesheet-comments-textarea:focus{border-color:var(--ts-color-focus);box-shadow:0 0 0 2px var(--ts-color-focus-glow);outline:none}.timesheet-comments-error{color:var(--ts-color-violation-text);font-size:var(--ts-size-12);font-weight:var(--ts-fw-semibold)}.timesheet-comments-modal-actions{border-top:1px solid var(--ts-color-sep-card);justify-content:flex-end;gap:10px;padding:12px 16px 16px;display:flex}.app-header-jump-modal{background:var(--ts-color-surface);border:1px solid var(--ts-color-sep-form);border-radius:16px;width:min(640px,100vw - 48px);padding:24px;box-shadow:0 22px 60px #0f172a47}.app-header-jump-title{color:var(--ts-color-text);font-size:var(--ts-size-22);font-weight:var(--ts-fw-bold);margin:0 0 8px}.app-header-jump-subtitle{color:var(--ts-color-text-subdued);font-size:var(--ts-size-14);margin:0 0 18px}.app-header-jump-input{border:1px solid var(--ts-color-border-input);width:100%;height:56px;color:var(--ts-color-text);font-size:var(--ts-size-18);font-weight:var(--ts-fw-semibold);background:var(--ts-color-surface);border-radius:12px;padding:0 16px}.app-header-jump-input:focus{border-color:var(--ts-color-focus);box-shadow:0 0 0 3px var(--ts-color-focus-glow);outline:none}.app-header-jump-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.app-header-jump-confirm{background:linear-gradient(180deg, var(--ts-color-btn-primary-bg-start) 0%, var(--ts-color-btn-primary-bg-end) 100%);border-color:var(--ts-color-btn-primary-border);color:var(--ts-color-btn-primary-text)}.app-header-jump-confirm:hover{background:linear-gradient(180deg, var(--ts-color-btn-primary-hover-start) 0%, var(--ts-color-btn-primary-hover-end) 100%);border-color:var(--ts-color-btn-primary-hover-border)}@media (width<=1280px){.app-header{flex-direction:column;align-items:stretch}.app-header-left,.app-header-right{flex-wrap:wrap}.app-header-group-gap{flex-basis:clamp(8px,3vw,32px);width:clamp(8px,3vw,32px)}}
