:root{--color-bg-primary:#e2e8f0;--color-bg-secondary:#fff;--color-bg-tertiary:#f0f9ff;--color-bg-elevated:#fff;--color-bg-hover:#e0f2fe;--color-bg-active:#bae6fd;--color-surface:#fff;--color-surface-hover:#f0f9ff;--color-surface-border:#e2e8f0;--color-surface-border-hover:#38bdf8;--color-text-primary:#0c4a6e;--color-text-secondary:#0369a1;--color-text-tertiary:#38bdf8;--color-text-muted:#64748b;--color-text-inverse:#fff;--color-accent:#0284c7;--color-accent-hover:#0369a1;--color-accent-muted:#0284c714;--color-accent-border:#0284c74d;--gradient-sky:linear-gradient(135deg, #0284c7 0%, #38bdf8 100%);--gradient-sky-subtle:linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);--gradient-sky-header:linear-gradient(135deg, #0369a1 0%, #0284c7 50%, #38bdf8 100%);--color-success:#059669;--color-success-muted:#05966914;--color-warning:#d97706;--color-warning-muted:#d9770614;--color-danger:#e11d48;--color-danger-muted:#e11d4814;--color-info:#0284c7;--color-info-muted:#0284c714;--color-on-hold:#7c3aed;--color-on-hold-muted:#7c3aed14;--color-priority-low:#059669;--color-priority-medium:#d97706;--color-priority-high:#ea580c;--color-priority-critical:#e11d48;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display:"Inter", -apple-system, sans-serif;--font-size-xs:.72rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.3rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.625;--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:3px;--radius-md:4px;--radius-lg:6px;--radius-xl:6px;--radius-2xl:6px;--radius-full:4px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-glow:0 0 20px #2563eb14;--shadow-glow-accent:0 0 30px #2563eb1f;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--topbar-height:64px;--content-max-width:1750px;--z-sidebar:100;--z-topbar:200;--z-dropdown:300;--z-modal-backdrop:400;--z-modal:500;--z-toast:600}*,: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);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);overflow-x:hidden}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}img{max-width:100%;display:block}button{font-family:var(--font-family);cursor:pointer;color:inherit;font-size:inherit;background:0 0;border:none}input,textarea,select{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1px solid var(--color-surface-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;width:100%}input[type=checkbox],input[type=radio]{accent-color:#0284c7;cursor:pointer;vertical-align:middle;flex-shrink:0;display:inline-block;width:16px!important;min-width:16px!important;height:16px!important;min-height:16px!important;margin:0!important;padding:0!important}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}textarea{resize:vertical;min-height:100px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#cbd5e1}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-layout{min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex}.app-main.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}.app-content{padding:var(--space-5) var(--space-6);padding-top:calc(var(--topbar-height) + var(--space-5));max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.sidebar{width:var(--sidebar-width);background:var(--color-bg-secondary);border-right:1px solid var(--color-surface-border);z-index:var(--z-sidebar);transition:width var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-surface-border);min-height:var(--topbar-height);display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--color-accent), #8b5cf6);border-radius:var(--radius-md);width:36px;height:36px;font-weight:var(--font-weight-extrabold);font-size:var(--font-size-lg);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);white-space:nowrap;opacity:1;transition:opacity var(--transition-fast);overflow:hidden}.sidebar.collapsed .sidebar-title{opacity:0;width:0}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-section-label{color:#0f2942;text-transform:uppercase;letter-spacing:.04em;padding:var(--space-4) var(--space-3) var(--space-2);white-space:nowrap;font-size:14.5px;font-weight:800;overflow:hidden}.sidebar.collapsed .sidebar-section-label{opacity:0}.sidebar-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);transition:all var(--transition-fast);white-space:nowrap;text-decoration:none;display:flex;position:relative}.sidebar-link:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.sidebar-link.active{background:var(--color-accent-muted);color:var(--color-accent)}.sidebar-link.active:before{content:"";background:var(--color-accent);border-radius:var(--radius-full);width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-link-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.sidebar-link-text{opacity:1;transition:opacity var(--transition-fast);overflow:hidden}.sidebar.collapsed .sidebar-link-text{opacity:0;width:0}.sidebar-toggle{padding:var(--space-4);border-top:1px solid var(--color-surface-border);color:var(--color-text-tertiary);transition:color var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;display:flex}.sidebar-toggle:hover{color:var(--color-text-primary)}.sidebar-engineer-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.topbar{top:0;right:0;left:var(--sidebar-width);height:var(--topbar-height);border-bottom:1px solid var(--color-surface-border);padding:0 var(--space-8);z-index:var(--z-topbar);transition:left var(--transition-base);background:#fff;justify-content:space-between;align-items:center;display:flex;position:fixed;box-shadow:0 1px 3px #0000000d}.topbar.sidebar-collapsed{left:var(--sidebar-collapsed-width)}.topbar-left{align-items:center;gap:var(--space-4);display:flex}.topbar-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-display);letter-spacing:-.01em}.stat-card-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);font-family:var(--font-family-display);line-height:var(--line-height-tight);letter-spacing:-.02em}.topbar-right{align-items:center;gap:var(--space-3);display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);transition:all var(--transition-fast);white-space:nowrap;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:var(--gradient-sky);color:#fff;box-shadow:0 2px 4px #0284c733}.btn-primary:hover{background:linear-gradient(135deg,#0369a1 0%,#0284c7 100%);transform:translateY(-1px);box-shadow:0 4px 12px #0284c74d}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-surface-border)}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-surface-border-hover)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#b91c1c;box-shadow:0 0 20px #dc262626}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md);width:36px;height:36px}.card{background:var(--color-surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-surface-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-base);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005}.card:hover{border-color:var(--color-surface-border-hover);box-shadow:0 4px 20px #0000000f}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-3px);box-shadow:0 12px 28px -6px #00000017,0 0 20px #0ea5e914}.stat-card{background:var(--color-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-surface-border);border-radius:var(--radius-xl);padding:var(--space-6);gap:var(--space-2);transition:all var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a,0 6px 16px #00000005}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px -4px #00000012}.stat-card:before{content:"";background:var(--stat-accent,var(--color-accent));border-radius:var(--radius-xl) var(--radius-xl) 0 0;height:4px;position:absolute;top:0;left:0;right:0}.stat-card-icon{border-radius:var(--radius-lg);width:40px;height:40px;font-size:var(--font-size-xl);margin-bottom:var(--space-2);justify-content:center;align-items:center;display:flex}.stat-card-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.stat-card-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;line-height:1.4;display:inline-flex}.badge-not-started{background:var(--color-bg-hover);color:var(--color-text-secondary)}.badge-in-progress{background:var(--color-accent-muted);color:var(--color-accent-hover)}.badge-warning,.badge-on-deck{color:#b45309;background:#d977061f}.badge-on-hold{background:var(--color-on-hold-muted);color:var(--color-on-hold)}.badge-completed{background:var(--color-success-muted);color:var(--color-success)}.badge-priority-low{background:var(--color-success-muted);color:var(--color-priority-low)}.badge-priority-medium{background:var(--color-warning-muted);color:var(--color-priority-medium)}.badge-priority-high{color:var(--color-priority-high);background:#ea580c1a}.badge-priority-critical{background:var(--color-danger-muted);color:var(--color-priority-critical);animation:2s ease-in-out infinite pulse-badge}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.projects-list{background:var(--color-surface);border:1px solid var(--color-surface-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000008}.project-card{gap:var(--space-4);padding:0 var(--space-5) 0 0;background:var(--color-surface);border-bottom:1px solid var(--color-surface-border);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);grid-template-columns:130px 1fr auto;align-items:center;display:grid;position:relative}.projects-list .project-card:last-child{border-bottom:none}.project-card:hover{background:#f0f9ff;border-color:#38bdf8}.project-card-left{padding:var(--space-5) var(--space-3);text-align:center;color:#fff;box-sizing:border-box;flex-direction:column;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;display:flex;position:relative}.project-card-percent{font-size:var(--font-size-xl);font-weight:800;font-family:var(--font-family-display);letter-spacing:-.02em;line-height:1.1}.project-card-date-label{text-transform:uppercase;letter-spacing:.05em;opacity:.9;margin-top:4px;font-size:10px}.project-card-date-val{font-size:var(--font-size-xs);white-space:nowrap;font-weight:600}.project-card-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.project-card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.project-card-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);-webkit-line-clamp:2;margin-bottom:var(--space-3);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card-meta{align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-tertiary);display:flex}.project-card-meta-item{align-items:center;gap:var(--space-1);display:flex}.project-card-right{justify-content:space-between;align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex}.project-card-engineer{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.calendar-container{background:var(--color-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-surface-border);border-radius:var(--radius-xl);overflow:hidden}.calendar-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-surface-border);justify-content:space-between;align-items:center;display:flex}.calendar-header-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.calendar-header-nav{align-items:center;gap:var(--space-2);display:flex}.calendar-weekdays{border-bottom:1px solid var(--color-surface-border);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{min-height:120px;padding:var(--space-2);border-right:1px solid var(--color-surface-border);border-bottom:1px solid var(--color-surface-border);transition:background var(--transition-fast);position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:var(--color-bg-hover)}.calendar-day.other-month{opacity:.3}.calendar-day.today{background:var(--color-accent-muted)}.calendar-day-number{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.calendar-day.today .calendar-day-number{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:24px;height:24px;display:flex}.calendar-event{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:opacity var(--transition-fast);margin-bottom:2px;overflow:hidden}.calendar-event:hover{opacity:.8}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);animation:fadeIn var(--transition-fast) ease-out;background:#0009;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-surface-border);border-radius:var(--radius-2xl);width:90%;max-width:640px;max-height:85vh;box-shadow:var(--shadow-xl);z-index:var(--z-modal);animation:modalSlideIn var(--transition-base) cubic-bezier(.34, 1.56, .64, 1);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes modalSlideIn{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--color-surface-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.modal-body{padding:var(--space-6);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-surface-border);display:flex}.form-group{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.image-gallery{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.image-gallery-item{border-radius:var(--radius-lg);aspect-ratio:4/3;cursor:pointer;border:1px solid var(--color-surface-border);transition:all var(--transition-base);position:relative;overflow:hidden}.image-gallery-item:hover{box-shadow:var(--shadow-lg);border-color:var(--color-accent-border);transform:scale(1.02)}.image-gallery-item img{object-fit:cover;width:100%;height:100%}.image-gallery-item .image-overlay{opacity:0;transition:opacity var(--transition-fast);background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.image-gallery-item:hover .image-overlay{opacity:1}.image-upload-zone{border:2px dashed var(--color-surface-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-tertiary)}.image-upload-zone:hover{border-color:var(--color-accent);background:var(--color-accent-muted);color:var(--color-accent)}.timeline-container{padding:var(--space-4) 0}.timeline-row{align-items:center;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--color-surface-border);grid-template-columns:200px 1fr;display:grid}.timeline-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.timeline-track{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);height:28px;position:relative;overflow:hidden}.timeline-bar{border-radius:var(--radius-sm);height:100%;padding:0 var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#fff;transition:all var(--transition-base);cursor:pointer;align-items:center;min-width:20px;display:flex;position:absolute}.timeline-bar:hover{filter:brightness(1.15);box-shadow:var(--shadow-md)}.timeline-progress{border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:#ffffff26;position:absolute;top:0;bottom:0;left:0}.search-bar{width:280px;position:relative}.search-bar input{background:var(--color-bg-tertiary);border:1px solid var(--color-surface-border);border-radius:var(--radius-lg);height:40px;padding-left:40px}.search-bar-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.toast-container{bottom:var(--space-6);right:var(--space-6);z-index:var(--z-toast);gap:var(--space-3);flex-direction:column-reverse;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-bg-elevated);border:1px solid var(--color-surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);animation:toastSlideIn var(--transition-spring);min-width:300px;display:flex}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-info{border-left:3px solid var(--color-info)}.lightbox{z-index:var(--z-modal);animation:fadeIn var(--transition-fast);background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:var(--radius-md);max-width:90vw;max-height:90vh}.lightbox-close{top:var(--space-6);right:var(--space-6);color:#fff;font-size:var(--font-size-2xl);cursor:pointer;border-radius:var(--radius-full);width:44px;height:44px;transition:background var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.lightbox-close:hover{background:#ffffff1a}.skeleton{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-hover) 50%, var(--color-bg-tertiary) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-tertiary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-4);opacity:.5;font-size:3rem}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--font-size-base);max-width:400px;margin-bottom:var(--space-6)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-base) ease-out}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}@media (width<=1024px){.sidebar{width:var(--sidebar-collapsed-width)}.sidebar .sidebar-title,.sidebar .sidebar-link-text,.sidebar .sidebar-section-label{opacity:0;width:0}.app-main{margin-left:var(--sidebar-collapsed-width)}.topbar{left:var(--sidebar-collapsed-width)}.app-content{padding:var(--space-6);padding-top:calc(var(--topbar-height) + var(--space-6))}.form-row{grid-template-columns:1fr}}@media (width<=768px){.sidebar{transform:translate(-100%)}.sidebar.mobile-open{width:var(--sidebar-width);transform:translate(0)}.sidebar.mobile-open .sidebar-title,.sidebar.mobile-open .sidebar-link-text,.sidebar.mobile-open .sidebar-section-label{opacity:1;width:auto}.app-main{margin-left:0}.topbar{left:0}.search-bar{width:100%}}.project-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-8);display:flex}.project-detail-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2)}.project-detail-meta{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.project-detail-section{margin-bottom:var(--space-8)}.project-detail-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);display:flex}.project-detail-description{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);white-space:pre-wrap}.stats-grid{gap:var(--space-5);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.project-list-sticky-bar{top:var(--topbar-height);z-index:40;background:var(--color-bg-primary,#f8fafc);margin-top:calc(-1 * var(--space-5));padding-top:var(--space-5);padding-bottom:var(--space-3);margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding-left:var(--space-6);padding-right:var(--space-6);margin-bottom:var(--space-4);border-bottom:1px solid #cbd5e1;position:sticky;box-shadow:0 4px 14px -2px #00000014}.project-list-sticky-bar .filter-bar{margin-top:var(--space-2);margin-bottom:var(--space-1)}@media (width<=1024px){.project-list-sticky-bar{margin-top:calc(-1 * var(--space-6));padding-top:var(--space-6)}}.filter-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.filter-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:var(--color-bg-tertiary);border:1px solid var(--color-surface-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);display:inline-flex}.filter-chip:hover{border-color:var(--color-accent-border);color:var(--color-text-primary)}.filter-chip.active{background:var(--color-accent-muted);border-color:var(--color-accent-border);color:var(--color-accent)}.avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-accent), #8b5cf6);width:32px;height:32px;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-sm{width:24px;height:24px;font-size:var(--font-size-xs)}.avatar-lg{width:48px;height:48px;font-size:var(--font-size-xl)}.avatar-xl{width:64px;height:64px;font-size:24px}.view-toggle{background:var(--color-bg-tertiary);border:1px solid var(--color-surface-border);border-radius:var(--radius-lg);padding:3px;display:flex}.view-toggle-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);transition:all var(--transition-fast);align-items:center;gap:var(--space-2);display:flex}.view-toggle-btn:hover{color:var(--color-text-primary)}.view-toggle-btn.active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.projects-list{gap:var(--space-3);flex-direction:column;display:flex}.engineer-card-mini{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--color-text-secondary);text-decoration:none;display:flex}.engineer-card-mini:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.engineer-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.engineer-project-count{font-size:var(--font-size-xs);color:var(--color-text-muted)}.overdue{color:var(--color-danger)!important}.overdue-bg{background:var(--color-danger-muted)!important}.page-enter{animation:fadeInUp var(--transition-base) ease-out}.dropdown{position:relative}.dropdown-menu{top:calc(100% + var(--space-2));background:var(--color-bg-elevated);border:1px solid var(--color-surface-border);border-radius:var(--radius-lg);min-width:180px;box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);padding:var(--space-2);animation:fadeInUp var(--transition-fast) ease-out;position:absolute;right:0}.dropdown-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%;display:flex}.dropdown-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dropdown-item-danger:hover{background:var(--color-danger-muted);color:var(--color-danger)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-surface-border);margin-bottom:var(--space-6);display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);transition:all var(--transition-fast);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.progress-bar{background:var(--color-bg-tertiary);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--color-accent), #8b5cf6);height:100%;transition:width var(--transition-slow)}.deadline-tag{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);display:flex}.deadline-tag.upcoming{background:var(--color-warning-muted);color:var(--color-warning)}.deadline-tag.overdue{background:var(--color-danger-muted);color:var(--color-danger)}.deadline-tag.safe{background:var(--color-success-muted);color:var(--color-success)}.subproject-progress-slider{appearance:none;cursor:pointer;vertical-align:middle;border:1px solid #0000001f;border-radius:5px;outline:none;width:90px;height:10px;box-shadow:inset 0 1px 2px #00000014}.subproject-progress-slider::-webkit-slider-thumb{appearance:none;cursor:ew-resize;background:#ef4444;border:none;border-radius:1.5px;width:3px;height:16px;box-shadow:0 0 3px #00000080}.subproject-progress-slider::-moz-range-thumb{cursor:ew-resize;background:#ef4444;border:none;border-radius:1.5px;width:3px;height:16px;box-shadow:0 0 3px #00000080}mark.scope-highlight-done,[data-scope-highlight=true]{-webkit-box-decoration-break:clone;box-decoration-break:clone;display:inline;color:#064e3b!important;background-color:#86efac!important;border:none!important;border-radius:0!important;outline:none!important;padding:0 2px!important;font-weight:600!important}[contenteditable][data-placeholder]:empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;font-style:italic}
