:root{--color-brand-primary:#00acec;--color-brand-primary-rgb:0, 172, 236;--color-brand-primary-dark:#008bbf;--color-brand-primary-light:#4dc4f2;--color-brand-primary-pale:#e0f4fc;--color-secondary:#a8b2bc;--color-secondary-dark:#8a95a0;--color-secondary-light:#c5cdd4;--color-text-primary:#333;--color-text-secondary:#666;--color-text-tertiary:#999;--color-text-inverse:#fff;--color-border-light:#e0e0e0;--color-border-medium:#ccc;--color-border-dark:#888;--color-bg-page:#f5f5f7;--color-bg-surface:#fff;--color-bg-alt:#fafafa;--color-bg-subtle:#f8f9fa;--color-bg-hover:#f0f0f0;--color-success:#28a745;--color-success-light:#d4edda;--color-warning:#ffc107;--color-warning-light:#fff3cd;--color-error:#dc3545;--color-error-light:#f8d7da;--color-info:#17a2b8;--color-info-light:#d1ecf1;--color-status-not-started:#999;--color-status-in-progress:#2196f3;--color-status-completed:#28a745;--color-status-blocked:#dc3545;--color-status-deferred:#ffc107;--font-family-base:system-ui, -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;--font-family-mono:"Consolas", "Monaco", "Courier New", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.25rem;--radius-base:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-base:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-md:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-lg:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--transition-fast:.15s ease-in-out;--transition-base:.25s ease-in-out;--transition-slow:.35s ease-in-out;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-tooltip:1070;--header-height:56px;--panel-min-width:320px;--panel-default-width:400px;--resize-handle-width:6px}@media (prefers-contrast:high){:root{--color-border-light:#000;--color-text-secondary:#000}}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0s;--transition-base:0s;--transition-slow:0s}}[data-company=asls]{--color-brand-primary:#9b2743;--color-brand-primary-rgb:155, 39, 67;--color-brand-primary-dark:#7a1f35;--color-brand-primary-light:#c95b77;--color-brand-primary-pale:#f5e5e9}[data-company=xpedient]{--color-brand-primary:#175ba2;--color-brand-primary-rgb:23, 91, 162;--color-brand-primary-dark:#124a84;--color-brand-primary-light:#4a82ba;--color-brand-primary-pale:#e3edf6}[data-company=slot3d]{--color-brand-primary:#f56423;--color-brand-primary-rgb:245, 100, 35;--color-brand-primary-dark:#c44f1b;--color-brand-primary-light:#f8894f;--color-brand-primary-pale:#fde8dd}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-page);min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-brand-primary);text-decoration:none}a:hover{color:var(--color-brand-primary-dark);text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-brand-primary);outline-offset:2px}.login-modal-backdrop{z-index:var(--z-modal-backdrop);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-modal{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px;overflow:hidden}.login-modal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.login-modal-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.login-modal-close{font-size:var(--font-size-xl);color:var(--color-text-tertiary);padding:var(--space-1);background:0 0;border:none;line-height:1}.login-modal-close:hover{color:var(--color-text-primary)}.login-modal-body{padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.login-modal-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.login-modal-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-base);font-size:var(--font-size-base);transition:border-color var(--transition-fast);outline:none}.login-modal-input:focus{border-color:var(--color-brand-primary)}.login-modal-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-brand-primary);color:#fff;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:background-color var(--transition-fast);border:none}.login-modal-btn:hover:not(:disabled){background-color:var(--color-brand-primary-dark)}.login-modal-btn:disabled{opacity:.5;cursor:not-allowed}.login-modal-error{color:var(--color-error);font-size:var(--font-size-sm)}.login-modal-success{color:var(--color-success);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.company-badge{color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);white-space:nowrap;vertical-align:middle;justify-content:center;align-items:center;line-height:1;display:inline-flex}.company-badge--md{font-size:var(--font-size-xs);height:20px;padding:2px 6px}.company-badge--sm{height:16px;padding:1px 4px;font-size:.625rem}.ucm-modal{max-width:900px}.ucm-layout{gap:var(--space-6);min-height:400px;display:flex}.ucm-user-list{border-right:1px solid var(--color-border);padding-right:var(--space-6);flex-direction:column;flex:0 0 320px;display:flex}.ucm-list-header{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.ucm-search{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.ucm-users{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.ucm-user-item{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);display:flex}.ucm-user-item:hover{background:var(--color-bg-hover)}.ucm-user-item--selected{background:var(--color-brand-primary-pale);font-weight:var(--font-weight-semibold)}.ucm-user-email{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ucm-user-badges{flex-shrink:0;gap:2px;display:flex}.ucm-detail{flex:1;min-width:0}.ucm-detail-email{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-4);word-break:break-all}.ucm-section{margin-bottom:var(--space-4)}.ucm-section-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2);display:block}.ucm-role-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-surface)}.ucm-company-checkboxes{gap:var(--space-2);flex-direction:column;display:flex}.ucm-company-checkbox{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);cursor:pointer;display:flex}.ucm-company-checkbox input[type=checkbox]{cursor:pointer}.ucm-no-selection{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding-top:var(--space-6);text-align:center}.ucm-loading{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--space-4);text-align:center}.layout{flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.layout-header{height:var(--header-height);background-color:var(--color-brand-primary);color:var(--color-text-inverse);padding:0 var(--space-6);box-shadow:var(--shadow-sm);z-index:var(--z-sticky);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.layout-header--mobile{display:none}.layout-header-left{align-items:center;gap:var(--space-4);min-width:0;display:flex}.layout-header-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.layout-header-actions{align-items:center;gap:var(--space-3);display:flex}.layout-toggle-chat{color:var(--color-text-inverse);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background var(--transition-fast);background:#ffffff26;border:1px solid #ffffff4d}.layout-toggle-chat:hover{background:#ffffff40}.layout-header-user{font-size:var(--font-size-sm);color:#fffc}.layout-token-btn{cursor:pointer;font-size:var(--font-size-sm);padding:var(--space-1);opacity:.7;transition:opacity var(--transition-fast);background:0 0;border:none;line-height:1}.layout-token-btn:hover{opacity:1}.layout-toast{bottom:var(--space-6);background:var(--color-text-primary);color:var(--color-bg-surface);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:.2s ease-out layout-toast-in;position:fixed;left:50%;transform:translate(-50%)}@keyframes layout-toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.layout-project-menu{align-items:center;gap:var(--space-2);display:flex;position:relative}.layout-hamburger{color:var(--color-text-inverse);border-radius:var(--radius-sm);width:36px;height:32px;font-size:var(--font-size-lg);cursor:pointer;transition:background var(--transition-fast);background:#ffffff26;border:1px solid #ffffff4d;flex-shrink:0;justify-content:center;align-items:center;display:flex}.layout-hamburger:hover{background:#ffffff40}.layout-project-name{color:var(--color-text-inverse);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;max-width:240px;padding:0;overflow:hidden}.layout-project-name:hover{text-decoration:underline}.layout-project-name--mobile{max-width:160px;font-size:var(--font-size-xs)}.layout-project-dropdown{margin-top:var(--space-2);background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-modal);min-width:300px;position:absolute;top:100%;left:0}.layout-body--desktop{height:calc(100vh - var(--header-height));flex:1;display:flex;overflow:hidden}.layout-body--mobile{display:none}.layout-main{padding:var(--space-6);flex:1;min-width:300px;overflow-y:auto}.layout-resize-handle{width:var(--resize-handle-width);background-color:var(--color-border-light);cursor:col-resize;transition:background-color var(--transition-fast);flex-shrink:0}.layout-resize-handle:hover{background-color:var(--color-brand-primary-light)}.layout-chat{background-color:var(--color-bg-surface);border-right:1px solid var(--color-border-light);flex-shrink:0;min-width:280px;max-width:30vw;overflow:hidden}.layout-right-panel{background-color:var(--color-bg-surface);border-left:1px solid var(--color-border-light);flex-direction:column;flex-shrink:0;width:25vw;min-width:250px;max-width:400px;display:flex;overflow:hidden}.right-panel-section{border-bottom:1px solid var(--color-border-light);flex:1;min-height:0;overflow:hidden}.right-panel-section:first-child{flex:0 auto;max-height:50%}.right-panel-section:last-child{border-bottom:none}.layout-bottom-nav{display:none}.layout-mobile-logo{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:1px}.layout-mobile-user{position:relative}.layout-mobile-avatar{color:#fff;width:32px;height:32px;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:50%;justify-content:center;align-items:center;display:flex}.layout-mobile-dropdown{background:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-3);z-index:var(--z-modal);min-width:200px;position:absolute;top:40px;right:0}.layout-mobile-dropdown-email{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-2);word-break:break-all;display:block}.layout-mobile-dropdown-btn{width:100%;padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text-primary);background:0 0}@media (width<=1100px){.layout-chat{min-width:240px;max-width:280px}.layout-right-panel{width:220px;min-width:200px}.layout-main{padding:var(--space-4)}}@media (width<=900px){.layout-header--desktop{display:none}.layout-header--mobile{padding:0 var(--space-4);height:48px;display:flex}.layout-body--desktop{display:none}.layout-body--mobile{flex:1;display:flex;position:relative;overflow:hidden}.layout-mobile-view{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:none;position:absolute;inset:0;overflow-y:auto}.layout-mobile-view--active{flex-direction:column;display:flex}.layout{touch-action:none;overflow:hidden}.layout-mobile-view--active{touch-action:pan-y}.layout-main--mobile{padding:var(--space-3);flex:1}.layout-mobile-chat{flex-direction:column;height:100%;display:flex}.layout-mobile-info{flex-direction:column;height:100%;display:flex;overflow-y:auto}.layout-mobile-info .right-panel-section{flex:none;min-height:200px;overflow-y:auto}.layout-bottom-nav{background:var(--color-bg-surface);border-top:1px solid var(--color-border-light);padding-bottom:env(safe-area-inset-bottom,0);flex-shrink:0;display:flex}.layout-bottom-nav-btn{padding:var(--space-2) 0;cursor:pointer;color:var(--color-text-tertiary);transition:color var(--transition-fast);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.layout-bottom-nav-btn--active{color:var(--color-brand-primary)}.layout-bottom-nav-icon{font-size:18px;line-height:1}.layout-bottom-nav-label{font-size:10px;font-weight:var(--font-weight-medium)}}.login-screen{background-color:var(--color-bg-default);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:100%;max-width:400px;padding:var(--space-8);background-color:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}.login-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-brand-primary);margin:0 0 var(--space-2)}.login-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-6)}.login-form{gap:var(--space-3);flex-direction:column;display:flex}.login-input{padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);outline:none}.login-input:focus{border-color:var(--color-brand-primary)}.login-button{padding:var(--space-3);background-color:var(--color-brand-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast);border:none}.login-button:hover:not(:disabled){background-color:var(--color-brand-primary-dark)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-message{margin-top:var(--space-4);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.login-message--success{color:var(--color-success);background-color:var(--color-success-light)}.login-message--error{color:var(--color-error);background-color:var(--color-error-light)}.filter-chip-bar{align-items:center;gap:var(--space-4);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.filter-chip-group{align-items:center;gap:var(--space-1);display:flex}.filter-chip-group-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-right:var(--space-1);white-space:nowrap}.filter-chip{border-radius:var(--radius-full);border:1px solid var(--color-border-medium);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;padding:2px 10px}.filter-chip:hover{border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.filter-chip--active{background:var(--color-brand-primary);border-color:var(--color-brand-primary);color:#fff}.filter-chip--active:hover{background:var(--color-brand-primary-dark);border-color:var(--color-brand-primary-dark);color:#fff}.filter-chip-settings{border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;margin-left:auto;line-height:1}.filter-chip-settings:hover{border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.status-board{--status-board-green:#4caf50;--status-board-yellow:#ff9800;--status-board-red:#f44336;--status-board-blue:#78909c;--status-board-gray:#bdbdbd;margin-bottom:var(--space-6)}.status-board-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.status-board-groups{gap:var(--space-6);display:flex;overflow-x:auto}.status-board-group{flex-shrink:0;min-width:0}.status-board-month{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);margin-bottom:var(--space-2);white-space:nowrap}.status-board-cards{gap:var(--space-2);flex-wrap:wrap;display:flex}.status-board-card{gap:var(--space-1);width:160px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg-surface);cursor:pointer;text-align:left;transition:box-shadow var(--transition-fast);border:none;border-left:4px solid #0000;flex-direction:column;display:flex}.status-board-card:hover{box-shadow:var(--shadow-md)}.status-board-card--on-track{border-left-color:var(--status-board-green)}.status-board-card--at-risk{border-left-color:var(--status-board-yellow)}.status-board-card--critical{border-left-color:var(--status-board-red)}.status-board-card--complete{border-left-color:var(--status-board-blue)}.status-board-card--unknown{border-left-color:var(--status-board-gray)}.status-board-card-top{align-items:center;gap:var(--space-1);min-width:0;display:flex}.status-board-card-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-board-card-category{color:var(--color-text-tertiary);background:var(--color-bg-subtle);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0;padding:0 4px;font-size:9px}.status-board-card-row2{align-items:center;gap:4px;display:flex}.status-board-card-date{color:var(--color-text-tertiary);white-space:nowrap;font-size:10px}.status-board-progress{background:var(--color-bg-subtle);border-radius:3px;gap:2px;height:12px;display:flex;overflow:hidden}.status-board-segment{background:var(--color-border-light);border-radius:2px;height:100%;position:relative}.status-board-segment-fill{border-radius:inherit;height:100%;position:absolute;top:0;left:0}.status-board-segment--empty{background:var(--color-bg-subtle)}.project-card{background:var(--color-bg-surface);border:1px solid var(--color-border-light,#e5e7eb);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition-base), transform var(--transition-fast);gap:var(--space-4);outline:none;flex-direction:column;display:flex}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card:focus-visible{outline:2px solid var(--color-brand-primary);outline-offset:2px}.project-card-header{gap:var(--space-1);flex-direction:column;display:flex}.project-card-header-main{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.project-card-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;overflow:hidden}.project-card-health{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.project-card-health--on-track{color:#166534;background:#dcfce7}.project-card-health--at-risk{color:#854d0e;background:#fef9c3}.project-card-health--critical{color:#991b1b;background:#fee2e2}.project-card-health--complete{color:#1e40af;background:#dbeafe}.project-card-meta{gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex}.project-card-status{font-weight:var(--font-weight-medium)}.project-card-category{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.project-card-summary-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.project-card-summary-text--pending{color:var(--color-text-tertiary);font-style:italic}.project-card-section{gap:var(--space-2);flex-direction:column;display:flex}.project-card-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0}.project-card-task-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-card-task-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);display:flex}.project-card-task-item--completed .project-card-task-name{color:var(--color-text-tertiary)}.project-card-cp-dot{background:var(--color-brand-primary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.project-card-task-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-primary);flex:1;overflow:hidden}.project-card-task-milestone{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:120px;overflow:hidden}.project-card-task-overflow{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-style:italic}.project-card-change-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-card-change-item{align-items:baseline;gap:var(--space-2);font-size:var(--font-size-xs);display:flex}.project-card-change-type{font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);background:var(--color-bg-subtle);border-radius:var(--radius-sm);padding:1px var(--space-1);white-space:nowrap;flex-shrink:0}.project-card-change-summary{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.project-card-footer{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding-top:var(--space-2);border-top:1px solid var(--color-border-light,#e5e7eb);margin-top:auto}.dashboard-settings-overlay{z-index:var(--z-modal);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dashboard-settings-modal{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:600px;max-height:80vh;padding:var(--space-6);overflow-y:auto}.dashboard-settings-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.dashboard-settings-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0}.dashboard-settings-header .modal-close-btn{font-size:var(--font-size-xl);cursor:pointer;color:var(--color-text-secondary);padding:var(--space-1);background:0 0;border:none;line-height:1}.dashboard-settings-columns{margin-bottom:var(--space-4);align-items:stretch;gap:0;display:flex}.dashboard-settings-column{flex:1;min-width:0}.dashboard-settings-column-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-2);text-align:center}.dashboard-settings-list{border:1px solid var(--color-border-light);border-radius:var(--radius-md);min-height:200px;max-height:300px;padding:var(--space-1);margin:0;list-style:none;overflow-y:auto}.dashboard-settings-item{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-settings-item:hover{background:var(--color-bg-subtle)}.dashboard-settings-item.selected{background:var(--color-brand-primary-pale);color:var(--color-brand-primary-dark)}.dashboard-settings-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 var(--space-3)}.dashboard-settings-exclusion-list{min-height:150px;max-height:400px;margin-bottom:var(--space-4)}.dashboard-settings-item{align-items:center;gap:var(--space-2);display:flex}.dashboard-settings-item-check{text-align:center;width:16px;font-size:var(--font-size-xs);color:var(--color-success);flex-shrink:0}.dashboard-settings-item--excluded .dashboard-settings-item-check{color:var(--color-text-tertiary)}.dashboard-settings-item-name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dashboard-settings-item-name--excluded{color:var(--color-text-tertiary);text-decoration:line-through}.dashboard-settings-item-category{color:var(--color-text-tertiary);background:var(--color-bg-subtle);border-radius:var(--radius-full);flex-shrink:0;padding:0 4px;font-size:10px}.dashboard-settings-empty{padding:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;font-style:italic}.dashboard-settings-arrows{justify-content:center;gap:var(--space-2);padding:0 var(--space-2);flex-direction:column;display:flex}.dashboard-settings-arrows button{border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);background:var(--color-bg-surface);cursor:pointer;width:32px;height:28px;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.dashboard-settings-arrows button:hover:not(:disabled){background:var(--color-brand-primary-pale);border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.dashboard-settings-arrows button:disabled{opacity:.3;cursor:not-allowed}.dashboard-settings-footer{justify-content:flex-end;gap:var(--space-3);display:flex}.dashboard-settings-footer .btn-secondary{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);background:var(--color-bg-surface);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dashboard-settings-footer .btn-primary{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-brand-primary);color:#fff;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none}.dashboard-settings-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed}.loading-spinner{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);flex-direction:column;display:flex}.loading-spinner-circle{border:3px solid var(--color-border-light);border-top-color:var(--color-brand-primary);border-radius:50%;animation:.8s linear infinite spin}.loading-spinner--sm .loading-spinner-circle{border-width:2px;width:20px;height:20px}.loading-spinner--md .loading-spinner-circle{width:32px;height:32px}.loading-spinner--lg .loading-spinner-circle{border-width:4px;width:48px;height:48px}.loading-spinner-message{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}.dashboard{flex-direction:column;height:100%;display:flex;overflow-y:auto}.dashboard-header{align-items:baseline;gap:var(--space-3);padding:var(--space-4) 0 var(--space-3);display:flex}.dashboard-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.dashboard-count{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.dashboard-settings-btn{border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;margin-left:auto;line-height:1}.dashboard-settings-btn:hover{background:var(--color-bg-subtle);border-color:var(--color-border-medium);color:var(--color-text-primary)}.dashboard-grid{gap:var(--space-6);padding:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-content:start;display:grid}.dashboard-loading{justify-content:center;align-items:center;height:60vh;display:flex}.dashboard-empty{flex-direction:column;height:100%;display:flex;overflow-y:auto}.dashboard-empty .dashboard-empty-message{flex:1;justify-content:center;align-items:center;display:flex}.dashboard-empty-message{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center}@media (width<=768px){.dashboard-grid{padding:var(--space-4);gap:var(--space-4);grid-template-columns:1fr}.dashboard-header{padding:var(--space-4) var(--space-4) var(--space-3)}}.project-tabs{padding:var(--space-2) 0;flex-direction:column;min-width:280px;max-height:60vh;display:flex;overflow-y:auto}.project-tab{align-items:center;display:flex}.project-tab-button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;transition:background-color var(--transition-fast), color var(--transition-fast);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;display:flex;overflow:hidden}.project-tab-button:hover{background-color:var(--color-bg-subtle);color:var(--color-text-primary)}.project-tab--selected .project-tab-button{color:var(--color-brand-primary);font-weight:var(--font-weight-semibold);background-color:var(--color-brand-primary-pale)}.project-tab-settings{cursor:pointer;font-size:var(--font-size-lg);color:var(--color-text-tertiary);padding:var(--space-1) var(--space-3);transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;line-height:1}.project-tab-settings:hover{color:var(--color-brand-primary)}.project-tab-status{background-color:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:8px;height:8px}.project-tab-status--active{background-color:var(--color-status-completed)}.project-tab-status--on-hold{background-color:var(--color-status-deferred)}.project-tab-status--completed{background-color:var(--color-status-in-progress)}.project-tab-status--cancelled{background-color:var(--color-text-tertiary)}.project-tab-name{text-overflow:ellipsis;overflow:hidden}.project-tab-create{padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border-light);margin-top:var(--space-1)}.project-tab-add{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:1px dashed var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);cursor:pointer;background:0 0;display:flex}.project-tab-add:hover{border-color:var(--color-brand-primary);color:var(--color-brand-primary);background-color:var(--color-brand-primary-pale)}.project-tab-create-form{align-items:center;gap:var(--space-1);display:flex}.project-tab-create-input{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--font-size-sm);outline:none;flex:1;min-width:0}.project-tab-create-input:focus{border-color:var(--color-brand-primary)}.project-tab-create-submit{padding:var(--space-1) var(--space-2);background-color:var(--color-brand-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;border:none;flex-shrink:0}.project-tab-create-submit:disabled{opacity:.5;cursor:not-allowed}.project-tab-create-cancel{cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-1);background:0 0;border:none;flex-shrink:0}.project-tab-create-cancel:hover{color:var(--color-text-primary)}.settings-overlay{z-index:var(--z-modal);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:800px;max-height:80vh;padding:var(--space-6);overflow-y:auto}.settings-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.settings-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0}.settings-project-name{font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.settings-saving{font-size:var(--font-size-xs);color:var(--color-brand-primary);font-weight:var(--font-weight-medium);animation:1s infinite settings-pulse}@keyframes settings-pulse{0%,to{opacity:1}50%{opacity:.4}}.settings-close{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text-secondary);background:0 0}.settings-close:hover{background:var(--color-bg-subtle)}.settings-section{margin-bottom:var(--space-6)}.settings-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.settings-toggle-row{align-items:center;gap:var(--space-3);display:flex}.settings-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.settings-toggle{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-medium);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;background:var(--color-bg-subtle);color:var(--color-text-secondary);transition:all var(--transition-fast)}.settings-toggle--on{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.settings-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.settings-category-select{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-surface);color:var(--color-text-primary)}.settings-loading{text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.settings-columns{align-items:stretch;gap:0;display:flex}.settings-column{flex:1;min-width:0}.settings-column-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-2);text-align:center}.settings-user-list{border:1px solid var(--color-border-light);border-radius:var(--radius-md);min-height:200px;max-height:300px;padding:var(--space-1);list-style:none;overflow-y:auto}.settings-user-item{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);text-overflow:ellipsis;white-space:nowrap;display:flex;overflow:hidden}.settings-user-item:hover{background:var(--color-bg-subtle)}.settings-user-item--selected{background:var(--color-brand-primary-pale);color:var(--color-brand-primary-dark)}.settings-user-item--self{font-weight:var(--font-weight-medium)}.settings-you-badge{background:var(--color-brand-primary-pale);color:var(--color-brand-primary);border-radius:var(--radius-full);flex-shrink:0;padding:1px 4px;font-size:9px}.settings-arrows{justify-content:center;gap:var(--space-2);padding:0 var(--space-2);flex-direction:column;display:flex}.settings-arrow-btn{border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);background:var(--color-bg-surface);cursor:pointer;width:32px;height:28px;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.settings-arrow-btn:hover:not(:disabled){background:var(--color-brand-primary-pale);border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.settings-arrow-btn:disabled{opacity:.3;cursor:not-allowed}.settings-archive-section{border-top:1px solid var(--color-border-light);padding-top:var(--space-4)}.settings-archive-btn{padding:var(--space-2) var(--space-4);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background-color:#0000}.settings-archive-btn:hover:not(:disabled){background-color:var(--color-error);color:#fff}.settings-archive-btn:disabled{opacity:.5;cursor:not-allowed}.task-list{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.task-item{font-size:var(--font-size-sm);padding:var(--space-1) 0;flex-direction:column;gap:0;display:flex}.task-row{align-items:center;gap:var(--space-2);display:flex}.task-description{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:calc(8px + var(--space-2));white-space:pre-wrap}.task-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px}.task-indicator--notstarted{background-color:var(--color-status-not-started)}.task-indicator--inprogress{background-color:var(--color-status-in-progress)}.task-indicator--completed{background-color:var(--color-status-completed)}.task-indicator--blocked{background-color:var(--color-status-blocked)}.task-name{color:var(--color-text-primary);flex:1}.task-item--completed .task-name{color:var(--color-text-tertiary);text-decoration:line-through}.task-assignee{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.task-effort{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.task-started-date{font-size:var(--font-size-xs);color:var(--color-status-in-progress);font-weight:var(--font-weight-medium)}.task-completed-date{font-size:var(--font-size-xs);color:var(--color-status-completed);font-weight:var(--font-weight-medium)}.task-projected-end{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.task-code{font-family:monospace;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);margin-right:var(--space-1)}.task-critical-badge{font-size:9px;font-weight:var(--font-weight-bold);color:var(--color-brand-primary);background-color:var(--color-brand-primary-pale);border-radius:var(--radius-sm);margin-left:var(--space-1);vertical-align:middle;padding:1px 4px}.task-critical-badge--explicit{color:#fff;background-color:var(--color-brand-primary)}.task-deps{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.task-dep-link{font-family:monospace;font-size:var(--font-size-xs);color:var(--color-brand-primary);cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.task-dep-link:hover{color:var(--color-brand-primary-dark);text-decoration-style:solid}.task-item--highlight{background-color:var(--color-brand-primary-pale);transition:background-color .3s}.task-item--risk-low{background-color:#4caf500f}.task-item--risk-medium{background-color:#ffc1071a}.task-item--risk-high{background-color:#ff98001a}.task-item--risk-critical{background-color:#f4433614}.milestone-card{background-color:var(--color-bg-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-base);transition:background-color var(--transition-fast), box-shadow var(--transition-fast)}.milestone-card:hover{box-shadow:var(--shadow-sm)}.milestone-card--critical{border-left:3px solid var(--color-brand-primary)}.milestone-card--selected{background-color:var(--color-brand-primary-pale)}.milestone-card-header{gap:var(--space-1);width:100%;padding:var(--space-3) var(--space-4);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;display:flex}.milestone-card-top{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.milestone-card-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text-primary)}.milestone-card-badge{padding:1px var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);white-space:nowrap;color:#fff;align-items:center;display:inline-flex}.milestone-card-badge--critical{background-color:var(--color-brand-primary-pale);color:var(--color-brand-primary-dark)}.milestone-card-badge--notstarted{background-color:var(--color-status-not-started)}.milestone-card-badge--inprogress{background-color:var(--color-status-in-progress)}.milestone-card-badge--completed{background-color:var(--color-status-completed)}.milestone-card-badge--blocked{background-color:var(--color-status-blocked)}.milestone-card-badge--deferred{background-color:var(--color-status-deferred);color:var(--color-text-primary)}.milestone-card-meta{gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary);display:flex}.milestone-card-effort{font-weight:var(--font-weight-medium)}.milestone-card-deps,.milestone-card-tasks{color:var(--color-text-tertiary)}.milestone-card-details{padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--color-border-light)}.milestone-card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-3);line-height:var(--line-height-relaxed)}.milestone-card-completed{font-size:var(--font-size-xs);color:var(--color-status-completed);margin-top:var(--space-2)}.milestone-card-task-section{margin-top:var(--space-3)}@media (width<=768px){.milestone-card-header{padding:var(--space-2) var(--space-3)}.milestone-card-top{gap:var(--space-1);flex-wrap:wrap}.milestone-card-name{font-size:var(--font-size-sm)}.milestone-card-meta{gap:var(--space-2);flex-wrap:wrap;font-size:10px}.milestone-card-details{padding:0 var(--space-3) var(--space-3)}}.timeline{padding:var(--space-4) 0;flex-direction:column;display:flex}.timeline-summary{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background-color:var(--color-bg-subtle);border-radius:var(--radius-md);border-left:3px solid var(--color-brand-primary);display:flex}.timeline-summary-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.timeline-summary-date{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-brand-primary)}.timeline-summary-effort{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.timeline-summary-separator{color:var(--color-border-medium)}.timeline-item{gap:var(--space-4);display:flex;position:relative}.timeline-track{flex-direction:column;flex-shrink:0;align-items:center;width:24px;display:flex}.timeline-node{border:2px solid var(--color-border-medium);background-color:var(--color-bg-surface);z-index:1;border-radius:50%;flex-shrink:0;width:14px;height:14px}.timeline-node--notstarted{border-color:var(--color-status-not-started);background-color:var(--color-bg-surface)}.timeline-node--inprogress{border-color:var(--color-status-in-progress);background-color:var(--color-status-in-progress)}.timeline-node--completed{border-color:var(--color-status-completed);background-color:var(--color-status-completed)}.timeline-node--blocked{border-color:var(--color-status-blocked);background-color:var(--color-status-blocked)}.timeline-node--deferred{border-color:var(--color-status-deferred);background-color:var(--color-status-deferred)}.timeline-line{background-color:var(--color-border-light);width:2px;min-height:var(--space-4);flex:1}.timeline-item:last-child .timeline-line{display:none}.timeline-card-wrapper{margin-bottom:var(--space-3);flex:1;min-width:0}.timeline-empty,.timeline-error{padding:var(--space-12);color:var(--color-text-tertiary);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.timeline-error{color:var(--color-error)}@media (width<=768px){.timeline-summary{gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);flex-wrap:wrap}.timeline-summary-separator{display:none}.timeline-summary-label,.timeline-summary-date{font-size:var(--font-size-xs)}.timeline-summary-effort{width:100%;font-size:10px}.timeline-item{gap:var(--space-2)}.timeline-item[style]{margin-left:16px!important}}.gantt{height:100%;margin:calc(-1 * var(--space-6));padding:var(--space-4) var(--space-6);flex-direction:column;display:flex;overflow:hidden}.gantt-top{gap:var(--space-4);padding:var(--space-4) 0 var(--space-3) 0;flex-direction:column;flex-shrink:1;display:flex;overflow:hidden}.gantt-summary{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-bg-subtle);border-radius:var(--radius-md);border-left:3px solid var(--color-brand-primary);display:flex}.gantt-summary-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.gantt-summary-date{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-brand-primary)}.gantt-summary-effort{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.gantt-summary-separator{color:var(--color-border-medium)}.gantt-summary-category{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg-subtle);border-radius:var(--radius-full);padding:1px 6px}.gantt-chart{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-surface);min-width:0;min-height:0;overflow:auto}.gantt-axis{border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-subtle);min-width:600px;height:32px;position:relative}.gantt-tick{height:100%;position:absolute;top:0;transform:translate(-50%)}.gantt-tick-label{color:var(--color-text-tertiary);white-space:nowrap;text-align:center;padding-top:4px;font-size:10px;display:block}.gantt-tick--monday .gantt-tick-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.gantt-tick-line{background-color:var(--color-border-light);width:1px;height:8px;position:absolute;bottom:0;left:50%}.gantt-tick--monday .gantt-tick-line{background-color:var(--color-border-medium);height:12px}.gantt-lanes{min-width:600px;position:relative}.gantt-lane{border-bottom:1px solid var(--color-border-light);position:relative}.gantt-lane:last-child{border-bottom:none}.gantt-lane-header{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-1) var(--space-3);background-color:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-light)}.gantt-lane--critical .gantt-lane-header{color:var(--color-brand-primary)}.gantt-lane-bars{width:100%;position:relative}.gantt-bar{align-items:center;gap:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;z-index:1;transition:opacity .15s,box-shadow .15s;display:flex;position:absolute;overflow:visible}.gantt-bar:hover{opacity:.9;box-shadow:0 2px 8px #00000026}.gantt-bar--selected{box-shadow:0 0 0 2px var(--color-brand-primary), 0 2px 8px #00000026}.gantt-bar--critical.gantt-bar--notstarted{border:2px solid var(--color-brand-primary);background-color:var(--color-brand-primary-pale)}.gantt-bar--critical.gantt-bar--inprogress{background-color:var(--color-brand-primary);color:#fff}.gantt-bar--critical.gantt-bar--completed{background-color:var(--color-status-completed);color:#fff}.gantt-bar--critical.gantt-bar--blocked{background-color:var(--color-status-blocked);color:#fff}.gantt-bar--critical.gantt-bar--deferred{background-color:var(--color-status-deferred);color:var(--color-text-primary)}.gantt-bar--parallel.gantt-bar--notstarted{border:1.5px solid var(--color-border-medium);background-color:var(--color-bg-alt)}.gantt-bar--parallel.gantt-bar--inprogress{background-color:var(--color-status-in-progress);opacity:.75;color:#fff}.gantt-bar--parallel.gantt-bar--completed{background-color:var(--color-status-completed);opacity:.65;color:#fff}.gantt-bar--parallel.gantt-bar--blocked{background-color:var(--color-status-blocked);opacity:.65;color:#fff}.gantt-bar--parallel.gantt-bar--deferred{background-color:var(--color-status-deferred);opacity:.65}.gantt-bar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);pointer-events:none}.gantt-bar-effort{opacity:.8;pointer-events:none;flex-shrink:0;font-size:10px}.gantt-bar--overflow-label .gantt-bar-label,.gantt-bar--overflow-label .gantt-bar-effort{color:var(--color-text-primary);text-shadow:0 0 3px var(--color-bg-surface), 0 0 3px var(--color-bg-surface)}.gantt-arrows{pointer-events:none;width:100%;position:absolute;top:0;left:0;overflow:visible}.gantt-arrow-path{fill:none;stroke:#ccc;stroke-width:1.5px;stroke-dasharray:4 3}.gantt-arrow-path--critical{stroke:#9b2743;stroke-width:2px;stroke-dasharray:none}.gantt-cards{gap:var(--space-3);min-height:35%;padding:var(--space-1) 0 var(--space-4) 0;flex-direction:column;flex:1;display:flex;overflow-y:auto}.gantt-card-wrapper{border-radius:var(--radius-md);transition:box-shadow .2s}.gantt-card-wrapper--selected{box-shadow:0 0 0 2px var(--color-brand-primary), 0 2px 8px #9b274326;border-radius:var(--radius-md)}.gantt-empty,.gantt-error{padding:var(--space-12);color:var(--color-text-tertiary);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.gantt-error{color:var(--color-error)}@media (width<=768px){.gantt-chart{display:none}.gantt-summary{gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);flex-wrap:wrap}.gantt-summary-separator{display:none}.gantt-summary-label,.gantt-summary-date{font-size:var(--font-size-xs)}.gantt-summary-effort{width:100%;font-size:10px}}.risk-panel{flex-direction:column;display:flex}.risk-panel-header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);border:none;border-bottom:1px solid var(--color-border-light);cursor:pointer;text-align:left;background:0 0;flex-shrink:0;width:100%;display:flex}.risk-panel-header:hover{background-color:var(--color-bg-subtle)}.risk-panel--empty .risk-panel-header{border-bottom:none}.risk-panel-chevron{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0;width:10px}.risk-panel-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.risk-panel-count{font-size:var(--font-size-xs);background:var(--color-bg-subtle);border-radius:var(--radius-full);color:var(--color-text-secondary);padding:1px 6px}.risk-panel-list{padding:var(--space-2);overflow-y:auto}.risk-panel-empty{text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm);padding:var(--space-4)}.risk-card{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-2);border-left:3px solid #0000}.risk-card--low{background-color:#4caf500f;border-left-color:#4caf50}.risk-card--medium{background-color:#ffc10714;border-left-color:#ffc107}.risk-card--high{background-color:#ff980014;border-left-color:#ff9800}.risk-card--critical{background-color:#f443360f;border-left-color:#f44336}.risk-card-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.risk-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex:1;min-width:0}.risk-card-prob{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.risk-card-prob--low{color:#4caf50}.risk-card-prob--medium{color:#f9a825}.risk-card-prob--high{color:#ff9800}.risk-card-prob--critical{color:#f44336}.risk-card-context{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.risk-card-task-link{font-size:var(--font-size-xs);color:var(--color-brand-primary);cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.risk-card-task-link:hover{color:var(--color-brand-primary-dark);text-decoration-style:solid}.risk-card-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--space-1);line-height:var(--line-height-normal)}.changelog-panel{background-color:var(--color-bg-surface);flex-direction:column;height:100%;display:flex}.changelog-panel-toggle{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.changelog-panel-toggle:hover{background-color:var(--color-bg-hover)}.changelog-panel-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary)}.changelog-panel-count{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background-color:var(--color-bg-subtle);color:var(--color-text-secondary);padding:0 var(--space-2);border-radius:var(--radius-full);text-align:center;min-width:20px}.changelog-panel-chevron{color:var(--color-text-tertiary);font-size:var(--font-size-xs);margin-left:auto}.changelog-panel-body{border-top:1px solid var(--color-border-light);flex:1;min-height:0;overflow-y:auto}.changelog-panel-empty,.changelog-panel-error{padding:var(--space-6);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.changelog-panel-error{color:var(--color-error)}.changelog-entries{flex:1;list-style:none;overflow-y:auto}.changelog-entry{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light)}.changelog-entry:last-child{border-bottom:none}.changelog-entry-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.changelog-entry-type{padding:1px var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);white-space:nowrap;display:inline-flex}.changelog-entry-type--milestoneadded{background-color:var(--color-success-light);color:var(--color-success)}.changelog-entry-type--milestoneupdated{background-color:var(--color-info-light);color:var(--color-info)}.changelog-entry-type--milestoneremoved{background-color:var(--color-error-light);color:var(--color-error)}.changelog-entry-type--taskupdated{background-color:var(--color-info-light);color:var(--color-info)}.changelog-entry-type--datechanged{background-color:var(--color-warning-light);color:#b8860b}.changelog-entry-type--scopechange,.changelog-entry-type--designchange{background-color:var(--color-brand-primary-pale);color:var(--color-brand-primary-dark)}.changelog-entry-type--note{background-color:var(--color-bg-subtle);color:var(--color-text-secondary)}.changelog-entry-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.changelog-entry-summary{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal)}.changelog-entry-meta{margin-top:var(--space-1)}.changelog-entry-author{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.changelog-entry-impact{font-size:var(--font-size-xs);color:var(--color-warning);margin-top:var(--space-1);font-style:italic}.chat-panel{flex-direction:column;height:100%;display:flex}.chat-panel--locked{color:var(--color-text-tertiary);font-size:var(--font-size-sm);justify-content:center;align-items:center}.chat-messages{padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{height:100%;color:var(--color-text-tertiary);font-size:var(--font-size-sm);text-align:center;padding:var(--space-8);justify-content:center;align-items:center;display:flex}.chat-message{flex-direction:column;gap:2px;max-width:85%;display:flex}.chat-message--user{align-self:flex-end}.chat-message--assistant{align-self:flex-start}.chat-message--tool{align-self:center;max-width:100%}.chat-message-content{padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);font-size:var(--font-size-sm);line-height:var(--line-height-normal);word-wrap:break-word}.chat-message--user .chat-message-content{white-space:pre-wrap}.chat-message--assistant .chat-message-content p{margin:0 0 .5em}.chat-message--assistant .chat-message-content p:last-child{margin-bottom:0}.chat-message--assistant .chat-message-content h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:.75em 0 .25em}.chat-message--assistant .chat-message-content ul,.chat-message--assistant .chat-message-content ol{margin:.25em 0;padding-left:1.25em}.chat-message--assistant .chat-message-content hr{border:none;border-top:1px solid var(--color-border-light);margin:.5em 0}.chat-message--user .chat-message-content{background-color:var(--color-brand-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-message--assistant .chat-message-content{background-color:var(--color-bg-subtle);color:var(--color-text-primary);border-bottom-left-radius:var(--radius-sm)}.chat-message-author{font-weight:var(--font-weight-medium);margin-right:var(--space-1)}.chat-message-time{color:var(--color-text-tertiary);padding:0 var(--space-1);font-size:10px}.chat-message--user .chat-message-time{text-align:right}.chat-tool{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:flex}.chat-tool--pending{background-color:var(--color-bg-subtle);color:var(--color-text-secondary)}.chat-tool--success{background-color:var(--color-success-light);color:var(--color-success)}.chat-tool--error{background-color:var(--color-error-light);color:var(--color-error)}.chat-tool-icon{font-size:var(--font-size-sm)}.chat-tool-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-typing{padding:var(--space-2) var(--space-3);align-self:flex-start;gap:4px;display:flex}.chat-typing span{background-color:var(--color-text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both typing-bounce}.chat-typing span:first-child{animation-delay:-.32s}.chat-typing span:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.chat-input-area{align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-surface);display:flex}.chat-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);resize:none;min-height:36px;max-height:120px;font-size:var(--font-size-sm);line-height:var(--line-height-normal);transition:border-color var(--transition-fast);outline:none;flex:1}.chat-input:focus{border-color:var(--color-brand-primary)}.chat-input:disabled{background-color:var(--color-bg-subtle);cursor:not-allowed}.chat-send{background-color:var(--color-brand-primary);color:#fff;width:36px;height:36px;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);transition:background-color var(--transition-fast), opacity var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send:hover:not(:disabled){background-color:var(--color-brand-primary-dark)}.chat-send:disabled{opacity:.4;cursor:not-allowed}
