:root{--ph-primary: #00B388;--ph-primary-hover: #00A67C;--ph-primary-active: #00896A;--ph-primary-light: #E6F7F1;--ph-primary-tint: #D0EFE4;--ph-dark-teal: #00896A;--ph-corporate-grey: #A6A8AB;--ph-icon-circle: #00B388;--ph-login-bg: #E6F7F1;--surface-page: #F7F8F9;--surface-card: #FFFFFF;--surface-subtle: #F5F6F7;--surface-muted: #EEF0F2;--sidebar-bg: #EEF1F5;--sidebar-bg-active: #FFFFFF;--border-subtle: #F0F1F3;--border-default: #E5E7EB;--border-strong: #D1D5DB;--text-primary: #1F2937;--text-secondary: #4B5563;--text-tertiary: #6B7280;--text-disabled: #9CA3AF;--text-inverse: #FFFFFF;--text-corporate-signature: var(--ph-corporate-grey);--success: #059669;--success-bg: #ECFDF5;--warning: #D97706;--warning-bg: #FFFBEB;--danger: #DC2626;--danger-bg: #FEF2F2;--info: #2563EB;--info-bg: #EFF6FF;--bg: var(--surface-page);--panel: var(--surface-card);--border: var(--border-default);--text: var(--text-primary);--muted: var(--text-tertiary);--accent: var(--ph-primary);--error-bg: var(--danger-bg);--error-border: #FECACA;--green: var(--success);--amber: var(--warning);--red: var(--danger);--brand: var(--ph-primary);--brand-active: var(--ph-primary-active);--brand-light: var(--ph-primary-light);--surface: var(--surface-card);--surface-alt: var(--surface-subtle);--mono: ui-monospace, "SF Mono", Consolas, monospace;--font-mono: var(--mono);--table-row-hover-bg: #F0FDF9;--table-row-error-hover-bg: #FEE2E2;--grid-cell-dirty-bg: #FFF8E0;--grid-cell-pool-empty-bg: #FFF1F0;--grid-cell-pool-empty-border: #F0A5A1;--grid-cell-pool-empty-text: #8F1C15;--banner-warn-bg: #FFF4E0;--banner-warn-border: #F0CF91;--table-tfoot-bg: #FAFBFC;--status-border-success: #A7F3D0;--status-border-warning: #FCD34D;--status-border-danger: #FECACA;--status-border-info: #BFDBFE;--banner-info-bg: #EEF4FF;--banner-info-border: #CFE0FF;--banner-ok-bg: #E9F7EF;--banner-ok-border: #BFE8CF;--banner-conflict-bg: #FDECEC;--banner-conflict-border: #F0B3B3;--chip-bg: #EEF0F3;--chip-text: #4A5160;--chip-dsi-bg: #E7EEFE;--load-cell-blue-bg: #E0EDFB;--load-cell-blue-fg: #1F4B8E;--load-cell-green-bg: #E4F3EA;--load-cell-green-fg: #1F7A44;--load-cell-amber-bg: #FDF0D5;--load-cell-amber-fg: #9C6500;--load-cell-red-bg: #FBE2E2;--load-cell-red-fg: #B32525;--load-cell-crit-bg: repeating-linear-gradient(45deg, #F3C0C0, #F3C0C0 4px, #E9A8A8 4px, #E9A8A8 8px);--load-cell-crit-fg: #7A1414;--indispo-hint-bg: #FFF5D6;--derived-text: #8A91A0;--separator-row-border: #E2E5EA;--grid-cell-stale-bg: #FFE2C2;--grid-cell-stale-border: #E07A00;--day-full-bg: #FFE2D0;--day-full-border: #E07A00;--day-full-text: #8F3A00;--gantt-tick-border: #D7DBE2;--gantt-grid-border: #F0F2F5;--gantt-row-hover-bg: #F6F9FF;--surface-hover-info: #EEF4FF;--surface-detail-row: #F8FAFC;--surface-weekend: #F6F7F9;--text-body: #4A5160;--text-on-color: #FFFFFF;--danger-solid: #B91C1C;--danger-solid-active: #991B1B;--chart-capacity-fill: #CFE0FF;--chart-charge-fill: #2F6DF6;--chart-rate-stroke: #D23B3B;--chart-unassigned-fill: #F2C14E;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(31, 41, 55, .04);--shadow-sm: 0 1px 3px rgba(31, 41, 55, .06), 0 1px 2px rgba(31, 41, 55, .03);--shadow-md: 0 2px 8px rgba(31, 41, 55, .05);--shadow-lg: 0 8px 24px rgba(31, 41, 55, .06), 0 3px 6px rgba(31, 41, 55, .03);--shadow-xl: 0 20px 40px rgba(31, 41, 55, .08), 0 8px 12px rgba(31, 41, 55, .04);--duration-instant: .1s;--duration-fast: .15s;--duration-normal: .2s;--ease-out: cubic-bezier(.16, 1, .3, 1);--z-sticky: 10;--z-dropdown: 50;--z-overlay: 100;--z-modal: 110;--z-toast: 200;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--surface-page);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--ph-primary);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.tabs a:focus-visible{outline-offset:-2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.topbar{display:flex;align-items:center;gap:20px;padding:10px 24px;background:var(--surface-card);border-bottom:1px solid var(--border-default);color:var(--text-primary);position:sticky;top:0;z-index:var(--z-sticky)}.brand-cluster{display:flex;align-items:center;gap:8px;white-space:nowrap}a.brand-cluster{text-decoration:none;color:inherit;border-radius:6px;padding:2px 4px;margin:-2px -4px}a.brand-cluster:hover .brand-title{color:var(--accent, #b83a25)}a.brand-cluster:focus-visible{outline:2px solid var(--accent, #b83a25);outline-offset:3px}.brand-cluster .brand-logo{height:26px;width:auto;display:block;object-fit:contain}.brand-cluster .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--ph-primary)}.brand-cluster .brand-mark svg{display:block}.brand-title{font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:-.005em}.brand-tagline{font-size:11px;font-weight:400;color:var(--text-tertiary);letter-spacing:.005em}.brand-text{display:flex;flex-direction:column;line-height:1.15}.tabs{display:flex;gap:2px;flex:1;align-items:center}.tabs a,.tabs .menu-trigger.tab-trigger{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-secondary);background:transparent;border:0;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.tabs a:hover,.tabs .menu-trigger.tab-trigger:hover{background:var(--surface-subtle);color:var(--text-primary);text-decoration:none}.tabs a.active{color:var(--ph-dark-teal);background:var(--ph-primary-light);font-weight:600}.tabs a svg{flex-shrink:0}.topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.window-picker{display:inline-flex;align-items:stretch;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary);overflow:hidden;transition:border-color var(--duration-instant) var(--ease-out)}.window-picker:hover{border-color:var(--border-strong)}.window-picker-nav{display:inline-flex;align-items:center;justify-content:center;padding:0 8px;background:transparent;border:0;cursor:pointer;color:var(--text-secondary);transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.window-picker-nav:hover{background:var(--surface-subtle);color:var(--ph-primary)}.window-picker-nav:focus-visible{outline:2px solid var(--ph-primary);outline-offset:-2px}.window-picker-center{display:inline-flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;position:relative;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);transition:background var(--duration-instant) var(--ease-out)}.window-picker-center:hover{background:var(--surface-subtle)}.window-picker-icon{color:var(--ph-primary);flex-shrink:0}.window-picker-content{display:flex;flex-direction:column;line-height:1.15}.window-picker-label{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:10px;color:var(--text-tertiary)}.window-picker-range{font-size:12px;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.window-picker-chevron{color:var(--text-tertiary);flex-shrink:0;margin-left:2px}.window-picker-center input[type=month]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;border:0}.user-trigger{display:inline-flex;align-items:center;gap:8px;padding:4px 8px 4px 4px}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);background:var(--ph-primary-light);color:var(--ph-dark-teal);font-size:12px;font-weight:700}.user-meta{display:flex;flex-direction:column;line-height:1.15;align-items:flex-start}.user-email{font-size:12px;font-weight:500;color:var(--text-primary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.menu{position:relative;display:inline-block}.menu-trigger{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);background:transparent;border:0;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background var(--duration-instant) var(--ease-out)}.menu-trigger:hover,.menu[data-open=true] .menu-trigger{background:var(--surface-subtle);color:var(--text-primary)}.menu-panel{position:absolute;top:calc(100% + 6px);min-width:200px;padding:4px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:menu-in var(--duration-fast) var(--ease-out)}.menu-panel--fixed{position:fixed;top:auto;left:auto;z-index:var(--z-modal)}.menu-panel--fixed.menu-panel--start,.menu-panel--fixed.menu-panel--end{left:auto;right:auto}.menu-panel--start{left:0}.menu-panel--end{right:0}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);text-align:left;text-decoration:none;transition:background var(--duration-instant) var(--ease-out)}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-subtle);text-decoration:none;outline:none}.menu-item.active{background:var(--ph-primary-light);color:var(--ph-dark-teal);font-weight:600}.menu-item--danger{color:var(--danger)}.menu-item--danger:hover,.menu-item--danger:focus-visible{background:var(--danger-bg)}.menu-item svg{flex-shrink:0;color:currentColor;opacity:.75}.menu-item.active svg,.menu-item--danger svg{opacity:1}.page-hero{display:flex;justify-content:space-between;align-items:flex-end;padding:24px 0 16px;border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.page-hero .eyebrow{margin:0 0 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.page-title{display:flex;align-items:baseline;gap:12px;margin:0;font-size:32px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.1}.page-title-count{font-variant-numeric:tabular-nums}.page-title-label{font-size:20px;font-weight:500;color:var(--text-tertiary);letter-spacing:-.01em}.page-subtitle{margin:10px 0 0;font-size:13px;color:var(--text-secondary);display:flex;gap:8px;align-items:center}.date-range{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);min-width:300px}.date-range-header{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-tertiary)}.date-range-header svg{color:var(--ph-primary);flex-shrink:0}.date-range-title{font-weight:600;text-transform:uppercase;letter-spacing:.04em}.date-range-current{margin-left:auto;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:11px}.date-range-mode,.granularity-toggle{display:inline-flex;gap:0;background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:2px}.date-range-mode{display:flex}.mode-btn,.granularity-btn{border:0;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:calc(var(--radius-sm) - 2px);font-weight:500;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.mode-btn{flex:1;padding:4px 8px;font-size:11px;white-space:nowrap}.granularity-btn{padding:4px 10px;font-size:12px}.mode-btn:hover,.granularity-btn:hover:not(:disabled){color:var(--text-primary)}.granularity-btn:disabled{opacity:.4;cursor:not-allowed}.mode-btn--active,.granularity-btn--active{background:var(--surface-card);color:var(--ph-dark-teal);font-weight:600;box-shadow:0 1px 2px #0000000d}.date-range-inputs{display:flex;gap:8px}.date-range-field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.date-range-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.date-range-field input[type=date]{padding:5px 8px;font-size:12px;font-family:inherit;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-primary);cursor:pointer;font-variant-numeric:tabular-nums;transition:border-color var(--duration-instant) var(--ease-out)}.date-range-field input[type=date]:hover{border-color:var(--border-strong)}.date-range-field input[type=date]:focus-visible{outline:2px solid var(--ph-primary);outline-offset:-1px;border-color:var(--ph-primary)}.date-range-presets{display:flex;flex-wrap:wrap;gap:4px}.preset-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.preset-btn:hover{background:var(--ph-primary-light);border-color:var(--ph-primary-tint);color:var(--ph-dark-teal)}.preset-btn--reset{margin-left:auto;color:var(--text-tertiary)}.preset-btn--reset svg{color:currentColor}.pivot thead tr.week-month-row th{background:var(--surface-muted);border-bottom:1px solid var(--border-default);font-size:11px;text-transform:uppercase;letter-spacing:.03em}.pivot thead tr.week-week-row th{font-size:11px;font-weight:500;color:var(--text-secondary)}.week-boundary{border-left:2px solid var(--border-strong)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;line-height:1;border:1px solid transparent;background:transparent}.pill--danger{color:var(--danger);background:var(--danger-bg);border-color:var(--status-border-danger)}.pill--success{color:var(--success);background:var(--success-bg);border-color:var(--status-border-success)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr;background:var(--surface-page)}@media (min-width: 1024px){.login-shell{grid-template-columns:minmax(360px,44%) 1fr}}.login-hero{display:none;position:relative;overflow:hidden;color:var(--text-primary);background:var(--ph-primary-light);border-right:1px solid var(--border-subtle)}@media (min-width: 1024px){.login-hero{display:flex;align-items:center}}.login-hero-content{position:relative;padding:48px 56px;max-width:520px;margin:auto;width:100%;animation:login-fade-in .48s var(--ease-out) both}.login-hero-logo{height:auto;width:auto;max-width:260px;display:block;margin-bottom:32px;animation:login-slide-up .5s var(--ease-out) 40ms both}.login-hero-brand{margin-bottom:32px}.login-hero-title{font-size:34px;font-weight:600;letter-spacing:-.01em;margin:0 0 4px;color:var(--text-primary);animation:login-slide-up .5s var(--ease-out) .1s both}.login-hero-tagline{font-size:15px;color:var(--text-secondary);margin:0 0 12px;font-weight:500;animation:login-slide-up .5s var(--ease-out) .16s both}.login-hero-desc{font-size:13px;color:var(--text-tertiary);margin:0;line-height:1.5;max-width:42ch;animation:login-slide-up .5s var(--ease-out) .22s both}.login-hero-cards{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:40px}@media (min-width: 1280px){.login-hero-cards{grid-template-columns:1fr 1fr}}.login-hero-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:0 1px 2px #0f14190a;animation:login-slide-up .5s var(--ease-out) both}html[data-theme=dark] .login-hero-card{background:color-mix(in srgb,var(--surface-card) 88%,transparent);box-shadow:0 1px 2px #00000059}.login-hero-card:nth-child(1){animation-delay:.26s}.login-hero-card:nth-child(2){animation-delay:.32s}.login-hero-card:nth-child(3){animation-delay:.38s}.login-hero-card:nth-child(4){animation-delay:.44s}.login-hero-card-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-tertiary);flex-shrink:0}.login-hero-card-title{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.2}.login-hero-card-desc{font-size:12px;color:var(--text-tertiary);margin-top:2px;line-height:1.35}.login-hero-footer{display:inline-flex;align-items:center;gap:8px;padding:12px 12px 6px;font-size:11px;color:var(--text-tertiary);border-top:1px solid var(--border-subtle);animation:login-fade-in .7s var(--ease-out) .5s both}.login-hero-brandmark{color:var(--ph-primary)}.login-hero-watermark{position:absolute;bottom:-60px;right:-60px;color:var(--ph-primary);opacity:.06;pointer-events:none;z-index:0}.login-panel{position:relative;display:flex;flex-direction:column;min-height:100vh;background:var(--surface-page)}.login-panel-top{display:flex;justify-content:flex-end;padding:16px 24px}.login-panel-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 24px 32px;gap:20px;animation:login-fade-in .4s var(--ease-out) both}.login-mobile-brand{display:block;text-align:center;margin-bottom:4px}@media (min-width: 1024px){.login-mobile-brand{display:none}}.login-mobile-logo{max-width:200px;height:auto;display:block;margin:0 auto 12px}.login-mobile-brand h1{font-size:24px;margin:0;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.login-mobile-brand p{font-size:13px;color:var(--text-secondary);margin:4px 0 0}.login-greeting{display:flex;flex-direction:column;align-items:flex-start;width:100%;max-width:380px;animation:login-slide-up .5s var(--ease-out) .12s both}.login-greeting-hi{font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.login-greeting-sub{font-size:13px;color:var(--text-secondary);margin-top:2px}.login-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:24px;width:100%;max-width:380px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:14px;animation:login-slide-up .5s var(--ease-out) .22s both}.login-card--shake{animation:login-shake .45s var(--ease-out)}.login-mode-tabs{display:flex;width:100%;max-width:380px;gap:4px;padding:4px;background:var(--surface-alt);border:1px solid var(--border-default);border-radius:var(--radius-md);margin:4px 0 0}.login-mode-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.login-mode-tab:hover:not(:disabled){color:var(--text-primary)}.login-mode-tab--active{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.login-mode-tab:disabled{cursor:default;opacity:.6}.login-field{display:flex;flex-direction:column;gap:6px}.login-field-label{font-size:12px;font-weight:500;color:var(--text-secondary)}.login-field-wrap{position:relative;display:flex;align-items:center}.login-field-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none}.login-field input{width:100%;padding:10px 12px 10px 38px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-size:14px;transition:border-color var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out)}.login-field input:hover{border-color:var(--border-strong)}.login-field input:focus{outline:none;border-color:var(--ph-primary);box-shadow:0 0 0 3px var(--ph-primary-light)}.login-field input[type=password],.login-field input[type=text]{padding-right:40px}.login-field-toggle{position:absolute;right:4px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.login-field-toggle:hover{background:var(--surface-subtle);color:var(--text-primary)}.login-field-toggle:focus-visible{outline:2px solid var(--ph-primary);outline-offset:1px}.login-caps-warning{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--warning);margin-top:2px}.login-error{margin:0;padding:8px 12px;background:var(--danger-bg);color:var(--danger);border-left:3px solid var(--danger);border-radius:var(--radius-sm);font-size:12px;animation:login-fade-in .2s var(--ease-out)}.login-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border:0;border-radius:var(--radius-md);background:linear-gradient(180deg,var(--ph-primary) 0%,var(--ph-primary-active) 100%);color:var(--text-inverse);font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #00896a59;transition:box-shadow var(--duration-instant) var(--ease-out),transform var(--duration-instant) var(--ease-out),opacity var(--duration-instant) var(--ease-out),filter var(--duration-instant) var(--ease-out)}.login-submit:hover:not(:disabled){background:linear-gradient(180deg,var(--ph-primary-hover) 0%,var(--ph-primary-active) 100%);color:var(--text-inverse);box-shadow:0 4px 12px #00896a66;transform:translateY(-1px);filter:brightness(1.03)}.login-submit:active:not(:disabled){background:linear-gradient(180deg,var(--ph-primary-active) 0%,var(--ph-dark-teal) 100%);color:var(--text-inverse);transform:translateY(0)}.login-submit:disabled{opacity:.55;cursor:not-allowed}.login-submit-spinner{animation:login-spin 1.4s linear infinite;color:currentColor}@media (prefers-reduced-motion: reduce){.login-submit-spinner{animation:none}}.login-demo-toggle{align-self:center;padding:4px 10px;border:0;background:transparent;color:var(--text-tertiary);font-size:12px;text-decoration:underline dotted;cursor:pointer;transition:color var(--duration-instant) var(--ease-out)}.login-demo-toggle:hover{color:var(--ph-primary)}.login-demo-list{display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--surface-subtle);border-radius:var(--radius-md);animation:login-slide-up .25s var(--ease-out)}.login-demo-item{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;align-items:center;padding:8px 12px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--duration-instant) var(--ease-out),background var(--duration-instant) var(--ease-out)}.login-demo-item:hover:not(:disabled){border-color:var(--ph-primary-tint);background:var(--ph-primary-light)}.login-demo-item:disabled{opacity:.5;cursor:not-allowed}.login-demo-role{grid-row:span 2;padding:3px 8px;border-radius:var(--radius-full);background:var(--ph-primary-light);color:var(--ph-dark-teal);font-size:11px;font-weight:600;text-align:center}.login-demo-email{font-size:13px;font-weight:500;color:var(--text-primary);font-family:ui-monospace,Cascadia Mono,Menlo,monospace}.login-demo-hint{font-size:11px;color:var(--text-tertiary)}.muted{color:var(--text-tertiary);font-size:12px}h2{font-size:18px;margin:4px 0 6px}@keyframes login-fade-in{0%{opacity:0}to{opacity:1}}@keyframes login-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes login-shake{0%,to{transform:translate(0)}15%{transform:translate(-10px)}30%{transform:translate(9px)}45%{transform:translate(-7px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}90%{transform:translate(1px)}}@keyframes login-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.otp-input{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:296px;margin:4px auto 0;padding:0;cursor:text}.otp-hidden-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;background:transparent;color:transparent;caret-color:transparent;font-size:22px;text-align:center;outline:none;z-index:2;cursor:text}.otp-hidden-input:disabled{cursor:default}.otp-cell{position:relative;width:40px;height:48px;flex:0 0 40px;border:1.5px solid var(--border-default);border-radius:10px;background:var(--surface-card);display:inline-flex;align-items:center;justify-content:center;transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .18s var(--ease-out),background .18s var(--ease-out);pointer-events:none}.otp-cell-digit{color:var(--text-primary);font-family:var(--font-mono, ui-monospace, "SF Mono", "Menlo", monospace);font-size:22px;font-weight:600;line-height:1}.otp-cell--filled{border-color:color-mix(in srgb,var(--ph-primary) 55%,var(--border-default))}.otp-cell--active{border-color:var(--ph-primary);border-width:2px;box-shadow:0 0 0 6px color-mix(in srgb,var(--ph-primary) 20%,transparent);transform:scale(1.04);z-index:1}.otp-cell--active .otp-cell-digit:after{content:"";display:inline-block;width:2px;height:24px;background:var(--ph-primary);margin-left:1px;animation:otp-caret 1s steps(1) infinite;vertical-align:middle}.otp-cell--filled.otp-cell--active .otp-cell-digit:after{display:none}@keyframes otp-caret{0%,50%{opacity:1}51%,to{opacity:0}}.otp-cell--pulse{animation:otp-cell-bounce .4s var(--ease-out)}@keyframes otp-cell-bounce{0%{transform:scale(1);background:var(--surface-card)}30%{transform:scale(1.1);background:color-mix(in srgb,var(--ph-primary) 25%,var(--surface-card))}60%{transform:scale(.98)}to{transform:scale(1);background:var(--surface-card)}}.otp-cell--active.otp-cell--pulse{animation:otp-cell-bounce-active .4s var(--ease-out)}@keyframes otp-cell-bounce-active{0%{transform:scale(1.04);background:var(--surface-card)}30%{transform:scale(1.15);background:color-mix(in srgb,var(--ph-primary) 25%,var(--surface-card))}60%{transform:scale(1.02)}to{transform:scale(1.04);background:var(--surface-card)}}.otp-input--verifying .otp-cell{opacity:.55}.otp-input--success .otp-cell{border-color:var(--ph-primary)}.otp-input--success .otp-cell-digit{opacity:0}.otp-cell--check{background:var(--ph-primary);border-color:var(--ph-primary);animation:otp-check-pop .32s var(--ease-out)}.otp-cell-check-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-inverse, #fff);animation:otp-check-icon .32s var(--ease-out)}@keyframes otp-check-pop{0%{transform:scale(.7);background:color-mix(in srgb,var(--ph-primary) 30%,var(--surface-card))}60%{transform:scale(1.1)}to{transform:scale(1);background:var(--ph-primary)}}@keyframes otp-check-icon{0%{opacity:0;transform:scale(.4) rotate(-8deg)}60%{opacity:1;transform:scale(1.12) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.otp-input--error .otp-cell{border-color:var(--danger);animation:otp-error-shake .5s var(--ease-out)}@keyframes otp-error-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.otp-success-label{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 0;color:var(--ph-primary);font-size:14px;font-weight:600;animation:otp-success-label-in .26s var(--ease-out) .2s both}@keyframes otp-success-label-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.otp-cell,.otp-cell--pulse,.otp-cell--check,.otp-cell-check-icon,.otp-input--error .otp-cell,.otp-success-label,.otp-cell--active .otp-cell-digit:after{animation:none!important;transition:none!important}.otp-cell--active{transform:none}}@media (prefers-reduced-motion: reduce){.login-hero-content,.login-hero-logo,.login-hero-title,.login-hero-tagline,.login-hero-desc,.login-hero-card,.login-hero-footer,.login-panel-inner,.login-greeting,.login-card,.login-card--shake{animation:none!important}}.corporate-logo{display:none}main{padding:20px 24px;max-width:1440px;margin:0 auto}.app-footer{padding:14px 24px 18px;text-align:center;font-size:11px;color:var(--ph-text-secondary);border-top:1px solid var(--ph-border);margin-top:24px;background:transparent}.app-footer strong{color:var(--ph-dark-teal);font-weight:600}.login-footer{margin-top:20px;font-size:11px;color:var(--ph-text-secondary);text-align:center}.login-footer strong{color:var(--ph-dark-teal);font-weight:600}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input[type=search]{flex:1;min-width:240px;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);font-size:14px;color:var(--text-primary);transition:border-color var(--duration-instant) var(--ease-out)}.toolbar input[type=search]:hover{border-color:var(--border-strong)}.toolbar input[type=search]:focus{border-color:var(--ph-primary);outline:none;box-shadow:0 0 0 3px var(--ph-primary-light)}button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.2;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out)}button:hover{background:var(--surface-subtle);border-color:var(--border-strong)}button.primary{background:var(--ph-primary);color:var(--text-inverse);border-color:var(--ph-primary);box-shadow:var(--shadow-xs)}button.primary:hover{background:var(--ph-primary-hover);border-color:var(--ph-primary-hover);box-shadow:var(--shadow-sm)}button.primary:active{background:var(--ph-primary-active)}button.danger{color:var(--danger);border-color:transparent;background:transparent}button.danger:hover{background:var(--danger-bg);border-color:transparent}button:disabled{opacity:.5;cursor:not-allowed}button svg{flex-shrink:0}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.btn-icon:hover{background:var(--surface-subtle);color:var(--text-primary);border-color:transparent}.btn-ghost{font-size:12px;padding:5px 10px;border-color:var(--border-default);background:var(--surface-subtle);color:var(--text-secondary)}.btn-ghost:hover{background:var(--surface-muted);border-color:var(--border-strong);color:var(--text-primary)}.btn-ghost--active{border-color:var(--ph-primary-tint);background:var(--ph-primary-light);color:var(--ph-dark-teal)}.btn-ghost--active:hover{background:var(--ph-primary-tint)}.btn-ghost--danger{color:var(--danger)}.btn-ghost--danger:hover{background:var(--load-cell-red-bg);border-color:var(--status-border-danger);color:var(--load-cell-crit-fg)}.row-actions{display:inline-flex;gap:2px;align-items:center}.bulk-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding:8px 12px;background:var(--ph-primary-light);border:1px solid var(--ph-primary-tint);border-radius:var(--radius-md)}.bulk-toolbar-count{font-size:13px;font-weight:600;color:var(--ph-dark-teal);margin-right:4px}table{border-collapse:collapse;width:100%;background:var(--surface-card);font-size:13px}th,td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);text-align:left;white-space:nowrap}th{cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;background:var(--surface-subtle);z-index:1;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.table-wrap table th:last-child,.table-wrap table td:last-child{position:sticky;right:0;background:var(--surface-card);box-shadow:-6px 0 8px -4px #1f29370f;z-index:2}.table-wrap table th:last-child{background:var(--surface-subtle);z-index:3}.table-wrap table tr:hover td:last-child{background:var(--table-row-hover-bg)}.table-wrap table tr.qc-error td:last-child{background:var(--error-bg)}.col-filter{display:block;width:100%;margin-top:4px;padding:3px 6px;font-size:11px;font-weight:400;border:1px solid var(--border);border-radius:5px}tbody tr:hover{background:var(--table-row-hover-bg)}tr.qc-error{background:var(--error-bg)}tr.qc-error:hover{background:var(--table-row-error-hover-bg)}.badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px}.badge.in-plan{background:var(--success-bg);color:var(--green)}.badge.off-plan{background:var(--surface-muted);color:var(--muted)}.qc-dot{color:var(--danger);font-weight:700;cursor:help}.link-cell{display:inline-block;padding:0;border:0;background:transparent;color:var(--text-primary);font:inherit;font-weight:500;text-align:left;cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px dashed transparent;transition:color var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.link-cell:hover,.link-cell:focus-visible{color:var(--ph-primary-active);border-bottom-color:var(--ph-primary-active);outline:none}.mono-cell{font-family:var(--font-mono, ui-monospace, "SF Mono", Consolas, monospace);font-size:12px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.mono-cell-link{color:var(--ph-primary-active);text-decoration:none;border-bottom:1px dashed transparent;transition:border-color var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.mono-cell-link:hover,.mono-cell-link:focus-visible{border-bottom-color:var(--ph-primary-active);text-decoration:none;outline:none}.num-cell{display:inline-block;width:100%;text-align:right;font-variant-numeric:tabular-nums;font-weight:500;color:var(--text-primary)}th:has(+td .num-cell),th.text-right{text-align:right}.date-cell{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:13px}.cell-empty{color:var(--text-tertiary);font-size:12px}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;line-height:1.4;border:1px solid transparent;white-space:nowrap;text-transform:none;letter-spacing:.005em}.status-badge--success{background:var(--success-bg);color:var(--success);border-color:var(--status-border-success)}.status-badge--info{background:var(--ph-primary-light);color:var(--ph-primary-active);border-color:var(--ph-primary-tint)}.status-badge--warning{background:var(--warning-bg);color:var(--warning);border-color:var(--status-border-warning)}.status-badge--danger{background:var(--danger-bg);color:var(--danger);border-color:var(--status-border-danger)}.status-badge--neutral{background:var(--surface-muted);color:var(--text-tertiary);border-color:var(--border-default)}.priority-pill{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:1px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:700;line-height:1.4;text-transform:uppercase;letter-spacing:.06em;border:1px solid transparent;white-space:nowrap}.priority-pill--success{background:var(--success-bg);color:var(--success);border-color:var(--status-border-success)}.priority-pill--info{background:var(--info-bg);color:var(--info);border-color:var(--status-border-info)}.priority-pill--warning{background:var(--warning-bg);color:var(--warning);border-color:var(--status-border-warning)}.priority-pill--danger{background:var(--danger-bg);color:var(--danger);border-color:var(--status-border-danger)}.priority-pill--neutral{background:var(--surface-muted);color:var(--text-tertiary);border-color:var(--border-default)}.priority-pill--dsi{box-shadow:inset 0 0 0 1px var(--ph-primary)}.in-plan-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;cursor:help}.in-plan-badge--active{background:var(--success-bg);color:var(--success);border:1px solid var(--status-border-success)}.in-plan-badge--inactive{background:var(--surface-muted);color:var(--text-tertiary);border:1px solid var(--border-default)}.load-cell--blue{background:var(--load-cell-blue-bg);color:var(--load-cell-blue-fg);font-weight:500}.load-cell--green{background:var(--load-cell-green-bg);color:var(--load-cell-green-fg);font-weight:500}.load-cell--amber{background:var(--load-cell-amber-bg);color:var(--load-cell-amber-fg);font-weight:500}.load-cell--red{background:var(--load-cell-red-bg);color:var(--load-cell-red-fg);font-weight:500}.load-cell--crit{background:var(--load-cell-crit-bg);color:var(--load-cell-crit-fg);font-weight:700}.load-cell--derived{font-style:italic;color:var(--derived-text)}.indispo-hint{background:var(--indispo-hint-bg)}.separator-row td{border-top:2px solid var(--separator-row-border);padding:0}.availability-input{width:44px;text-align:center;border:1px solid var(--border);background:var(--surface-card);color:var(--text-primary)}.availability-input:focus{outline:none;border-color:var(--accent)}.availability-input--dirty{border-color:var(--accent)}.cal-cell-has-avail{background:var(--indispo-hint-bg)}.table-wrap{overflow:auto;max-height:calc(100vh - 260px);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card)}.table-wrap::-webkit-scrollbar{height:10px;width:10px}.table-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid var(--surface-card)}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.table-wrap::-webkit-scrollbar-corner{background:transparent}.grid-total-row{font-weight:600;background:var(--table-tfoot-bg)}.grid-capacity-row{color:var(--text-tertiary);font-size:.9em}.grid-detail-row{background:var(--table-tfoot-bg)}.num-strong{font-weight:600}.num-muted{color:var(--text-tertiary);font-weight:400}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14182173;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--panel);border-radius:12px;padding:20px 22px;width:720px;max-width:94vw;max-height:90vh;overflow:auto}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:var(--muted)}.field input,.field select{padding:7px 9px;border:1px solid var(--border);border-radius:7px;font-size:13px}.field.full{grid-column:1 / -1}.modal-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.err{color:var(--red);font-size:12px}.grid-cell{width:70px;text-align:right;padding:5px 8px;border:1px solid var(--border);border-radius:6px}.grid-cell.dirty{background:var(--grid-cell-dirty-bg);border-color:var(--amber)}.grid-cell.stale{background:var(--grid-cell-stale-bg);border-color:var(--grid-cell-stale-border);outline:1px solid var(--grid-cell-stale-border)}.grid-cell.pool-empty{background:var(--grid-cell-pool-empty-bg);border-color:var(--grid-cell-pool-empty-border);color:var(--grid-cell-pool-empty-text)}.grid-cell-td{padding:2px;position:relative}.grid-fill-right{position:absolute;right:1px;bottom:1px;width:16px;height:16px;padding:0;line-height:1;display:none;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);font-size:11px;cursor:pointer}.grid-cell-td:hover .grid-fill-right{display:inline-flex}.grid-fill-right:hover{background:var(--ph-primary);color:var(--text-on-color);border-color:var(--ph-primary)}.load-cell-hover{cursor:help}.load-cell-info{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--text-tertiary);font-size:9px;font-style:italic;font-weight:600}.load-cell-hover:hover .load-cell-info{background:var(--ph-primary);color:var(--text-on-color)}.load-cell-tip{position:fixed;z-index:var(--z-modal);min-width:190px;max-width:280px;padding:8px 10px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:12px;pointer-events:none}.load-cell-tip-head{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:6px}.load-cell-tip-row{display:flex;justify-content:space-between;gap:12px;padding:2px 0}.load-cell-tip-row.is-pool{color:var(--text-tertiary);font-style:italic}.load-cell-tip-total{display:flex;justify-content:space-between;gap:12px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-subtle)}.recent-badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:var(--radius-full);background:var(--ph-primary-light);color:var(--ph-dark-teal);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}tr.pinned-last>td{border-bottom:2px solid var(--border-default)}.columns-menu-wrap{position:relative;display:inline-block}.columns-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) - 1)}.columns-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:var(--z-modal);min-width:210px;max-height:60vh;overflow-y:auto;padding:8px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.columns-menu-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;white-space:nowrap}.columns-menu-item:hover{background:var(--surface-subtle)}.columns-menu-reset{width:100%;margin-top:6px;padding-top:8px;border-top:1px solid var(--border-subtle);text-align:left;font-size:12px}.th-sortable{-webkit-user-select:none;user-select:none}.th-sortable:hover{background:var(--surface-hover-info)}.th-sort-active{color:var(--accent);font-weight:600}.day-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:4px;max-width:480px}.day-calendar-header{text-align:center;font-size:12px;font-weight:600;color:var(--text-tertiary);padding:4px 0}.day-calendar-cell{position:relative;border:1px solid var(--border);border-radius:6px;background:var(--surface-card);padding:6px 4px;min-height:46px;text-align:center;cursor:pointer;transition:background .1s,border-color .1s}.day-calendar-cell:hover:not(:disabled){background:var(--surface-hover-info);border-color:var(--accent)}.day-calendar-cell:disabled{cursor:default;opacity:.4;background:var(--surface-weekend)}.day-calendar-cell.outside{visibility:hidden}.day-calendar-cell.weekend{background:var(--surface-weekend)}.day-calendar-cell.state-half{background:var(--grid-cell-dirty-bg);border-color:var(--amber)}.day-calendar-cell.state-full{background:var(--day-full-bg);border-color:var(--day-full-border);color:var(--day-full-text)}.day-num{display:block;font-size:14px;font-weight:500}.day-badge{display:inline-block;margin-top:2px;font-size:10px;padding:1px 5px;border-radius:8px;background:#00000014}.sticky-col{position:sticky;left:0;background:var(--panel);z-index:2}.banner{padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}.banner.info{background:var(--banner-info-bg);border:1px solid var(--banner-info-border)}.banner.ok{background:var(--banner-ok-bg);border:1px solid var(--banner-ok-border)}.banner.warn{background:var(--banner-warn-bg);border:1px solid var(--banner-warn-border)}.banner.conflict{background:var(--banner-conflict-bg);border:1px solid var(--banner-conflict-border)}.banner.conflict ul{margin:8px 0;padding-left:20px}.banner.conflict li{font-size:13px}.timeline{list-style:none;padding:0;margin:8px 0;max-width:900px}.timeline>li{border-left:3px solid var(--border);padding:6px 0 10px 16px;margin-left:8px;position:relative}.timeline>li:before{content:"";position:absolute;left:-7px;top:10px;width:11px;height:11px;border-radius:50%;background:var(--muted)}.timeline>li.tl-insert:before{background:var(--green)}.timeline>li.tl-update:before{background:var(--accent)}.timeline>li.tl-delete:before{background:var(--red)}.tl-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:13px}.tl-when{font-variant-numeric:tabular-nums;color:var(--muted)}.tl-target{font-weight:600}.badge.tl-action.insert{background:var(--success-bg);color:var(--green)}.badge.tl-action.update{background:var(--chip-dsi-bg);color:var(--accent)}.badge.tl-action.delete{background:var(--load-cell-red-bg);color:var(--red)}.tl-changes{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--text-body)}.settings-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;max-width:720px}.settings-card h3{margin:0 0 4px;font-size:15px}.settings-card .toolbar input[type=text]{min-width:220px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}table.pivot td,table.pivot th{padding:5px 9px}table.pivot td.editable{cursor:pointer}table.pivot td.editable:hover{background:var(--surface-hover-info);outline:1px solid var(--accent)}.chevron{border:none;background:transparent;cursor:pointer;padding:0 8px 0 0;font-size:12px;color:var(--muted);width:auto}.chevron:hover{color:var(--accent)}tr.team-row.open .sticky-col{font-weight:600}tr.detail-row td{background:var(--surface-detail-row);font-size:12px;color:var(--text-body);padding:3px 9px}tr.detail-row .detail-label{padding-left:26px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr.run-row td{background:var(--surface-alt);color:var(--muted)}.chip{display:inline-block;margin-left:6px;padding:0 7px;border-radius:10px;font-size:10px;background:var(--chip-bg);color:var(--chip-text);vertical-align:middle}.chip-dsi{background:var(--chip-dsi-bg);color:var(--accent)}.cell-btn{background:none;border:0;padding:2px 6px;font:inherit;color:inherit;cursor:pointer;border-radius:4px}.cell-btn:hover{background:var(--surface-hover-info);color:var(--accent)}.cell-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sub-table{width:auto;min-width:480px;background:transparent;font-size:12px}.sub-table th,.sub-table td{padding:3px 10px;border-bottom:1px solid var(--chip-bg);white-space:nowrap}.sub-table th{position:static;background:transparent;cursor:default;font-weight:600}.reason{font-size:13px}.reason-head{margin:0 0 6px}table.pivot tfoot td{border-top:2px solid var(--border);background:var(--table-tfoot-bg)}.pivot .sticky-col,.table-wrap .sticky-col{position:sticky;left:0;background:var(--panel);z-index:2}.legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;font-size:12px}.legend span{padding:3px 9px;border-radius:6px}.chart-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px 4px;margin:10px 0 14px}.chart-card strong{font-size:13px}.gantt{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:auto;max-height:calc(100vh - 240px)}.gantt-head{position:sticky;top:0;z-index:3;background:var(--table-tfoot-bg);border-bottom:1px solid var(--border)}.gantt-head,.gantt-row{display:flex;align-items:stretch}.gantt-label{width:240px;min-width:240px;padding:6px 10px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border);position:sticky;left:0;background:var(--panel);z-index:1}.gantt-head .gantt-label{background:var(--table-tfoot-bg)}.gantt-track{position:relative;flex:1;min-width:700px;height:28px}.gantt-head .gantt-track{height:24px}.gantt-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--gantt-tick-border)}.gantt-tick span{font-size:11px;color:var(--muted);padding-left:4px}.gantt-grid{position:absolute;top:0;bottom:0;border-left:1px solid var(--gantt-grid-border)}.gantt-row:hover{background:var(--gantt-row-hover-bg)}.gantt-bar{position:absolute;top:5px;height:18px;border-radius:5px;display:flex;align-items:center;overflow:hidden;box-shadow:0 1px 2px #00000026}.gantt-bar span{font-size:10px;color:var(--text-on-color);padding:0 6px;white-space:nowrap}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--surface-card);border-radius:12px;padding:24px;min-width:380px;max-width:480px;box-shadow:var(--shadow-lg)}.dialog h2{margin:0 0 12px;font-size:18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.dialog .field{margin-bottom:12px}.dialog .field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.dialog .field input,.dialog .field select{width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;box-sizing:border-box}.dialog p.success{color:var(--green)}.dialog p.muted{font-size:12px;margin:8px 0}.users-page{padding:16px}.users-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.users-page .table{width:100%;border-collapse:collapse}.users-page .table th,.users-page .table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border)}.users-page .table th{background:var(--surface-subtle);font-weight:600;font-size:13px}.users-page .row-inactive{opacity:.5}.users-page .row-actions{display:flex;gap:6px}.users-page .row-actions button{padding:4px 10px;font-size:12px}.facet-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 0 12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.facet-bar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-right:8px}.facet-bar-clear{margin-left:auto;padding:4px 10px;font-size:12px;background:transparent;border:0;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm)}.facet-bar-clear:hover{color:var(--danger);background:var(--danger-bg)}.facet-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);font-size:12px;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.facet-chip:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.facet-chip--active{background:var(--ph-primary-light);border-color:var(--ph-primary-tint);color:var(--ph-primary-active)}.facet-chip-label{font-weight:600}.facet-chip-count{display:inline-flex;align-items:center;padding:0 6px;background:var(--ph-primary);color:var(--text-inverse);border-radius:var(--radius-full);font-size:10px;font-weight:700;min-height:16px;font-variant-numeric:tabular-nums}.facet-chip-clear{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:2px;color:var(--ph-primary-active);border-radius:var(--radius-full);cursor:pointer}.facet-chip-clear:hover{background:var(--ph-primary);color:var(--text-inverse)}.facet-menu{min-width:200px;max-width:320px;max-height:360px;overflow-y:auto;padding:4px}.facet-search{width:100%;padding:6px 8px;margin-bottom:4px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-size:13px;position:sticky;top:0;z-index:1}.facet-search:focus{outline:none;border-color:var(--ph-primary)}.facet-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-primary);text-align:left;transition:background var(--duration-instant) var(--ease-out)}.facet-option:hover{background:var(--surface-subtle)}.facet-option--active{background:var(--ph-primary-light);font-weight:500}.facet-check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-xs);border:1.5px solid var(--border-strong);color:var(--ph-primary);flex-shrink:0}.facet-option--active .facet-check{background:var(--ph-primary);border-color:var(--ph-primary);color:var(--text-inverse)}.facet-option-label{flex:1}.facet-empty{padding:12px;text-align:center;color:var(--text-tertiary);font-size:12px;margin:0}.facet-bulk-actions{padding:4px 8px 6px;margin-bottom:4px;border-bottom:1px solid var(--border-subtle)}.facet-bulk-btn{width:100%;padding:4px 6px;background:transparent;border:0;font-size:11px;font-weight:500;color:var(--ph-primary);cursor:pointer;text-align:left;border-radius:4px;transition:background var(--duration-instant) var(--ease-out)}.facet-bulk-btn:hover{background:var(--surface-subtle)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;background:var(--surface-subtle);border:1px dashed var(--border-default);border-radius:var(--radius-lg);margin:20px 0}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-full);background:var(--ph-primary-light);color:var(--ph-primary);margin-bottom:16px}.empty-state-title{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--text-primary)}.empty-state-message{margin:0 0 16px;font-size:13px;color:var(--text-secondary);max-width:400px}.ui-input,.ui-select,.ui-textarea{width:100%;padding:7px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font:inherit;font-size:13px;line-height:1.4;box-sizing:border-box;transition:border-color var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out)}.ui-input:hover:not(:disabled),.ui-select:hover:not(:disabled),.ui-textarea:hover:not(:disabled){border-color:var(--border-strong)}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--ph-primary);outline:none;box-shadow:0 0 0 3px var(--ph-primary-light)}.ui-input:disabled,.ui-select:disabled,.ui-textarea:disabled{background:var(--surface-subtle);color:var(--text-tertiary);cursor:not-allowed}.ui-input[readonly],.ui-textarea[readonly]{background:var(--surface-subtle);cursor:default}.ui-input--sm{padding:4px 8px;font-size:12px}.ui-input--error{border-color:var(--danger)}.ui-input--error:focus{box-shadow:0 0 0 3px #dc262626}.ui-textarea{min-height:60px;resize:vertical}.ui-field{display:flex;flex-direction:column;gap:4px}.ui-field--full{grid-column:1 / -1}.ui-field-label{font-size:12px;font-weight:500;color:var(--text-secondary);letter-spacing:.005em}.ui-field-required{color:var(--danger);font-weight:700}.ui-field-hint{margin:0;font-size:11px;color:var(--text-tertiary);line-height:1.4}.ui-field-error{margin:0;font-size:11px;font-weight:500;color:var(--danger);line-height:1.4;display:inline-flex;align-items:center;gap:4px}.ui-field-error:before{content:"âš ";font-size:11px}.ui-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none;transition:box-shadow var(--duration-fast) var(--ease-out)}.ui-card:hover{box-shadow:var(--shadow-sm)}.ui-card--compact{padding:12px 14px}.ui-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ui-card-title{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--ph-dark-teal);letter-spacing:-.005em}.ui-card-subtitle{margin:0;font-size:12px;color:var(--text-tertiary)}.ui-card-actions{display:flex;gap:8px;flex-shrink:0}.ui-card-body{font-size:13px;line-height:1.55;color:var(--text-primary)}.ui-spinner{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px}.ui-spinner--block{display:flex;justify-content:center;padding:32px 16px}.ui-spinner-dot{display:inline-block;width:14px;height:14px;border:2px solid var(--ph-primary-tint);border-top-color:var(--ph-primary);border-radius:50%;animation:ui-spin .8s linear infinite}.ui-spinner--sm .ui-spinner-dot{width:10px;height:10px;border-width:1.5px}.ui-spinner-label{color:var(--text-secondary)}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-spinner-dot{animation:none;border-top-color:var(--ph-primary-tint)}}.ui-success-message{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 12px;background:var(--ph-primary-light);color:var(--ph-dark-teal);border-radius:var(--radius-md);font-size:13px;font-weight:500}button.btn-sm{padding:4px 10px;font-size:12px}button.btn-lg{padding:10px 18px;font-size:14px}button.danger-solid{background:var(--danger);color:var(--text-inverse);border-color:var(--danger);box-shadow:var(--shadow-xs)}button.danger-solid:hover:not(:disabled){background:var(--danger-solid);border-color:var(--danger-solid);box-shadow:var(--shadow-sm)}button.danger-solid:active:not(:disabled){background:var(--danger-solid-active)}button.is-loading{opacity:.7;cursor:progress}button.is-loading .btn-spinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){button.is-loading .btn-spinner{animation:none}}.ui-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:#14182180;display:flex;align-items:center;justify-content:center;padding:20px;animation:ui-modal-fade .12s var(--ease-out)}.ui-modal{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:ui-modal-scale .14s var(--ease-out)}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--border-subtle)}.ui-modal-title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary);line-height:1.3}.ui-modal-close{color:var(--text-tertiary)}.ui-modal-close:hover{color:var(--text-primary)}.ui-modal-body{padding:16px 20px;overflow-y:auto;color:var(--text-primary);font-size:13px;line-height:1.5}.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-subtle);background:var(--surface-subtle)}.ui-confirm-message{margin:0;color:var(--text-secondary);font-size:13px}@keyframes ui-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-scale{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.ui-modal-overlay,.ui-modal{animation:none}}@media (max-width: 1440px){.tabs a span:not(.badge),.tabs .menu-trigger.tab-trigger span:not(.badge){display:none}.tabs a,.tabs .menu-trigger.tab-trigger{padding:8px 10px}.user-email{max-width:140px}.brand-tagline{display:none}main{padding:16px 20px}}@media (max-width: 1280px){.topbar{gap:12px;padding:8px 16px}.brand-text,.window-picker-label{display:none}.window-picker-range{font-size:11px}.topbar-right{gap:8px}}@media (max-width: 1024px){.topbar{flex-wrap:wrap;row-gap:8px}.tabs{order:3;width:100%;overflow-x:auto;scrollbar-width:thin}.topbar-right{order:2}main{padding:12px 14px}.modal{width:96vw;padding:16px}.form-grid{grid-template-columns:1fr}.page-hero{padding:12px 14px}}@media (max-width: 800px){.toolbar{flex-direction:column;align-items:stretch}.toolbar input[type=search]{min-width:0;width:100%}.app-footer{font-size:11px;padding:8px 12px;text-align:center}}.welcome-bullets{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}.welcome-bullets>li{position:relative;padding:8px 12px 8px 36px;background:var(--ph-primary-light);border-radius:var(--radius-md);color:var(--text-primary);line-height:1.45;font-size:13px}.welcome-bullets>li:before{content:"";position:absolute;left:12px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--ph-primary)}.welcome-footnote{margin:0;color:var(--text-tertiary);font-size:12px}.help-page{max-width:960px;margin:0 auto}.help-page .page-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.help-page .page-title{display:inline-flex;align-items:center;gap:8px}.help-hero-actions{display:flex;gap:8px;align-items:center}.help-sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin:20px 0}.help-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none}.help-card-title{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--ph-dark-teal);letter-spacing:-.005em}.help-card-body{font-size:13px;line-height:1.55;color:var(--text-primary)}.help-card-body p{margin:0 0 10px}.help-card-body p:last-child{margin:0}.help-card-body ul{margin:0 0 10px;padding-left:20px}.help-card-body ul li{margin-bottom:4px}.help-card-body strong{color:var(--ph-dark-teal)}.help-tours{background:var(--surface-subtle);border-radius:var(--radius-lg);padding:16px 20px;margin:20px 0}.help-section-title{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--text-primary)}.help-section-lead{margin:0 0 12px;font-size:12px;color:var(--text-tertiary)}.help-tour-list{display:flex;flex-wrap:wrap;gap:8px}.help-faq{margin:20px 0 32px}.faq-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.faq-item{border-bottom:1px solid var(--border-subtle)}.faq-item:last-child{border-bottom:0}.faq-question{display:flex;align-items:center;gap:8px;width:100%;padding:10px 4px;border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:500;text-align:left;color:var(--text-primary);transition:color var(--duration-instant) var(--ease-out)}.faq-question:hover{color:var(--ph-dark-teal)}.faq-answer{padding:4px 24px 12px;font-size:13px;line-height:1.55;color:var(--text-secondary)}.faq-answer p{margin:0 0 6px}.faq-answer p:last-child{margin:0}.faq-answer strong{color:var(--ph-dark-teal)}.shepherd-modal-overlay-container{z-index:100}.shepherd-modal-overlay-container path{fill:#1418218c}.shepherd-element{background:var(--surface-card);color:var(--text-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:380px;min-width:260px;z-index:110;border:1px solid var(--border-default)}.shepherd-element .shepherd-arrow:before{background:var(--surface-card);border:1px solid var(--border-default)}.shepherd-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;border-bottom:1px solid var(--border-subtle);background:transparent;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.shepherd-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.3}.shepherd-title .tour-progress{display:inline-block;margin-right:8px;padding:2px 6px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;background:var(--ph-primary-light);color:var(--ph-dark-teal)}.shepherd-cancel-icon{background:transparent;border:0;cursor:pointer;color:var(--text-tertiary);font-size:18px;line-height:1;padding:4px 6px;border-radius:var(--radius-sm);transition:color var(--duration-instant) var(--ease-out)}.shepherd-cancel-icon:hover{color:var(--text-primary);background:var(--surface-subtle)}.shepherd-text{padding:12px 16px;font-size:13px;line-height:1.5;color:var(--text-primary)}.shepherd-text p{margin:0 0 8px}.shepherd-text p:last-child{margin:0}.shepherd-text strong{color:var(--ph-dark-teal)}.shepherd-footer{display:flex;justify-content:flex-end;gap:8px;padding:8px 16px 14px}.shepherd-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);border:1px solid var(--ph-primary);background:var(--ph-primary);color:var(--text-inverse);cursor:pointer;font:inherit;font-size:12px;font-weight:500;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.shepherd-button:hover{background:var(--ph-primary-hover);border-color:var(--ph-primary-hover)}.shepherd-button.shepherd-button-secondary{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-default)}.shepherd-button.shepherd-button-secondary:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.shepherd-has-cancel-icon .shepherd-content{display:flex;flex-direction:column}.shepherd-target-click-disabled{pointer-events:none}@media (prefers-reduced-motion: reduce){.shepherd-element,.shepherd-modal-overlay-container{animation:none!important;transition:none!important}}@media (max-width: 1023px){.help-page .page-title span:last-child{font-size:18px}}.skeleton{display:block;background:linear-gradient(90deg,var(--surface-subtle) 0%,var(--surface-muted) 50%,var(--surface-subtle) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.4s ease-in-out infinite;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.skeleton--text{height:1em;margin:4px 0;border-radius:4px}.skeleton--title{height:1.6em;width:40%;border-radius:var(--radius-sm)}.skeleton--line{height:12px;border-radius:4px}.skeleton--cell{height:20px;width:100%;border-radius:4px}.skeleton--circle{border-radius:50%;aspect-ratio:1}.skeleton--card{height:96px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.skeleton-row{display:flex;gap:12px;align-items:center;padding:6px 0}.skeleton-row>.skeleton{flex:1}.skeleton-table{display:flex;flex-direction:column;gap:6px;padding:8px 4px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:var(--surface-subtle)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes flash-save{0%{background-color:#d9770652}40%{background-color:#d9770633}to{background-color:transparent}}.fade-in{animation:fade-in var(--duration-normal) var(--ease-out) both}.fade-in-up{animation:fade-in-up var(--duration-normal) var(--ease-out) both}.flash-save{animation:flash-save .9s ease-out both}.fade-rows>tr{animation:fade-in-up var(--duration-normal) var(--ease-out) both}.fade-rows>tr:nth-child(1){animation-delay:0ms}.fade-rows>tr:nth-child(2){animation-delay:15ms}.fade-rows>tr:nth-child(3){animation-delay:30ms}.fade-rows>tr:nth-child(4){animation-delay:45ms}.fade-rows>tr:nth-child(5){animation-delay:60ms}.fade-rows>tr:nth-child(6){animation-delay:75ms}.fade-rows>tr:nth-child(7){animation-delay:90ms}.fade-rows>tr:nth-child(8){animation-delay:105ms}.fade-rows>tr:nth-child(9){animation-delay:.12s}.fade-rows>tr:nth-child(10){animation-delay:135ms}.fade-rows>tr:nth-child(n+11){animation-delay:.15s}@media (prefers-reduced-motion: reduce){.fade-rows>tr,.fade-in,.fade-in-up,.flash-save{animation:none}}.drill-chevron{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-out),color var(--duration-instant) var(--ease-out);cursor:pointer;border:0;background:transparent;padding:0}.drill-chevron:hover{color:var(--ph-primary)}.drill-chevron[aria-expanded=true]{transform:rotate(90deg);color:var(--ph-primary)}@media (prefers-reduced-motion: reduce){.drill-chevron{transition:none}}table.pivot tbody tr{transition:background var(--duration-instant) var(--ease-out)}table.pivot tbody tr:hover{background:var(--surface-subtle)}.grid-cell-editable{position:relative;transition:background var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out)}.grid-cell-editable:hover{background:var(--ph-primary-light);box-shadow:inset 0 0 0 1px var(--ph-primary-tint);cursor:pointer}.grid-cell-editable:focus-visible{outline:2px solid var(--ph-primary);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--ph-primary)}button.primary,.btn-primary{transition:background var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out),transform var(--duration-instant) var(--ease-out)}button.primary:hover:not(:disabled),.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-1px)}button.primary:active:not(:disabled),.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:none}@media (prefers-reduced-motion: reduce){button.primary,.btn-primary{transform:none!important}}.page-hero{animation:fade-in-up var(--duration-normal) var(--ease-out) both}@media (prefers-reduced-motion: reduce){.page-hero{animation:none}}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:16px 0 20px}.kpi-card{position:relative;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none;overflow:hidden;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-instant) var(--ease-out);animation:fade-in-up var(--duration-normal) var(--ease-out) both}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--border-default)}.kpi-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.kpi-card-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-tertiary);background:transparent}.kpi-card--success .kpi-card-icon{color:var(--success);background:transparent}.kpi-card--warning .kpi-card-icon{color:var(--warning);background:transparent}.kpi-card--danger .kpi-card-icon{color:var(--danger);background:transparent}.kpi-card--info .kpi-card-icon{color:var(--info);background:transparent}.kpi-card--neutral .kpi-card-icon{color:var(--text-tertiary);background:transparent}.kpi-card-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.kpi-card-value{font-size:44px;font-weight:600;color:var(--text-primary);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.kpi-card-delta{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:12px;font-weight:500;color:var(--text-secondary)}.kpi-card-delta--up{color:var(--success)}.kpi-card-delta--down{color:var(--danger)}.kpi-card-hint{margin-top:10px;font-size:12px;color:var(--text-tertiary);line-height:1.4}.chip-semantic{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 6px;border-radius:var(--radius-full);font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap;vertical-align:middle}.chip-semantic:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.chip-semantic--success{background:var(--success-bg);color:var(--success);border-color:#05966933}.chip-semantic--warning{background:var(--warning-bg);color:var(--warning);border-color:#d9770633}.chip-semantic--danger{background:var(--danger-bg);color:var(--danger);border-color:#dc262633}.chip-semantic--info{background:var(--info-bg);color:var(--info);border-color:#2563eb33}.chip-semantic--brand{background:var(--ph-primary-light);color:var(--ph-primary-active);border-color:#00b38833}.chip-semantic--neutral{background:var(--surface-muted);color:var(--text-secondary);border-color:var(--border-default)}td.heat-blue{background:#60a5fa!important;color:#fff!important;font-weight:600}td.heat-green{background:#10b981!important;color:#fff!important;font-weight:600}td.heat-amber{background:#f59e0b!important;color:#fff!important;font-weight:600}td.heat-red{background:#ef4444!important;color:#fff!important;font-weight:700}td.heat-crit{background:repeating-linear-gradient(45deg,#b91c1c,#b91c1c 6px,#991b1b 6px,#991b1b 12px)!important;color:#fff!important;font-weight:700}td.heat-empty{background:transparent!important;color:var(--text-tertiary)!important}.pivot-heatmap tbody td.heat-blue,.pivot-heatmap tbody td.heat-green,.pivot-heatmap tbody td.heat-amber,.pivot-heatmap tbody td.heat-red{text-align:right}button.primary:not(:disabled),.btn-primary:not(:disabled),.ui-btn--primary:not(:disabled){background:linear-gradient(135deg,var(--ph-primary) 0%,var(--ph-primary-active) 100%);color:var(--text-inverse);border:0;box-shadow:0 1px 3px #00896a33,0 1px 2px #00896a1f}button.primary:hover:not(:disabled),.btn-primary:hover:not(:disabled),.ui-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--ph-primary-hover) 0%,var(--ph-primary-active) 100%);box-shadow:0 4px 12px #00896a47,0 2px 4px #00896a24}button.primary:active:not(:disabled),.btn-primary:active:not(:disabled),.ui-btn--primary:active:not(:disabled){background:var(--ph-primary-active);box-shadow:none;transform:scale(.97);transition:transform 60ms ease-out,background var(--duration-instant),box-shadow var(--duration-instant)}button.primary:not(:disabled),.btn-primary:not(:disabled),.ui-btn--primary:not(:disabled){transition:transform .25s cubic-bezier(.34,1.56,.64,1),background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media (prefers-reduced-motion: reduce){button.primary:active:not(:disabled),.btn-primary:active:not(:disabled),.ui-btn--primary:active:not(:disabled){transform:none;opacity:.85}button.primary:not(:disabled),.btn-primary:not(:disabled),.ui-btn--primary:not(:disabled){transition:none}}.table-wrap{position:relative}.table-wrap table thead th{position:sticky;top:0;background:var(--surface-card);border-bottom:2px solid var(--border-default);z-index:2;box-shadow:0 1px 0 var(--border-default)}.table-wrap table thead th.sticky-col{z-index:3}.sparkline{display:inline-block;vertical-align:middle;margin-left:8px;height:20px;width:60px}.sparkline path{fill:none;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.sparkline--up path{stroke:var(--success)}.sparkline--down path{stroke:var(--danger)}.sparkline--flat path{stroke:var(--text-tertiary)}.sparkline--brand path{stroke:var(--ph-primary)}.sparkline-wrap{position:relative;display:inline-block}.sparkline-hover-dot{fill:var(--ph-primary);stroke:var(--surface-card);stroke-width:1}.hover-tooltip-panel{position:fixed;z-index:var(--z-modal);padding:6px 10px;max-width:260px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:12px;line-height:1.4;color:var(--text-primary);pointer-events:none;animation:menu-in var(--duration-fast) var(--ease-out)}.sparkline-tooltip{font-weight:600;white-space:nowrap}.home-page{animation:fade-in var(--duration-normal) var(--ease-out) both}.home-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.home-greeting-eyebrow{font-size:12px;font-weight:600;color:var(--ph-primary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px}.home-greeting-title{margin:0;font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.home-greeting-sub{margin:6px 0 0;font-size:13px;color:var(--text-secondary)}.home-section{margin-bottom:24px}.home-section-title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.home-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 900px){.home-grid-2{grid-template-columns:1fr}}.my-day-widget{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;margin-bottom:24px;box-shadow:none}.my-day-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.my-day-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.my-day-sub{margin:2px 0 0;font-size:13px;color:var(--text-secondary)}.my-day-resource-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:var(--ph-primary-light);color:var(--ph-dark-teal);font-size:12px;font-weight:500}.my-day-quote-inline{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.my-day-quote-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:color var(--duration-instant) var(--ease-out)}.my-day-quote-btn:hover:not(:disabled){color:var(--ph-primary)}.my-day-quote-text{font-size:13px;font-style:italic;color:var(--text-secondary)}.my-day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 1024px){.my-day-grid{grid-template-columns:1fr}}.my-day-tile{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:background var(--duration-instant) var(--ease-out)}.my-day-tile-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-tertiary);flex-shrink:0}.my-day-tile-body{flex:1;min-width:0}.my-day-tile-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.my-day-tile-comment{margin:4px 0 6px;font-size:12px;color:var(--text-tertiary);font-style:italic}.my-day-tile-value{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.1}.my-day-status{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.my-day-status--present{background:var(--success-bg);color:var(--success)}.my-day-status--partial{background:var(--warning-bg);color:var(--warning)}.my-day-status--absent{background:var(--danger-bg);color:var(--danger)}.my-day-list{list-style:none;padding:0;margin:4px 0;display:flex;flex-direction:column;gap:4px}.my-day-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.my-day-list li .btn-link{color:var(--text-primary);text-align:left;padding:2px 0;border:0;background:transparent;cursor:pointer;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.my-day-list li .btn-link:hover{color:var(--ph-primary);text-decoration:underline}.my-day-list-value{font-size:12px;font-weight:600;color:var(--text-secondary)}.my-day-deadline{padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600}.my-day-deadline--urgent{background:var(--danger-bg);color:var(--danger)}.my-day-deadline--warn{background:var(--warning-bg);color:var(--warning)}.my-day-deadline--ok{background:var(--success-bg);color:var(--success)}.my-day-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--surface-subtle);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);text-align:center}.my-day-empty p{margin:0;font-size:13px;color:var(--text-secondary);max-width:40ch}.my-day-admin{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 640px){.my-day-admin{grid-template-columns:1fr}}.my-day-tile--admin{cursor:pointer;align-items:center}.my-day-tile--admin:hover{background:var(--ph-primary-light)}.my-day-tile-arrow{margin-left:auto;color:var(--text-tertiary)}.my-day-hint{grid-column:1 / -1;padding:10px 12px;background:var(--info-bg);border-left:3px solid var(--info);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:12px;color:var(--text-secondary)}.my-day-hint code{font-size:11px}.my-day-admin-row{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.my-day-mini-tile{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-instant) var(--ease-out)}.my-day-mini-tile:hover{background:var(--ph-primary-light);color:var(--ph-dark-teal);border-color:var(--ph-primary-tint)}.home-list-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none}.home-list-card-title{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--ph-dark-teal);display:flex;align-items:center;gap:6px}.home-list-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle);gap:12px;font-size:13px}.home-list-row:last-child{border-bottom:0}.home-list-row-label{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.home-list-row-meta{font-size:12px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.home-actions{display:flex;flex-wrap:wrap;gap:8px}.home-action-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out),transform var(--duration-instant) var(--ease-out);text-decoration:none}.home-action-btn:hover{background:var(--surface-subtle);border-color:var(--ph-primary-tint);transform:translateY(-1px);text-decoration:none}.home-action-btn svg{color:var(--ph-primary)}.home-action-btn--highlight{background:var(--ph-primary-light);border-color:var(--ph-primary-tint)}.home-action-btn--highlight:hover{background:var(--ph-primary-tint);border-color:var(--ph-primary)}html[data-theme=dark]{color-scheme:dark;--surface-page: #0F1419;--surface-card: #1A2027;--surface-subtle: #232A33;--surface-muted: #2B3340;--sidebar-bg: #131920;--sidebar-bg-active: #232A33;--border-subtle: #232A33;--border-default: #313A48;--border-strong: #475060;--text-primary: #E8EBF0;--text-secondary: #C4CAD3;--text-tertiary: #909AA8;--text-disabled: #616B7A;--text-inverse: #1A2027;--ph-primary: #22D9A6;--ph-primary-hover: #1CC996;--ph-primary-active: #16B385;--ph-primary-light: #163830;--ph-primary-tint: #1F5049;--ph-dark-teal: #22D9A6;--ph-corporate-grey: #7A8593;--success: #34D399;--success-bg: #0F2A22;--warning: #FBBF24;--warning-bg: #2A200F;--danger: #F87171;--danger-bg: #2A1616;--info: #60A5FA;--info-bg: #10222D;--error-bg: var(--danger-bg);--error-border: #7F1D1D;--table-row-hover-bg: #1F5049;--table-row-error-hover-bg: #3A1F1F;--grid-cell-dirty-bg: #3A2F0F;--grid-cell-pool-empty-bg: #3A1616;--grid-cell-pool-empty-border: #7F1D1D;--grid-cell-pool-empty-text: #FCA5A5;--banner-warn-bg: #2A200F;--banner-warn-border: #7C5B14;--table-tfoot-bg: #232A33;--status-border-success: rgba(52,211,153,.4);--status-border-warning: rgba(251,191,36,.4);--status-border-danger: rgba(248,113,113,.4);--status-border-info: rgba(96,165,250,.4);--banner-info-bg: #10222D;--banner-info-border: #1F3A5F;--banner-ok-bg: #0F2A22;--banner-ok-border: #1F5049;--banner-conflict-bg: #2A1616;--banner-conflict-border: #7F1D1D;--chip-bg: #2B3340;--chip-text: #C4CAD3;--chip-dsi-bg: #1E3A5F;--load-cell-blue-bg: #10222D;--load-cell-blue-fg: #60A5FA;--load-cell-green-bg: #0F2A22;--load-cell-green-fg: #34D399;--load-cell-amber-bg: #2A200F;--load-cell-amber-fg: #FBBF24;--load-cell-red-bg: #2A1616;--load-cell-red-fg: #F87171;--load-cell-crit-bg: repeating-linear-gradient(45deg, #7F1D1D, #7F1D1D 4px, #5A0F0F 4px, #5A0F0F 8px);--load-cell-crit-fg: #FCA5A5;--indispo-hint-bg: #3A2F0F;--derived-text: #616B7A;--separator-row-border: #313A48;--grid-cell-stale-bg: #3E2A0F;--grid-cell-stale-border: #C57A15;--day-full-bg: #3A2010;--day-full-border: #C57A15;--day-full-text: #FDBA74;--gantt-tick-border: #313A48;--gantt-grid-border: #232A33;--gantt-row-hover-bg: #1F5049;--surface-hover-info: #1B2A3D;--surface-detail-row: #232A33;--surface-weekend: #232A33;--text-body: #C4CAD3;--text-on-color: #FFFFFF;--danger-solid: #C42D2D;--danger-solid-active: #991B1B;--chart-capacity-fill: #1E3A5F;--chart-charge-fill: #60A5FA;--chart-rate-stroke: #F87171;--chart-unassigned-fill: #D9A441;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45), 0 4px 8px rgba(0, 0, 0, .3);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .5), 0 10px 16px rgba(0, 0, 0, .35)}@media (prefers-color-scheme: dark){html:not([data-theme]){color-scheme:dark;--surface-page: #0F1419;--surface-card: #1A2027;--surface-subtle: #232A33;--surface-muted: #2B3340;--sidebar-bg: #131920;--sidebar-bg-active: #232A33;--border-subtle: #232A33;--border-default: #313A48;--border-strong: #475060;--text-primary: #E8EBF0;--text-secondary: #C4CAD3;--text-tertiary: #909AA8;--text-disabled: #616B7A;--text-inverse: #1A2027;--ph-primary: #22D9A6;--ph-primary-hover: #1CC996;--ph-primary-active: #16B385;--ph-primary-light: #163830;--ph-primary-tint: #1F5049;--ph-dark-teal: #22D9A6;--success: #34D399;--success-bg: #0F2A22;--warning: #FBBF24;--warning-bg: #2A200F;--danger: #F87171;--danger-bg: #2A1616;--info: #60A5FA;--info-bg: #10222D}}html[data-theme=dark] td.heat-blue{background:#3b82f6!important}html[data-theme=dark] td.heat-green{background:#059669!important}html[data-theme=dark] td.heat-amber{background:#d97706!important}html[data-theme=dark] td.heat-red{background:#dc2626!important}html[data-theme=dark] td.heat-crit{background:repeating-linear-gradient(45deg,#991b1b,#991b1b 6px,#7f1d1d 6px,#7f1d1d 12px)!important}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.theme-toggle:hover{background:var(--surface-subtle);border-color:var(--ph-primary-tint);color:var(--ph-primary);transform:rotate(20deg)}.theme-toggle:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){.theme-toggle:hover{transform:none}}.alerts-bell-trigger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.alerts-bell-trigger:hover{background:var(--surface-subtle);color:var(--ph-primary)}.alerts-bell-trigger:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.alerts-bell{position:relative;display:inline-flex}.alerts-bell-badge{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;background:var(--danger-solid);color:var(--text-on-color);font-size:10px;font-weight:700;line-height:1;border-radius:var(--radius-full);border:1.5px solid var(--surface-card)}.alerts-panel{min-width:260px;max-width:320px}.alerts-panel-head{padding:6px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.alerts-panel-empty{padding:6px 8px;font-size:13px}.alerts-panel-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:13px;color:var(--text-primary)}.alerts-panel-item:hover{background:var(--surface-subtle)}.alerts-panel-item[data-seen=true]{opacity:.55}.alerts-panel-team{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alerts-panel-month{color:var(--text-tertiary);font-size:12px}html{transition:background-color var(--duration-normal) var(--ease-out)}body{transition:background-color var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out)}@media (prefers-reduced-motion: reduce){html,body{transition:none}}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f14198c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;animation:fade-in var(--duration-fast) var(--ease-out) both}.cmdk-dialog{width:min(640px,92vw);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:fade-in-up var(--duration-normal) var(--ease-out) both}.cmdk-input-wrap{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.cmdk-input-wrap svg{color:var(--text-tertiary);flex-shrink:0}.cmdk-input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--text-primary)}.cmdk-input::placeholder{color:var(--text-tertiary)}.cmdk-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-tertiary);font-size:10px;font-weight:600;font-family:ui-monospace,Cascadia Mono,Menlo,monospace}.cmdk-body{max-height:60vh;overflow-y:auto;padding:6px 0}.cmdk-empty{padding:24px 16px;text-align:center;color:var(--text-tertiary);font-size:13px}.cmdk-group{padding:4px 0;border-top:1px solid var(--border-subtle)}.cmdk-group:first-child{border-top:0}.cmdk-group-title{padding:6px 16px 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.cmdk-item{display:flex;align-items:center;gap:10px;padding:8px 16px;border:0;background:transparent;width:100%;cursor:pointer;font:inherit;font-size:13px;color:var(--text-primary);text-align:left;text-decoration:none;transition:background var(--duration-instant) var(--ease-out)}.cmdk-item:hover,.cmdk-item[data-selected=true]{background:var(--ph-primary-light);color:var(--ph-primary-active)}.cmdk-item-icon{color:var(--text-tertiary);flex-shrink:0}.cmdk-item[data-selected=true] .cmdk-item-icon,.cmdk-item:hover .cmdk-item-icon{color:var(--ph-primary)}.cmdk-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-item-hint{font-size:11px;color:var(--text-tertiary);flex-shrink:0}.cmdk-item-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:9px;background:var(--accent-bg, var(--surface-muted));color:var(--accent, var(--text-secondary));flex-shrink:0;letter-spacing:.02em;text-transform:uppercase;animation:cmdk-badge-pulse 2s ease-in-out infinite}@keyframes cmdk-badge-pulse{0%,to{opacity:1}50%{opacity:.65}}@media (prefers-reduced-motion: reduce){.cmdk-item-badge{animation:none}}.cmdk-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-top:1px solid var(--border-subtle);background:var(--surface-subtle);font-size:11px;color:var(--text-tertiary)}.cmdk-footer-hint{display:inline-flex;align-items:center;gap:4px}.app-shell{display:grid;grid-template-columns:var(--sidebar-width, 240px) 1fr;min-height:100vh;transition:grid-template-columns var(--duration-normal) var(--ease-out)}.app-shell[data-sidebar-collapsed=true]{--sidebar-width: 56px}.app-shell[data-sidebar-mobile=true]{grid-template-columns:1fr}.app-main{display:flex;flex-direction:column;min-width:0;min-height:100vh}.app-content{flex:1;padding:20px 24px;min-width:0;max-width:100%}@media (max-width: 1023px){.app-content{padding:16px 20px}}@media (max-width: 640px){.app-content{padding:12px;overflow-x:hidden}}.impersonation-banner{position:sticky;top:0;z-index:var(--z-toast, 90);display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--warning-bg);color:var(--warning);border-top:2px solid var(--danger);border-bottom:1px solid color-mix(in srgb,var(--warning) 30%,transparent);font-size:13px;font-weight:500;box-shadow:0 1px 3px color-mix(in srgb,var(--warning) 20%,transparent)}.impersonation-banner-icon{flex-shrink:0;color:var(--danger)}.impersonation-banner-text{flex:1;min-width:0}.impersonation-banner-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface-card);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-md);font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;transition:background var(--duration-instant) var(--ease-out)}.impersonation-banner-btn:hover:not(:disabled){background:var(--danger);color:var(--surface-card)}.impersonation-banner-btn:disabled{opacity:.6;cursor:wait}@media (max-width: 640px){.impersonation-banner{flex-wrap:wrap;padding:8px 12px;font-size:12px}.impersonation-banner-btn{font-size:11px;padding:5px 10px}}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--border-default);box-shadow:inset -1px 0 #0f141908;display:flex;flex-direction:column;overflow:hidden;z-index:var(--z-sticky)}.sidebar-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle);min-height:60px;overflow:hidden;text-decoration:none;color:inherit;transition:background var(--duration-instant) var(--ease-out)}.sidebar-header:hover{background:#00b3880f;text-decoration:none}.sidebar-header:focus-visible{outline:2px solid var(--ph-primary);outline-offset:-2px}.sidebar-brand-logo{height:26px;width:auto;flex-shrink:0}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.15;overflow:hidden;transition:opacity var(--duration-fast) var(--ease-out),width var(--duration-fast) var(--ease-out)}.sidebar-brand-title{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap}.sidebar-brand-tagline{font-size:11px;color:var(--text-tertiary);white-space:nowrap}.app-shell[data-sidebar-collapsed=true] .sidebar-brand-text{opacity:0;width:0}.app-shell[data-sidebar-collapsed=true] .sidebar-header{padding:14px 12px;justify-content:center}.sidebar-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 8px 12px;scrollbar-width:thin}.sidebar-body::-webkit-scrollbar{width:6px}.sidebar-body::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.sidebar-section{padding:4px 0;margin-top:6px}.sidebar-section-title{padding:6px 12px 4px;font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;transition:opacity var(--duration-fast) var(--ease-out)}.app-shell[data-sidebar-collapsed=true] .sidebar-section-title{opacity:0;height:0;padding:0;margin:0;overflow:hidden}.sidebar-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border:0;background:transparent;border-radius:var(--radius-md);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out);white-space:nowrap;overflow:hidden;position:relative}.sidebar-link:hover{background:var(--surface-subtle);color:var(--text-primary);text-decoration:none}.sidebar-link:hover svg{transform:translateY(-1px) scale(1.08)}.sidebar-link svg{transition:transform .12s var(--ease-out)}.sidebar-link:focus-visible{outline:2px solid var(--ph-primary);outline-offset:-2px}.sidebar-link.active{background:var(--ph-primary-light);color:var(--ph-dark-teal);font-weight:600}.sidebar-link.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--ph-primary);border-radius:0 3px 3px 0;transform-origin:center;animation:sidebar-active-in .18s var(--ease-out)}@keyframes sidebar-active-in{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@media (prefers-reduced-motion: reduce){.sidebar-link:hover svg{transform:none}.sidebar-link.active:before{animation:none}}.sidebar-link svg{flex-shrink:0}.sidebar-link-label{overflow:hidden;text-overflow:ellipsis;transition:opacity var(--duration-fast) var(--ease-out)}.app-shell[data-sidebar-collapsed=true] .sidebar-link-label{opacity:0;width:0}.app-shell[data-sidebar-collapsed=true] .sidebar-link{justify-content:center;padding:10px 8px}.app-shell[data-sidebar-collapsed=true] .sidebar-link.active:before{display:none}.app-shell[data-sidebar-collapsed=true] .sidebar-link[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--text-primary);color:var(--surface-card);padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;white-space:nowrap;z-index:var(--z-toast);pointer-events:none;box-shadow:var(--shadow-md)}.sidebar-footer{padding:8px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.sidebar-toggle{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;border:0;background:transparent;border-radius:var(--radius-md);color:var(--text-tertiary);cursor:pointer;font:inherit;font-size:12px;transition:background var(--duration-instant) var(--ease-out)}.sidebar-toggle:hover{background:var(--surface-subtle);color:var(--text-primary)}.sidebar-toggle-label{transition:opacity var(--duration-fast) var(--ease-out)}.app-shell[data-sidebar-collapsed=true] .sidebar-toggle-label{opacity:0;width:0;overflow:hidden}.sidebar-version{text-align:center;font-size:10px;color:var(--text-tertiary);padding:2px 4px 0;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.sidebar-link-badge{margin-left:auto;min-width:20px;height:18px;padding:0 6px;background:var(--surface-muted);color:var(--text-tertiary);border-radius:9px;font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;transition:opacity var(--duration-fast) var(--ease-out)}.app-shell[data-sidebar-collapsed=true] .sidebar-link-badge{opacity:0;width:0;overflow:hidden;padding:0}@media (max-width: 1023px){.app-shell:not([data-sidebar-mobile-open=true]) .sidebar{transform:translate(-100%);position:fixed;top:0;left:0;bottom:0;width:260px;transition:transform var(--duration-normal) var(--ease-out);z-index:var(--z-modal)}.app-shell[data-sidebar-mobile-open=true] .sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;transform:translate(0);box-shadow:var(--shadow-xl);z-index:var(--z-modal);transition:transform var(--duration-normal) var(--ease-out)}.app-shell{grid-template-columns:1fr}.app-shell[data-sidebar-mobile-open=true]:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0f14198c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-overlay);animation:fade-in var(--duration-fast) var(--ease-out)}.app-shell[data-sidebar-collapsed=true] .sidebar-brand-text,.app-shell[data-sidebar-collapsed=true] .sidebar-section-title,.app-shell[data-sidebar-collapsed=true] .sidebar-link-label,.app-shell[data-sidebar-collapsed=true] .sidebar-toggle-label,.app-shell[data-sidebar-collapsed=true] .sidebar-link-badge{opacity:1;width:auto;height:auto;padding:revert;margin:revert;overflow:visible}.app-shell[data-sidebar-collapsed=true] .sidebar-section-title{padding:6px 12px 4px;height:auto}.app-shell[data-sidebar-collapsed=true] .sidebar-link-badge{padding:0 6px}.app-shell[data-sidebar-collapsed=true] .sidebar-header{padding:14px 16px;justify-content:flex-start}.app-shell[data-sidebar-collapsed=true] .sidebar-link{justify-content:flex-start;padding:8px 12px}.app-shell[data-sidebar-collapsed=true] .sidebar-link.active:before{display:block}.app-shell[data-sidebar-collapsed=true] .sidebar-link[data-tooltip]:hover:after{display:none}}.topbar-slim{display:flex;align-items:center;gap:16px;padding:8px 24px;background:var(--surface-card);border-bottom:1px solid var(--border-default);min-height:56px;position:sticky;top:0;z-index:var(--z-sticky)}.topbar-slim .hamburger{display:none;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-secondary);cursor:pointer}.topbar-slim .hamburger:hover{background:var(--surface-subtle);color:var(--ph-primary)}@media (max-width: 1023px){.topbar-slim .hamburger{display:inline-flex}}.topbar-slim-title{font-size:15px;font-weight:600;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color var(--duration-instant) var(--ease-out)}.topbar-slim-title:hover{color:var(--ph-primary);text-decoration:none}.topbar-slim-title:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px;border-radius:var(--radius-sm)}.topbar-slim-right{display:flex;align-items:center;gap:10px;margin-left:auto}@media (max-width: 640px){.topbar-slim{gap:8px;padding:8px 12px}.topbar-slim-title{display:none}.topbar-slim-right{gap:6px}.window-picker-content,.window-picker-chevron{display:none}.window-picker-center{padding:6px 8px}.window-picker-nav{padding:0 6px}.user-trigger{padding:4px;gap:0}.user-meta{display:none}.user-trigger>svg{display:none}.topbar-slim .hamburger,.theme-toggle,.alerts-bell-trigger{width:36px;height:36px}}.breadcrumbs{display:flex;align-items:center;gap:6px;padding:8px 0 4px;font-size:12px;color:var(--text-tertiary);overflow-x:auto;scrollbar-width:none}.breadcrumbs::-webkit-scrollbar{display:none}.breadcrumbs-item{display:inline-flex;align-items:center;gap:6px;color:var(--text-tertiary);text-decoration:none;white-space:nowrap;transition:color var(--duration-instant) var(--ease-out)}.breadcrumbs-item:hover{color:var(--ph-primary);text-decoration:none}.breadcrumbs-sep{color:var(--text-disabled);font-size:10px}.breadcrumbs-current{color:var(--text-primary);font-weight:500}.autosave-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--text-tertiary);font-size:11px;font-weight:500;transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.autosave-indicator--saving{background:var(--info-bg);color:var(--info)}.autosave-indicator--saved{background:var(--success-bg);color:var(--success)}.autosave-indicator--error{background:var(--danger-bg);color:var(--danger)}.autosave-indicator--dirty{background:var(--warning-bg);color:var(--warning)}.autosave-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.autosave-indicator--saving .autosave-dot{animation:autosave-pulse 1s ease-in-out infinite}@keyframes autosave-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.autosave-indicator--saving .autosave-dot{animation:none}}.type-to-confirm-hint{margin:12px 0 6px;padding:8px 12px;background:var(--danger-bg);border-left:3px solid var(--danger);border-radius:var(--radius-sm);font-size:12px;color:var(--danger);line-height:1.4}.type-to-confirm-hint code{padding:1px 5px;background:#dc26261f;border-radius:3px;font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:11px;font-weight:600}.type-to-confirm-input{margin-top:8px;width:100%;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);font:inherit;font-size:14px;font-family:ui-monospace,Cascadia Mono,Menlo,monospace;background:var(--surface-card);color:var(--text-primary)}.type-to-confirm-input:focus{outline:none;border-color:var(--danger);box-shadow:0 0 0 3px #dc26261f}.type-to-confirm-input--valid{border-color:var(--success);box-shadow:0 0 0 3px #0596691f}.density-toggle{display:inline-flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.density-btn{padding:4px 8px;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.density-btn:hover{background:var(--surface-subtle);color:var(--text-primary)}.density-btn--active{background:var(--ph-primary-light);color:var(--ph-primary-active)}.table-wrap[data-density=compact] table td,.table-wrap[data-density=compact] table th{padding:4px 8px;font-size:12px}.table-wrap[data-density=comfortable] table td,.table-wrap[data-density=comfortable] table th{padding:8px 12px;font-size:13px}.table-wrap[data-density=spacious] table td,.table-wrap[data-density=spacious] table th{padding:12px 16px;font-size:14px}.login-api-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--text-tertiary);padding:2px 8px;border-radius:var(--radius-full);background:var(--surface-subtle);transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.login-api-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.login-api-status--checking{color:var(--text-tertiary)}.login-api-status--checking .login-api-dot{animation:login-api-pulse 1.2s ease-in-out infinite}.login-api-status--ok{color:var(--success);background:var(--success-bg)}.login-api-status--ko{color:var(--danger);background:var(--danger-bg)}@keyframes login-api-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.login-api-status--checking .login-api-dot{animation:none}}.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:var(--radius-full);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-lg),0 4px 12px #00000026;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);z-index:var(--z-dropdown)}.fab:hover{transform:scale(1.08);box-shadow:var(--shadow-xl),0 8px 20px #0003}.fab:active{transform:scale(.96)}.fab:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.fab-primary{background:linear-gradient(135deg,var(--ph-primary) 0%,var(--ph-primary-active) 100%);color:#fff}.fab-primary:hover{background:linear-gradient(135deg,var(--ph-primary-hover) 0%,var(--ph-dark-teal) 100%)}@keyframes fab-pop-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.fab{animation:fab-pop-in var(--duration-normal) var(--ease-out)}@media (max-width: 640px){.fab{width:48px;height:48px;bottom:16px;right:16px}.fab svg{width:20px;height:20px}}@media (prefers-reduced-motion: reduce){.fab{animation:none}.fab:hover{transform:none}}.info-callout{margin:12px 0 16px;padding:12px 16px;background:var(--info-bg);border:1px solid var(--status-border-info);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;line-height:1.6}.info-callout strong{display:block;margin-bottom:6px;font-size:13px;color:var(--info)}.info-callout p{margin:0;color:var(--text-secondary)}.info-callout code{background:#2563eb1a;padding:1px 4px;border-radius:3px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.my-projects-page{padding:24px}.my-projects-page h2{margin:0 0 8px;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.my-projects-page>.muted{margin:0 0 20px;font-size:13px}.my-projects-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.my-projects-header>div:first-child>h2{margin-bottom:4px}.my-projects-header>div:first-child>.muted{margin:0;font-size:13px}.my-projects-summary{display:flex;align-items:center;gap:10px;padding:14px 18px;margin-bottom:24px;background:var(--success-bg);border-radius:var(--radius-md);font-size:14px;color:var(--success)}.my-projects-summary--risks{background:var(--warning-bg);color:var(--warning)}.my-projects-summary strong{color:inherit}.my-projects-summary .success-check{font-size:16px}.my-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px}.my-project-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none;transition:box-shadow var(--duration-fast),border-color var(--duration-fast)}.my-project-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.my-project-card--qc-error{border-left:4px solid var(--warning)}.my-project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.my-project-card-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px;color:var(--text-primary);line-height:1.3}.my-project-card-title:hover{color:var(--ph-primary);text-decoration:none}.my-project-card-title svg{flex-shrink:0;opacity:0;transition:opacity var(--duration-fast)}.my-project-card:hover .my-project-card-title svg{opacity:.5}.my-project-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.my-project-card-body{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border-subtle)}.my-project-card-stat{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-tertiary)}.my-project-card-stat svg{color:var(--text-disabled);margin-bottom:2px}.my-project-card-stat strong{font-size:14px;font-weight:600;color:var(--text-primary)}.my-project-card-stat .days-left-badge{display:inline-flex;align-items:center;gap:4px;margin-top:2px;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:500;width:fit-content}.days-left-badge--danger{background:var(--danger-bg);color:var(--danger)}.days-left-badge--warning{background:var(--warning-bg);color:var(--warning)}.days-left-badge--success{background:var(--success-bg);color:var(--success)}.my-project-card-teams{margin-bottom:12px}.my-project-card-teams-title{display:block;font-size:11px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.my-project-card-teams-list{display:flex;flex-wrap:wrap;gap:6px}.team-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--surface-subtle);border-radius:4px;font-size:12px;color:var(--text-secondary)}.team-chip--risk{background:var(--warning-bg);color:var(--warning)}.my-project-card-risks{background:var(--danger-bg);border-radius:var(--radius-sm);padding:10px 12px}.my-project-card-risks-title{display:block;font-size:12px;font-weight:600;color:var(--danger);margin-bottom:6px}.my-project-card-risks ul{margin:0;padding-left:16px;font-size:12px;color:var(--text-secondary)}.my-project-card-risks li{margin:2px 0}.my-project-card-risks a{color:var(--danger);font-weight:500}.risk-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;white-space:nowrap}.risk-badge--ok{background:var(--success-bg);color:var(--success)}.risk-badge--danger{background:var(--danger-bg);color:var(--danger)}@media (max-width: 640px){.my-projects-grid{grid-template-columns:1fr}.my-project-card-body{grid-template-columns:1fr 1fr}}.cal-cell-clickable{transition:background var(--duration-fast),transform var(--duration-fast)}.cal-cell-clickable:hover{background:var(--ph-primary-light)!important;transform:scale(1.05)}.week-days-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.week-day-cell{display:flex;flex-direction:column;align-items:center;padding:8px;background:var(--surface-subtle);border-radius:var(--radius-sm)}.week-day-name{font-weight:600;font-size:13px;color:var(--text-primary)}.week-day-date{font-size:11px;color:var(--text-tertiary)}.week-day-cell--indispo{background:var(--warning-bg);border:1px solid var(--warning)}.week-day-cell--indispo .week-day-name,.week-day-cell--indispo .week-day-date{color:var(--warning)}html[data-theme=dark] .week-day-cell--indispo{background:#d977062e}html[data-theme=dark] .week-day-cell--indispo .week-day-name,html[data-theme=dark] .week-day-cell--indispo .week-day-date{color:#fbbf24}.week-day-badge{margin-top:4px;padding:1px 8px;border-radius:10px;background:var(--warning);color:#fff;font-size:11px;font-weight:600;line-height:1.5}.week-detail-hint{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--warning);background:var(--warning-bg);color:var(--text-secondary);font-size:12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}html[data-theme=dark] .week-detail-hint{background:#d977061f;color:var(--text-primary)}.week-detail-stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--surface-subtle);border-radius:var(--radius-sm)}.week-detail-stat span{font-size:13px;color:var(--text-secondary)}.week-detail-stat strong{font-size:14px}.week-detail-comment{margin-top:12px;padding:12px;background:var(--info-bg);border-radius:var(--radius-sm)}.week-detail-comment p{margin:4px 0 0;font-size:13px;color:var(--text-primary)}.who-is-here-page{padding:24px}.who-is-here-page h2{margin:0 0 20px}.who-summary{display:flex;gap:16px;margin-bottom:24px}.who-summary-item{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md)}.who-summary-item--date{flex-direction:column;align-items:flex-start;gap:2px}.who-summary-item--present{color:var(--success)}.who-summary-item--partial{color:var(--warning)}.who-summary-item--absent{color:var(--danger)}.who-summary-value{font-size:20px;font-weight:600;color:inherit}.who-summary-label{font-size:12px;color:var(--text-tertiary)}.who-summary-item--date .who-summary-value{font-size:14px;font-weight:500;color:var(--text-primary)}.who-teams-list{display:flex;flex-direction:column;gap:12px}.who-team-section{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.who-team-header{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-primary);text-align:left}.who-team-header:hover{background:var(--surface-subtle)}.who-team-name{flex:1}.who-team-counts{display:flex;gap:8px}.who-count{padding:2px 8px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.who-count--present{background:var(--success-bg);color:var(--success)}.who-count--partial{background:var(--warning-bg);color:var(--warning)}.who-count--absent{background:var(--danger-bg);color:var(--danger)}.who-team-body{padding:0 16px 16px;display:flex;gap:24px}.who-list{flex:1}.who-list-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;color:var(--text-tertiary)}.who-list--present .who-list-title{color:var(--success)}.who-list--partial .who-list-title{color:var(--warning)}.who-list--absent .who-list-title{color:var(--danger)}.who-list-items{display:flex;flex-direction:column;gap:4px}.who-person{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-subtle);border-radius:var(--radius-sm);font-size:13px}.who-person--absent{background:var(--danger-bg)}.who-person--partial{background:var(--warning-bg)}.who-person-name{font-weight:500}.who-person-comment{font-size:11px;color:var(--text-tertiary);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.who-indispo{font-size:11px;font-weight:600;color:var(--warning)}.who-email{margin-left:auto;color:var(--text-disabled);transition:color var(--duration-fast)}.who-email:hover{color:var(--ph-primary)}@media (max-width: 768px){.who-summary{flex-direction:column}.who-team-body{flex-direction:column;gap:16px}}.project-details-page{padding:20px 24px 40px}.project-details-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;flex-wrap:wrap}.project-details-header-left{flex:1 1 400px;min-width:300px}.back-link{display:inline-flex;align-items:center;gap:4px;color:var(--text-tertiary);text-decoration:none;font-size:13px;margin-bottom:8px}.back-link:hover{color:var(--brand)}.project-details-title-row{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}.project-details-title-row h1{font-size:22px;margin:0}.project-details-badges{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.badge-mini{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-alt);color:var(--text-secondary)}.qc-dot-inline{display:inline-flex;align-items:center;gap:4px;color:var(--danger);font-size:11px;font-weight:700}.project-details-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:13px}.project-details-meta dt{color:var(--text-tertiary);font-weight:500}.project-details-meta dd{margin:0}.project-details-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.project-details-section{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;margin-bottom:20px}.project-details-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.project-details-section .section-header h2{margin:0;font-size:15px;font-weight:600;display:inline-flex;align-items:center}.section-link{color:var(--brand);text-decoration:none;font-size:12px;display:inline-flex;align-items:center;gap:4px}.section-link:hover{text-decoration:underline}.project-charge-table .sticky-col{position:sticky;left:0;z-index:1;background:var(--surface);min-width:180px;font-weight:600}.project-charge-table .cell-with-risk{background:color-mix(in srgb,var(--danger) 6%,transparent)}.project-risks-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.project-risk-item{display:flex;gap:6px;align-items:center;padding:6px 10px;background:color-mix(in srgb,var(--danger) 5%,transparent);border-radius:4px;font-size:13px}.project-history-list{list-style:none;padding:0;margin:0}.project-history-item{display:grid;grid-template-columns:130px 220px 80px 1fr;gap:12px;padding:8px 0;font-size:12px;border-bottom:1px solid var(--border-subtle)}.project-history-item:last-child{border-bottom:none}.project-history-ts{color:var(--text-tertiary);font-family:var(--mono)}.project-history-user{color:var(--text-secondary)}.project-history-action{display:inline-block;padding:1px 6px;border-radius:4px;text-align:center;font-weight:600;font-size:10px;background:var(--surface-alt);color:var(--text-secondary)}.project-history-action--update{background:var(--warning-bg);color:var(--warning)}.project-history-action--insert{background:var(--success-bg);color:var(--success)}.project-history-action--delete{background:var(--danger-bg);color:var(--danger)}.project-details-danger{border-color:color-mix(in srgb,var(--danger) 20%,transparent)}.danger-zone-card{display:flex;flex-direction:column;gap:8px}.danger-zone-form{display:flex;gap:8px;align-items:center}.danger-zone-form .ui-input{flex:1;max-width:320px}@media print{.project-details-actions,.project-details-danger,.back-link{display:none}.project-details-section{break-inside:avoid}}.wizard-stepper{list-style:none;padding:0;margin:0 0 20px;display:flex;gap:6px;align-items:stretch}.wizard-step{flex:1;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:12px;background:var(--surface-alt);color:var(--text-tertiary);border:1px solid transparent}.wizard-step-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;font-weight:700;font-size:11px;background:var(--surface);color:var(--text-secondary)}.wizard-step--current{background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 25%,transparent)}.wizard-step--current .wizard-step-num{background:var(--brand);color:var(--text-on-color)}.wizard-step--done{background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--success)}.wizard-step--done .wizard-step-num{background:var(--success);color:var(--text-on-color)}.wizard-body{padding:4px 0 8px}.wizard-hint{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px;margin-bottom:12px;padding:6px 10px;border-radius:4px;background:var(--surface-alt)}.wizard-review{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.wizard-review-item{display:contents}.wizard-review-item dt{display:inline-flex;align-items:center;gap:6px;color:var(--text-tertiary);font-weight:500;font-size:12px}.wizard-review-item dd{margin:0;font-size:13px}.wizard-review-item--strong dd{font-weight:600;color:var(--text-primary)}@media (max-width: 640px){.wizard-stepper{gap:4px}.wizard-step{padding:6px 8px;font-size:11px;gap:6px}.wizard-step-label{display:none}.wizard-step--current .wizard-step-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}}.alerts-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.alerts-scope-toggle{display:inline-flex;gap:2px;background:var(--surface-alt);border-radius:6px;padding:2px}.alerts-scope-btn{border:none;background:transparent;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;color:var(--text-tertiary);transition:background .12s,color .12s}.alerts-scope-btn.is-active{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px #00000014}.alerts-scope-btn:hover:not(.is-active){color:var(--text-secondary)}::view-transition-old(root){animation:viewtransition-fade-out .18s ease-in both}::view-transition-new(root){animation:viewtransition-fade-in .22s cubic-bezier(.2,.8,.2,1) both}@keyframes viewtransition-fade-out{to{opacity:0;transform:translateY(-4px)}}@keyframes viewtransition-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.ui-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000005c;z-index:1200;display:flex;align-items:stretch;justify-content:flex-end;animation:drawer-fade-in .14s ease-out both}.ui-drawer{background:var(--surface);border-left:1px solid var(--border);box-shadow:-8px 0 24px #0000001f;display:flex;flex-direction:column;height:100vh;max-height:100vh;animation:drawer-slide-in .2s cubic-bezier(.2,.8,.2,1) both}.ui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-alt)}.ui-drawer-title{font-size:15px;font-weight:600;margin:0}.ui-drawer-close{background:transparent;border:none;cursor:pointer}.ui-drawer-body{padding:16px 18px;flex:1;overflow-y:auto}.ui-drawer-footer{padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-alt)}@keyframes drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.ui-drawer-overlay,.ui-drawer{animation:none}}.whats-new-btn{position:relative;background:transparent;border:none;padding:6px;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:background .12s,color .12s}.whats-new-btn:hover{background:var(--surface-alt);color:var(--text-primary)}.ai-btn-active{color:var(--brand)!important;background:var(--brand-light)}@keyframes ai-pulse{0%,to{opacity:.4}50%{opacity:1}}.ai-pulse{animation:ai-pulse 1.2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.ai-pulse{animation:none;opacity:.7}}.ai-panel .btn-icon{background:transparent;border:none;padding:6px;border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:background .12s}.ai-panel .btn-icon:hover:not(:disabled){background:var(--surface-alt)}.ai-input-row{display:flex;align-items:flex-end;gap:8px;padding:6px 6px 6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color .12s,box-shadow .12s}.ai-input-row:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.ai-input{flex:1;border:none;background:transparent;resize:none;overflow-y:auto;min-height:24px;max-height:160px;padding:4px 0;font-family:inherit;font-size:13px;line-height:1.45;color:var(--text)}.ai-input:focus{outline:none}.ai-input::placeholder{color:var(--text-secondary)}.ai-send{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:8px;cursor:pointer;transition:opacity .12s}.ai-send:disabled{opacity:.45;cursor:not-allowed}.ai-input-hint{margin-top:6px;font-size:10.5px;color:var(--text-secondary);text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}.ai-quota{padding:1px 6px;border-radius:var(--radius-full);background:var(--surface-alt);font-variant-numeric:tabular-nums}.ai-quota--low{background:var(--warning-bg);color:var(--warning);font-weight:600}.ai-feedback-row{display:flex;gap:4px;margin-top:8px}.ai-feedback-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.ai-feedback-btn:hover{background:var(--surface-card);color:var(--text-primary)}.ai-feedback-btn.is-active{background:var(--ph-primary-light);color:var(--ph-dark-teal)}.ai-feedback-btn.is-active.is-down{background:var(--danger-bg);color:var(--danger)}.ai-history-wrap{position:relative}.ai-history-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1250}.ai-history-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1260;width:280px;max-height:320px;overflow-y:auto;padding:6px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.ai-history-item{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 8px;border:none;border-radius:var(--radius-sm);background:transparent;text-align:left;cursor:pointer;font-size:12.5px}.ai-history-item:hover{background:var(--surface-subtle)}.ai-history-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.ai-history-meta{font-size:10.5px;color:var(--text-tertiary);flex-shrink:0}.ai-input-hint kbd{font-family:inherit;font-size:10px;padding:1px 4px;border:1px solid var(--border);border-radius:4px;background:var(--surface-alt)}@media (max-width: 380px){.ai-input-hint{display:none}}.md-root>*:first-child{margin-top:0}.md-root>*:last-child{margin-bottom:0}.md-p{margin:0 0 8px}.md-list{margin:0 0 8px;padding-left:20px}.md-list li{margin:2px 0}.md-h{font-weight:600;margin:10px 0 4px}.md-h1,.md-h2{font-size:14px}.md-h3,.md-h4{font-size:13px}.md-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;padding:1px 4px;border-radius:4px;background:color-mix(in srgb,var(--text) 10%,transparent)}.md-root a{color:var(--brand);text-decoration:underline}.ai-bubble-error{background:color-mix(in srgb,var(--danger, #dc2626) 12%,var(--surface-alt))!important;border:1px solid color-mix(in srgb,var(--danger, #dc2626) 35%,transparent);white-space:pre-wrap}.ai-bubble-assistant{padding-right:30px!important}.ai-copy-btn{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.ai-bubble-assistant:hover .ai-copy-btn,.ai-copy-btn:focus-visible{opacity:1}.ai-copy-btn:hover{background:color-mix(in srgb,var(--text) 10%,transparent)}@media (hover: none){.ai-copy-btn{opacity:.6}}@media (max-width: 768px){.ai-panel{width:100vw!important;max-width:100vw!important}}.whats-new-badge-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px var(--surface)}.whats-new-title{display:inline-flex;align-items:center;gap:8px}.whats-new-list{display:flex;flex-direction:column;gap:20px}.whats-new-empty{color:var(--text-tertiary);font-style:italic}.whats-new-item{border-bottom:1px solid var(--border);padding-bottom:16px}.whats-new-item:last-child{border-bottom:none;padding-bottom:0}.whats-new-item-header{margin-bottom:8px}.whats-new-item-meta{display:inline-flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px}.whats-new-version{background:var(--brand);color:var(--text-on-color, #fff);padding:1px 6px;border-radius:10px;font-weight:600}.whats-new-date{color:var(--text-tertiary)}.whats-new-item-title{margin:0;font-size:14px;font-weight:600}.whats-new-item-hero{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.whats-new-changes{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:8px}.whats-new-change{display:flex;gap:10px;padding:8px 10px;background:var(--surface-alt);border-radius:6px}.whats-new-change-icon{color:var(--brand);flex-shrink:0;margin-top:1px}.whats-new-change-title{font-size:13px;font-weight:600}.whats-new-change-desc{font-size:12px;color:var(--text-secondary);margin-top:2px;line-height:1.5}.smart-hint{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;margin:8px 0 12px;background:var(--info-bg);border:1px solid var(--status-border-info);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary);line-height:1.5}.smart-hint-icon{color:var(--info);flex-shrink:0;margin-top:2px}.smart-hint-body{flex:1}.smart-hint-body strong{color:var(--text-primary);font-weight:600}.smart-hint-dismiss{background:transparent;border:none;cursor:pointer;padding:2px;border-radius:4px;color:var(--text-tertiary);flex-shrink:0;transition:background .12s,color .12s}.smart-hint-dismiss:hover{background:#0000000f;color:var(--text-primary)}.search-inline{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-tertiary)}.search-inline input{border:none;background:transparent;outline:none;padding:2px 4px;color:var(--text-primary);font-size:13px;min-width:180px}.search-inline input::placeholder{color:var(--text-tertiary)}.search-inline:focus-within{border-color:var(--brand);color:var(--brand)}.roadmap-scale{display:inline-flex;align-items:center;gap:4px;border-left:1px solid var(--border);padding:2px 6px 2px 12px;margin-left:4px}.roadmap-scale button{padding:4px 8px;font-size:12px}.my-avails-week-accordion{margin-top:32px;padding:16px 0 0;border-top:1px solid var(--border)}.my-avails-week-accordion summary{cursor:pointer;font-weight:600;color:var(--text-secondary);padding:4px 0;-webkit-user-select:none;user-select:none}.my-avails-week-accordion summary:hover{color:var(--text-primary)}.my-avails-week-accordion[open] summary{color:var(--text-primary)}.my-avails-empty{max-width:620px;margin:24px auto}.my-avails-empty code{background:var(--surface-alt);padding:1px 6px;border-radius:4px;font-size:12px}.my-avails-empty-actions{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.my-avails-empty-actions .btn-link{color:var(--brand);text-decoration:none;font-size:13px;font-weight:500}.my-avails-empty-actions .btn-link:hover{text-decoration:underline}.warn-callout{margin:12px 0;padding:10px 14px;background:var(--warning-bg);border:1px solid var(--status-border-warning);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;line-height:1.6}.warn-callout strong{color:var(--warning)}.day-calendar-cell.has-week-indispo{border-color:var(--warning);box-shadow:inset 0 0 0 1px var(--warning-bg)}.day-week-hint{position:absolute;bottom:3px;right:4px;font-size:9px;font-weight:600;color:var(--warning);padding:1px 3px;background:var(--warning-bg);border-radius:3px;line-height:1}.consistency-page{max-width:1180px}.consistency-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.consistency-summary-item{padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px}.consistency-summary-value{font-size:22px;font-weight:600;color:var(--text-primary)}.consistency-summary-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.consistency-summary-item--error .consistency-summary-value{color:var(--danger)}.consistency-summary-item--warning .consistency-summary-value{color:var(--warning)}.consistency-summary-item--info .consistency-summary-value{color:var(--info)}.consistency-filters{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding:8px;background:var(--surface-alt);border-radius:6px}.consistency-filters button{padding:4px 10px;font-size:12px}.consistency-check{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;background:var(--surface);overflow:hidden}.consistency-check--error{border-left:3px solid var(--danger)}.consistency-check--warning{border-left:3px solid var(--warning)}.consistency-check--info{border-left:3px solid var(--info)}.consistency-check[data-count="0"]{opacity:.6}.consistency-check-header{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:transparent;border:none;cursor:pointer;font-size:13px;text-align:left;color:var(--text-primary)}.consistency-check-header:hover{background:var(--surface-alt)}.consistency-check-label{flex:1;font-weight:500}.consistency-check-count{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:var(--surface-alt);color:var(--text-secondary)}.consistency-check-count--error{background:var(--danger-bg);color:var(--danger)}.consistency-check-count--warning{background:var(--warning-bg);color:var(--warning)}.consistency-check-count--info{background:var(--info-bg);color:var(--info)}.consistency-check-body{padding:8px 14px 14px;border-top:1px solid var(--border);background:var(--surface-alt)}.consistency-check-desc{margin:0 0 10px;color:var(--text-secondary);font-size:12px}.consistency-items-wrap{overflow-x:auto}.consistency-items-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--surface)}.consistency-items-table th{padding:6px 10px;background:var(--surface-alt);color:var(--text-tertiary);font-weight:500;text-align:left;text-transform:uppercase;font-size:10px;letter-spacing:.5px;border-bottom:1px solid var(--border)}.consistency-items-table td{padding:6px 10px;border-bottom:1px solid var(--border)}.sev-ok{color:var(--success)}.sev-error{color:var(--danger)}.sev-warning{color:var(--warning)}.sev-info{color:var(--info)}.spin{animation:consistency-spin 1s linear infinite}@keyframes consistency-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.chip--warning{background:var(--warning-bg);color:var(--warning)}.chip--day{background:var(--info-bg);color:var(--info);font-weight:600;font-size:11px;padding:2px 8px;border-radius:var(--radius-full)}.chip--week{background:var(--surface-alt);color:var(--text-secondary);font-weight:500;font-size:11px;padding:2px 8px;border-radius:var(--radius-full)}.resource-day-calendar{margin:8px 0}:root{--rag-r-bg: #FEE2E2;--rag-r-fg: #DC2626;--rag-a-bg: #FEF3C7;--rag-a-fg: #D97706;--rag-v-bg: #D1FAE5;--rag-v-fg: #059669;--rag-empty-bg: var(--surface-subtle);--rag-empty-fg: var(--text-tertiary)}html[data-theme=dark]{--rag-r-bg: #3B1618;--rag-r-fg: #F87171;--rag-a-bg: #3B2B12;--rag-a-fg: #FBBF24;--rag-v-bg: #0F2A22;--rag-v-fg: #34D399}.rag-picker{position:relative;display:inline-block}.rag-dot{display:inline-block;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform var(--duration-instant) var(--ease-out),box-shadow var(--duration-instant) var(--ease-out);padding:0}.rag-dot--sm{width:12px;height:12px}.rag-dot--md{width:22px;height:22px}.rag-dot--lg{width:32px;height:32px}.rag-dot--r{background:var(--rag-r-fg);border-color:var(--rag-r-fg)}.rag-dot--a{background:var(--rag-a-fg);border-color:var(--rag-a-fg)}.rag-dot--v{background:var(--rag-v-fg);border-color:var(--rag-v-fg)}.rag-dot--empty{background:transparent;border:2px dashed var(--rag-empty-fg)}.eggs-modal-title{display:inline-flex;align-items:center;gap:8px}.eggs-modal-intro{margin:0 0 14px;font-size:13px;color:var(--text-secondary);line-height:1.5}.eggs-modal-intro--second{margin-top:20px}.eggs-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.eggs-item{display:grid;grid-template-columns:104px 1fr;gap:12px;align-items:baseline;padding:7px 10px;border-radius:8px;background:var(--surface-subtle);font-size:13px;line-height:1.45}.eggs-key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ph-primary);word-break:break-word}.eggs-key--wide{font-family:inherit;color:var(--text-primary);font-weight:600}.eggs-msg{color:var(--text-secondary)}.eggs-action{color:var(--ph-primary);font-style:normal}@media (max-width: 560px){.eggs-item{grid-template-columns:1fr;gap:3px}}body.konami-all-green{--rag-r-bg: var(--rag-v-bg);--rag-r-fg: var(--rag-v-fg);--rag-a-bg: var(--rag-v-bg);--rag-a-fg: var(--rag-v-fg)}body.konami-all-green .rag-dot{transition:background-color .4s var(--ease-out),border-color .4s var(--ease-out)}body.konami-all-green td.heat-blue,body.konami-all-green td.heat-amber,body.konami-all-green td.heat-red,body.konami-all-green td.heat-crit{background:#10b981!important;color:#fff!important;transition:background-color .4s var(--ease-out)}body.konami-all-green:after{content:"";position:fixed;top:0;bottom:0;left:0;width:55vw;z-index:9998;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--rag-v-fg) 34%,transparent),transparent);animation:konami-sweep 1.4s cubic-bezier(.4,0,.2,1) forwards}@keyframes konami-sweep{0%{transform:translate(-100%)}to{transform:translate(calc(100vw + 100%))}}@media (prefers-reduced-motion: reduce){body.konami-all-green .rag-dot,body.konami-all-green td.heat-blue,body.konami-all-green td.heat-amber,body.konami-all-green td.heat-red,body.konami-all-green td.heat-crit{transition:none}body.konami-all-green:after{display:none}}.rag-dot:not(.rag-dot--readonly):hover{transform:scale(1.1);box-shadow:0 0 0 3px color-mix(in srgb,var(--text-primary) 10%,transparent)}.rag-dot--readonly{cursor:default}.rag-dot--pending{cursor:progress;animation:rag-pending .9s ease-in-out infinite}@keyframes rag-pending{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.rag-dot--pending{animation:none;opacity:.6}}.rag-dot--alert{outline:2px solid var(--rag-a-fg);outline-offset:2px}.rag-dot--suggestion{opacity:.55;cursor:help}.rag-picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;min-width:140px;display:flex;flex-direction:column;gap:2px}.rag-picker-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:0;background:transparent;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);text-align:left;font-size:13px;width:100%}.rag-picker-item:hover{background:var(--surface-subtle)}.rag-picker-item--clear{color:var(--text-secondary);font-style:italic}.assign-pool-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;color:var(--ph-primary-active);background:var(--ph-primary-light);border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:background .12s ease,border-color .12s ease}.assign-pool-btn:hover{background:var(--surface-card);border-color:var(--ph-primary)}@keyframes flash-save-ok{0%{background-color:var(--success-bg);box-shadow:inset 0 0 0 1px var(--success)}to{background-color:transparent;box-shadow:none}}td.flash-save--ok{animation:flash-save-ok .9s ease-out both}@media (prefers-reduced-motion: reduce){td.flash-save--ok{animation:none;background-color:var(--success-bg)}}.assign-pool-menu{z-index:var(--z-modal, 110);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:4px;min-width:260px;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.assign-pool-menu-header{padding:8px 10px 6px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-default);margin-bottom:2px}.assign-pool-menu-empty{padding:10px;font-size:12px;color:var(--text-tertiary);font-style:italic;text-align:center}.assign-pool-menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:0;background:transparent;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);text-align:left;font-size:13px;width:100%}.assign-pool-menu-item:hover:not(:disabled){background:var(--surface-subtle)}.assign-pool-menu-item:disabled{opacity:.5;cursor:wait}.assign-pool-menu-name{flex:1;font-weight:500}.assign-pool-menu-dispo{font-size:11px;color:var(--text-secondary);white-space:nowrap}.assign-pool-menu-dispo.overload{color:var(--danger);font-weight:600}.review-block{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;margin-bottom:24px;box-shadow:none}.review-block h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.review-week{font-weight:500;color:var(--text-secondary);font-size:14px}.review-badge-carry-over{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:var(--radius-full);background:var(--warning-bg);color:var(--warning);font-size:11px;font-weight:600}.review-block-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.review-block-header .muted{margin:4px 0 0;font-size:12px}.review-block-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.review-week-input{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-family:ui-monospace,Cascadia Mono,monospace;font-size:12px;width:100px}.review-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px;background:var(--surface-subtle);border-radius:var(--radius-lg);margin-bottom:14px}@media (max-width: 720px){.review-summary{grid-template-columns:1fr}}.review-global,.review-avancement{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.review-global-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.review-pct-input{padding:6px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);width:70px;font-weight:600}.review-global-commentaire,.review-comment-synthesis{display:block;margin-bottom:14px}.review-global-commentaire textarea,.review-comment-synthesis textarea,.review-comment-input{width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-size:13px;font-family:inherit;resize:vertical}.review-comment-input{padding:4px 8px;font-size:12px;min-width:200px}.review-comment-readonly{margin:0 0 12px;padding:12px 14px;background:var(--surface-subtle);border-left:3px solid var(--ph-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.review-comment-readonly p{margin:4px 0 0;font-size:13px}.review-table{width:100%;border-collapse:collapse;font-size:13px}.review-table th,.review-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle)}.review-table th{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-subtle)}.review-col-commentaire{width:30%}.review-freshness{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:500;white-space:nowrap}.review-freshness--fresh{background:var(--success-bg);color:var(--success)}.review-freshness--stale{background:var(--warning-bg);color:var(--warning)}.review-freshness--none{background:var(--surface-subtle);color:var(--text-tertiary);font-style:italic}.review-alert{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--warning-bg);color:var(--warning);border-radius:var(--radius-sm);font-size:11px;font-weight:500}.review-alert--sm{font-size:10px;padding:1px 6px;margin-left:4px}.trend-icon{vertical-align:middle}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.trend-flat{color:var(--text-tertiary)}.view-mode-toggle{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.view-mode-btn{padding:6px 14px;border:0;background:var(--surface-card);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-instant) var(--ease-out)}.view-mode-btn:hover{background:var(--surface-subtle)}.view-mode-btn--active{background:var(--ph-primary);color:var(--text-inverse)}.view-mode-btn--active:hover{background:var(--ph-primary)}.portfolio-health-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;background:var(--surface-subtle);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary)}.portfolio-health-summary strong{color:var(--text-primary);font-weight:600}.my-projects-health{margin:18px 0 22px;padding:20px 24px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:none}.my-projects-health-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.my-projects-health-header h3{margin:0;font-size:15px;font-weight:600}.health-table th,.health-table td{padding:6px 8px;vertical-align:middle}.health-table th{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-subtle);white-space:nowrap}.health-cell-with-alert{display:inline-flex;align-items:center;gap:4px}.health-mini-alert{font-size:12px;color:var(--warning);cursor:help}.health-pct-input{width:60px;padding:3px 6px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-size:12px;text-align:center}.health-pct{font-weight:600;font-size:13px}.project-name-link{display:inline-flex;flex-direction:column;align-items:flex-start;border:0;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;padding:0;max-width:240px}.project-name-link:hover{color:var(--ph-primary)}.project-name-id{font-family:ui-monospace,Cascadia Mono,monospace;font-size:11px;color:var(--text-tertiary)}.project-name-label{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;background:transparent;color:var(--text-tertiary);border-radius:var(--radius-sm);cursor:pointer}.btn-icon:hover{background:var(--surface-subtle);color:var(--ph-primary)}.regroupements-page{animation:fade-in var(--duration-normal) var(--ease-out) both}.regroup-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}.regroup-header h2{margin:0 0 4px;font-size:20px;font-weight:600}.regroup-section{margin-bottom:28px}.regroup-section-title{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.regroup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.regroup-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;transition:box-shadow var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.regroup-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.regroup-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.regroup-card-title-block{display:flex;flex-direction:column;gap:4px;min-width:0}.regroup-card-title-block h3{margin:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regroup-card-actions{display:flex;gap:4px;flex-shrink:0}.regroup-card-meta{margin:0;font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.regroup-card-meta>span{display:inline-flex;align-items:center;gap:4px}.regroup-chip{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;width:fit-content}.regroup-chip--own{background:var(--ph-primary-light);color:var(--ph-dark-teal)}.regroup-chip--shared{background:var(--surface-subtle);color:var(--text-secondary)}.regroup-field{display:block;margin-bottom:14px}.regroup-field>span{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.regroup-field input[type=text]{width:100%;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-size:14px}.regroup-filter{margin-top:4px}.regroup-project-list{max-height:260px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:4px;margin-bottom:14px}.regroup-project-item{display:grid;grid-template-columns:auto 90px 1fr;gap:10px;align-items:center;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.regroup-project-item:hover{background:var(--surface-subtle)}.regroup-project-id{font-family:ui-monospace,Cascadia Mono,monospace;font-size:11px;color:var(--text-tertiary)}.regroup-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regroup-modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.regroup-share-input-row{display:flex;gap:8px;align-items:stretch}.regroup-share-input-row input{flex:1}.regroup-share-list{margin-top:16px}.regroup-share-list-title{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.regroup-share-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.regroup-share-list li{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--surface-subtle);border-radius:var(--radius-sm);font-size:13px}.btn-icon--danger:hover{background:var(--danger-bg);color:var(--danger)}.sparkline--area{color:var(--ph-primary)}.sparkline--area.sparkline--up{color:var(--success)}.sparkline--area.sparkline--down{color:var(--danger)}.sparkline--area.sparkline--flat{color:var(--text-tertiary)}.sparkline--area path{color:currentColor}.kpi-compact{position:relative;display:flex;gap:12px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-instant) var(--ease-out);animation:fade-in-up var(--duration-normal) var(--ease-out) both}.kpi-compact--clickable{border:1px solid var(--border-default);background:var(--surface-card)}.kpi-compact:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.kpi-compact-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-tertiary);flex-shrink:0}.kpi-compact-body{flex:1;min-width:0}.kpi-compact-halves{display:flex;align-items:center;gap:12px}.kpi-compact-half{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.kpi-compact-value{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi-compact-half--success .kpi-compact-value{color:var(--success)}.kpi-compact-half--warning .kpi-compact-value{color:var(--warning)}.kpi-compact-half--danger .kpi-compact-value{color:var(--danger)}.kpi-compact-half--info .kpi-compact-value{color:var(--info)}.kpi-compact-half--neutral .kpi-compact-value{color:var(--text-secondary)}.kpi-compact-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.kpi-compact-sep{width:1px;align-self:stretch;background:var(--border-default);flex-shrink:0}.kpi-compact-hint{margin-top:6px;font-size:11px;color:var(--text-tertiary);line-height:1.4}.gauge{position:relative;display:inline-flex;align-items:center;justify-content:center;color:var(--ph-primary)}.gauge--success{color:var(--success)}.gauge--warning{color:var(--warning)}.gauge--danger{color:var(--danger)}.gauge--info{color:var(--info)}.gauge-track{stroke:var(--border-default);opacity:.5}.gauge-arc{stroke:currentColor;transition:stroke-dashoffset .7s cubic-bezier(.22,1,.36,1)}.gauge-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.gauge-value{font-size:24px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.gauge-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:center;max-width:80%}.gauge-hint{position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:11px;color:var(--text-tertiary);white-space:nowrap}.kpi-card-sparkline{margin-top:10px;opacity:.85;display:block;width:100%}.kpi-card-sparkline svg{width:100%!important;height:32px!important}.regroup-card,.settings-card,.help-card{transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.empty-state-premium{padding:40px 24px;text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-xl);background:var(--surface-subtle);animation:fade-in-up var(--duration-normal) var(--ease-out) both}.empty-state-premium .empty-state-icon{color:var(--text-tertiary);margin-bottom:12px}.empty-state-premium h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.empty-state-premium p{color:var(--text-secondary);font-size:14px;margin:0 auto 16px;max-width:420px;line-height:1.5}.home-glance-grid{display:grid;grid-template-columns:200px repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0 24px;align-items:stretch}.home-glance-gauge{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 32px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:none;animation:fade-in-up var(--duration-normal) var(--ease-out) both}@media (max-width: 900px){.home-glance-grid{grid-template-columns:1fr}.home-glance-gauge{padding:20px 12px 30px}}.whats-new-page{max-width:900px;margin:0 auto;padding:0 12px}.whats-new-filters{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin:20px 0 28px;padding:14px 18px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.whats-new-filters .filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.whats-new-filters .filter-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.whats-new-filters .chip{padding:4px 10px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-page);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.whats-new-filters .chip:hover{border-color:var(--border-strong);background:var(--surface-card)}.whats-new-filters .chip--active{background:var(--ph-primary);border-color:var(--ph-primary);color:var(--text-inverse)}.whats-new-filters .chip--active:hover{background:var(--ph-primary-hover);border-color:var(--ph-primary-hover)}.whats-new-filters .chip--sm{padding:2px 8px;font-size:10px}.chip--purple.chip--active{background:#7c3aed;border-color:#7c3aed}.chip--blue.chip--active{background:#2563eb;border-color:#2563eb}.chip--teal.chip--active{background:var(--ph-primary);border-color:var(--ph-primary)}.chip--green.chip--active{background:#10b981;border-color:#10b981}.chip--amber.chip--active{background:#f59e0b;border-color:#f59e0b}.chip--red.chip--active{background:#dc2626;border-color:#dc2626}.whats-new-timeline{position:relative;padding-left:8px}.whats-new-group{margin-bottom:32px}.whats-new-group-title{font-size:13px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px 20px}.whats-new-group-items{position:relative;padding-left:24px;border-left:2px solid var(--border-default)}.whats-new-timeline-item{position:relative;margin-bottom:16px;animation:fade-in-up var(--duration-normal) var(--ease-out) both}.whats-new-timeline-marker{position:absolute;left:-32px;top:20px;width:12px;height:12px;border-radius:var(--radius-full);background:var(--surface-card);border:3px solid var(--ph-primary);box-shadow:0 0 0 3px var(--surface-page)}.whats-new-timeline-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;box-shadow:none;transition:box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.whats-new-timeline-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.whats-new-drawer-footer{padding:16px;border-top:1px solid var(--border-default);text-align:center;margin-top:12px}.whats-new-drawer-footer-link{display:inline-flex;align-items:center;gap:4px;color:var(--ph-primary);font-size:13px;font-weight:600;text-decoration:none}.whats-new-drawer-footer-link:hover{color:var(--ph-primary-hover);text-decoration:underline}.whats-new-footer{margin:40px 0 32px;text-align:center}@media (max-width: 640px){.whats-new-filters{flex-direction:column;align-items:flex-start;gap:10px}.whats-new-group-items{padding-left:20px}.whats-new-timeline-marker{left:-28px}}.roadmap-toolbar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:16px 0 12px;padding:12px 16px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.roadmap-toolbar .filter-group{display:inline-flex;align-items:center;gap:4px}.roadmap-toolbar .filter-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.roadmap-toolbar .chip{padding:4px 10px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-page);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:background var(--duration-instant) var(--ease-out),border-color var(--duration-instant) var(--ease-out)}.roadmap-toolbar .chip:hover{border-color:var(--border-strong);background:var(--surface-card)}.roadmap-toolbar .chip--active{background:var(--ph-primary);border-color:var(--ph-primary);color:var(--text-inverse)}.roadmap-facets{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;margin:0 0 12px;padding:10px 16px;background:var(--surface-subtle);border-radius:var(--radius-md)}.roadmap-facets .facet{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.roadmap-facets .filter-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}.roadmap-facets .chip{padding:3px 10px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);color:var(--text-secondary);font-size:11px;cursor:pointer}.roadmap-facets .chip--active{color:var(--text-inverse);border-color:transparent}.roadmap-facets .btn-ghost{padding:3px 10px;background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:11px;cursor:pointer;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:4px}.roadmap-facets .btn-ghost:hover{color:var(--text-primary);background:var(--surface-card)}.gantt-v2{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-xs);overflow:hidden}.gantt-v2-scroll{overflow:auto;max-height:calc(100vh - 320px);position:relative}.gantt-v2-head{position:sticky;top:0;z-index:3;display:flex;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);height:32px}.gantt-v2-head .gantt-v2-label{background:var(--surface-subtle)}.gantt-v2-label{width:240px;min-width:240px;padding:8px 12px;font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border-default);position:sticky;left:0;background:var(--surface-card);z-index:2}.gantt-v2-track{position:relative;height:32px;flex-shrink:0}.gantt-v2-tick{position:absolute;top:0;bottom:0;width:0;border-left:1px solid var(--border-default);padding-left:6px;display:flex;align-items:center}.gantt-v2-tick--major{border-left-color:var(--border-strong)}.gantt-v2-tick span{font-size:11px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.gantt-v2-tick--major span{color:var(--text-primary);font-weight:600}.gantt-v2-body{display:block}.gantt-v2-group{border-bottom:1px solid var(--border-subtle)}.gantt-v2-group:last-child{border-bottom:none}.gantt-v2-group-header{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface-subtle);border-bottom:1px solid var(--border-subtle);cursor:pointer;width:100%;text-align:left;font:inherit;border-left:none;border-right:none;border-top:none;position:sticky;left:0;z-index:1}.gantt-v2-group-header:hover{background:var(--surface-muted)}.gantt-v2-group-name{font-size:12px;font-weight:600;color:var(--text-primary)}.gantt-v2-group-count{font-size:11px;color:var(--text-tertiary);background:var(--surface-card);padding:1px 8px;border-radius:var(--radius-full);margin-left:4px}.gantt-v2-row{display:flex;align-items:stretch;border-bottom:1px dashed var(--border-subtle);min-height:32px}.gantt-v2-row:last-child{border-bottom:none}.gantt-v2-row:hover,.gantt-v2-row:hover .gantt-v2-label{background:var(--surface-subtle)}.gantt-v2-grid{position:absolute;top:0;bottom:0;border-left:1px solid var(--border-subtle);opacity:.6}.gantt-v2-grid--major{border-left-color:var(--border-default)}.gantt-v2-bar{position:absolute;top:6px;height:20px;border-radius:6px;padding:0 8px;display:flex;align-items:center;overflow:hidden;box-shadow:var(--shadow-xs);color:var(--text-inverse);font-size:11px;font-weight:600;white-space:nowrap;transition:filter var(--duration-instant) var(--ease-out),transform var(--duration-instant) var(--ease-out)}.gantt-v2-bar:hover{filter:brightness(1.1);transform:translateY(-1px)}.gantt-v2-today-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--ph-primary);opacity:.65;pointer-events:none;z-index:1}.email-admin-page{max-width:960px;margin:0 auto;padding:24px}.email-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.email-page-title{display:flex;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.email-page-subtitle{margin:8px 0 0;max-width:620px;font-size:13px;color:var(--text-secondary);line-height:1.5}.email-callout{background:var(--info-bg);border-left:3px solid var(--info);color:var(--text-primary);border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.6;margin:8px 0 20px}.email-callout strong{color:var(--info);font-weight:600}.email-callout em{font-style:italic;color:var(--text-primary)}.email-callout--danger{background:var(--danger-bg);border-left-color:var(--danger);color:var(--danger)}.email-cards{display:flex;flex-direction:column;gap:14px}.email-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px;transition:box-shadow var(--duration-fast) var(--ease-out)}.email-card:hover{box-shadow:var(--shadow-sm)}.email-card--disabled{opacity:.7}.email-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.email-card-title{display:flex;align-items:flex-start;gap:10px}.email-card-icon--on{color:var(--ph-primary);flex-shrink:0;margin-top:2px}.email-card-icon--off{color:var(--text-disabled);flex-shrink:0;margin-top:2px}.email-card-label{font-weight:600;color:var(--text-primary);font-size:14px}.email-card-audience{font-size:12px;color:var(--text-tertiary);margin-top:2px}.email-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:500;color:var(--text-secondary)}.email-toggle input{position:absolute;opacity:0;pointer-events:none}.email-toggle-track{width:36px;height:20px;background:var(--surface-muted);border:1px solid var(--border-default);border-radius:999px;position:relative;transition:background .2s ease,border-color .2s ease}.email-toggle-track:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000026;transition:transform .2s ease}.email-toggle input:checked~.email-toggle-track{background:var(--ph-primary);border-color:var(--ph-primary-active)}.email-toggle input:checked~.email-toggle-track:before{transform:translate(16px)}.email-toggle input:focus-visible~.email-toggle-track{outline:2px solid var(--ph-primary-tint);outline-offset:2px}.email-card-body{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px;margin:12px 0}.email-field{display:flex;flex-direction:column;gap:6px}.email-field--full{grid-column:1 / -1}.email-field-label{font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-faint, var(--text-tertiary))}.email-field-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-tertiary);font-size:11px}.email-field select,.email-field input{padding:8px 10px;font-size:13px;background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-default);border-radius:6px}.email-field select:focus,.email-field input:focus{outline:none;border-color:var(--ph-primary);box-shadow:0 0 0 3px var(--ph-primary-light)}.email-field select:disabled,.email-field input:disabled{background:var(--surface-muted);color:var(--text-disabled);cursor:not-allowed}.email-card-meta{display:flex;flex-wrap:wrap;gap:12px 20px;padding-top:10px;border-top:1px dashed var(--border-subtle);margin-top:6px}.email-card-meta-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.email-card-meta-item strong{color:var(--text-secondary);font-weight:600}.email-card-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--border-subtle);margin-top:12px;flex-wrap:wrap}.email-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;border-radius:6px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease}.email-btn:disabled{opacity:.5;cursor:not-allowed}.email-btn--sm{padding:6px 12px;font-size:12px}.email-btn--primary{background:var(--ph-primary);color:#fff;border-color:var(--ph-primary)}.email-btn--primary:hover:not(:disabled){background:var(--ph-primary-hover);border-color:var(--ph-primary-hover)}.email-btn--ghost{background:var(--surface-card);color:var(--text-secondary);border-color:var(--border-default)}.email-btn--ghost:hover:not(:disabled){background:var(--surface-alt);border-color:var(--border-strong);color:var(--text-primary)}@media (max-width: 640px){.email-card-body{grid-template-columns:1fr}.email-page-header{flex-direction:column;align-items:stretch}}.email-log-section{margin-top:40px;padding-top:24px;border-top:1px solid var(--border-default)}.email-log-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.email-log-title{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.email-log-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px;padding:14px 16px;margin-bottom:16px;background:var(--surface-alt);border:1px solid var(--border-default);border-radius:10px}@media (max-width: 640px){.email-log-filters{grid-template-columns:1fr 1fr}}.email-log-summary{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--text-secondary);margin-bottom:10px;padding:8px 12px;background:var(--surface-muted);border-radius:8px}.email-log-summary strong{color:var(--text-primary);font-weight:600}.email-log-empty{padding:20px;text-align:center;color:var(--text-tertiary);font-size:13px;font-style:italic;border:1px dashed var(--border-default);border-radius:8px}.email-log-table-wrap{border:1px solid var(--border-default);border-radius:10px;overflow:hidden}.email-log-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface-card)}.email-log-table th{padding:10px 12px;text-align:left;background:var(--surface-alt);color:var(--text-faint, var(--text-tertiary));font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border-default)}.email-log-table td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:top}.email-log-table tr:last-child td{border-bottom:none}.email-log-table tr:hover td{background:var(--surface-alt)}.email-log-kind{font-family:SF Mono,Courier New,monospace;font-size:12px;color:var(--text-secondary)}.email-log-to{color:var(--text-secondary);font-size:12px}.email-log-subject{color:var(--text-primary);max-width:360px}.email-log-error{font-size:11px;color:var(--danger);margin-top:4px;font-family:SF Mono,Courier New,monospace;line-height:1.4;white-space:pre-wrap;word-break:break-word}.email-log-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px}.email-log-chip--success{background:var(--success-bg);color:var(--success)}.email-log-chip--warning{background:var(--warning-bg);color:var(--warning)}.email-log-chip--danger{background:var(--danger-bg);color:var(--danger)}.email-log-chip--neutral{background:var(--surface-muted);color:var(--text-tertiary)}.global-mode-banner{border-radius:12px;padding:16px 20px;margin:8px 0 20px;border:1px solid}.global-mode-banner--recette{background:var(--warning-bg);border-color:var(--warning)}.global-mode-banner--prod{background:var(--success-bg);border-color:var(--success)}.global-mode-head{display:flex;align-items:center;gap:14px}.global-mode-icon{flex-shrink:0;margin-top:2px}.global-mode-icon--recette{color:var(--warning)}.global-mode-icon--prod{color:var(--success)}.global-mode-text{flex:1}.global-mode-title{font-size:15px;color:var(--text-primary);line-height:1.4}.global-mode-title strong{font-weight:700}.global-mode-sub{font-size:13px;color:var(--text-secondary);margin-top:4px;line-height:1.5}.global-mode-sub code{background:var(--surface-card);border:1px solid var(--border-default);padding:1px 6px;border-radius:4px;font-size:12px;color:var(--text-primary)}.global-mode-edit{display:flex;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-default)}.global-mode-edit input{flex:1;padding:6px 10px;font-size:13px;background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-default);border-radius:6px}.global-mode-edit input:focus{outline:none;border-color:var(--ph-primary);box-shadow:0 0 0 3px var(--ph-primary-light)}.email-admin-page{width:100%;max-width:960px;box-sizing:border-box}.email-page-header{flex-wrap:wrap}.email-page-subtitle{max-width:100%}.global-mode-head{flex-wrap:wrap}.global-mode-text{flex:1 1 220px;min-width:0}.global-mode-sub code{overflow-wrap:anywhere;word-break:break-all}.global-mode-edit{flex-wrap:wrap}.global-mode-edit input{min-width:0;flex:1 1 180px}.email-card-head{flex-wrap:wrap}.email-card-title{flex:1 1 200px;min-width:0}.email-card-audience,.email-card-label,.email-field-label{overflow-wrap:anywhere}.email-field input,.email-field select{min-width:0;width:100%;box-sizing:border-box}@media (max-width: 480px){.email-admin-page{padding:20px 12px}.email-log-filters{grid-template-columns:1fr}.email-page-title{font-size:20px}.email-card-actions .email-btn{flex:1 1 auto;justify-content:center}}.email-log-table-wrap{overflow-x:auto}.email-log-table{min-width:480px}.email-log-error{max-width:100%;overflow-wrap:anywhere}.email-log-subject{min-width:0;word-break:break-word}@media (max-width: 640px){html,body{overflow-x:hidden;max-width:100vw}.email-admin-page{overflow-x:hidden}}.scope-toggle{display:inline-flex;gap:2px;background:var(--surface-alt);border-radius:6px;padding:2px}.scope-toggle-btn{border:none;background:transparent;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;color:var(--text-tertiary);transition:background .12s,color .12s;display:inline-flex;align-items:center;gap:4px}.scope-toggle-btn.is-active{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px #00000014}.scope-toggle-btn:hover:not(.is-active):not(:disabled){color:var(--text-secondary)}.scope-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.scope-toggle-badge{background:var(--brand);color:var(--text-on-color);font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:14px;text-align:center}.manager-cockpit-page .kpi-cards{margin:16px 0 24px}.cockpit-section{margin:24px 0}.cockpit-section-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.cockpit-presence-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cockpit-presence-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.cockpit-presence-item{padding:8px 12px;background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:6px;font-size:13px}.my-day-mini-tile-hint{color:var(--text-tertiary);font-weight:400;font-size:12px}.mon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px}.mon-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px 24px}.mon-card-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);margin-bottom:10px}.mon-card-head h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.mon-card-body{display:flex;flex-direction:column;gap:6px}.mon-kpi-row{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:6px;padding:3px 0}.mon-kpi-label{color:var(--text-secondary);font-size:13px}.mon-kpi-value{font-weight:600;font-size:18px;font-variant-numeric:tabular-nums;color:var(--text-primary)}.mon-kpi-value--ok{color:var(--success)}.mon-kpi-value--warn{color:var(--warning)}.mon-kpi-value--danger{color:var(--danger)}.mon-kpi-hint{grid-column:1 / -1;color:var(--text-tertiary);font-size:11px;font-style:italic}.mon-sparkline-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;margin-top:4px;border-top:1px dashed var(--border-subtle)}.mon-sparkline-label{color:var(--text-tertiary);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.mon-bar-breakdown{display:flex;flex-direction:column;gap:4px;margin-top:8px}.mon-bar-row{display:grid;grid-template-columns:90px 1fr 40px;align-items:center;gap:8px}.mon-bar-label{color:var(--text-secondary);font-size:12px;text-transform:capitalize}.mon-bar-track{height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden;position:relative}.mon-bar-fill{display:block;height:100%;background:var(--brand);border-radius:4px;transition:width .5s ease}.mon-bar-fill--ok{background:var(--success)}.mon-bar-fill--warn{background:var(--warning)}.mon-bar-fill--danger{background:var(--danger)}.mon-bar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:13px;font-weight:600}.mon-full-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-top:12px}.mon-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}.mon-kpi-mini{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm)}.mon-kpi-mini-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.mon-kpi-mini-value{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.1}.mon-kpi-mini-hint{font-size:11px;color:var(--text-tertiary)}.mon-ai-table{width:100%;border-collapse:collapse;font-size:13px}.mon-ai-table th,.mon-ai-table td{padding:6px 10px;border-bottom:1px solid var(--border-subtle)}.mon-ai-table th{font-weight:600;color:var(--text-secondary);text-align:left;background:var(--surface-alt)}.mon-ai-table tr:last-child td{border-bottom:none}.mon-ai-table tr:hover td{background:var(--surface-alt)}.users-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;margin:12px 0;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md)}.users-filter-search{position:relative;flex:1 1 240px;min-width:200px}.users-filter-search-icon{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.users-filter-search input[type=search]{width:100%;padding:6px 30px;border:1px solid var(--border-default);border-radius:6px;background:var(--surface);color:var(--text-primary);font-size:13px}.users-filter-search-clear{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;border-radius:3px}.users-filter-search-clear:hover{color:var(--text-primary);background:var(--surface-hover)}.users-filter-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.users-filter-item select{padding:5px 8px;border:1px solid var(--border-default);border-radius:6px;background:var(--surface);color:var(--text-primary);font-size:13px}.users-filter-toggle{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border-default);border-radius:6px;background:var(--surface);cursor:pointer;font-size:13px;color:var(--text-primary);-webkit-user-select:none;user-select:none;transition:background .15s}.users-filter-toggle:hover{background:var(--surface-hover)}.users-filter-toggle input[type=checkbox]{margin:0;cursor:pointer}.users-filter-reset{padding:5px 10px;border:1px solid var(--border-default);border-radius:6px;background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:12px;margin-left:auto}.users-filter-reset:hover{color:var(--text-primary);background:var(--surface-hover)}.users-badge--demo{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info);border:1px solid color-mix(in srgb,var(--info) 30%,transparent)}.users-badge--must-change{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}.topbar-search{flex:1 1 auto;min-width:0;max-width:480px;display:flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-alt);color:var(--text-tertiary);cursor:pointer;text-align:left;font-size:13px;transition:border-color var(--duration-instant) var(--ease-out),background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.topbar-search:hover{border-color:var(--ph-primary);background:var(--surface);color:var(--text-secondary)}.topbar-search:focus-visible{outline:2px solid var(--ph-primary);outline-offset:2px}.topbar-search-icon{flex-shrink:0}.topbar-search-placeholder{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-search-kbd{flex-shrink:0;display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--surface-card);color:var(--text-secondary);font-family:var(--font-mono, monospace);font-size:11px;font-weight:600;letter-spacing:.3px}.topbar-search-kbd-mac{display:none}.topbar-search-kbd-win{display:inline}@supports (font: -apple-system-body){.topbar-search-kbd-mac{display:inline}.topbar-search-kbd-win{display:none}}.topbar-slim>.topbar-slim-title{flex:0 0 auto}@media (max-width: 900px){.topbar-search-kbd{display:none}.topbar-search-placeholder{font-size:12px}}@media (max-width: 640px){.topbar-search{max-width:none;padding:6px 8px;justify-content:center}.topbar-search-placeholder{display:none}}.login-shell--revealing{animation:login-fade-out .6s ease-out forwards;pointer-events:none}.login-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:linear-gradient(180deg,#00b388,#00896a 45%,#005a48);transform:translateY(-100%);animation:login-curtain-wipe .6s cubic-bezier(.65,.05,.36,1) forwards;pointer-events:none}.login-curtain:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.35) 0%,rgba(255,255,255,.15) 25%,transparent 55%);opacity:0;animation:login-curtain-glow .6s ease-out forwards}@keyframes login-fade-out{0%{opacity:1}40%{opacity:.8}to{opacity:0}}@keyframes login-curtain-wipe{0%{transform:translateY(-100%)}55%{transform:translateY(0)}to{transform:translateY(0);opacity:1}}@keyframes login-curtain-glow{0%{opacity:0}40%{opacity:1}to{opacity:.6}}@media (prefers-reduced-motion: reduce){.login-shell--revealing{animation:none;opacity:0;transition:opacity .2s ease-out}.login-curtain{display:none}}.ai-briefing{margin:16px 0;padding:16px 18px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-card)}.ai-briefing-head,.ai-briefing-actions,.ai-briefing-tools,.ai-briefing-title{display:flex;align-items:center}.ai-briefing-head{justify-content:space-between;gap:12px}.ai-briefing-title{gap:7px;color:var(--text-primary);font-size:13px;font-weight:650}.ai-briefing-title svg{color:var(--ph-primary)}.ai-briefing-tools{gap:4px}.ai-briefing-copy{margin:10px 0 0;max-width:900px;color:var(--text-secondary);font-size:13px;line-height:1.55}.ai-briefing-error{color:var(--danger)}.ai-briefing-timestamp{margin:4px 0 0;font-size:11px}.ai-briefing-actions{flex-wrap:wrap;gap:8px 18px;margin-top:10px}.ai-briefing-actions .btn-link{display:inline-flex;align-items:center;gap:4px}.simulations-page{max-width:1440px;margin:0 auto}.simulations-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.simulations-header h1{display:flex;align-items:center;gap:10px}.simulation-preset-hint{margin:8px 0 0}.simulation-sandbox-badge,.simulation-readonly{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-subtle);border-radius:999px;padding:5px 9px;color:var(--text-secondary);background:var(--surface-card);font-size:11px;font-weight:600;white-space:nowrap}.simulation-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:18px;align-items:start}.simulation-prompt-panel,.simulation-result-panel{min-width:0;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-card);padding:20px}.simulation-prompt-panel label{display:block;margin-bottom:8px;color:var(--text-primary);font-size:13px;font-weight:600}.simulation-prompt-panel label:not(:first-of-type){margin-top:14px}.simulation-mode-toggle{display:inline-flex;align-items:center;gap:2px;margin-bottom:16px;padding:2px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card)}.simulation-mode-toggle button{padding:6px 12px;border:0;background:transparent;color:var(--text-tertiary);font-size:12px;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-instant) var(--ease-out),color var(--duration-instant) var(--ease-out)}.simulation-mode-toggle button:hover{background:var(--surface-subtle);color:var(--text-primary)}.simulation-mode-toggle button.active{background:var(--ph-primary-light);color:var(--ph-primary-active)}.simulation-prompt-panel input[type=number],.simulation-prompt-panel input[type=month]{width:100%;box-sizing:border-box}.simulation-prompt-panel textarea{box-sizing:border-box;width:100%;min-height:126px;resize:vertical}.simulation-prompt-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.simulation-prompt-footer>span{color:var(--text-tertiary);font-size:11px}.simulation-unit-note,.simulation-notice{color:var(--text-tertiary);font-size:11px;line-height:1.5}.simulation-unit-note{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--border-subtle)}.simulation-result-panel{min-height:360px}.simulation-result-panel>.empty-state{min-height:310px}.simulation-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.simulation-result-head span{color:var(--text-tertiary);font-size:11px}.simulation-result-head h2{margin:5px 0 0;font-size:18px}.simulation-result-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.simulation-summary{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:1px;margin:20px 0;border:1px solid var(--border-subtle);background:var(--border-subtle)}.simulation-summary>div{display:grid;gap:5px;padding:12px;background:var(--surface-card)}.simulation-summary span{color:var(--text-tertiary);font-size:10px}.simulation-summary strong{color:var(--text-primary);font-size:22px;font-variant-numeric:tabular-nums}.simulation-summary-good strong{color:var(--success)}.simulation-summary-bad strong{color:var(--danger)}.simulation-table-wrap{max-width:100%}.simulation-table{width:100%;min-width:690px}.simulation-table td span{color:var(--text-tertiary);font-size:11px}.simulation-table .text-danger{color:var(--danger)}.simulation-table .text-success{color:var(--success)}.simulation-delta-up,.simulation-delta-down{display:table-cell;font-weight:650}.simulation-delta-up{color:var(--danger)}.simulation-delta-down{color:var(--success)}.simulation-delta-up svg,.simulation-delta-down svg{vertical-align:-3px;margin-right:3px}.simulation-notice{display:flex;align-items:center;gap:6px;margin:14px 0 0}.simulation-error{display:flex;align-items:flex-start;gap:9px;padding:14px;border:1px solid var(--banner-warn-border);background:var(--banner-warn-bg);color:var(--text-primary);font-size:13px}@media (max-width: 960px){.simulation-layout{grid-template-columns:1fr}.simulation-summary{grid-template-columns:repeat(3,minmax(90px,1fr))}}@media (max-width: 640px){.simulations-header{align-items:stretch;flex-direction:column}.simulation-sandbox-badge{align-self:flex-start}.simulation-prompt-panel,.simulation-result-panel{padding:16px}.simulation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.simulation-result-head{flex-direction:column}}
