*{margin:0;padding:0;box-sizing:border-box}:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--dur-press:160ms;--dur-fast:150ms;--dur-modal:200ms;--bg:#FAFAF7;--surface:#FFFFFF;--surface-alt:#F4F1EB;--surface-sunken:#EFECE6;--border:#E5E2DB;--border-subtle:#EDEAE3;--border-strong:#D4D0C7;--ink:#0F0F0F;--ink-soft:#1A1A1A;--text-primary:#0F0F0F;--text-secondary:#5C5A55;--text-tertiary:#8D8A82;--text-quaternary:#B8B5AC;--text-inverse:#FFFFFF;--green:#2D7A4E;--green-bg:#E8F1EA;--red:#B0413E;--red-bg:#F5E5E2;--amber:#A07A1F;--amber-bg:#F3EDD8;--blue:#1B5FE0;--blue-bg:#E4ECFB;--accent:#1B5FE0;--accent-hover:#1450C7;--accent-soft:#4A82E8;--accent-bg:#E4ECFB;--action:#0F0F0F;--action-hover:#000000;--focus-ring:rgba(27,95,224,0.22);--tint-sage:#ECEAE2;--tint-blush:#EEEAE3;--tint-butter:#EEEBE0;--tint-sky:#E8E8E3;--tint-mauve:#EBE9E4;--tint-sage-ink:#4A4A44;--tint-blush-ink:#4A4642;--tint-butter-ink:#48443A;--tint-sky-ink:#44464A;--tint-mauve-ink:#4A4642;--sem-people:var(--surface-alt);--sem-people-ink:var(--text-secondary);--sem-projects:var(--accent-bg);--sem-projects-ink:var(--accent);--sem-utilization:var(--green-bg);--sem-utilization-ink:var(--green);--sem-cash:var(--surface-alt);--sem-cash-ink:var(--ink-soft);--sem-attention:var(--amber-bg);--sem-attention-ink:var(--amber);--font-display:"Open Runde","Nunito","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-sans:"Open Runde","Nunito","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Söhne Mono","SF Mono",ui-monospace,monospace;--font-script:"Caveat","Sacramento",cursive;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(15,15,15,0.04);--shadow-md:0 2px 8px rgba(15,15,15,0.05);--shadow-lg:0 12px 32px rgba(15,15,15,0.07);--shadow-focus:0 0 0 3px var(--focus-ring)}body,html{background:var(--bg);color:var(--text-primary);font-family:var(--font-sans);font-feature-settings:"cv03","cv04","cv09","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.45}input,select,textarea{font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;box-shadow:var(--shadow-focus);border-color:var(--accent)}.cmdk-input:focus,.proj-search input:focus{box-shadow:none;border-color:transparent}button{font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease,transform var(--dur-press) var(--ease-out)}button:active:not(:disabled){transform:scale(.97)}button:active{transform:scale(.98)}::placeholder{color:var(--text-tertiary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}a{color:inherit;text-decoration:none}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}.t-display-xl{font-size:64px;line-height:1.13;letter-spacing:-.037em}.t-display-lg,.t-display-xl{font-family:var(--font-display);font-weight:600}.t-display-lg{font-size:48px;line-height:1.15;letter-spacing:-.03em}.t-display-md{font-size:36px;line-height:1.18;letter-spacing:-.025em}.t-display-md,.t-display-sm{font-family:var(--font-display);font-weight:600}.t-display-sm{font-size:24px;line-height:1.25;letter-spacing:-.018em}.t-h1{font-size:28px;line-height:1.18;letter-spacing:-.02em}.t-h1,.t-h2{font-family:var(--font-sans);font-weight:600}.t-h2{font-size:20px;line-height:1.25;letter-spacing:-.012em}.t-h3{font-family:var(--font-sans);font-weight:600;font-size:15px;line-height:1.3;letter-spacing:-.008em}.t-body{font-size:14px;line-height:1.5;letter-spacing:-.005em}.t-body,.t-body-sm{font-family:var(--font-sans);font-weight:420}.t-body-sm{font-size:13px;line-height:1.45;letter-spacing:-.003em}.t-caption{font-family:var(--font-sans);font-weight:480;font-size:11.5px;line-height:1.3;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.t-meta{font-family:var(--font-sans);line-height:1.4;color:var(--text-secondary)}.t-meta,.t-mono{font-weight:450;font-size:12px}.t-mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.t-mono,.t-mono-sm{font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap}.t-mono-sm{font-weight:450;font-size:11px}.t-mono-sm,.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row{align-items:center}.col,.row{display:flex}.col{flex-direction:column}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.gap-8{gap:32px}.divider{height:1px;width:100%}.divider,.divider-v{background:var(--border-subtle)}.divider-v{width:1px;align-self:stretch}.ta-right{text-align:right}[data-variant=bold]{--bg:#FAFAF7;--surface:#FFFFFF}[data-variant=dense]{--bg:#F7F5F0;--surface:#FFFFFF;--border:#DDD9D0}.surface-quiet{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.link{color:var(--accent);font-weight:500}.link:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:2px}.status{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 7px;border-radius:var(--radius-full);letter-spacing:-.005em}.status-green{background:var(--green-bg);color:var(--green)}.status-red{background:var(--red-bg);color:var(--red)}.status-amber{background:var(--amber-bg);color:var(--amber)}.status-blue{background:var(--blue-bg);color:var(--blue)}.status-neutral{background:var(--surface-alt);color:var(--text-secondary)}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--bg)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:18px 14px;gap:14px}.sb-brand{display:flex;align-items:center;gap:11px;padding:8px 10px 14px;color:var(--ink)}.sb-wordmark{font-family:var(--font-display);font-weight:600;font-size:28px;letter-spacing:-.025em}.sb-search{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg);color:var(--text-tertiary);font-size:13px;text-align:left}.sb-search:hover{background:var(--surface-alt);border-color:var(--border)}.sb-search>span:first-of-type{flex:1 1}.sb-kbd{font-family:var(--font-mono);font-size:10.5px;padding:2px 5px;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);background:var(--surface)}.sb-nav{flex:1 1;gap:16px;overflow-y:auto;padding-bottom:8px}.sb-nav,.sb-section{display:flex;flex-direction:column}.sb-section{gap:1px}.sb-label{font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:6px 10px 4px}.sb-item{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:450;letter-spacing:-.005em;color:var(--text-secondary);position:relative}.sb-item:hover{background:var(--surface-alt);color:var(--text-primary)}.sb-item.is-active{background:var(--ink);color:var(--text-inverse);font-weight:500}.sb-item span:not(.sb-pin),.sb-item>span:first-of-type{flex:1 1}.sb-pin{font-size:10.5px;font-family:var(--font-mono);padding:1px 6px;border-radius:var(--radius-full);background:var(--accent-bg);color:var(--accent);flex:0 1!important}.sb-item.is-active .sb-pin{background:rgba(255,255,255,.16);color:var(--text-inverse)}.sb-user{gap:10px;border-top:1px solid var(--border-subtle);margin:0 -6px -6px;padding:12px 8px 4px}.sb-user,.sb-user-avatar{display:flex;align-items:center}.sb-user-avatar{width:32px;height:32px;border-radius:var(--radius-md);background:var(--tint-mauve);color:var(--tint-mauve-ink);font-size:11px;font-weight:600;justify-content:center}.sb-user-meta{flex:1 1;min-width:0}.sb-user-name{font-size:13px;font-weight:600;letter-spacing:-.01em}.sb-user-role{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.sb-user-action{color:var(--text-tertiary);padding:6px}.sb-user-action:hover{color:var(--text-primary)}.page{padding:32px 36px 48px;display:flex;flex-direction:column;gap:24px;max-width:1480px}.page[data-variant=dense]{padding:24px 28px 36px;gap:18px}.page[data-variant=editorial]{padding:44px 56px 64px;gap:36px;max-width:1440px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:8px}.page[data-variant=editorial] .topbar{padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.btn-ghost,.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:500;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;border:none}.btn-ghost{border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-primary)}.btn-ghost:hover{background:var(--surface-alt);border-color:var(--border)}.btn-primary{background:var(--ink);color:var(--text-inverse);border:1px solid var(--ink);border-radius:var(--radius-full);padding:7px 14px}.btn-primary:hover{background:var(--action-hover)}.page[data-variant=bold] .btn-primary{background:var(--ink);border-color:var(--ink)}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.kpi{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-height:108px}.kpi-link{display:block;border-radius:16px;text-decoration:none;color:inherit}.kpi[data-alert]{background:var(--red-bg);border-color:transparent}.kpi[data-alert] .kpi-label,.kpi[data-alert] .kpi-num{color:var(--red)}.kpi-label-row{display:flex;align-items:center;gap:7px;min-width:0}.kpi-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}.kpi-label{font-size:10.5px;letter-spacing:.03em;line-height:1.25}.kpi-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.kpi-num{font-family:var(--font-sans);font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-num-display{font-family:var(--font-display);font-weight:600;font-size:40px;letter-spacing:-.03em;line-height:1.05;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-foot{display:flex;gap:8px}.delta,.kpi-foot{align-items:center}.delta{display:inline-flex;gap:3px;font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 6px;border-radius:var(--radius-full);white-space:nowrap}.delta.up{background:var(--green-bg);color:var(--green)}.delta.down{background:var(--red-bg);color:var(--red)}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-direction:column;gap:16px}.page[data-variant=editorial] .card{border:none;background:transparent;border-top:1px solid var(--border-subtle);padding:28px 0 0;border-radius:0;gap:20px}.page[data-variant=dense] .card{padding:14px 16px;gap:12px;border-radius:var(--radius-md)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.grid-hero{display:grid;grid-template-columns:minmax(380px,1fr) minmax(540px,1.2fr);grid-gap:18px;gap:18px}.page[data-variant=editorial] .grid-hero{gap:32px}.page[data-variant=dense] .grid-hero{gap:14px}.focus-list{display:flex;flex-direction:column}.focus-item{display:grid;grid-template-columns:32px 1fr auto auto;grid-gap:14px;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--border-subtle)}.focus-item:first-child{border-top:none;padding-top:4px}.focus-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.focus-body{min-width:0}.focus-title{font-size:14px;font-weight:500;letter-spacing:-.005em}.focus-project{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:480}.focus-project-dot{width:6px;height:6px;border-radius:50%}.focus-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.focus-meta>*{white-space:nowrap}.dot-sep{color:var(--text-quaternary)}.focus-people{display:flex}.focus-action{width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center}.focus-action:hover{background:var(--surface-alt);color:var(--text-primary)}.avatar{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:-.02em;color:var(--ink);border:2px solid var(--surface);flex-shrink:0}.avatar-sm{width:26px;height:26px;font-size:10px}.heatmap-card{overflow:hidden}.legend{display:flex;gap:10px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:5px}.legend-swatch{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.04)}.heatmap{display:flex;flex-direction:column;gap:4px}.heatmap-head{display:grid;grid-template-columns:180px repeat(5,1fr);grid-gap:4px;gap:4px;padding-bottom:6px}.heatmap-week{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}.heatmap-week.is-current{color:var(--ink)}.heatmap-now{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--text-inverse);padding:1px 5px;border-radius:var(--radius-full);line-height:1.4}.heatmap-week:not(.is-current):before{content:"";display:block;height:15px}.heatmap-week.is-current .t-mono-sm{color:var(--ink)!important;font-weight:600}.heatmap-row{display:grid;grid-template-columns:180px repeat(5,1fr);grid-gap:4px;gap:4px;align-items:center}.heatmap-person{display:flex;align-items:center;gap:8px;padding-right:8px;min-width:0}.heatmap-person .col{min-width:0;flex:1 1}.heatmap-person .t-body-sm,.heatmap-person .t-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.heatmap-cell{border-radius:var(--radius-sm);height:36px;display:flex;align-items:center;justify-content:center;font-weight:500}.heatmap-cell:hover{outline:2px solid var(--ink);outline-offset:-2px}.project-list{display:flex;flex-direction:column}.project-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border-subtle)}.project-row:first-child{border-top:none;padding-top:4px}.project-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.progress{height:4px;background:var(--surface-alt);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:inherit}.grid-lower{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-gap:18px;gap:18px}.page[data-variant=editorial] .grid-lower{gap:32px}.page[data-variant=dense] .grid-lower{gap:14px}.insight{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 14px;background:var(--surface)}.page[data-variant=editorial] .insight{background:var(--surface);border:none;border-radius:0}.insight-tag{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.insight-dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.insight-action{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;color:var(--ink);margin-top:8px;padding:0}.insight-action:hover{color:var(--accent-soft)}.activity-list{display:flex;flex-direction:column}.activity-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--border-subtle)}.activity-row:first-child{border-top:none;padding-top:2px}.page[data-variant=bold]{padding:28px 32px 40px;gap:18px}.page[data-variant=bold] .kpi-num{font-size:30px}.page[data-variant=bold] .card{background:var(--surface);padding:18px 20px;gap:14px}.page[data-variant=bold] .focus-item{padding:10px 0}.page[data-variant=bold] .heatmap-cell{height:32px}.page[data-variant=bold] .grid-hero,.page[data-variant=bold] .grid-lower{gap:16px}.page[data-variant=bold] .kpi{min-height:96px;padding:14px 16px;border:1px solid var(--border-subtle)}.page[data-variant=dense] .kpi{min-height:80px;padding:12px 14px}.page[data-variant=dense] .kpi-num{font-size:22px}.page[data-variant=dense] .focus-item{padding:8px 0}.page[data-variant=dense] .heatmap-cell{height:28px}.page[data-variant=dense] .heatmap-head,.page[data-variant=dense] .heatmap-row{gap:2px}.proj-toolbar{justify-content:space-between;gap:16px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.proj-tabs,.proj-toolbar{display:flex;align-items:center}.proj-tabs{gap:2px}.proj-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;letter-spacing:-.005em;color:var(--text-secondary);border-radius:var(--radius-sm);position:relative;white-space:nowrap;cursor:pointer;background:none;border:none}.proj-tab:hover{background:var(--surface-alt)}.proj-tab.is-active,.proj-tab:hover{color:var(--text-primary)}.proj-tab.is-active:after{content:"";position:absolute;left:12px;right:12px;bottom:-5px;height:2px;background:var(--ink);border-radius:2px}.proj-tab-n{font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border-radius:var(--radius-full);background:var(--surface-alt);color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.proj-tab.is-active .proj-tab-n{background:var(--ink);color:var(--text-inverse)}.proj-search{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);width:240px;color:var(--text-tertiary)}.proj-search input{flex:1 1;border:none;outline:none;background:transparent;font-size:13px;color:var(--text-primary)}.proj-segment{display:inline-flex;background:var(--surface-alt);border-radius:var(--radius-md);padding:2px}.proj-seg{padding:5px 9px;border-radius:var(--radius-sm);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;background:none;border:none}.proj-seg.is-active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.proj-table{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.proj-row{display:grid;grid-template-columns:minmax(240px,2fr) 1.2fr 100px 110px 120px 150px 24px;grid-gap:16px;gap:16px;align-items:center;padding:12px 18px;border-top:1px solid var(--border-subtle);text-align:left;width:100%}.proj-row:first-child{border-top:none}.proj-head{font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:10px 18px;background:var(--bg)}.proj-data{transition:background .12s}.proj-data:hover{background:var(--bg)}.proj-cell-name{display:flex;gap:12px;align-items:center;min-width:0}.phase-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:500;letter-spacing:.005em;padding:3px 8px;border-radius:var(--radius-full);white-space:nowrap}.proj-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:18px;gap:18px}.proj-board-col{display:flex;flex-direction:column;gap:12px}.proj-board-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.proj-board-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 16px;text-align:left;display:flex;flex-direction:column;transition:box-shadow .12s,transform .12s}.proj-board-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.proj-filter-select{font-family:inherit}.proj-card-color-bar{height:3px;width:32px;border-radius:2px}.proj-card-phase-row{justify-content:space-between}.proj-card-name,.proj-card-phase-row{margin-top:8px;display:flex;align-items:center}.proj-card-name{font-weight:550;letter-spacing:-.01em;gap:6px}.proj-card-pnum{color:var(--text-tertiary)}.proj-card-client{margin-top:2px}.proj-card-status{margin-top:8px}.proj-card-progress-wrap{margin-top:12px}.proj-card-progress-row{margin-top:4px;display:flex;justify-content:space-between;align-items:baseline}.proj-card-milestone-pct{color:var(--text-secondary)}.proj-card-time-pct{color:var(--amber)}.proj-card-to-bill{color:var(--amber);font-weight:500;margin-top:2px}.proj-card-fee-row{margin-top:10px;display:flex;justify-content:space-between;align-items:baseline}.proj-card-fee{font-weight:500}.proj-card-billed{color:var(--text-secondary)}.proj-list-name-col{min-width:0;align-items:flex-start}.proj-list-name{font-weight:550;letter-spacing:-.01em}.proj-list-sub{margin-top:1px}.proj-list-dot{color:var(--text-quaternary)}.proj-list-client{font-size:11.5px}.proj-list-fee{font-weight:500}.proj-list-billed{color:var(--text-secondary)}.proj-list-to-bill{color:var(--amber);margin-top:2px}.proj-list-progress-row{display:flex;align-items:center;gap:8px}.proj-list-progress-bar{flex:1 1;min-width:80px}.proj-list-pct{min-width:30px;color:var(--text-secondary)}.proj-list-arrow{color:var(--text-tertiary)}.proj-hero{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;position:relative}.proj-hero-bar{height:4px}.proj-hero-body{padding:22px 26px 20px;display:flex;flex-direction:column;gap:18px}.proj-hero-meta{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:0;gap:0;padding-top:16px;border-top:1px solid var(--border-subtle)}.proj-meta-cell{padding:8px 18px 4px 0;border-right:1px solid var(--border-subtle);min-width:0}.proj-meta-cell:last-child{border-right:none;padding-right:0}.proj-meta-cell:nth-child(n+2){padding-left:18px}.proj-progress-bar{padding:12px 14px;background:var(--bg);border-radius:var(--radius-md)}.proj-overview{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.ms-timeline{display:flex;flex-direction:column}.ms-item{display:grid;grid-template-columns:32px 1fr auto;grid-gap:14px;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--border-subtle);position:relative}.ms-item:first-child{border-top:none;padding-top:4px}.ms-item:not(:last-child):before{content:"";position:absolute;left:15px;top:38px;bottom:0;width:2px;background:var(--border-subtle)}.ms-dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;margin-left:4px;position:relative;z-index:1}.ms-item.is-active .ms-dot{border-style:dashed;animation:ms-pulse 2s ease-in-out infinite}@keyframes ms-pulse{0%,to{box-shadow:0 0 0 0 rgba(74,127,89,.3)}50%{box-shadow:0 0 0 4px rgba(74,127,89,0)}}.stage-chip{font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:2px 6px;border-radius:var(--radius-xs);background:var(--surface-alt);color:var(--text-secondary);letter-spacing:.02em}.ms-status{font-size:11px;font-weight:500;padding:3px 8px;border-radius:var(--radius-full);white-space:nowrap}.status-billed,.status-paid,.status-received{background:var(--sem-utilization);color:var(--sem-utilization-ink)}.status-in_progress{background:var(--sem-projects);color:var(--sem-projects-ink)}.status-pending{background:var(--surface-alt);color:var(--text-tertiary)}.team-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--border-subtle)}.team-row:first-child{border-top:none;padding-top:0}.invoice-row{display:grid;grid-template-columns:140px 140px 110px 1fr;grid-gap:16px;gap:16px;align-items:center;padding:10px 12px;background:var(--bg);border-radius:var(--radius-md)}.empty-card{align-items:center;padding:56px 32px}.empty-glyph{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-alt);color:var(--text-tertiary)}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.person-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px;text-align:left;display:flex;flex-direction:column;gap:14px;transition:box-shadow .12s,transform .12s}.person-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.person-card-top{display:flex;align-items:center;gap:12px}.avatar-lg{width:48px;height:48px;font-size:16px;border-width:2px}.person-card-meta{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding-top:12px;border-top:1px solid var(--border-subtle)}.person-util{padding-top:4px}.person-projects{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}.person-proj{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg)}.people-row{grid-template-columns:minmax(220px,2fr) 1fr 1.2fr 110px 70px 100px 24px}.people-head{font-size:11px}.person-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:8px 0}.person-hero-left{display:flex;align-items:center;gap:22px}.person-meta{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:0;gap:0;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 24px}.person-meta-cell{padding:0 24px;border-right:1px solid var(--border-subtle)}.person-meta-cell:first-child{padding-left:0}.person-meta-cell:last-child{border-right:none;padding-right:0}.person-proj-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--border-subtle)}.person-proj-row:first-child{border-top:none;padding-top:0}.growth-chart{padding:16px 8px;margin-top:4px}.growth-chart,.growth-highlight{background:var(--bg);border-radius:var(--radius-md)}.growth-highlight{padding:14px 16px}.fin-overview{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.aging-row{display:flex;align-items:center;gap:12px}.aging-row>div:first-child{min-width:110px;white-space:nowrap}.aging-bar{height:6px;background:var(--surface-alt);border-radius:var(--radius-full);overflow:hidden}.aging-fill{height:100%;border-radius:inherit}.aging-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.aging-card{padding:22px;border-radius:var(--radius-lg);min-height:220px}.aging-card,.fin-table{display:flex;flex-direction:column}.fin-table{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.fin-row{display:grid;grid-template-columns:130px 2fr 1.2fr 100px 110px 110px 130px 24px;grid-gap:16px;gap:16px;align-items:center;padding:12px 18px;border-top:1px solid var(--border-subtle);text-align:left;width:100%}.fin-row:first-child{border-top:none}.fin-head{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:10px 18px;background:var(--bg)}.fin-data{transition:background .12s}.fin-data:hover{background:var(--bg)}.hw-grid{grid-gap:14px;gap:14px}.hw-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .12s,transform .12s,border-color .12s;position:relative}.hw-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.hw-card--alert{border-color:var(--tier-bg)}.hw-card--alert:before{content:"";position:absolute;top:14px;bottom:14px;left:0;width:3px;background:var(--tier-ink);border-radius:0 var(--radius-xs) var(--radius-xs) 0}.hw-card-top{gap:10px}.hw-tier{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.hw-assign{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0 0;border-top:1px solid var(--border-subtle)}.hw-assign,.hw-assign>*{min-width:0}.hw-proj-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.hw-installed{display:flex;flex-wrap:wrap;gap:4px}.hw-sw{font-size:10.5px;font-weight:500;padding:2px 7px;border-radius:var(--radius-xs);background:var(--surface-alt);color:var(--text-secondary);letter-spacing:.01em;white-space:nowrap}.hw-sw--more{background:transparent;border:1px dashed var(--border)}.hw-notes,.hw-sw--more{color:var(--text-tertiary)}.hw-notes{font-style:italic;font-size:11.5px;padding-top:6px;border-top:1px solid var(--border-subtle)}.sw-table{border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.sw-row{grid-template-columns:2fr 1.2fr 110px 110px 130px 140px;grid-gap:18px;gap:18px;border-top:1px solid var(--border-subtle);text-align:left;width:100%}.sw-row:first-child{border-top:none}.sw-head{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);background:var(--bg)}.sw-data{transition:background .12s}.sw-data:hover{background:var(--bg)}.sw-lic{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:var(--radius-full);background:var(--surface-alt);color:var(--text-secondary);white-space:nowrap}.sw-lic--floating{background:var(--amber-bg);color:var(--amber)}.sw-seat-bar{width:100%;height:3px;background:var(--surface-alt);border-radius:var(--radius-full);margin-top:6px;overflow:hidden}.sw-seat-fill{height:100%;border-radius:inherit}.sw-renew{font-size:11px;font-family:var(--font-mono);font-weight:500;margin-top:2px;color:var(--text-tertiary);white-space:nowrap}.sw-renew--warn{color:var(--amber)}.sw-renew--critical{color:var(--red);font-weight:600}.cost-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 20px;display:flex;flex-direction:column;gap:10px;min-height:120px}.cost-card--alert{background:var(--red-bg);border-color:transparent}.cost-num{font-family:var(--font-sans);font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.cost-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:18px;gap:18px}.loss-table{display:flex;flex-direction:column}.loss-row{display:grid;grid-template-columns:1.5fr 1.5fr 100px 130px;grid-gap:16px;gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--border-subtle)}.loss-row:first-child{border-top:none;padding-top:4px}.loss-head{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding-bottom:8px}.loss-total{border-top:2px solid var(--border-strong);padding-top:14px;margin-top:4px}.ins-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--surface);font-size:13px;font-weight:500;color:var(--text-secondary);transition:background .12s,color .12s,border-color .12s;cursor:pointer}.ins-chip:hover{background:var(--surface-alt);color:var(--text-primary)}.ins-chip.is-active{background:var(--ink);color:var(--text-inverse);border-color:var(--ink)}.ins-chip.is-active .proj-tab-n{background:rgba(255,255,255,.18);color:var(--text-inverse)}.ins-feed{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}.ins-card{display:grid;grid-template-columns:140px 1fr;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .12s,transform .12s}.ins-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.ins-card-left{padding:18px 16px;display:flex;flex-direction:column;gap:10px;min-height:160px}.ins-tag{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.ins-metric{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1.15;letter-spacing:-.02em;margin-top:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ins-card-body{padding:18px 20px}.ins-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--text-secondary)}.prof-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--border-subtle)}.prof-row:first-child{border-top:none;padding-top:0}.prof-bar{width:100%;height:6px;background:var(--surface-alt);border-radius:var(--radius-full);overflow:hidden;position:relative}.prof-bar:after{content:"";position:absolute;left:35%;top:-2px;bottom:-2px;width:1px;background:var(--text-tertiary);opacity:.4}.prof-bar-fill{height:100%;border-radius:inherit}.util-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border-subtle)}.util-row:first-child{border-top:none;padding-top:0}.cashflow-chart{padding:0}.cashflow-bars{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px;align-items:flex-end;height:240px}.cashflow-month{display:flex;flex-direction:column;align-items:center;gap:0}.cashflow-pair{display:flex;align-items:flex-end;gap:4px;height:200px}.cashflow-bar{width:24px;border-radius:4px 4px 0 0;position:relative;min-height:8px;transition:opacity .15s}.cashflow-bar:hover{opacity:.8}.cashflow-val{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:9px;font-weight:500;color:var(--text-tertiary);white-space:nowrap;opacity:0;transition:opacity .12s}.cashflow-bar:hover .cashflow-val{opacity:1}.perf-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--border-subtle)}.perf-row:first-child{border-top:none;padding-top:4px}.growth-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--border-subtle);position:relative}.growth-row:first-child{border-top:none;padding-top:0}.growth-flag{width:24px;height:24px;border-radius:50%;background:var(--red-bg);color:var(--red);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ts-grid-wrap{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.ts-row{display:grid;grid-template-columns:200px repeat(7,minmax(0,1fr)) 130px;align-items:stretch}.ts-head{background:var(--bg);border-bottom:1px solid var(--border)}.ts-head-cell{padding:12px 14px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.ts-day-head{padding:10px 6px;text-align:center;border-left:1px solid var(--border-subtle);position:relative}.ts-day-head.is-weekend{background:var(--surface-alt)}.ts-day-head.is-today .t-caption,.ts-day-head.is-today .t-mono{color:var(--accent)!important}.ts-now{display:inline-block;margin-left:4px;font-size:8.5px;font-weight:700;letter-spacing:.05em;background:var(--accent);color:var(--text-inverse);padding:1px 4px;border-radius:var(--radius-full);text-transform:uppercase;vertical-align:middle}.ts-team-band{grid-column:1/-1;padding:7px 14px;background:var(--bg);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.ts-data,.ts-team-band{border-top:1px solid var(--border-subtle)}.ts-data{transition:background .12s}.ts-data:first-of-type{border-top:none}.ts-data:hover{background:var(--bg)}.ts-person-cell{display:flex;align-items:center;gap:10px;padding:10px 14px;border-right:1px solid var(--border-subtle);min-width:0}.ts-submit{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:var(--radius-xs);white-space:nowrap}.ts-submit--missing{background:var(--red-bg);color:var(--red)}.ts-cell{border-left:1px solid var(--border-subtle);padding:6px;min-height:70px;display:flex;flex-direction:column;gap:3px;align-items:stretch;justify-content:flex-start;position:relative;min-width:0}.ts-cell.is-weekend{background:var(--surface-alt)}.ts-cell.is-today{box-shadow:inset 0 2px 0 var(--accent)}.ts-cell.is-over{background:transparent}.ts-empty{color:var(--text-quaternary);font-size:14px;text-align:center;align-self:center;margin:auto}.ts-add{align-self:stretch;flex:1 1;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-tertiary);opacity:0;min-height:32px;border-radius:var(--radius-sm);border:1px dashed var(--border);transition:opacity .15s,background .12s,border-color .12s;line-height:1;background:none;cursor:pointer}.ts-cell:hover .ts-add{opacity:1}.ts-add:hover{background:var(--surface-alt);border-color:var(--border-strong);color:var(--text-primary);opacity:1}.ts-chip{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;padding:4px 7px;border-radius:var(--radius-sm);border:1px solid;white-space:nowrap;cursor:pointer;min-width:0;transition:transform .08s}.ts-chip:hover{transform:translateY(-1px)}.ts-chip-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.ts-chip-label{font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.ts-chip-hours,.ts-chip-label{font-family:var(--font-mono);font-size:10.5px}.ts-chip-hours{font-weight:600;opacity:.85;flex-shrink:0}.ts-chip-icon{font-size:10px;opacity:.7;flex-shrink:0}.ts-chip--nb{background:var(--surface-alt);color:var(--text-secondary);border-color:var(--border)}.ts-chip--nb .ts-chip-label{letter-spacing:.02em}.ts-day-total{font-family:var(--font-mono);font-size:10px;color:var(--text-tertiary);align-self:flex-end;margin-top:auto;padding-top:2px}.ts-day-total.is-over{color:var(--text-secondary);font-weight:500}.ts-over-mark{font-size:8.5px;font-weight:400;letter-spacing:.04em;color:var(--text-tertiary);text-align:center;margin-top:auto}.ts-total-cell{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:8px 14px;border-left:2px solid var(--border);text-align:right}.ts-bar{width:60px;height:3px;background:var(--surface-alt);border-radius:var(--radius-full);margin-top:6px;overflow:hidden}.ts-bar-fill{height:100%;border-radius:inherit}.by-proj-row{display:flex;align-items:center;gap:16px;padding:8px 0;border-top:1px solid var(--border-subtle)}.by-proj-row:first-child{border-top:none;padding-top:0}.by-proj-bar-wrap{flex:1.5 1;min-width:100px;max-width:320px}.by-proj-bar{height:6px;background:var(--surface-alt);border-radius:var(--radius-full);overflow:hidden}.by-proj-fill{height:100%;width:100%;border-radius:inherit;transform-origin:left;transition:transform .3s var(--ease-out)}.ts-by-person-row{grid-template-columns:2fr 110px 90px 1.2fr 110px}.ts-mini-bar{width:100%;height:2px;background:var(--surface-alt);border-radius:var(--radius-full);margin-top:4px;overflow:hidden}.ts-mini-fill{height:100%;border-radius:inherit}.planner-insights{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.pi-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border-subtle)}.pi-card.is-risk{background:var(--sem-attention);border-color:rgba(133,109,44,.18)}.pi-card.is-opp{background:var(--sem-utilization);border-color:rgba(74,107,71,.18)}.pi-icon{width:28px;height:28px;border-radius:var(--radius-sm);background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;flex-shrink:0}.pi-card.is-risk .pi-icon{color:var(--sem-attention-ink)}.pi-card.is-opp .pi-icon{color:var(--sem-utilization-ink)}.pi-action{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;padding:5px 10px;border-radius:var(--radius-md);background:rgba(255,255,255,.7);color:var(--text-primary);flex-shrink:0;align-self:center;cursor:pointer;border:none}.pi-action:hover{background:rgba(255,255,255,1)}.sched-wrap{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.sched-grid{display:grid;grid-template-columns:200px repeat(7,minmax(110px,1fr)) 96px;overflow-x:auto}.sched-header{display:contents}.sched-corner,.sched-day-head,.sched-load-head{background:var(--bg);border-bottom:1px solid var(--border-subtle);padding:12px 14px}.sched-corner{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--bg)}.sched-corner,.sched-day-head{border-right:1px solid var(--border-subtle)}.sched-day-head{display:flex;flex-direction:column;gap:2px;padding:12px 10px 10px}.sched-day-head.is-today{background:var(--sem-projects)}.sched-day-head.is-today .t-caption{color:var(--sem-projects-ink)}.sched-day-head.is-holiday{background:var(--bg)}.sched-day-num{font-family:var(--font-display);font-size:20px;font-weight:600;line-height:1;letter-spacing:-.02em}.sched-day-head.is-today .sched-day-num{color:var(--sem-projects-ink)}.sched-milestone-marker{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:10px;color:var(--sem-attention-ink)}.sched-load-head{border-left:1px solid var(--border-subtle)}.sched-row{display:contents}.sched-person{position:-webkit-sticky;position:sticky;left:0;z-index:1;padding:12px 14px;align-items:center;gap:10px;min-width:0}.sched-cell,.sched-person{background:var(--surface);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);display:flex}.sched-cell{padding:8px;flex-direction:column;gap:4px;position:relative;min-height:90px}.sched-cell.is-today-col{background:rgba(74,98,128,.04)}.sched-cell.is-holiday{background:var(--bg);background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(166,75,60,.06) 0,rgba(166,75,60,.06) 12px)}.sched-cell.is-leave{background:var(--tint-mauve)}.sched-cell.is-over{background:rgba(166,75,60,.05)}.sched-cell.is-over:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--red)}.sched-cell:hover .sched-empty{opacity:1}.sched-leave{gap:4px;background:rgba(255,255,255,.6);border-radius:var(--radius-sm);padding:4px 6px;font-size:11px;color:var(--tint-mauve-ink);font-weight:500}.sched-empty,.sched-leave{display:flex;align-items:center}.sched-empty{align-self:stretch;flex:1 1;justify-content:center;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-tertiary);opacity:0;transition:opacity .15s;min-height:32px;background:none;cursor:pointer}.sched-empty:hover{background:var(--surface-alt);border-color:var(--border-strong);color:var(--text-primary);opacity:1}.sched-day-total{font-family:var(--font-mono);font-size:10px;color:var(--text-tertiary);align-self:flex-end;margin-top:auto;padding-top:2px}.sched-day-total.is-over{color:var(--red);font-weight:600}.alloc-chip{display:flex;align-items:center;gap:5px;padding:4px 7px;border-radius:var(--radius-sm);border:1px solid;font-size:11px;font-weight:500;min-width:0;cursor:pointer;transition:transform .08s}.alloc-chip:hover{transform:translateY(-1px)}.alloc-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.alloc-stage{font-weight:500;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.alloc-hours,.alloc-stage{font-family:var(--font-mono);font-size:10.5px}.alloc-hours{font-weight:600;opacity:.85;flex-shrink:0}.alloc-chip.alloc-nb{background:var(--surface-alt);border-color:var(--border);color:var(--text-secondary)}.sched-load{border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:12px;display:flex;flex-direction:column;gap:2px;align-items:flex-start;background:var(--bg)}.sched-load-bar{width:100%;height:4px;background:var(--surface-alt);border-radius:var(--radius-full);position:relative;overflow:visible}.sched-load-fill{height:100%;border-radius:inherit;background:var(--green)}.sched-load-over{position:absolute;top:0;left:100%;height:100%;background:var(--red);border-radius:0 var(--radius-full) var(--radius-full) 0;transform:translateX(-2px)}.sched-legend{padding:14px 18px;background:var(--bg);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.nav-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.nav-arrow{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:14px;color:var(--text-primary)}.nav-label{font-size:14px;font-weight:600}.nav-spacer{flex:1 1}.ts-wrap{overflow:hidden}.ts-wrap,.ts-wrap-scroll{background:var(--surface);border:1px solid var(--border);border-radius:16px}.ts-wrap-scroll{overflow:auto}.ts-team-header{padding:8px 16px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.ts-team-name{font-size:11px;font-weight:600;color:var(--text-secondary)}.ts-person-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ts-person-role{font-size:9px;color:var(--text-tertiary)}.ts-comp-selector{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.ts-comp-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.ts-comp-select{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:13px;min-width:200px}.ts-comp-summary{font-size:12px;color:var(--text-tertiary);margin-left:8px}.ts-table-th{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.ts-sticky-person{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--surface);padding:8px 12px}.ts-nav-month-label{min-width:120px;text-align:center}.ts-table-th.is-center{text-align:center}.ts-table-th.is-left{text-align:left}.ts-table-th.is-right{text-align:right}.ts-table-th.has-sep,.ts-table-th.is-total{border-left:2px solid var(--border)}.ts-table-th.is-total{min-width:60px;text-align:center}.ts-table-th.pad-h{padding:10px 14px}.ts-table-th.color-blue{color:var(--blue)}.ts-table-th.color-green{color:var(--green)}.ts-month-wk-th{text-align:center;border-left:2px solid var(--border)}.ts-month-sub-th{padding:4px 2px;font-size:9px;font-weight:600;text-align:center;border-bottom:1px solid var(--border);min-width:32px}.ts-month-sub-th.is-today{border-bottom:2px solid var(--accent);color:var(--accent)}.ts-month-sub-th.is-sun{background:var(--surface)}.ts-month-sub-th-num{font-size:8px}.ts-month-sub-spacer{padding:4px 12px;border-bottom:1px solid var(--border)}.ts-month-sub-end{border-bottom:1px solid var(--border);border-left:2px solid var(--border)}.ts-month-cell{padding:2px 1px;text-align:center;border-right:1px solid var(--border);vertical-align:middle;min-width:32px;position:relative}.ts-month-cell.is-click{cursor:pointer}.ts-month-cell-stack{display:flex;flex-direction:column;gap:1px;align-items:center}.ts-month-mini-chip{font-size:7px;font-weight:600;padding:1px 3px;border-radius:3px;white-space:nowrap;cursor:pointer}.ts-month-total-cell{text-align:center;padding:8px 4px;border-left:2px solid var(--border);font-weight:600;font-size:12px}.ts-row-border{border-bottom:1px solid var(--border)}.ts-team-sep{border-top:2px solid var(--border)}.ts-year-cell{text-align:center;padding:8px 4px;border-right:1px solid var(--border)}.ts-year-pill{border-radius:6px;padding:4px 2px}.ts-year-val{font-size:11px;font-weight:600}.ts-year-total-cell{border-left:2px solid var(--border);text-align:center;padding:8px 4px}.ts-year-total-val{font-size:12px;font-weight:700}.ts-year-sub{font-size:8px;font-weight:400;opacity:.6}.ts-comp-td{padding:10px 8px;border-bottom:1px solid var(--border)}.ts-comp-td:last-child{border-bottom:none}.ts-comp-td.is-name{padding:10px 14px;font-weight:500}.ts-comp-td.is-right{text-align:right;font-weight:600}.ts-comp-td.is-var{text-align:right;font-weight:700;padding:10px 14px}.ts-comp-foot{padding:10px 8px;border-top:2px solid var(--border)}.ts-comp-foot.is-name{padding:10px 14px;font-weight:700}.ts-comp-foot.is-right,.ts-comp-foot.is-var{text-align:right;font-weight:700}.ts-comp-foot.is-var{padding:10px 14px}.ts-visit-type-wrap{margin-top:12px;margin-bottom:4px}.tools-stat-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.tools-stat-pills{display:flex;gap:10px}.tools-stat-pill{padding:10px 16px;border-radius:12px;text-align:center;min-width:70px}.tools-stat-num{font-size:18px;font-weight:700}.tools-stat-label{font-size:9px;color:var(--text-tertiary);margin-top:2px}.hw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px}.hw-card{background:var(--surface);border-radius:14px;padding:18px 20px;cursor:pointer}.hw-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.hw-card-name{font-size:14px;font-weight:600}.hw-specs{margin-bottom:4px}.hw-specs-title{font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin:4px 0 8px}.hw-card-specs,.hw-specs-title{font-size:11px;color:var(--text-tertiary)}.hw-card-specs{margin-top:3px}.hw-card-badges{display:flex;justify-content:space-between;align-items:center}.hw-card-project{font-size:11px}.hw-sw-chips{display:flex;flex-wrap:wrap;gap:4px}.hw-sw-chip{font-size:9px;padding:2px 7px;border-radius:6px;background:var(--blue-bg);color:var(--blue);font-weight:500}.hw-card-notes{font-size:11px;color:var(--text-tertiary);font-style:italic}.sw-table{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.sw-head{display:grid;grid-template-columns:2fr 1.2fr .8fr .8fr 1fr 1fr;padding:12px 22px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.sw-th{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.sw-row{display:grid;grid-template-columns:2fr 1.2fr .8fr .8fr 1fr 1fr;padding:14px 22px;align-items:center;cursor:pointer}.sw-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.sw-name{font-size:13px;font-weight:500}.sw-notes{font-size:10px;color:var(--text-tertiary)}.sw-vendor{font-size:12px;color:var(--text-secondary)}.sw-seats-used{font-size:13px;font-weight:600}.sw-seats-total{font-size:11px;color:var(--text-tertiary)}.sw-cost-main{font-size:12px;font-weight:500}.sw-cost-sub{font-size:10px;color:var(--text-tertiary)}.sw-renewal-date{font-size:12px;font-weight:500}.sw-renewal-days{font-size:10px}.tools-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px}.tools-section-title{font-size:14px;font-weight:600;margin-bottom:14px}.tools-bar-row{margin-bottom:12px}.tools-bar-header{display:flex;justify-content:space-between;margin-bottom:4px}.tools-bar-name{font-size:12px;font-weight:500}.tools-bar-track{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}.tools-bar-fill{height:100%;border-radius:3px}.cost-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:20px}.cost-card{border-radius:16px;padding:20px;position:relative;overflow:hidden}.cost-card-watermark{position:absolute;top:-8px;right:4px;font-size:60px;font-weight:800;opacity:.06}.cost-card-value{font-size:22px;font-weight:700}.cost-card-label{font-size:10px;color:var(--text-tertiary);margin-top:4px;font-weight:500}.cost-table-head{display:grid;grid-template-columns:1.5fr 1.5fr .8fr .8fr .8fr 1fr;padding:10px 16px;background:var(--surface-alt);border-radius:10px;margin-bottom:8px}.cost-table-th{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.cost-table-row{display:grid;grid-template-columns:1.5fr 1.5fr .8fr .8fr .8fr 1fr;padding:12px 16px;align-items:center}.cost-table-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.cost-row-name{font-size:13px;font-weight:500}.cost-row-sub{font-size:10px;color:var(--text-tertiary)}.cost-row-machine{font-size:12px;font-weight:500}.cost-total-row{display:grid;grid-template-columns:1.5fr 1.5fr .8fr .8fr .8fr 1fr;padding:14px 16px;background:var(--surface-alt);border-radius:10px;margin-top:8px;align-items:center}.cost-total-label{font-size:13px;font-weight:700}.sw-cost-total{display:flex;justify-content:space-between;padding:12px 0;border-top:2px solid var(--border);margin-top:8px}.sw-cost-total-label{font-size:14px;font-weight:700}.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.modal-form-actions-between{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.modal-form-actions-end{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.billable-toggle{display:flex;gap:6px;margin-bottom:14px;background:var(--surface-alt);padding:4px;border-radius:10px}.billable-toggle-btn{flex:1 1;padding:8px 0;text-align:center;font-size:12px;font-weight:600;cursor:pointer;border-radius:8px;border:1px solid var(--border);transition:background .15s,color .15s,border-color .15s}.billable-toggle-btn.is-active{background:var(--accent);color:#fff;border-color:transparent}.visit-type-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px;display:block;margin-top:12px}.visit-type-pills{display:flex;gap:8px}.visit-type-pill{padding:6px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}.visit-type-pill.is-active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.assign-section{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.assign-title{font-size:13px;font-weight:600;margin-bottom:10px}.assign-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;background:var(--surface-alt);border-radius:10px}.assign-name{flex:0 0 100px;font-size:12px;font-weight:500}.assign-select{width:100%;padding:5px 8px;font-size:11px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-primary)}.assign-remove{font-size:14px;background:none;border:none;color:var(--red);cursor:pointer;padding:2px 6px;border-radius:6px;font-weight:600}.assign-add-row{display:flex;gap:8px;margin-top:8px}.assign-flex{flex:1 1}.tools-section-mt{margin-top:16px}.tools-section-title-tight{font-size:14px;font-weight:600;margin-bottom:4px}.cost-section-desc{font-size:11px;color:var(--text-tertiary);margin-bottom:16px}.cost-section-mb{margin-bottom:16px}.cost-cell-lost,.cost-cell-val{font-size:12px;font-weight:600}.cost-cell-lost{color:var(--red)}.cost-cell-cost{font-size:14px}.cost-cell-cost,.cost-foot-lost{font-weight:700;color:var(--red)}.cost-foot-lost{font-size:13px}.cost-foot-cost{font-size:15px;font-weight:700;color:var(--red)}.cost-bar-meta{font-size:11px;color:var(--text-tertiary);margin-left:8px}.cost-bar-val{font-size:12px;font-weight:600}.sw-cost-total-val{font-size:14px;font-weight:700;color:var(--amber)}.cost-seat-util,.fin-legend{font-size:11px}.fin-legend{display:flex;gap:16px;margin-bottom:14px;color:var(--text-tertiary);flex-wrap:wrap}.fin-legend-item{display:flex;align-items:center;gap:5px}.fin-legend-swatch{width:12px;height:12px;border-radius:3px}.fin-legend-hint{margin-left:8px;font-size:10px;font-style:italic}.fin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:auto;margin-bottom:20px}.fin-th-project{left:0;background:var(--surface);padding:12px 16px;text-align:left;font-size:11px;min-width:180px}.fin-th-cost,.fin-th-project{position:-webkit-sticky;position:sticky;z-index:3;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.fin-th-cost{left:180px;padding:12px 8px;text-align:center;border-left:1px solid var(--border);min-width:90px}.fin-th-cost,.fin-th-summary{background:var(--surface-alt);font-size:10px}.fin-th-summary{position:-webkit-sticky;position:sticky;right:0;z-index:3;padding:12px 10px;text-align:right;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);border-left:2px solid var(--border);min-width:220px;white-space:nowrap}.fin-summary-cols{display:flex;justify-content:space-between;gap:8px}.fin-team-header{padding:8px 16px;background:var(--surface-alt);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.fin-td-project{left:0;background:var(--surface);padding:10px 16px}.fin-td-cost,.fin-td-project{position:-webkit-sticky;position:sticky;z-index:2;border-bottom:1px solid var(--border);vertical-align:top}.fin-td-cost{left:180px;background:var(--surface-alt);padding:10px 8px;border-left:1px solid var(--border);text-align:center}.fin-td-cost,.fin-th-cost{width:90px;min-width:90px;max-width:90px;box-sizing:border-box}.fin-td-spent,.fin-th-spent{left:270px}.fin-td-planned,.fin-th-planned{left:360px}.fin-th-sub{font-size:9px;font-weight:500;color:var(--text-tertiary);margin-top:2px}.fin-td-summary{position:-webkit-sticky;position:sticky;right:0;z-index:2;background:var(--surface-alt);padding:10px;border-bottom:1px solid var(--border);border-left:2px solid var(--border);vertical-align:top}.fin-project-name{font-size:12px;font-weight:600;white-space:nowrap}.fin-project-fee{font-size:10px;color:var(--text-tertiary);margin-top:2px}.fin-cell-plus{font-size:12px;color:var(--text-tertiary);text-align:center;display:block;opacity:.1;transition:opacity .15s;line-height:24px;cursor:pointer}.fin-ms-chip{border-radius:6px;padding:4px 6px;margin-bottom:3px;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.fin-ms-name{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fin-ms-amt{font-size:9px;opacity:.8;margin-top:1px}.fin-ms-qual{font-size:8.5px;font-style:italic;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fin-subtotal-label{padding:8px 16px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.fin-grand-label,.fin-subtotal-label{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--surface-alt);font-weight:700}.fin-grand-label{padding:12px 16px;font-size:12px;border-top:2px solid var(--border)}.fin-aging-row{margin-bottom:14px}.fin-aging-header{display:flex;justify-content:space-between;margin-bottom:4px}.fin-aging-label{font-size:12px;color:var(--text-secondary)}.fin-aging-value{font-size:12px;font-weight:600}.fin-aging-bar{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}.fin-aging-fill{height:100%;border-radius:3px;transition:width .4s ease}.fin-project-row{display:block;margin-bottom:14px;text-decoration:none;color:inherit}.fin-project-row-header{display:flex;justify-content:space-between;margin-bottom:4px}.fin-project-row-name{font-size:12px;font-weight:500}.fin-project-row-arrow{font-size:10px;color:var(--accent);margin-left:6px}.fin-project-row-amounts{font-size:11px;color:var(--text-secondary)}.fin-payment-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface-alt);border-radius:12px;margin-bottom:8px}.fin-payment-inner{display:flex;align-items:center;gap:12px}.fin-payment-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0}.fin-payment-project{font-size:13px;font-weight:500}.fin-payment-meta{font-size:11px;color:var(--text-tertiary)}.fin-payment-right{display:flex;align-items:center;gap:8px}.fin-payment-amount{font-size:13px;font-weight:600;color:var(--green)}.fin-payment-method{font-size:10px;color:var(--text-tertiary)}.fin-receivable-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--surface-alt);border-radius:12px;margin-bottom:8px}.fin-receivable-left{display:flex;align-items:center;gap:10px}.fin-receivable-num{font-size:13px;font-weight:600}.fin-receivable-project{font-size:11px;color:var(--text-secondary)}.fin-receivable-right{display:flex;align-items:center;gap:12px}.fin-receivable-aging{font-size:10px;font-weight:500}.fin-receivable-balance{font-size:14px;font-weight:700}.fin-receivable-arrow{font-size:10px;color:var(--accent)}.fin-toolbar-flush{margin-top:0}.fin-empty-pad{padding:40px}.fin-table-base{width:100%;border-collapse:collapse}.fin-col-th{padding:12px 8px;text-align:center;font-size:10px;font-weight:500;white-space:nowrap}.fin-cell-td,.fin-col-th{border-bottom:1px solid var(--border);border-left:1px solid var(--border-light,var(--border))}.fin-cell-td{padding:6px 4px;vertical-align:top;position:relative}.fin-link-plain{text-decoration:none;color:inherit}.fin-val,.fin-val-green{font-size:11px;font-weight:600}.fin-val-green{color:var(--green)}.fin-val-red{font-size:11px;font-weight:600;color:var(--red)}.fin-subtotal-val,.fin-subtotal-val-green{font-size:10px;font-weight:700}.fin-subtotal-val-green{color:var(--green)}.fin-subtotal-val-red{font-size:10px;font-weight:700;color:var(--red)}.fin-subtotal-val-amber{font-size:10px;font-weight:700;color:var(--amber)}.fin-subtotal-cell{border-bottom:1px solid var(--border);border-left:1px solid var(--border-light,var(--border));background:var(--surface-alt)}.fin-grand-val,.fin-grand-val-green{font-size:11px;font-weight:700}.fin-grand-val-green{color:var(--green)}.fin-grand-val-red{font-size:11px;font-weight:700;color:var(--red)}.fin-grand-val-amber{font-size:11px;font-weight:700;color:var(--amber)}.fin-grand-cell{padding:12px 8px;border-left:1px solid var(--border-light,var(--border));text-align:center;font-size:10px;font-weight:600}.fin-grand-cell,.fin-grand-cost{background:var(--surface-alt)}.fin-grand-cell,.fin-grand-cost,.fin-grand-summary{border-top:2px solid var(--border)}.fin-overview-gap{margin-bottom:20px}.fin-receivable-link{display:block;text-decoration:none;color:inherit;margin-bottom:8px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;max-width:840px}.profile-card{background:var(--surface);border-radius:14px;border:1px solid var(--border);padding:28px}.profile-identity{display:flex;align-items:center;gap:14px;margin-bottom:24px}.profile-avatar{width:48px;height:48px;border-radius:14px;object-fit:cover;flex-shrink:0}.profile-avatar-placeholder{width:48px;height:48px;border-radius:14px;background:var(--accent);color:white;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.profile-name{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.profile-role-tag{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.profile-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.profile-field{margin-top:14px}.profile-label{display:block;font-size:11px;font-weight:600;color:var(--text-tertiary);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.profile-input{background:var(--surface);color:var(--text-primary)}.profile-input,.profile-input-ro{width:100%;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--border);font-size:13px;font-family:inherit}.profile-input-ro{background:var(--bg);color:var(--text-secondary);cursor:default}.profile-msg{margin-top:16px;padding:10px 12px;border-radius:10px;font-size:12px}.profile-msg-ok{background:var(--green-bg);color:var(--green)}.profile-msg-err{background:var(--red-bg);color:var(--red)}.profile-save{margin-top:18px;height:38px;padding:0 24px;border-radius:10px;border:none;background:var(--accent);color:var(--text-inverse);font-size:13px;font-weight:600;cursor:pointer}.profile-save:disabled{opacity:.6}.pw-section-title{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:20px}.pw-field{margin-bottom:14px}.pw-btn{height:38px;padding:0 24px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer}.pw-btn:disabled{opacity:.5}.acct-title{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:14px}.acct-rows{font-size:12px;color:var(--text-secondary);line-height:1.8}.acct-row{display:flex;justify-content:space-between}.acct-label{color:var(--text-tertiary)}.acct-value{font-weight:500}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 22px}.settings-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.settings-section-title{font-size:16px;font-weight:600;color:var(--text-primary)}.settings-section-desc{font-size:11px;color:var(--text-tertiary);margin-top:2px}.year-pills{display:flex;gap:6px;margin-bottom:18px}.year-pill{padding:6px 16px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer}.year-pill.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.toast-ok{color:var(--green);margin-top:8px;background:var(--green-bg)}.toast-err,.toast-ok{font-size:12px;margin-bottom:12px;padding:8px 12px;border-radius:8px}.toast-err{color:var(--red);background:var(--red-bg)}.holiday-empty{padding:32px 0;text-align:center;font-size:12px;color:var(--text-tertiary)}.holiday-table-head{display:grid;grid-template-columns:50px 1fr 1fr 100px 60px;padding:10px 14px;background:var(--surface-alt);border-radius:12px 12px 0 0;border-bottom:1px solid var(--border)}.holiday-th{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.holiday-row{display:grid;grid-template-columns:50px 1fr 1fr 100px 60px;padding:12px 14px;align-items:center}.holiday-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.holiday-row:nth-child(2n){background:var(--surface-alt)}.holiday-row:last-child{border-radius:0 0 12px 12px}.holiday-idx{font-size:12px;font-weight:500;color:var(--text-tertiary)}.holiday-date,.holiday-name{font-size:13px;font-weight:500}.holiday-day{font-size:12px;color:var(--text-secondary)}.holiday-remove{background:none;border:none;cursor:pointer;font-size:11px;color:var(--red);font-weight:500;text-align:center;width:100%}.holiday-remove:disabled{opacity:.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.modal-hint{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.modal-err{font-size:12px;color:var(--red);margin-top:8px}.confirm-message{font-size:13px;color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.empty-state{padding:40px;text-align:center;color:var(--text-tertiary)}.empty-state-icon{font-size:28px;margin-bottom:6px;opacity:.3}.empty-state-text{font-size:13px}.skeleton{background:var(--surface-alt);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-card{background:var(--surface);border-radius:14px;border:1px solid var(--border);padding:18px 20px}.skeleton-row{display:grid;grid-gap:16px;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}.dash-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.mini-metric{background:var(--surface-alt);border-radius:12px;padding:12px 14px}.mini-metric-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:6px}.mini-metric-value{font-size:18px;font-weight:700;letter-spacing:-.02em}.mini-metric-note{font-size:10px;margin-top:4px}.bar-compare{flex:1 1}.bar-compare-label{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.bar-compare-rows{display:flex;flex-direction:column;gap:4px}.bar-compare-row{display:flex;align-items:center;gap:8px}.bar-compare-tag{font-size:10px;color:var(--text-tertiary);width:52px}.bar-compare-track{flex:1 1;height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden}.bar-compare-fill{height:100%;border-radius:4px}.conflict-card{padding:12px 14px;background:var(--red-bg);border-radius:var(--radius-md)}.conflict-header{align-items:center;margin-bottom:6px}.conflict-header,.snap-row{display:flex;justify-content:space-between}.snap-row{align-items:baseline}.snap-value{font-family:JetBrains Mono,monospace;font-size:15px;font-weight:600}.activity-icon{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.dash-focus-num{font-size:12px;font-weight:700}.dash-conflict-name{font-weight:600}.dash-conflict-hours{font-size:12px;font-weight:700;color:var(--red)}.dash-conflict-projects{flex-wrap:wrap}.dash-card-link{text-decoration:none;color:inherit}.dash-card-full{height:100%}.snap-value-green{color:var(--green)}.snap-value-amber{color:var(--amber)}.ms-dot-inner{width:6px;height:6px;border-radius:50%;background:var(--red)}.dash-ms-name{font-weight:550}.dash-alert-icon{font-size:14px}.dash-alert-text{font-weight:500}.dash-activity-body{flex:1 1}.dash-activity-time{color:var(--text-tertiary)}.emp-section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:14px}.emp-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 22px}.emp-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.emp-link{font-size:11px;color:var(--accent);font-weight:500;text-decoration:none}.emp-empty{padding:24px 0;text-align:center;font-size:12px;color:var(--text-tertiary)}.emp-list{display:flex;flex-direction:column;gap:8px}.emp-task-row{justify-content:space-between;padding:12px 14px;background:var(--surface-alt);border-radius:12px}.emp-task-inner,.emp-task-row{display:flex;align-items:center}.emp-task-inner{gap:10px}.emp-color-bar{width:4px;height:28px;border-radius:2px;flex-shrink:0}.emp-task-name{font-size:13px;font-weight:500}.emp-task-meta{font-size:11px;color:var(--text-tertiary);margin-top:2px}.emp-hours-pill{font-size:13px;font-weight:700;color:var(--blue);background:var(--blue-bg);padding:4px 10px;border-radius:8px}.emp-milestone-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:12px}.emp-milestone-inner{display:flex;align-items:center;gap:10px}.emp-milestone-due{font-size:11px;font-weight:600;white-space:nowrap}.emp-leave-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-alt);border-radius:12px}.emp-leave-dates{font-size:12px;font-weight:500}.emp-leave-reason{font-size:10px;color:var(--text-tertiary);margin-top:2px}.emp-holiday-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-alt);border-radius:12px}.emp-holiday-inner{display:flex;align-items:center;gap:10px}.emp-holiday-date{width:36px;height:36px;border-radius:10px;background:var(--accent);color:var(--text-inverse);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;line-height:1.1;flex-shrink:0}.emp-holiday-date-day{font-size:14px}.emp-holiday-date-month{font-size:8px;opacity:.8}.emp-holiday-name{font-size:13px;font-weight:500}.emp-holiday-weekday{font-size:10px;color:var(--text-tertiary)}.emp-holiday-away{font-size:10px;font-weight:600}.emp-lower-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.leave-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.leave-form-days{font-size:11px;color:var(--text-tertiary);margin-top:4px;margin-bottom:4px}.emp-milestone-link{text-decoration:none;color:inherit}.profile-avatar-contain{object-fit:contain}.profile-fields-gap{margin-top:14px}.profile-msg-mb{margin-bottom:14px}.profile-card-mt{margin-top:20px}.holiday-th-center{text-align:center}.sidebar-container{position:fixed;left:0;top:0;width:248px;height:100vh;z-index:100}.main-content{flex:1 1;min-width:0;margin-left:248px;min-height:100vh;background:var(--bg)}.mobile-header,.sidebar-overlay{display:none}.hamburger-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--text-primary)}@media (max-width:1280px){.grid-hero{grid-template-columns:1fr}.grid-lower{grid-template-columns:1fr 1fr}.proj-overview{grid-template-columns:repeat(2,1fr)}.proj-row{grid-template-columns:2fr 1fr 100px 120px 130px 1fr 24px}.person-meta,.proj-hero-meta{grid-template-columns:repeat(3,1fr)}.person-meta{padding:16px}.person-meta-cell{padding:8px 12px;border-bottom:1px solid var(--border-subtle)}.person-meta-cell:nth-child(n+4){border-bottom:none}.aging-grid,.fin-overview{grid-template-columns:1fr 1fr}.cost-cards{grid-template-columns:repeat(2,1fr)}.cost-grid,.ins-feed,.planner-insights{grid-template-columns:1fr}.sched-grid{grid-template-columns:180px repeat(7,minmax(95px,1fr)) 80px}.ts-row{grid-template-columns:180px repeat(7,minmax(0,1fr)) 110px}.ts-cell{min-height:60px}}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none}.kpi-strip{grid-template-columns:repeat(2,1fr)}.grid-lower,.hw-grid,.sw-row{grid-template-columns:1fr}.sw-row{gap:6px;padding:14px 16px}.ts-grid-wrap{overflow-x:auto}.ts-row{min-width:1100px}.emp-lower-grid,.profile-grid{grid-template-columns:1fr}.dash-metric-grid{grid-template-columns:repeat(2,1fr)}}.rp-month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.rp-month-nav-left{display:flex;align-items:center;gap:8px}.rp-month-label{font-size:14px;font-weight:600;min-width:120px;text-align:center}.rp-month-pills{display:flex;gap:4px;flex-wrap:nowrap;overflow:auto;max-width:600px;scrollbar-width:none}.rp-month-pill{padding:4px 10px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text-tertiary);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0}.rp-month-pill.is-active{background:var(--accent);color:#fff}.rp-grid-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:auto}.rp-table{width:100%;border-collapse:collapse}.rp-th{padding:8px 6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:left}.rp-th,.rp-th-person{background:var(--surface-alt)}.rp-th-person{position:-webkit-sticky;position:sticky;left:0;z-index:2;min-width:160px}.rp-team-row{padding:6px 12px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.rp-team-name{font-size:11px;font-weight:600;color:var(--text-secondary)}.rp-person-cell{padding:10px 12px;border-right:1px solid var(--border);display:flex;align-items:center;gap:8px;min-width:160px}.rp-person-avatar{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.rp-person-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-person-role{font-size:9px;color:var(--text-tertiary)}.rp-day-th{text-align:center;padding:4px 2px;min-width:64px;border-bottom:1px solid var(--border-subtle)}.rp-day-th.is-today{box-shadow:inset 0 -2px 0 var(--accent)}.rp-day-th-label{font-size:9px;font-weight:600}.rp-day-cell{padding:4px 2px;vertical-align:top;border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);min-width:64px;position:relative}.rp-day-cell.is-today{box-shadow:inset 0 2px 0 var(--accent)}.rp-day-cell.is-holiday{opacity:.5}.rp-day-cell-allocs{display:flex;flex-direction:column;gap:1px;min-height:24px}.rp-alloc-chip{display:inline-flex;align-items:center;gap:2px;border-radius:4px;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden}.rp-alloc-chip-compact{font-size:8px;padding:1px 3px}.rp-alloc-chip-normal{font-size:9px;padding:2px 5px}.rp-alloc-label{overflow:hidden;text-overflow:ellipsis}.rp-alloc-hours-compact{font-size:7px}.rp-alloc-hours,.rp-alloc-hours-compact{font-weight:400;opacity:.7;flex-shrink:0}.rp-alloc-hours{font-size:8px}.rp-over-warn{font-size:8px;color:var(--red);font-weight:800;text-align:center;letter-spacing:.03em}.rp-load-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 6px}.rp-load-pct{font-size:12px;font-weight:700}.rp-load-hours{font-size:9px;color:var(--text-tertiary)}.rp-proj-end-bar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);z-index:3}.rp-ms-reached{position:absolute;top:0;right:0;width:0;height:0;border-left:8px solid transparent;border-top:8px solid var(--green);z-index:2}.rp-ms-stage-chip{position:absolute;top:1px;right:2px;font-size:8px;font-weight:700;color:var(--amber);letter-spacing:.04em;z-index:2;text-transform:uppercase;pointer-events:none}.rp-check-btn{position:absolute;top:0;left:0;width:16px;height:16px;background:transparent;border:none;cursor:pointer;color:var(--amber);font-size:11px;font-weight:800;line-height:1;padding:0;z-index:3}.rp-ms-stack{position:absolute;top:1px;right:2px;display:flex;flex-direction:column;align-items:flex-end;gap:1px;z-index:3;max-width:90%}.rp-ms-stack .rp-ms-stage-chip{position:static;display:inline-flex;align-items:center;gap:2px;pointer-events:auto;cursor:default}.rp-ms-stack .rp-ms-stage-chip.is-reached{color:var(--text-quaternary);opacity:.75}.rp-ms-stack .rp-check-btn{position:static;width:auto;height:auto}.rp-leave-full{display:inline-flex;align-items:center;justify-content:center;min-height:24px;font-size:9px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.05em}.rp-leave-edit{background:none;border:0;padding:2px 6px;border-radius:4px;cursor:pointer;font-family:inherit}.rp-leave-edit:hover{background:color-mix(in srgb,var(--red) 10%,transparent);text-decoration:underline}.rp-week-grid-row,.rp-week-header{display:grid;grid-template-columns:170px repeat(7,1fr) 70px;border-bottom:1px solid var(--border-subtle)}.rp-week-day-cell{padding:6px;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;justify-content:center;gap:2px;position:relative}.rp-week-day-cell.is-today{box-shadow:inset 0 2px 0 var(--accent)}.rp-week-day-cell.is-holiday{opacity:.5}.rp-week-th-cell.is-today{box-shadow:inset 0 -2px 0 var(--accent)}.rp-heatmap-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;overflow:auto}.rp-heatmap-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.rp-heatmap-title{font-size:14px;font-weight:600}.rp-heatmap-filters{display:flex;gap:4px;background:var(--surface-alt);padding:3px;border-radius:10px}.rp-heatmap-filter{padding:5px 12px;border-radius:8px;border:none;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.rp-heatmap-filter.is-active{background:var(--accent);color:#fff}.rp-heatmap-filter:not(.is-active){background:transparent;color:var(--text-secondary)}.rp-disc-badge{margin-bottom:10px;display:flex;align-items:center;gap:8px}.rp-disc-label{font-size:11px;color:var(--text-tertiary)}.rp-disc-value{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--accent-bg);color:var(--accent)}.rp-tag-preview{margin-bottom:10px;display:flex;align-items:center;gap:8px}.rp-tag-label{font-size:11px;color:var(--text-tertiary)}.rp-tag-value{font-size:12px;font-weight:700;font-family:monospace;padding:3px 10px;border-radius:6px}.rp-date-preview{background:var(--surface-alt);border-radius:12px;padding:12px 14px;margin-top:8px;margin-bottom:8px}.rp-date-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rp-date-preview-month{font-size:11px;font-weight:600;color:var(--text-secondary)}.rp-date-preview-count{font-size:10px;color:var(--text-tertiary)}.rp-date-preview-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.rp-date-preview-dow{text-align:center;font-size:8px;font-weight:600;color:var(--text-tertiary);padding:2px}.rp-edit-mode-toggle{display:flex;gap:6px;margin-bottom:14px}.rp-edit-mode-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--border);font-size:12px;font-weight:600;cursor:pointer}.rp-edit-mode-btn.is-active{background:var(--accent);color:var(--text-inverse)}.rp-edit-mode-btn:not(.is-active){background:var(--surface);color:var(--text-secondary)}.rp-th.is-center{text-align:center}.rp-th.has-sep{border-left:2px solid var(--border)}.rp-th.is-total{min-width:60px}.rp-th.is-total,.rp-wk-th{text-align:center;border-left:2px solid var(--border)}.rp-wk-th-inner{font-size:10px;font-weight:600}.rp-person-info{min-width:0}.rp-sticky-cell{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--surface)}.rp-row-border{border-bottom:1px solid var(--border)}.rp-team-sep{border-top:2px solid var(--border)}.rp-load-sep{border-left:2px solid var(--border)}.rp-cell-plus{font-size:11px;color:var(--text-tertiary);text-align:center;opacity:.3;transition:opacity .15s;line-height:24px}.rp-cell-plus.is-sm{font-size:12px;opacity:.15}.rp-cell-dash{font-size:10px;color:var(--text-tertiary);text-align:center}.rp-empty-msg{margin-top:16px}.rp-week-th-cell{padding:8px;text-align:center;border-right:1px solid var(--border)}.rp-week-th-date{font-size:10px}.rp-week-th-load{padding:12px 8px;background:var(--surface-alt);text-align:center}.rp-week-th-load-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase}.rp-week-person-th{padding:12px 16px;border-right:1px solid var(--border)}.rp-week-person-th-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.rp-year-cell{text-align:center;padding:8px 4px;border-right:1px solid var(--border)}.rp-year-pill{border-radius:6px;padding:4px 2px}.rp-year-val{font-size:11px;font-weight:600}.rp-year-pct{font-size:8px;opacity:.7}.rp-year-sub{font-size:8px;font-weight:400;opacity:.6}.rp-heatmap-grid-header{text-align:center;font-size:9px;font-weight:600;color:var(--text-tertiary);padding:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-heatmap-person{font-size:12px;font-weight:500;padding:10px 8px;display:flex;align-items:center}.rp-heatmap-cell{border-radius:8px;padding:8px;position:relative;overflow:hidden;text-align:center;font-size:12px;font-weight:600}.rp-heatmap-cell-layer{display:flex}.rp-heatmap-cell-layer,.rp-heatmap-cell-solid{position:absolute;inset:0;border-radius:8px;overflow:hidden}.rp-heatmap-cell-val{position:relative;z-index:1}.rp-heatmap-month-cell{border-radius:8px;padding:8px;text-align:center;font-size:12px;font-weight:700}.rp-month-pills-gap{margin-bottom:16px}.rp-edit-info{font-size:13px;margin-bottom:12px}.rp-edit-range-hint{font-size:11px;color:var(--text-tertiary);margin-bottom:10px;line-height:1.5}.rp-calendar-day{text-align:center;font-size:10px;padding:3px 0}.ppl-avatar-img{border-radius:33%;object-fit:contain;flex-shrink:0}.ppl-avatar-fallback{background:var(--accent);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.ppl-row{display:grid;padding:12px 22px;align-items:center}.ppl-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ppl-row.is-alt{background:var(--surface-alt)}.ppl-row-link{gap:10px;text-decoration:none;color:inherit}.ppl-row-link,.ppl-row-name{display:flex;align-items:center}.ppl-row-name{font-size:13px;font-weight:500;gap:6px}.ppl-row-lead-badge{font-size:9px;font-weight:700;padding:1px 6px;border-radius:6px;background:var(--green-bg);color:var(--green);text-transform:uppercase;letter-spacing:.04em}.ppl-row-inactive{font-size:10px;color:var(--red);margin-left:2px}.ppl-row-role{font-size:10px;color:var(--text-tertiary)}.ppl-row-cell{font-size:12px;color:var(--text-secondary)}.ppl-remove-btn{background:none;border:none;font-size:11px;color:var(--red);font-weight:500;cursor:pointer;padding:0}.ppl-team-groups{display:flex;flex-direction:column;gap:16px}.ppl-team-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.ppl-team-header{padding:14px 22px;background:var(--surface-alt);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.ppl-team-header-inner{display:flex;align-items:center;gap:10px}.ppl-team-title{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.ppl-team-count,.ppl-team-title.is-muted{color:var(--text-tertiary)}.ppl-team-count{font-size:10px;font-weight:500}.ppl-col-headers{display:grid;padding:8px 22px;border-bottom:1px solid var(--border-subtle)}.ppl-col-th{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.ppl-leave-pills{display:flex;gap:6px;margin-bottom:16px}.ppl-leave-pill{padding:5px 14px;border-radius:20px;border:1px solid var(--border);font-size:11px;font-weight:600;cursor:pointer}.ppl-leave-table{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.ppl-leave-head{display:grid;padding:12px 22px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.ppl-leave-row{display:grid;padding:12px 22px;align-items:center}.ppl-leave-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ppl-leave-row.is-alt{background:var(--surface-alt)}.ppl-leave-emp{display:flex;align-items:center;gap:10px}.ppl-leave-emp-name{font-size:13px;font-weight:500}.ppl-leave-emp-role{font-size:10px;color:var(--text-tertiary)}.ppl-leave-cell,.ppl-leave-reason{font-size:12px;color:var(--text-secondary)}.ppl-leave-reason{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppl-leave-actions{display:flex;gap:6px}.ppl-leave-reviewer{font-size:11px;color:var(--text-tertiary)}.ppl-hol-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 22px}.ppl-hol-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ppl-hol-title{font-size:16px;font-weight:600;color:var(--text-primary)}.ppl-hol-desc{font-size:11px;color:var(--text-tertiary);margin-top:2px}.ppl-hol-actions{display:flex;gap:8px}.ppl-hol-year-pills{display:flex;gap:6px;margin-bottom:18px}.ppl-hol-year-pill{padding:6px 16px;border-radius:20px;border:1px solid var(--border);font-size:12px;font-weight:500;cursor:pointer}.ppl-hol-year-pill.is-active{background:var(--accent);color:#fff}.ppl-hol-year-pill:not(.is-active){background:var(--surface);color:var(--text-secondary)}.ppl-hol-table-head{display:grid;padding:10px 14px;background:var(--surface-alt);border-radius:12px 12px 0 0;border-bottom:1px solid var(--border)}.ppl-hol-row{display:grid;padding:12px 14px;align-items:center}.ppl-hol-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ppl-hol-row.is-alt{background:var(--surface-alt)}.ppl-hol-row:last-child{border-radius:0 0 12px 12px}.ppl-hol-idx{font-size:12px;font-weight:500;color:var(--text-tertiary)}.ppl-hol-name{font-size:13px;font-weight:500}.ppl-hol-day{font-size:12px;color:var(--text-secondary)}.ppl-hol-remove{background:none;border:none;cursor:pointer;font-size:11px;color:var(--red);font-weight:500}.ppl-hol-empty{padding:32px 0;text-align:center;font-size:12px;color:var(--text-tertiary)}.ppl-reimb-wrap{display:flex;flex-direction:column;gap:16px}.ppl-reimb-summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.ppl-reimb-stat{padding:16px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.ppl-reimb-stat-label{font-size:11px;color:var(--text-secondary);margin-bottom:4px}.ppl-reimb-stat-value{font-size:18px;font-weight:700}.ppl-reimb-filters{display:flex;gap:8px}.ppl-reimb-filter{padding:5px 14px;border-radius:8px;border:1px solid var(--border);font-size:11px;font-weight:600;cursor:pointer;text-transform:capitalize}.ppl-reimb-filter.is-active{background:var(--accent);color:#fff}.ppl-reimb-filter:not(.is-active){background:var(--surface);color:var(--text-secondary)}.ppl-reimb-table{background:var(--surface);border-radius:12px;border:1px solid var(--border);overflow:hidden}.ppl-reimb-head{display:grid;padding:10px 18px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border)}.ppl-reimb-row{display:grid;padding:12px 18px;font-size:13px;align-items:center}.ppl-reimb-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ppl-reimb-row.is-alt{background:var(--surface-alt)}.ppl-reimb-emp-name{font-weight:500}.ppl-reimb-emp-role{font-size:11px;color:var(--text-secondary)}.ppl-reimb-cat{font-size:12px;color:var(--text-secondary)}.ppl-reimb-amount{text-align:right;font-weight:600}.ppl-reimb-status{display:inline-block;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;text-transform:capitalize}.ppl-reimb-date{font-size:11px;color:var(--text-secondary)}.ppl-reimb-actions{display:flex;gap:6px;align-items:center}.ppl-reimb-approve{border-radius:6px;border:none;background:var(--green);color:var(--text-inverse)}.ppl-reimb-approve,.ppl-reimb-reject{padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer}.ppl-reimb-reject{border-radius:6px;border:1px solid var(--red);background:transparent;color:var(--red)}.ppl-reimb-delete{padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-tertiary);font-size:11px;cursor:pointer}.ppl-approvals-table{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.ppl-approvals-head{display:grid;padding:12px 22px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.ppl-approvals-row{display:grid;padding:12px 22px;align-items:center}.ppl-approvals-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ppl-approvals-row.is-alt{background:var(--surface-alt)}.ppl-approvals-emp{display:flex;align-items:center;gap:10px}.ppl-approvals-name{font-size:13px;font-weight:500}.ppl-approvals-role{font-size:10px;color:var(--text-tertiary)}.ppl-approvals-email{font-size:12px;color:var(--text-secondary)}.ppl-approvals-actions{display:flex;gap:6px}.ppl-success-box{margin-top:12px;padding:14px;border-radius:10px;background:var(--green-bg);border:1px solid var(--green)}.ppl-success-title{font-size:12px;color:var(--green);font-weight:600;margin-bottom:6px}.ppl-success-detail{font-size:12px;color:var(--text-primary)}.ppl-success-code{font-size:13px;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--border);-webkit-user-select:all;-moz-user-select:all;user-select:all}.ppl-success-hint{font-size:11px;color:var(--text-tertiary);margin-top:6px}.ins-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;margin-bottom:16px}.ins-section.no-pad{padding:0}.ins-section-header{padding:16px 22px;border-bottom:1px solid var(--border)}.ins-section-title{font-size:14px;font-weight:600}.ins-section-title.mb{margin-bottom:14px}.ins-section-title.mb-lg{margin-bottom:16px}.ins-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:20px}.ins-stat-card{border-radius:16px;padding:20px;position:relative;overflow:hidden}.ins-stat-wm{position:absolute;top:-8px;right:4px;font-size:60px;font-weight:800;opacity:.06}.ins-stat-value{font-size:22px;font-weight:700}.ins-stat-label{font-size:10px;color:var(--text-tertiary);margin-top:4px;font-weight:500}.ins-table-head{display:grid;padding:10px 22px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.ins-table-row{display:grid;padding:12px 22px;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.ins-table-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ins-total-row{display:grid;padding:14px 22px;background:var(--surface-alt);border-top:1px solid var(--border);align-items:center}.ins-cell-name{font-size:13px;font-weight:500}.ins-cell-sub{font-size:12px;color:var(--text-secondary)}.ins-cell-val{font-size:12px;font-weight:500}.ins-cell-bold{font-size:12px;font-weight:600}.ins-cell-heavy{font-size:12px;font-weight:700}.ins-cell-total{font-size:13px;font-weight:700}.ins-cell-role{font-size:11px;color:var(--text-secondary)}.ins-cell-num{font-size:12px}.ins-cell-avg{font-size:13px;font-weight:700;text-align:right}.ins-typo-row{margin-bottom:18px}.ins-typo-header{display:flex;justify-content:space-between;margin-bottom:6px}.ins-typo-name{font-size:13px;font-weight:600}.ins-typo-count{font-size:11px;color:var(--text-tertiary);margin-left:8px}.ins-typo-fee{font-size:13px;font-weight:600}.ins-typo-bar{height:20px;background:var(--surface-alt);border-radius:6px;overflow:hidden;position:relative}.ins-typo-bar-layer{position:absolute;height:100%;border-radius:6px}.ins-typo-footer{display:flex;gap:16px;margin-top:4px}.ins-typo-pct{font-size:10px;color:var(--text-tertiary)}.ins-legend{display:flex;gap:16px;margin-top:8px;padding-top:10px;border-top:1px solid var(--border-subtle)}.ins-legend-item{display:flex;align-items:center;gap:5px}.ins-legend-dot{width:10px;height:10px;border-radius:3px;opacity:.5}.ins-legend-text{font-size:10px;color:var(--text-tertiary)}.ins-bar-chart{display:flex;align-items:flex-end;gap:8px;height:120px}.ins-bar-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px}.ins-bar-pct{font-size:10px;font-weight:600}.ins-bar-date{font-size:9px;color:var(--text-tertiary);white-space:nowrap}.ins-bar-row{margin-bottom:14px}.ins-bar-header{display:flex;justify-content:space-between;margin-bottom:4px}.ins-bar-name{font-size:13px;font-weight:500}.ins-bar-stat{font-size:12px;font-weight:600}.ins-bar-track{height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden}.ins-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.ins-bar-track-lg{height:28px;background:var(--surface-alt);border-radius:8px;overflow:hidden}.ins-bar-fill-lg{height:100%;border-radius:8px;opacity:.2;transition:width .5s ease}.ins-funnel-label{font-size:12px;font-weight:500}.ins-funnel-value{font-size:12px;font-weight:600}.ins-spark{display:flex;align-items:flex-end;gap:2px;height:24px}.ins-spark-bar{flex:1 1;border-radius:2px;min-height:2px}.ins-perf-bar{height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden;display:flex}.pd-back-link{padding:5px 10px;text-decoration:none;font-size:12px;color:var(--text-tertiary)}.pd-detail-row{display:flex;justify-content:space-between;padding:8px 0}.pd-detail-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.pd-detail-label{font-size:12px;color:var(--text-tertiary)}.pd-detail-value{font-size:12px;font-weight:500}.pd-notes-label{font-size:11px;color:var(--text-tertiary);font-weight:600}.pd-notes-text{font-size:12px;color:var(--text-secondary);margin-top:4px}.pd-overview-col{display:flex;flex-direction:column;gap:14px}.pd-team-preview{justify-content:space-between;padding:10px 12px;background:var(--surface-alt);border-radius:10px;margin-bottom:6px}.pd-team-link,.pd-team-preview{display:flex;align-items:center}.pd-team-link{gap:8px;cursor:pointer;text-decoration:none;color:inherit}.pd-team-avatar{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700}.pd-team-name-sm{font-size:12px;font-weight:500}.pd-team-card{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:12px;margin-bottom:8px}.pd-team-card-link{display:flex;align-items:center;gap:12px;cursor:pointer;text-decoration:none;color:inherit}.pd-team-avatar-lg{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.pd-team-name-row{font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.pd-team-lead-badge{font-size:9px;font-weight:700;padding:1px 6px;border-radius:6px;background:var(--green);color:var(--text-inverse);text-transform:uppercase;letter-spacing:.04em}.pd-team-role{font-size:11px;color:var(--text-tertiary)}.pd-team-actions{display:flex;gap:6px;align-items:center}.pd-remove-btn{background:none;border:none;color:var(--red);cursor:pointer;font-size:12px;padding:2px 6px}.pd-tl-row{margin-bottom:6px}.pd-tl-header{display:flex;justify-content:space-between;margin-bottom:3px}.pd-tl-label{font-size:10px;color:var(--text-tertiary)}.pd-tl-pct{font-size:10px;font-weight:600}.pd-tl-bar{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}.pd-tl-fill{height:100%;border-radius:3px}.pd-tl-caption{font-size:11px;color:var(--text-tertiary);text-align:center}.pd-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px}.pd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pd-section-title{font-size:14px;font-weight:600}.pd-section-desc{font-size:12px;color:var(--text-tertiary);margin-bottom:16px}.pd-ms-row{display:flex;align-items:center;gap:16px;padding:14px 0;cursor:pointer}.pd-ms-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.pd-ms-seq{color:var(--text-tertiary);font-size:11px;font-weight:600;flex-shrink:0;width:18px;text-align:right}.pd-ms-circle{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px}.pd-ms-info{flex:1 1}.pd-ms-name{font-size:13px;font-weight:500}.pd-ms-meta{font-size:11px;color:var(--text-tertiary)}.pd-ms-note{margin-top:4px;font-size:11px;line-height:1.45;color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere}.pd-ms-chips{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.pd-ms-chip{width:20px;height:20px;border-radius:6px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700}.pd-ms-delete{background:none;border:none;color:var(--red);cursor:pointer;font-size:14px;padding:2px 6px;flex-shrink:0}.pd-ms-team-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.pd-ms-team-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.pd-ms-assigned-wrap{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.pd-ms-assigned-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--blue-bg);border-radius:8px;font-size:12px;color:var(--blue);font-weight:500}.pd-ms-assigned-remove{background:none;border:none;color:var(--red);cursor:pointer;font-size:11px;padding:0;line-height:1}.pd-ms-add-section{margin-top:12px}.pd-ms-add-label{display:block;font-size:11px;font-weight:600;color:var(--text-tertiary);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.pd-ms-add-row{display:flex;gap:8px;align-items:center}.pd-ms-add-select{flex:1 1;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:13px;color:var(--text-primary);font-family:inherit}.pd-res-table{width:100%;border-collapse:collapse;font-size:12px}.pd-res-th{text-align:left;padding:10px 12px;font-size:11px;color:var(--text-tertiary);min-width:140px;position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1}.pd-res-th,.pd-res-th-month{font-weight:600;border-bottom:1px solid var(--border)}.pd-res-th-month{text-align:center;padding:10px 8px;font-size:10px;min-width:70px}.pd-res-td-name{padding:10px 12px;position:-webkit-sticky;position:sticky;left:0;background:var(--surface);z-index:1}.pd-res-name{font-weight:500}.pd-res-role{font-size:10px;color:var(--text-tertiary);margin-top:2px}.pd-res-td{text-align:center;padding:8px 4px}.pd-res-hours{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--accent-bg);color:var(--accent);font-size:11px;font-weight:600}.pd-res-stages{font-size:9px;color:var(--text-tertiary);margin-top:3px}.pd-res-legend,.pd-res-planned{color:var(--text-tertiary);font-weight:400}.pd-res-empty,.pd-res-legend{font-size:10px}.pd-res-empty{color:var(--text-tertiary)}.pd-fin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pd-fin-controls{display:flex;gap:12px;align-items:center}.pd-fin-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);cursor:pointer}.pd-stat-grid{display:grid;grid-gap:12px;gap:12px;margin-bottom:12px}.pd-stat-grid-4{grid-template-columns:repeat(4,1fr)}.pd-stat-grid-5{grid-template-columns:repeat(5,1fr)}.pd-bill-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-alt);border-radius:10px;margin-bottom:6px}.pd-bill-seq{font-size:10px;font-weight:700;color:var(--text-tertiary);min-width:20px}.pd-bill-info{flex:1 1}.pd-bill-name{font-size:12px;font-weight:500}.pd-bill-stage{font-size:10px;color:var(--text-tertiary)}.pd-bill-amt{font-size:12px;font-weight:600}.pd-bill-status{font-size:9px;font-weight:600;padding:3px 8px;border-radius:6px}.pd-inv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pd-inv-title{font-size:13px;font-weight:600}.pd-inv-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface-alt);cursor:pointer;margin-bottom:8px}.pd-inv-row.is-expanded{border-radius:12px 12px 0 0}.pd-inv-row:not(.is-expanded){border-radius:12px}.pd-inv-number{font-size:13px;font-weight:500}.pd-inv-arrow{font-size:10px;color:var(--text-tertiary);margin-left:8px}.pd-inv-meta{font-size:11px;color:var(--text-tertiary)}.pd-inv-actions{display:flex;gap:6px;align-items:center}.pd-inv-paid{font-size:11px;color:var(--text-secondary)}.pd-inv-action-btn{font-size:10px;font-weight:600;padding:4px 10px;border-radius:6px;cursor:pointer}.pd-inv-detail{padding:14px;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 12px 12px}.pd-inv-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pd-inv-balance{font-size:12px;font-weight:600}.pd-inv-no-pay{font-size:11px;color:var(--text-tertiary);padding:8px 0}.pd-pay-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--surface-alt);border-radius:8px;margin-bottom:4px}.pd-pay-amount{font-size:12px;font-weight:500}.pd-pay-meta{margin-left:8px}.pd-pay-meta,.pd-pay-notes{font-size:10px;color:var(--text-tertiary)}.pd-visit-table{width:100%;border-collapse:collapse;margin-bottom:16px}.pd-visit-th{padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.pd-visit-td{padding:10px 12px;font-size:12px}.pd-visit-td-type{font-weight:500}.pd-visit-td-num{font-size:13px;font-weight:600;text-align:center}.pd-visit-td-bold{font-size:13px;font-weight:700;text-align:center}.pd-visit-bars{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (max-width:768px){.sidebar-container{transform:translateX(-100%);transition:transform .25s ease;z-index:200}.sidebar-container.sidebar-open{transform:translateX(0)}.main-content{margin-left:0;padding-top:60px}.mobile-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:52px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--border);z-index:150}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:190}}@media (max-width:480px){.main-content{padding:58px 10px 12px}}.ed-back-row{margin-bottom:-8px}.ed-back-link{padding:5px 10px;text-decoration:none;font-size:12px;color:var(--text-tertiary)}.ed-hero-avatar{width:52px;height:52px;border-radius:14px;object-fit:contain;flex-shrink:0}.ed-hero-fallback{width:52px;height:52px;font-size:18px}.ed-hero-name{font-size:28px;font-weight:600;letter-spacing:-.03em}.ed-hero-meta-row{margin-top:4px;flex-wrap:wrap;align-items:center}.ed-hero-actions,.ed-hero-meta-row{display:flex;gap:6px}.ed-hero-team-exp{font-size:11px;color:var(--text-tertiary)}.ed-status-select{padding:2px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-size:10px;color:var(--text-secondary);font-family:inherit;cursor:pointer}.ed-tabs{display:flex;gap:4px;margin-bottom:16px}.ed-tab{padding:8px 16px;border-radius:10px;border:none;font-size:12px;font-weight:500;text-transform:capitalize;cursor:pointer;background:var(--surface);color:var(--text-secondary)}.ed-tab.is-active{background:var(--accent);color:var(--text-inverse);box-shadow:0 2px 0 var(--accent)}.ed-section{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 22px}.ed-section-title{font-size:14px;font-weight:600;margin-bottom:14px}.ed-section-title.mb-sm{margin-bottom:4px}.ed-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ed-section-header .ed-section-title{margin-bottom:0}.ed-detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.ed-detail-row:last-child{border-bottom:none}.ed-detail-label{font-size:12px;color:var(--text-tertiary)}.ed-detail-value{font-size:12px;font-weight:500}.ed-proj-card{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface-alt);border-radius:12px;margin-bottom:8px;cursor:pointer;text-decoration:none;color:inherit}.ed-proj-name{font-size:13px;font-weight:500}.ed-proj-client{font-size:11px;color:var(--text-tertiary);margin-top:2px}.ed-proj-right{display:flex;gap:6px;align-items:center}.ed-proj-pct{font-size:11px;font-weight:600}.ed-proj-to-bill{font-size:10px;font-weight:600;color:var(--amber)}.ed-proj-hours{font-family:var(--font-mono);font-size:11.5px;color:var(--text-secondary);white-space:nowrap}.ed-proj-hours-planned{color:var(--text-tertiary)}.ed-leave-card{padding:12px 14px;border-radius:12px;margin-bottom:8px}.ed-leave-inner{display:flex;justify-content:space-between;align-items:center}.ed-leave-dates{font-size:13px;font-weight:500}.ed-leave-reason{font-size:11px;color:var(--text-tertiary);margin-top:2px}.ed-leave-actions{display:flex;align-items:center;gap:6px}.ed-leave-btns{display:flex;gap:4px}.ed-reimb-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}.ed-reimb-stat{border-radius:10px;padding:12px}.ed-reimb-stat-value{font-size:16px;font-weight:700}.ed-reimb-stat-label{font-size:10px;color:var(--text-tertiary);margin-top:2px}.ed-reimb-list{display:flex;flex-direction:column;gap:8px}.ed-reimb-card{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface-alt);border-radius:12px}.ed-reimb-desc{font-size:12px;font-weight:500;margin-bottom:2px}.ed-reimb-meta{font-size:10px;color:var(--text-tertiary)}.ed-reimb-note{font-size:10px;color:var(--text-secondary);margin-top:4px;font-style:italic}.ed-reimb-right{display:flex;align-items:center;gap:8px}.ed-reimb-amt{font-size:13px;font-weight:600}.ed-reimb-review-btns{display:flex;gap:4px}.ed-reimb-review-btn{font-size:9px;font-weight:600;padding:3px 8px;border-radius:6px;cursor:pointer}.ed-reimb-review-btn.is-approve{border:1px solid var(--green);background:var(--green-bg);color:var(--green)}.ed-reimb-review-btn.is-reject{border:1px solid var(--red);background:var(--red-bg);color:var(--red)}.ed-pending-count{font-size:11px;font-weight:500;color:var(--amber);margin-left:8px}.ed-salary-row{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-subtle)}.ed-salary-row:last-child{border-bottom:none}.ed-salary-date{font-size:12px;font-weight:600;color:var(--text-tertiary);width:80px}.ed-salary-dot{width:4px;height:24px;border-radius:2px;background:var(--green)}.ed-salary-desig{font-size:13px;font-weight:500}.ed-salary-ctc{font-size:11px;color:var(--text-tertiary)}.ed-payslip-desc{font-size:12px;color:var(--text-tertiary);margin-bottom:16px}.ed-payslip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px}.ed-payslip-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--background)}.ed-payslip-month{font-size:13px;font-weight:500}.ed-payslip-ctc{font-size:11px;color:var(--text-tertiary)}.ed-payslip-btn{padding:5px 12px;border-radius:8px;border:none;font-size:11px;font-weight:600;cursor:pointer}.ed-payslip-btn.is-ready{background:var(--accent);color:#fff}.ed-payslip-btn.is-empty{background:var(--border);color:var(--text-tertiary);cursor:default}.ed-form-select-wrap{margin-bottom:12px}.ed-form-select-label{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.ed-form-select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:12px;color:var(--text-primary);font-family:inherit}.ed-login-hint{font-size:12px;color:var(--text-tertiary);margin-bottom:12px}.cmdk-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(15,15,15,.28);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cmdk-panel{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px rgba(15,15,15,.22);overflow:hidden;display:flex;flex-direction:column;max-height:64vh}.cmdk-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}.cmdk-input-icon{color:var(--text-tertiary);display:flex}.cmdk-input{flex:1 1;border:none;outline:none;background:transparent;font-size:15px;color:var(--text-primary);font-family:inherit}.cmdk-input::placeholder{color:var(--text-tertiary)}.cmdk-esc{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--text-tertiary);text-transform:uppercase;border:1px solid var(--border);border-radius:5px;padding:2px 6px}.cmdk-list{overflow-y:auto;padding:6px}.cmdk-group{padding:4px 0}.cmdk-group-label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);padding:6px 10px 4px}.cmdk-item{width:100%;text-align:left;display:flex;align-items:baseline;gap:8px;padding:9px 10px;border-radius:8px;cursor:pointer;background:transparent;border:none;color:var(--text-primary)}.cmdk-item.is-active{background:var(--accent-bg)}.cmdk-item-label{font-size:13.5px;font-weight:500}.cmdk-item.is-active .cmdk-item-label{color:var(--accent)}.cmdk-item-sub{font-size:11.5px;color:var(--text-tertiary)}.cmdk-empty{padding:28px 16px;text-align:center;font-size:13px;color:var(--text-tertiary)}.modal-backdrop{opacity:1;transition:opacity var(--dur-modal) var(--ease-out);@starting-style{opacity:0}}.modal-panel{opacity:1;transform:scale(1);transition:opacity var(--dur-modal) var(--ease-out),transform var(--dur-modal) var(--ease-out);@starting-style{opacity:0;transform:scale(.97)}}@media (prefers-reduced-motion:reduce){.modal-panel{transition:opacity var(--dur-modal) ease;@starting-style{transform:none}}.alloc-chip:hover,.hw-card:hover,.ins-card:hover,.person-card:hover,.proj-board-card:hover,.ts-chip:hover,button:active:not(:disabled){transform:none}.kpi-link,.kpi-strip>*{animation:none!important}}@media (hover:none),(pointer:coarse){.alloc-chip:hover,.hw-card:hover,.ins-card:hover,.person-card:hover,.proj-board-card:hover,.ts-chip:hover{transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.kpi-strip>*{animation:rise-in .3s var(--ease-out) backwards}.kpi-strip>:first-child{animation-delay:0s}.kpi-strip>:nth-child(2){animation-delay:40ms}.kpi-strip>:nth-child(3){animation-delay:80ms}.kpi-strip>:nth-child(4){animation-delay:.12s}.kpi-strip>:nth-child(5){animation-delay:.16s}.alloc-chip{transition-property:transform,box-shadow,opacity;transition-duration:var(--dur-fast);transition-timing-function:var(--ease-out);@starting-style{opacity:0}}.demo-switcher{display:flex;align-items:center;gap:10px;padding:8px 14px;margin:0 0 14px;background:var(--surface-alt);border:1px solid var(--border-subtle);border-radius:8px;flex-wrap:wrap}.demo-switcher-label{font-size:10px;letter-spacing:.12em;color:var(--text-tertiary);font-weight:600}.demo-switcher-options{display:flex;gap:4px}.demo-switcher-btn{padding:4px 12px;font-size:12px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.demo-switcher-btn:hover:not(:disabled):not(.is-active){background:var(--surface);border-color:var(--border)}.demo-switcher-btn.is-active{background:var(--surface);border-color:var(--border-strong);color:var(--text-primary);font-weight:600;cursor:default}.demo-switcher-btn:disabled{opacity:.55;cursor:progress}.demo-switcher-error{font-size:12px;color:var(--red,#b3261e)}