:root{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-sidebar:#1e293b;--bg-input:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border-color:#e2e8f0;--border-input:#cbd5e1;--hover-bg:#f8fafc;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-light:#eff6ff;--accent-text:#fff;--bg-hover:#f8fafc;--text-placeholder:#cbd5e1;--border-focus:#2563eb;--shadow:#00000014;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -1px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--shadow-card:0 1px 3px #00000014;--color-red:#dc2626;--color-red-bg:#fef2f2;--color-red-border:#fecaca;--color-yellow:#d97706;--color-yellow-bg:#fffbeb;--color-yellow-border:#fde68a;--color-green:#16a34a;--color-green-bg:#f0fdf4;--color-green-border:#bbf7d0;--status-complete:#10b981;--cal-overdue:#ef4444;--cal-due-soon:#f97316;--cal-due-week:#eab308;--cal-future:#22c55e;--cal-completed:#10b981;--color-indigo:#6366f1;--color-amber:#f59e0b;--color-warning:var(--color-yellow);--color-warning-border:var(--color-yellow-border);--sidebar-bg:#1e293b;--sidebar-text:#94a3b8;--sidebar-text-hover:#f1f5f9;--sidebar-active-bg:#2563eb;--sidebar-active-text:#fff;--sidebar-hover-bg:#334155;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--font-sans:"Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--health-red-bg:#fef2f2;--health-red-text:#dc2626;--health-yellow-bg:#fefce8;--health-yellow-text:#ca8a04;--health-green-bg:#f0fdf4;--health-green-text:#16a34a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293b;--bg-sidebar:#0a0f1e;--bg-input:#1e293b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border-color:#334155;--border-input:#475569;--hover-bg:#334155;--bg-hover:#334155;--accent:#3b82f6;--accent-hover:#2563eb;--accent-light:#1e3a5f;--shadow:#0000004d;--shadow-card:0 1px 3px #0000004d;--sidebar-bg:#0a0f1e;--color-red-bg:#450a0a;--color-red:#fca5a5;--color-yellow-bg:#422006;--color-yellow:#fcd34d;--color-green-bg:#052e16;--color-green:#86efac;--health-red-bg:#450a0a;--health-red-text:#fca5a5;--health-yellow-bg:#422006;--health-yellow-text:#fcd34d;--health-green-bg:#052e16;--health-green-text:#86efac;--color-indigo:#818cf8;--color-amber:#fbbf24;--notif-unread-bg:#6366f126;--notif-unread-hover:#6366f140}}html[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293b;--bg-sidebar:#0a0f1e;--bg-input:#1e293b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border-color:#334155;--border-input:#475569;--hover-bg:#334155;--bg-hover:#334155;--accent:#3b82f6;--accent-hover:#2563eb;--accent-light:#1e3a5f;--shadow:#0000004d;--shadow-card:0 1px 3px #0000004d;--sidebar-bg:#0a0f1e;--color-red-bg:#450a0a;--color-red:#fca5a5;--color-yellow-bg:#422006;--color-yellow:#fcd34d;--color-green-bg:#052e16;--color-green:#86efac;--health-red-bg:#450a0a;--health-red-text:#fca5a5;--health-yellow-bg:#422006;--health-yellow-text:#fcd34d;--health-green-bg:#052e16;--health-green-text:#86efac;--color-indigo:#818cf8;--color-amber:#fbbf24;--notif-unread-bg:#6366f126;--notif-unread-hover:#6366f140}html[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--bg-sidebar:#1e293b;--bg-input:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border-color:#e2e8f0;--border-input:#cbd5e1;--hover-bg:#f8fafc;--bg-hover:#f8fafc;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-light:#eff6ff;--shadow:#00000014;--shadow-card:0 1px 3px #00000014;--sidebar-bg:#1e293b;--color-red-bg:#fef2f2;--color-red:#dc2626;--color-yellow-bg:#fffbeb;--color-yellow:#d97706;--color-green-bg:#f0fdf4;--color-green:#16a34a;--health-red-bg:#fef2f2;--health-red-text:#dc2626;--health-yellow-bg:#fefce8;--health-yellow-text:#ca8a04;--health-green-bg:#f0fdf4;--health-green-text:#16a34a}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-secondary);color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}input,select,textarea{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-input)}#root{width:100%;min-height:100vh}.kbd{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;border-radius:4px;padding:2px 6px;font-family:system-ui,monospace;font-size:11px;display:inline-block}.kbd-hint{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px;display:inline-block}.shortcuts-modal{max-width:360px}.shortcuts-table{border-collapse:collapse;width:100%}.shortcuts-table tr td{color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:8px 12px;font-size:13px}.shortcuts-table tr:last-child td{border-bottom:none}.shortcuts-table tr td:first-child{width:140px}.sk-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:540px;max-width:90vw;overflow:hidden;box-shadow:0 24px 64px #00000040}.sk-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 18px 12px;display:flex}.sk-title{color:var(--text-primary);font-size:14px;font-weight:700}.sk-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.sk-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.sk-sections{padding:8px 0 4px}.sk-section{border-bottom:1px solid var(--border-color);padding:8px 0}.sk-section:last-child{border-bottom:none}.sk-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:2px 18px 6px;font-size:10px;font-weight:700}.sk-row{color:var(--text-secondary);align-items:center;gap:12px;padding:6px 18px;font-size:13px;display:flex}.sk-keys{flex-shrink:0;align-items:center;gap:4px;min-width:130px;display:flex}.bulk-action-bar{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:0 4px 20px var(--shadow);z-index:9999;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.bulk-count{color:var(--text-primary);border-right:1px solid var(--border-color);margin-right:4px;padding-right:8px;font-size:13px;font-weight:600}.bulk-action-bar button{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:6px;padding:4px 10px;font-size:12px}.bulk-action-bar button:hover{background:var(--hover-bg)}.bulk-clear{color:var(--text-muted)!important}.task-bulk-check{cursor:pointer;flex-shrink:0;width:14px;height:14px;margin-right:6px}.bulk-action-bar select,.bulk-action-bar input[type=date]{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:12px}.health-sparkline{gap:2px;margin-top:4px;display:flex}.sparkline-dot{border-radius:1px;flex-shrink:0;width:4px;height:12px}@media (width<=768px){.adm-table-wrap,.holidays-table-wrap,.milestones-table-wrap,.prod-table-wrap,.ship-table-wrap{display:block;overflow-x:auto}.task-side-panel{width:100%!important;right:0!important}}.idle-warning{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.idle-warning-box{background:var(--bg-card);text-align:center;border-radius:12px;max-width:360px;padding:24px 32px;box-shadow:0 8px 32px #0003}.idle-warning-box strong{color:var(--text-primary);margin-bottom:8px;font-size:16px;display:block}.idle-warning-box p{color:var(--text-secondary);margin:0 0 12px;font-size:14px}.idle-warning-box button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-size:14px}.pw-strength-list{margin:4px 0 0;padding:4px 0;font-size:12px;list-style:none}.pw-ok{color:#16a34a}.pw-ok:before{content:"✓ "}.pw-fail{color:var(--text-secondary)}.pw-fail:before{content:"○ "}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;font-size:13px;font-weight:500;font-family:var(--font-sans);border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover,var(--hover-bg))}.btn-danger{background:var(--color-red);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{border-bottom:1px solid var(--border-color);padding:16px 20px;font-size:14px;font-weight:600}.card-body{padding:20px}.badge{border-radius:20px;align-items:center;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.badge-green{background:var(--color-green-bg);color:var(--color-green)}.badge-red{background:var(--color-red-bg);color:var(--color-red)}.badge-yellow{background:var(--color-yellow-bg);color:var(--color-yellow)}.badge-blue{background:var(--accent-light);color:var(--accent)}.badge-gray{background:var(--bg-tertiary);color:var(--text-secondary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-light);color:var(--accent)}.icon-btn{align-items:center;gap:6px;display:inline-flex}svg{vertical-align:middle;flex-shrink:0}@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color:#ebebeb;--highlight-color:#f5f5f5;--animation-duration:1.5s;--animation-direction:normal;--pseudo-element-display:block;background-color:var(--base-color);-webkit-user-select:none;user-select:none;border-radius:.25rem;width:100%;line-height:1;display:inline-flex;position:relative;overflow:hidden}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);background-repeat:no-repeat;background-image:var(--custom-highlight-background,linear-gradient(90deg, var(--base-color) 0%, var(--highlight-color) 50%, var(--base-color) 100%));height:100%;animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;top:0;left:0;right:0;transform:translate(-100%)}@media (prefers-reduced-motion){.react-loading-skeleton{--pseudo-element-display:none}}.confirm-overlay{z-index:1010;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-card);border-radius:10px;width:400px;max-width:calc(100vw - 32px);padding:24px;box-shadow:0 20px 60px #00000040}.confirm-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.confirm-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.confirm-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.confirm-close:hover{color:var(--text-secondary)}.confirm-message{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.notes-panel{background:var(--bg-card);border-left:1px solid var(--border-color);z-index:1100;flex-direction:column;width:420px;max-width:100vw;height:100%;transition:transform .2s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-4px 0 20px #0000001f}.notes-panel--open{transform:translate(0)}.notes-panel-overlay{z-index:1099;background:#0000004d;position:fixed;inset:0}.notes-panel-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.notes-panel-title{color:var(--text-primary);font-size:15px;font-weight:700}.notes-panel-header-actions{align-items:center;gap:8px;display:flex}.notes-panel-new-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;font-weight:600;line-height:1;display:flex}.notes-panel-new-btn:hover{opacity:.88}.notes-panel-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.notes-panel-close:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.notes-panel-body{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.notes-panel-empty{color:var(--text-muted);text-align:center;margin-top:32px;font-size:13px}.notes-panel-list{flex-direction:column;gap:8px;display:flex}.notes-panel-loading{flex-direction:column;gap:10px;padding:4px 0;display:flex}.notes-skeleton{background:var(--bg-tertiary);border-radius:8px;height:64px;animation:1.4s ease-in-out infinite notes-shimmer}.notes-skeleton--short{height:44px}@keyframes notes-shimmer{0%,to{opacity:1}50%{opacity:.5}}.note-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.note-card--pinned{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 6%, var(--bg-secondary))}.note-card-main{flex:1;min-width:0}.note-card-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.note-card-body{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.note-card-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.note-card-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.note-card-btn:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.note-card-delete:hover{color:var(--color-danger,#e53e3e);background:#e53e3e14}.note-card--pinned .note-card-pin{color:var(--color-primary)}.note-editor{background:var(--bg-secondary);border:1px solid var(--color-primary);border-radius:8px;flex-direction:column;flex-shrink:0;gap:8px;padding:12px;display:flex}.note-editor-title{border:1px solid var(--border-color);background:var(--bg-card);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;padding:7px 10px;font-size:13px;font-weight:600}.note-editor-title:focus{border-color:var(--color-primary);outline:none}.note-editor-body{border:1px solid var(--border-color);background:var(--bg-card);width:100%;color:var(--text-primary);resize:vertical;box-sizing:border-box;border-radius:6px;padding:7px 10px;font-family:inherit;font-size:13px;line-height:1.5}.note-editor-body:focus{border-color:var(--color-primary);outline:none}.note-editor-pin-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.note-editor-footer{justify-content:flex-end;gap:8px;padding-top:2px;display:flex}.notes-filter-bar{border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-direction:column;flex-shrink:0;gap:8px;padding:8px 12px 10px;display:flex}.notes-search-wrap{align-items:center;display:flex;position:relative}.notes-search-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;position:absolute;left:9px}.notes-search-input{border:1px solid var(--border-color);background:var(--bg-secondary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;padding:6px 30px;font-size:13px}.notes-search-input::placeholder{color:var(--text-muted)}.notes-search-input:focus{border-color:var(--color-primary);outline:none}.notes-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:3px;line-height:1;display:flex;position:absolute;right:6px}.notes-search-clear:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.notes-chip-row{flex-wrap:wrap;gap:5px;display:flex}.notes-chip{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:500;line-height:1.5}.notes-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.notes-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.notes-chip--active:hover{opacity:.88;color:#fff}.notes-custom-range{align-items:center;gap:6px;display:flex}.notes-custom-range input[type=date]{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;flex:1;padding:5px 8px;font-size:12px}.notes-custom-range input[type=date]:focus{border-color:var(--color-primary);outline:none}.notes-custom-range span{color:var(--text-muted);flex-shrink:0;font-size:13px}.notes-filter-empty-link{color:var(--color-primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.notes-filter-empty-link:hover{opacity:.8}@media (width<=600px){.notes-panel{width:100%}}.gs-trigger{background:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;width:100%;max-width:400px;height:36px;color:var(--text-muted);text-align:left;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:13px;transition:border-color .15s,background .15s,color .15s;display:flex}.gs-trigger:hover{background:var(--bg-card);color:var(--text-secondary);border-color:#6366f1}.gs-trigger-icon{flex-shrink:0}.gs-trigger-text{text-overflow:ellipsis;flex:1;overflow:hidden}.gs-trigger-kbd{color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;flex-shrink:0;padding:1px 5px;font-family:inherit;font-size:10px}.gs-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:flex-start;padding-top:10vh;display:flex;position:fixed;inset:0}.gs-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;width:640px;max-width:90vw;max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000040}.gs-modal-input-wrap{border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.gs-modal-icon{color:var(--text-muted);flex-shrink:0}.gs-modal-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:inherit;font-size:16px}.gs-modal-input::placeholder{color:var(--text-muted)}.gs-modal-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 4px;transition:color .12s,background .12s;display:flex}.gs-modal-clear:hover{color:var(--text-secondary);background:var(--bg-secondary)}.gs-results{flex:1;overflow-y:auto}.gs-searching,.gs-no-results,.gs-empty{text-align:center;color:var(--text-muted);padding:24px 20px;font-size:13px;line-height:1.5}.gs-recent{padding:8px 0 4px}.gs-recent-header{justify-content:space-between;align-items:center;padding:4px 14px;display:flex}.gs-recent-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10px;font-weight:700}.gs-recent-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:11px;text-decoration:underline;transition:color .12s}.gs-recent-clear:hover{color:var(--text-secondary)}.gs-recent-item{text-align:left;cursor:pointer;width:100%;color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;font-family:inherit;font-size:13px;transition:background .1s,color .1s;display:flex}.gs-recent-item:hover,.gs-recent-item--active{background:var(--bg-secondary);color:var(--text-primary)}.gs-section{border-bottom:1px solid var(--bg-tertiary)}.gs-section:last-child{border-bottom:none}.gs-section-header{align-items:center;gap:5px;padding:8px 14px 3px;display:flex}.gs-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10px;font-weight:700}.gs-result{text-align:left;cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;align-items:center;gap:10px;padding:8px 14px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.gs-result:hover,.gs-result--active{background:#f5f3ff}[data-theme=dark] .gs-result:hover,[data-theme=dark] .gs-result--active{background:#6366f11f}.gs-result-icon{color:var(--text-muted);flex-shrink:0;align-items:center;width:16px;display:flex}.gs-result-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.gs-result-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.gs-result-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.gs-chip{border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:600}body.gs-open .shell-content,body.gs-open .sidebar,body.gs-open .project-list,body.gs-open .project-detail-left,body.gs-open .project-detail-right,body.gs-open .side-panel-body,body.gs-open .dash-widget-body{overflow:hidden}.qc-fab-wrap{z-index:800;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:28px;right:28px}.qc-fab{background:var(--primary-color,#6366f1);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:0 4px 14px #6366f173}.qc-fab:hover{transform:scale(1.06);box-shadow:0 6px 20px #6366f18c}.qc-fab--open{transform:rotate(45deg)}.qc-fab--open:hover{transform:rotate(45deg)scale(1.06)}.qc-fab-icon{pointer-events:none;transition:transform .18s}.qc-popup{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;gap:2px;min-width:230px;padding:6px;animation:.14s qc-popup-in;display:flex;box-shadow:0 8px 28px #00000029}@keyframes qc-popup-in{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.qc-popup-item{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;transition:background .12s;display:flex}.qc-popup-item:hover{background:var(--bg-secondary)}.qc-popup-icon{flex-shrink:0}.qc-popup-icon.task{color:#6366f1}.qc-popup-icon.comment{color:#0ea5e9}.qc-popup-icon.note{color:#f59e0b}.qc-popup-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.qc-popup-label{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.2}.qc-popup-hint{color:var(--text-muted);font-size:11px;line-height:1.2}.qc-popup-arrow{color:var(--text-muted);flex-shrink:0}.qc-backdrop{z-index:810;background:#00000059;animation:.15s qc-fade-in;position:fixed;inset:0}@keyframes qc-fade-in{0%{opacity:0}to{opacity:1}}.qc-modal-wrap{z-index:820;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.qc-modal{background:var(--bg-card);border:1px solid var(--border-color);pointer-events:all;border-radius:12px;width:440px;max-width:calc(100vw - 32px);animation:.16s qc-modal-in;box-shadow:0 16px 48px #00000038}@keyframes qc-modal-in{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.qc-modal-header{border-bottom:1px solid var(--border-color);color:var(--text-primary);align-items:center;gap:8px;padding:14px 16px 12px;font-size:14px;font-weight:700;display:flex}.qc-modal-header .qc-modal-icon{flex-shrink:0}.qc-modal-icon.task{color:#6366f1}.qc-modal-icon.comment{color:#0ea5e9}.qc-modal-icon.note{color:#f59e0b}.qc-modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;align-items:center;margin-left:auto;padding:3px;display:flex}.qc-modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.qc-modal-body{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.qc-field{flex-direction:column;gap:4px;display:flex}.qc-field-error{color:var(--color-error,#dc2626);margin-top:1px;font-size:.72rem;line-height:1.3;display:block}.qc-field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.qc-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.qc-label-hint{text-transform:none;letter-spacing:0;color:var(--text-muted);font-size:10px;font-weight:400}.qc-field input,.qc-field select,.qc-field textarea{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.qc-field input:focus,.qc-field select:focus,.qc-field textarea:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.qc-field textarea{resize:vertical;min-height:80px}.qc-field input:disabled,.qc-field select:disabled{opacity:.5;cursor:not-allowed}.qc-modal-footer{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.btn-ghost-sm{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;transition:background .12s}.btn-ghost-sm:hover{background:var(--bg-secondary);color:var(--text-primary)}.btn-primary-sm{background:var(--primary-color,#6366f1);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .12s}.btn-primary-sm:hover:not(:disabled){opacity:.88}.btn-primary-sm:disabled{opacity:.45;cursor:not-allowed}@media (width<=520px){.qc-fab-wrap{bottom:20px;right:16px}.qc-modal{border-radius:10px;width:calc(100vw - 24px)}.qc-field-row{grid-template-columns:1fr}}.shell{background:var(--bg-secondary);height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar-bg,var(--bg-sidebar));will-change:width, transform;flex-direction:column;flex-shrink:0;width:240px;transition:width .24s cubic-bezier(.22,.61,.36,1),transform .24s cubic-bezier(.22,.61,.36,1);display:flex;overflow-y:auto}.sidebar--desktop{box-shadow:none;position:static;transform:none}.sidebar--collapsed{width:60px}.sidebar--collapsed .nav-label,.sidebar--collapsed .sidebar-logo-text-wrap,.sidebar--collapsed .sidebar-logo-text,.sidebar--collapsed .sidebar-logo-version,.sidebar--collapsed .nav-section-label,.sidebar--collapsed .nav-admin-group-label,.sidebar--collapsed .theme-label,.sidebar--collapsed .theme-toggle{display:none}.sidebar--collapsed .nav-item{justify-content:center;margin:1px 0;padding:10px 0}.sidebar--collapsed .sidebar-logo{justify-content:center;min-height:0;padding:10px 0}.sidebar--collapsed .nav-ext-btn{display:none!important}.sidebar--tablet-overlay{z-index:200;height:100vh;position:fixed;top:0;left:0;box-shadow:0 10px 24px #0000003d}.sidebar--tablet-overlay.sidebar--collapsed{width:60px}.sidebar--tablet-overlay.sidebar--open{width:240px}.sidebar--mobile-overlay{z-index:200;width:240px;height:100vh;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 14px 34px #0000004d}.sidebar--mobile-overlay.sidebar--open{transform:translate(0)}.pin-btn{cursor:pointer;color:#fff;opacity:.78;background:0 0;border:none;margin-left:auto;padding:2px 4px;font-size:14px;line-height:1;transition:opacity .12s}.pin-btn:hover,.pin-btn--active{opacity:1}.notif-badge{color:#fff;text-align:center;background:#ef4444;border-radius:8px;min-width:14px;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.3;position:absolute;top:-4px;right:-6px}.sidebar-logo{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:22px 20px 20px;display:flex}.sidebar-logo-icon{color:#60a5fa;font-size:22px}.sidebar-logo-text{color:#f9fafb;letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 0;display:flex}.nav-item{color:var(--sidebar-text,#9ca3af);border-radius:var(--radius-md,8px);border-left:3px solid #0000;align-items:center;gap:10px;margin:1px 8px;padding:9px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--sidebar-hover,#ffffff0f);color:var(--sidebar-text,#e5e7eb)}.nav-item--active{color:var(--sidebar-accent,#93c5fd);border-left-color:var(--sidebar-accent,#3b82f6);background:#2563eb2e}.nav-icon{text-align:center;width:18px;font-size:15px}.remove-avatar-btn{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;margin-top:2px;padding:0;font-size:10px;text-decoration:underline;display:block}.remove-avatar-btn:hover{color:#f87171}.settings-icon-btn{cursor:pointer;color:var(--sidebar-text,var(--text-muted));opacity:.7;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:6px;text-decoration:none;display:flex}.settings-icon-btn:hover{opacity:1;background:var(--sidebar-hover,#ffffff14)}.sidebar-logo-text-wrap{flex-direction:column;width:100%;display:flex}.sidebar-logo-text-wrap img{width:100%;height:auto;display:block}.sidebar-logo-version{color:var(--text-secondary);letter-spacing:.5px;font-size:10px;font-weight:500}.nav-section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;border-top:1px solid #ffffff0f;margin-top:4px;padding:10px 20px 4px;font-size:10px;font-weight:700}.nav-section-label--collapsible{align-items:center;gap:5px;padding-bottom:5px;display:flex}.nav-section-label--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.nav-section-label--clickable:hover{color:var(--sidebar-text,var(--text-primary))}.nav-section-label-icon{opacity:.8;align-items:center;display:flex}.nav-section-count{background:var(--accent,#6366f1);color:#fff;letter-spacing:0;border-radius:8px;padding:1px 5px;font-size:9px;font-weight:700}.nav-section-chevron{opacity:.6;margin-left:auto;font-size:13px;line-height:1;transition:transform .18s;display:inline-block;transform:rotate(0)}.nav-section-chevron--open{transform:rotate(90deg)}.theme-toggle{cursor:pointer;color:#9ca3af;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:calc(100% - 24px);margin:0 12px 4px;padding:7px 10px;font-size:13px;transition:background .12s,color .12s;display:flex}.theme-toggle:hover{color:#e5e7eb;background:#ffffff0f}.theme-label{font-size:13px;font-weight:500}.shell-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.shell-topbar{background:var(--bg-card);border-bottom:1px solid var(--border-color);height:56px;box-shadow:var(--shadow-sm,0 1px 2px #0000000d);z-index:10;flex-shrink:0;align-items:center;gap:12px;padding:0 24px;display:flex}.shell-topbar-search{flex:1;max-width:480px}.shell-topbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-notif-btn{border-radius:var(--radius-md,8px);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;text-decoration:none;transition:background .15s;display:inline-flex;position:relative}.topbar-notif-btn:hover{background:var(--bg-hover,var(--hover-bg))}.topbar-notif-count{color:#fff;text-align:center;background:#ef4444;border-radius:8px;min-width:14px;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.3;position:absolute;top:-3px;right:-4px}.topbar-user-avatar{border:2px solid var(--border-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;text-decoration:none;transition:opacity .15s;display:flex;overflow:hidden}.topbar-user-avatar:hover{opacity:.8}.topbar-logout-btn{border-radius:var(--radius-md,8px);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:inline-flex}.topbar-logout-btn:hover{background:var(--bg-hover,var(--hover-bg))}.shell-content{flex:1;padding:24px 28px;overflow-y:auto}.hamburger-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:20px;line-height:1;display:inline-flex}.sidebar-overlay{z-index:150;background:#0000006b;position:fixed;inset:0}.shell-hamburger-btn{color:var(--text-primary);justify-content:center;align-items:center;margin-right:2px;display:inline-flex}.nav-item-wrap{align-items:stretch;display:flex;position:relative}.nav-item-wrap .nav-item{flex:1}.nav-ext-btn{width:22px;color:var(--text-muted);opacity:.6;background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;text-decoration:none;transition:opacity .12s;display:none}.nav-item-wrap:hover .nav-ext-btn{display:flex}.nav-ext-btn:hover{opacity:1;color:#93c5fd}tr.clickable,.clickable{cursor:pointer}tbody tr:hover{background:#6366f10a}button:active:not(:disabled){transform:scale(.97)}input:focus,select:focus,textarea:focus{outline-offset:1px;outline:2px solid #3b82f6}.nav-item,button,input,select,textarea{transition:background .15s,color .15s,border-color .15s,box-shadow .15s}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.6}}.health-badge--red{animation:2s infinite pulse-red}.phase-body{transition:max-height .25s;overflow:hidden}.phase-body--collapsed{max-height:0}.phase-body--open{max-height:4000px}.nav-admin-group{margin-top:4px}.nav-admin-group-label{color:var(--sidebar-text,#64748b);text-transform:uppercase;letter-spacing:.08em;opacity:.6;padding:8px 20px 2px;font-size:10px;font-weight:700}.nav-admin-theme-toggle{border-top:1px solid var(--sidebar-border,#e2e8f0);margin-top:8px;padding:8px 16px 0}[data-theme=dark] .nav-admin-theme-toggle{border-top-color:#334155}.announcement-banner{color:#713f12;background:#fef9c3;border-bottom:1px solid #fde68a;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 24px;font-size:13px;display:flex}.announcement-icon{font-size:15px}.announcement-dismiss-btn{cursor:pointer;color:#713f12;opacity:.7;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:16px;transition:opacity .12s}.announcement-dismiss-btn:hover{opacity:1}.announcement-ack-btn{color:#fff;cursor:pointer;background:#854d0e;border:none;border-radius:4px;margin-left:auto;padding:3px 10px;font-size:12px;transition:opacity .12s}.announcement-ack-btn:hover{opacity:.85}[data-theme=dark] .announcement-banner{color:#fde68a;background:#422006;border-color:#92400e}.announcement-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.announcement-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:480px;padding:28px 32px;box-shadow:0 20px 60px #0000004d}.announcement-modal-header{color:var(--text-primary);align-items:center;gap:10px;margin-bottom:12px;font-size:16px;font-weight:600;display:flex}.announcement-modal-body{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.6}@media (width<=768px){.shell{flex-direction:row}.shell-content{padding:16px}.shell-topbar{padding:8px 16px}}@media (width>=769px) and (width<=1439px){.shell-main{margin-left:60px}}.nav-item--compact{padding-top:5px;padding-bottom:5px}.nav-label--truncate{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.login-page{background:var(--bg-secondary);min-height:100vh;display:flex}.login-left{background-image:url(/login-cover-photo.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;flex:1}.login-right{background:#0b1220;flex-shrink:0;justify-content:center;align-items:center;width:480px;padding:48px;display:flex}.login-box{width:100%;max-width:360px}.login-logo-wrap{flex-direction:column;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.login-subtitle{text-align:center;color:#e2e8f0b8;margin:0 0 28px;font-size:14px}.login-form{flex-direction:column;gap:18px;display:flex}.login-field{flex-direction:column;gap:5px;display:flex}.login-field label{color:#cbd5e1;text-transform:none;letter-spacing:0;margin-bottom:0;font-size:13px;font-weight:500}.login-field input{color:#f8fafc;box-sizing:border-box;background:#0f172ab8;border:1px solid #334155;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-field input::placeholder{color:#94a3b8}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f638}.login-field input.input-error{border-color:#ef4444}.field-error{color:#ef4444;font-size:12px}.server-error{color:#ef4444;background:#ef444414;border:1px solid #ef444440;border-radius:6px;margin:0;padding:10px 12px;font-size:13px}.login-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md,8px);cursor:pointer;border:none;width:100%;margin-top:4px;padding:11px;font-size:14px;font-weight:600;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:disabled{opacity:.65;cursor:not-allowed}.login-notice{text-align:center;border-radius:8px;margin-bottom:12px;padding:10px 16px;font-size:13px}.login-notice--warning{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.login-remember{margin-bottom:4px}.login-remember-label{color:#cbd5e1;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.login-remember-checkbox{cursor:pointer;width:15px;height:15px;accent-color:var(--accent)}@media (width<=768px){.login-left{display:none}.login-right{width:100%;padding:32px 24px}}.dcw-view-full{color:var(--accent);white-space:nowrap;font-size:12px;text-decoration:none}.dcw-view-full:hover{text-decoration:underline}.dcw-body{padding:8px 8px 6px;overflow:hidden}.dcw-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dcw-weekday{text-align:center;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.02em;padding:2px 0;font-size:10px;font-weight:700}.dcw-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.dcw-day{cursor:default;border-radius:4px;outline:none;flex-direction:column;align-items:center;min-height:36px;padding:3px 2px 4px;transition:background .1s;display:flex}.dcw-day--has-items{cursor:pointer}.dcw-day--has-items:hover,.dcw-day--has-items:focus-visible{background:var(--bg-secondary)}.dcw-day--today{background:color-mix(in srgb, var(--accent) 10%, transparent)}.dcw-day--today .dcw-day-num{color:var(--accent);font-weight:700}.dcw-day--off{pointer-events:none}.dcw-day--off .dcw-day-num{color:var(--text-muted);opacity:.4}.dcw-day-num{color:var(--text-secondary);font-size:11px;line-height:1.4}.dcw-dots{flex-wrap:wrap;justify-content:center;gap:2px;margin-top:2px;display:flex}.dcw-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.dcw-dot-more{color:var(--text-muted);font-size:8px;font-weight:700;line-height:1}.dcw-empty{text-align:center;color:var(--text-muted);padding:8px 4px 2px;font-size:12px}.dcw-skeleton{flex-direction:column;gap:4px;display:flex}.dcw-skeleton-row{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.wdw-root{background:var(--color-surface,#fff);border:1px solid var(--color-warning-border,#fbbf24);border-left:4px solid var(--color-warning,#d97706);border-radius:8px;margin-bottom:16px;overflow:hidden}.wdw-header{align-items:center;gap:7px;padding:10px 14px 4px;display:flex}.wdw-icon{color:var(--color-warning,#d97706);flex-shrink:0}.wdw-title{color:var(--color-text,#111);font-size:13px;font-weight:600}.wdw-sub{color:var(--color-text-muted,#6b7280);margin:0 14px 8px;font-size:11px;line-height:1.4}.wdw-list{margin:0;padding:0;list-style:none}.wdw-item{border-top:1px solid var(--color-border,#e5e7eb);justify-content:space-between;align-items:center;gap:10px;padding:7px 14px;display:flex}.wdw-item:hover{background:var(--color-surface-hover,#f9fafb)}.wdw-item-info{flex:1;align-items:flex-start;gap:8px;min-width:0;display:flex}.wdw-type-icon{flex-shrink:0;margin-top:1px;font-size:13px}.wdw-item-text{flex-direction:column;min-width:0;display:flex}.wdw-item-path{color:var(--color-text,#111);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.wdw-item-date{color:var(--color-text-muted,#6b7280);margin-top:1px;font-size:11px}.wdw-item-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.wdw-btn-fix{border:1px solid var(--color-warning,#d97706);background:var(--color-warning-bg,#fffbeb);color:var(--color-warning-dark,#92400e);cursor:pointer;white-space:nowrap;border-radius:4px;padding:3px 9px;font-size:11px;font-weight:500;transition:background .15s}.wdw-btn-fix:hover:not(:disabled){background:var(--color-warning-hover,#fef3c7)}.wdw-btn-fix:disabled{opacity:.5;cursor:not-allowed}.wdw-btn-open{color:var(--color-text-muted,#6b7280);border-radius:3px;align-items:center;padding:3px;transition:color .15s;display:flex}.wdw-btn-open:hover{color:var(--color-primary,#2563eb)}.dashboard-page{max-width:1600px}.dashboard-title{color:var(--text-primary);margin:0 0 1.25rem;font-size:1.5rem;font-weight:700}.dash-stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}.dash-stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg,10px);cursor:pointer;box-shadow:var(--shadow-card,0 1px 4px #0000000f);padding:20px 24px;transition:box-shadow .15s,transform .15s}.dash-stat-card:hover{box-shadow:var(--shadow-md,0 4px 16px #0000001a);transform:translateY(-1px)}.dash-stat-value{color:var(--text-primary);margin-bottom:6px;font-size:36px;font-weight:700;line-height:1}.dash-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:12px;font-weight:600}.dash-stat-sub{color:var(--text-muted,var(--text-secondary));margin-top:4px;font-size:12px}.dash-quick-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.dash-middle-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;display:grid}.dash-bottom-grid{grid-template-columns:3fr 2fr;gap:16px;display:grid}.dash-cal-row{max-width:340px;margin-bottom:16px}.dash-widget{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg,10px);box-shadow:var(--shadow-card,0 1px 4px #0000000f);flex-direction:column;display:flex;overflow:hidden}.dash-widget-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.dash-widget-title{color:var(--text-primary);font-size:13px;font-weight:600}.dash-widget-count{color:var(--text-muted,var(--text-secondary));background:var(--bg-tertiary,var(--bg-secondary));border-radius:12px;padding:2px 8px;font-size:12px;font-weight:500}.dash-widget-body{flex:1;max-height:320px;overflow-y:auto}.dash-row{border-bottom:1px solid var(--border-color);align-items:center;gap:10px;padding:9px 16px;font-size:13px;transition:background .1s;display:flex}.dash-row:last-child{border-bottom:none}.dash-row--clickable{cursor:pointer}.dash-row--clickable:hover{background:var(--bg-secondary)}.dash-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-row-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dash-row-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.4;overflow:hidden}.dash-row-meta{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.dash-row-meta--upper{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted,var(--text-secondary));font-size:10px;font-weight:600}.dash-row-reason{color:#dc2626;font-size:11px}.dash-row-aside{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:12px}.dash-row-arrow{opacity:.4;font-size:14px}.dash-row:hover .dash-row-arrow{opacity:.9}.dash-link{color:var(--accent,#6366f1);text-decoration:none}.dash-link:hover{text-decoration:underline}.dash-empty{text-align:center;color:var(--text-muted,var(--text-secondary));padding:32px 16px;font-size:13px}@media (width<=1200px){.dash-stat-grid{grid-template-columns:repeat(2,1fr)}.dash-middle-grid{grid-template-columns:1fr 1fr}.dash-middle-grid>.dash-widget:last-child{grid-column:1/-1}.dash-bottom-grid{grid-template-columns:1fr}}@media (width<=768px){.dash-stat-grid{grid-template-columns:1fr 1fr}.dash-middle-grid{grid-template-columns:1fr}.dash-stat-card{padding:14px 16px}.dash-stat-value{font-size:28px}}.dash-inbox{flex-direction:column;gap:12px;margin-top:16px;display:flex}.dash-inbox-section{border:1px solid var(--border-color);background:var(--bg-card);border-radius:10px;overflow:hidden}.dash-inbox-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:11px 16px;display:flex}.dash-inbox-header:hover{background:var(--bg-hover,var(--bg-secondary))}.dash-inbox-header-icon{color:var(--accent);flex-shrink:0}.dash-inbox-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary);flex:1;font-size:12px;font-weight:700}.dash-inbox-count{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:20px;padding:1px 7px;font-size:11px;font-weight:700}.dash-inbox-chevron{color:var(--text-muted);flex-shrink:0}.dash-inbox-body{padding:4px 0}.dash-inbox-empty{color:var(--text-muted);text-align:center;padding:14px 16px;font-size:13px}.dash-inbox-row{border-bottom:1px solid var(--border-color);align-items:center;gap:10px;padding:9px 16px;display:flex}.dash-inbox-row:last-child{border-bottom:none}.dash-inbox-row:hover{background:var(--bg-secondary)}.dash-inbox-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.dash-inbox-status{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:5px;outline:none;padding:4px 6px;font-size:12px}.dash-inbox-status:focus{border-color:var(--accent)}.dash-inbox-due{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-primary);border-radius:5px;outline:none;width:128px;padding:4px 6px;font-size:12px}.dash-inbox-due:focus{border-color:var(--accent)}.dash-inbox-mention--unread{border-left:3px solid var(--accent)}.dash-inbox-mention--unread .dash-row-name{font-weight:600}.email-preview-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.email-preview-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;width:100%;max-width:720px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.email-preview-header{border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.email-preview-header-icon{color:var(--text-muted);flex-shrink:0}.email-preview-subject{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:600;overflow:hidden}.email-preview-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;display:flex}.email-preview-close:hover{background:var(--bg-hover);color:var(--text-primary)}.email-preview-loading{flex-direction:column;gap:8px;padding:20px 16px;display:flex}.email-preview-skeleton{background:var(--bg-hover);border-radius:4px;height:14px;animation:1.4s ease-in-out infinite skeletonPulse}.email-preview-skeleton--short{width:60%}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.5}}.email-preview-error{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;display:flex}.email-preview-error-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.email-preview-error-detail{color:var(--text-muted);max-width:400px;margin:0;font-size:13px}.email-preview-meta{border-bottom:1px solid var(--border-color);flex-direction:column;flex-shrink:0;gap:4px;padding:12px 16px;display:flex}.email-preview-meta-row{gap:12px;font-size:13px;line-height:1.5;display:flex}.email-meta-label{color:var(--text-muted);flex-shrink:0;width:50px;font-weight:600}.email-meta-value{color:var(--text-primary);word-break:break-word}.email-preview-image-bar{background:var(--bg-hover);border-bottom:1px solid var(--border-color);color:var(--text-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:12px;display:flex}.email-load-images-btn{border:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);white-space:nowrap;background:0 0;border-radius:4px;padding:3px 10px;font-size:12px}.email-load-images-btn:hover{background:var(--bg-card)}.email-preview-body{flex:1;min-height:0;position:relative;overflow:hidden}.email-preview-iframe{border:none;width:100%;height:100%;min-height:300px;display:block}.email-preview-no-body{text-align:center;color:var(--text-muted);padding:32px 24px;font-size:13px}.email-preview-toggle-bar{border-top:1px solid var(--border-color);flex-shrink:0;padding:6px 16px}.email-toggle-btn{cursor:pointer;color:var(--text-link,#2563eb);background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.email-toggle-btn:hover{opacity:.8}.email-preview-inner-atts{border-top:1px solid var(--border-color);flex-shrink:0;padding:10px 16px}.email-inner-atts-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.email-inner-atts-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.email-inner-att-item{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;display:flex}.email-inner-att-name{font-weight:500}.email-inner-att-size{color:var(--text-muted);font-size:12px}.email-inner-att-download{color:var(--text-muted);border-radius:3px;align-items:center;margin-left:2px;padding:2px 4px;text-decoration:none;display:inline-flex}.email-inner-att-download:hover{color:var(--text-primary);background:var(--bg-hover)}.email-inner-att-preview-btn{border:1px solid var(--border-color);cursor:pointer;color:var(--text-link,#2563eb);white-space:nowrap;background:0 0;border-radius:4px;margin-left:2px;padding:2px 8px;font-size:11px}.email-inner-att-preview-btn:hover{background:var(--bg-hover)}.email-preview-footer{border-top:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.email-preview-download-btn{align-items:center;gap:5px;display:flex}@media (width<=600px){.email-preview-overlay{padding:0}.email-preview-modal{border-radius:0;max-width:100%;max-height:100vh}}.comment-thread{padding:12px 0}.comment-thread-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:12px;font-weight:700}.comment-loading,.comment-empty{color:var(--text-muted);padding:8px 0;font-size:13px}.comment-input-area{gap:8px;margin-bottom:16px;display:flex}.comment-input-wrap{flex-direction:column;flex:1;gap:6px;display:flex}.comment-input{border:1px solid var(--border-input);resize:none;width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.comment-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.comment-submit-row{justify-content:flex-end;gap:6px;display:flex}.btn-comment{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:5px;padding:5px 12px;font-size:12.5px;font-weight:600}.btn-comment:hover:not(:disabled){background:#1d4ed8}.btn-comment:disabled{opacity:.5;cursor:default}.btn-cancel{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:5px;padding:5px 12px;font-size:12.5px}.btn-cancel:hover{background:var(--bg-tertiary)}.avatar{background:var(--bg-tertiary);width:28px;height:28px;color:var(--text-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.comments-list{flex-direction:column;gap:10px;display:flex}.comment-item{align-items:flex-start;gap:8px;display:flex}.comment-item--reply{border-left:2px solid var(--border-color);margin-left:36px;padding-left:8px}.comment-body-wrap{flex:1;min-width:0}.comment-meta{align-items:center;gap:6px;margin-bottom:3px;display:flex}.comment-author{color:var(--text-primary);font-size:12.5px;font-weight:600}.comment-time{color:var(--text-muted);font-size:11.5px}.comment-text{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;margin-bottom:4px;font-size:13px;line-height:1.5}.comment-text span{color:inherit}.comment-text .mention{color:#3b82f6!important}.reaction-bar{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:4px;display:flex}.reaction-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;border-radius:12px;padding:2px 8px;font-size:12px;transition:background .1s}.reaction-btn:hover{background:var(--border-color)}.reaction-btn--active{background:var(--bg-secondary);border-color:var(--border-color);color:var(--accent,#3b82f6)}.reaction-add-wrap{gap:2px;display:none}.reaction-bar:hover .reaction-add-wrap{display:flex}.reaction-add-btn{cursor:pointer;opacity:.6;background:0 0;border:1px solid #0000;border-radius:8px;padding:2px 5px;font-size:13px}.reaction-add-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color);opacity:1}.comment-actions{gap:8px;margin-top:2px;display:flex}.comment-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.comment-action-btn:hover{color:var(--text-secondary)}.comment-action-btn--delete:hover{color:#ef4444}.comment-action-btn--hide:hover{color:var(--text-secondary)}.comment-item--hidden{opacity:.6;align-items:center;gap:8px;padding:6px 0;display:flex}.comment-hidden-label{color:var(--text-muted,var(--text-secondary));font-size:13px;font-style:italic}.reply-input-wrap{flex-direction:column;gap:6px;margin-top:8px;display:flex}.replies-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.mention{color:#3b82f6;background:#eff6ff;border-radius:4px;padding:1px 4px;font-weight:500;display:inline}.mention-dropdown{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:8px;min-width:200px;max-height:200px;margin-top:2px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.mention-item{cursor:pointer;padding:8px 12px;font-size:13px;line-height:1.4}.mention-item:hover{background:var(--bg-tertiary)}.mention-item--active{background:var(--accent,#6366f1);color:#fff}.mention-item--active strong{color:#fff}.mention--broadcast{color:#92400e;background:#fef3c7;border-radius:4px;padding:1px 4px;font-weight:600;display:inline}.mention-item--broadcast{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;display:flex}.mention-broadcast-label{color:var(--text-primary);font-size:13px;font-weight:700}.mention-item-sub{color:var(--text-muted);font-size:11.5px}.mention-item--broadcast.mention-item--active .mention-broadcast-label,.mention-item--broadcast.mention-item--active .mention-item-sub{color:#fff}.comment-attachments{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.comment-attachment-link{color:var(--accent,#3b82f6);background:var(--bg-secondary);border-radius:4px;padding:2px 6px;font-size:12px;text-decoration:none}.comment-attachment-link:hover{text-decoration:underline}.comment-attach-btn{border:1px solid var(--border-color);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:5px;padding:4px 8px;font-size:14px;line-height:1}.comment-attach-btn:hover:not(:disabled){background:var(--bg-tertiary)}.comment-attach-btn:disabled{opacity:.5;cursor:default}.comment-pending-attachments{flex-wrap:wrap;gap:4px;display:flex}.pending-attachment-chip{color:var(--text-primary);background:#10b9811a;border:1px solid #10b9814d;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:12px;display:inline-flex}.comment-avatar{cursor:default;flex-shrink:0;position:relative}.comment-avatar:hover .avatar-tooltip{display:block}.avatar-tooltip{background:var(--bg-card);border:.5px solid var(--border-color);white-space:nowrap;z-index:100;box-shadow:0 4px 12px var(--shadow);border-radius:8px;padding:6px 10px;font-size:12px;display:none;position:absolute;bottom:120%;left:50%;transform:translate(-50%)}.avatar-tooltip-name{color:var(--text-primary);font-weight:500;display:block}.avatar-tooltip-desig{color:var(--text-secondary);margin-top:2px;font-size:11px;display:block}.ead-overlay{z-index:1200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ead-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:16px;width:420px;max-width:calc(100vw - 32px);padding:24px;display:flex;box-shadow:0 20px 60px #00000040}.ead-header{justify-content:space-between;align-items:center;display:flex}.ead-title{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.ead-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.ead-close:hover{color:var(--text-secondary)}.ead-field{flex-direction:column;gap:4px;display:flex}.ead-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.ead-optional{color:var(--text-muted);font-weight:400}.ead-input{border:1px solid var(--border);background:var(--bg-input,var(--bg-card));color:var(--text-primary);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:.875rem}.ead-input:focus{border-color:var(--accent,#6366f1);outline:none}.ead-field-error{color:var(--error,#dc2626);font-size:.75rem}.ead-reason{resize:vertical;border:1px solid var(--border);background:var(--bg-input,var(--bg-card));color:var(--text-primary);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:.875rem}.ead-reason:focus{border-color:var(--accent,#6366f1);outline:none}.ead-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.side-panel-overlay{z-index:50;background:#0003;position:fixed;inset:0}.side-panel{background:var(--bg-card);border-left:1px solid var(--border-color);z-index:51;flex-direction:column;width:420px;max-width:100vw;height:100%;animation:.2s slideIn;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 20px #0000001a}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.side-panel-header{border-bottom:1px solid var(--bg-tertiary);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.side-panel-health{align-items:center;display:flex}.side-panel-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;font-size:22px;line-height:1}.side-panel-close:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.side-panel-body{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.side-panel-title{width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:4px;outline:none;padding:4px 2px;font-family:inherit;font-size:17px;font-weight:600}.side-panel-title:focus{background:var(--bg-secondary);box-shadow:0 0 0 2px #2563eb30}.side-panel-field{flex-direction:column;gap:4px;display:flex}.spf-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}.spf-select,.spf-input{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:6px 10px;font-family:inherit;font-size:13.5px}.spf-input input{color:var(--text-primary);background:var(--bg-card);border:none;border-radius:6px;outline:none;width:100%;padding:6px 10px;font-family:inherit;font-size:13.5px}.spf-select:focus,.spf-input:focus,.spf-input input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.spf-start-btn{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:6px;align-items:center;gap:6px;margin-top:2px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .12s;display:inline-flex}.spf-start-btn:hover{background:#16a34a}.spf-start-btn:disabled{opacity:.6;cursor:default}.spf-textarea{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);resize:vertical;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.spf-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.spf-field-error{color:var(--color-error,#dc2626);margin-top:2px;font-size:.75rem;display:block}.side-panel-title--readonly{color:var(--text-primary);padding:4px 2px;font-size:17px;font-weight:600}.spf-value{color:var(--text-secondary);padding:6px 0;font-size:13.5px;display:block}.spf-value--notes{white-space:pre-wrap;min-height:2em;font-size:13px;line-height:1.5}.side-panel-divider{background:var(--bg-tertiary);height:1px;margin:4px 0}.side-panel-footer{border-top:1px solid var(--bg-tertiary);flex-shrink:0;padding:12px 16px}.side-panel-delete-btn{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef44444d;border-radius:6px;width:100%;padding:7px 14px;font-size:13px;font-weight:600}.side-panel-delete-btn:hover:not(:disabled){background:#ef444414}.side-panel-delete-btn:disabled{opacity:.5;cursor:default}.spf-duration-block{color:var(--text-secondary);flex-wrap:wrap;gap:16px;padding:6px 0;font-size:.8rem;display:flex}.spf-dur-item{align-items:center;gap:4px;display:flex}.spf-dur-item strong{color:var(--text-primary)}.spf-dur-edit{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 3px;line-height:1;display:flex}.spf-dur-edit:hover{color:var(--text-primary);background:var(--bg-hover,#0000000d)}.health-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.health-dot--gray{background:#9ca3af}.health-dot--red{background:#ef4444}.health-dot--yellow{background:var(--color-amber)}.health-dot--green{background:#10b981}.task-row--readonly{opacity:.85}.task-row--readonly .task-status-dot{pointer-events:none;cursor:default}.task-row{border-bottom:1px solid var(--bg-tertiary);cursor:pointer;flex-direction:column;transition:background .1s;display:flex}.task-row:last-child{border-bottom:none}.task-row:hover{background:var(--bg-secondary)}.task-row--complete{opacity:.55}.task-row-main{align-items:center;gap:7px;min-height:44px;padding:10px 12px;display:flex}.task-checkbox{border:2px solid var(--border-input);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:11px;line-height:1;transition:border-color .12s,background .12s;display:flex}.task-checkbox--complete{border-color:var(--status-complete);background:var(--status-complete);color:#fff}.task-checkbox--in_progress{border-color:var(--color-amber);color:var(--color-amber)}.task-checkbox--not_started{border-color:var(--border-input);color:var(--text-muted)}.task-name-label{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13.5px;overflow:hidden}.task-assignee-label{color:var(--text-muted);background:var(--bg-tertiary);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:1px 7px;font-size:11.5px}.task-due-label{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:11.5px}.task-due-label--overdue{color:#ef4444;font-weight:600}.task-group-heading{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);background:var(--bg-secondary);border-top:1px solid var(--bg-tertiary);border-bottom:1px solid var(--bg-tertiary);margin-top:4px;padding:6px 14px 4px;font-size:11px;font-weight:700}.task-release-indicator{background:#22c55e;border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-left:4px;display:inline-block}.task-edit-pencil{cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:11px;transition:opacity .12s}.task-row-main:hover .task-edit-pencil{opacity:.6}.task-edit-pencil:hover{opacity:1!important}.task-start-btn{color:#22c55e;cursor:pointer;background:0 0;border:1px solid #22c55e;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:1px 4px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.task-start-btn:hover{color:#fff;background:#22c55e}.task-start-btn:disabled{opacity:.5;cursor:default}.task-name-edit-input{color:var(--text-primary);border:1px solid #3b82f6;border-radius:4px;outline:none;flex:1;min-width:0;padding:2px 6px;font-size:13.5px}.task-due-input{background:var(--bg-card);color:var(--text-secondary);border:1px solid #2563eb;border-radius:4px;outline:none;padding:2px 6px;font-size:11px}.task-due-placeholder{color:var(--text-muted);font-size:11px}.task-completed-at{color:var(--status-complete);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:11px}.task-drag-handle{cursor:grab;color:var(--border-input);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 6px;font-size:16px}.task-drag-handle:active{cursor:grabbing}.task-status-dot{z-index:10;border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:transform .1s,box-shadow .1s;position:relative;cursor:pointer!important;pointer-events:all!important}.task-status-dot:hover{box-shadow:0 0 0 2px var(--bg-card,#fff);transform:scale(1.3)}.task-status-dot--not_started{background:0 0!important;border:2px solid #9ca3af!important}.task-status-dot--in_progress{background:var(--color-amber)!important;border:2px solid var(--color-amber)!important}.task-status-dot--complete{background:var(--status-complete);border:2px solid var(--status-complete)}.task-status-dot--overdue{background:var(--cal-overdue)!important;border:2px solid var(--cal-overdue)!important}.task-status-dot--due_soon{background:var(--cal-due-soon)!important;border:2px solid var(--cal-due-soon)!important}.task-status-dot--due_week{background:var(--cal-due-week)!important;border:2px solid var(--cal-due-week)!important}.task-status-dot--future{background:var(--cal-future)!important;border:2px solid var(--cal-future)!important}.task-status-dot--completed{background:var(--status-complete)!important;border:2px solid var(--status-complete)!important}.activity-log{padding:.75rem 1rem}.activity-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.activity-filter-pill{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:3px 10px;font-size:12px;transition:background .1s,color .1s}.activity-filter-pill:hover{background:var(--bg-tertiary)}.activity-filter-pill--active{color:#fff;background:#2563eb;border-color:#2563eb}.activity-loading,.activity-empty{color:var(--text-muted);text-align:center;padding:1.5rem;font-size:13px}.activity-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.activity-entry{align-items:flex-start;gap:.6rem;display:flex}.activity-avatar{color:#fff;background:#6366f1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:flex}.activity-body{flex:1;min-width:0}.activity-text{color:var(--text-secondary);word-break:break-word;font-size:12px;line-height:1.4}.activity-time{color:var(--text-muted);margin-top:2px;font-size:11px}.activity-search{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;margin-bottom:8px;padding:6px 10px;font-size:13px}.activity-search::placeholder{color:var(--text-muted)}.activity-date-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);margin-bottom:4px;padding:8px 0 4px;font-size:11px;font-weight:600}.save-indicator{z-index:9999;pointer-events:none;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;animation:.15s save-indicator-in;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000026}@keyframes save-indicator-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.save-indicator--saving{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.save-indicator--saved{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.save-indicator--error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.save-indicator-spinner{border:2px solid #92400e;border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.lightbox-overlay{z-index:10000;background:#000000d9;justify-content:center;align-items:center;animation:.15s lightbox-fade;display:flex;position:fixed;inset:0}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.lightbox-content{background:var(--bg-card);border-radius:8px;flex-direction:column;max-width:90vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.lightbox-img{object-fit:contain;max-width:90vw;max-height:calc(90vh - 56px);display:block}.lightbox-toolbar{background:var(--bg-secondary);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 16px;display:flex}.lightbox-filename{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;overflow:hidden}.lightbox-actions{flex-shrink:0;gap:8px;display:flex}.lightbox-btn{background:var(--bg-tertiary);border:1px solid var(--border-input);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-flex}.lightbox-btn:hover{background:var(--border-color)}.lightbox-btn--close{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.lightbox-btn--close:hover{background:#fecaca}.projects-page{height:100%;display:flex;overflow:hidden}.field-error{color:var(--color-error,#dc2626);margin-top:2px;font-size:.75rem;display:block}.projects-sidebar{border-right:1px solid var(--border-color);background:var(--bg-card);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.sidebar-toolbar{border-bottom:1px solid var(--bg-tertiary);gap:6px;padding:12px;display:flex}.sidebar-search{border:1px solid var(--border-input);border-radius:6px;outline:none;flex:1;min-width:0;padding:6px 10px;font-size:13px}.sidebar-search:focus{border-color:#2563eb}.sidebar-new-btn{white-space:nowrap;flex-shrink:0;padding:6px 10px;font-size:13px}.sidebar-loading,.sidebar-empty{color:var(--text-muted);padding:16px 12px;font-size:13px}.project-list{flex:1;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.project-list-item{cursor:pointer;border-left:3px solid #0000;border-bottom:1px solid var(--border-color);padding:8px 12px;transition:background .1s}.project-list-item:hover{background:var(--bg-secondary)}.project-list-item--active{background:#eff6ff;border-left-color:#2563eb}.pli-top{align-items:center;gap:6px;display:flex}.pli-customer{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.pli-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.pli-date{color:var(--text-muted);align-items:center;gap:5px;margin-top:2px;font-size:11px;display:flex}.pli-date-original{color:var(--border-input);text-decoration:line-through}.pli-date-extended{color:#d97706;font-weight:600}.projects-main{background:var(--bg-secondary);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.projects-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:40px;display:flex}.projects-empty-icon{margin-bottom:12px;font-size:48px}.projects-empty-title{color:var(--text-secondary);margin-bottom:8px;font-size:18px;font-weight:600}.projects-empty-sub{color:var(--text-muted);max-width:300px;font-size:14px;line-height:1.5}.project-detail{flex-direction:column;flex:1;width:100%;max-width:none;padding:0;display:flex;overflow:hidden}.detail-loading{color:var(--text-muted);padding:24px;font-size:14px}.detail-header-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:16px 20px}.detail-header-top{align-items:center;gap:10px;margin-bottom:14px;display:flex}.detail-health-wrap{align-items:center;display:flex}.status-chip{border:1px solid var(--border-input);cursor:pointer;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:20px;outline:none;padding:3px 10px;font-size:12px;font-weight:600}.status-chip[data-status=active]{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.status-chip[data-status=on_hold]{color:#92400e;background:#fef3c7;border-color:#fcd34d}.status-chip[data-status=completed]{color:#1e40af;background:#eff6ff;border-color:#93c5fd}.status-chip[data-status=cancelled]{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.description-field{margin-bottom:12px}.description-textarea{border:1px solid var(--border-input);width:100%;color:var(--text-primary);background:var(--bg-card);resize:vertical;box-sizing:border-box;border-radius:6px;outline:none;min-height:calc(60vh - 80px);padding:10px 12px;font-family:inherit;font-size:13.5px;line-height:1.5}.description-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.detail-fields-grid{grid-template-columns:repeat(2,1fr);gap:10px 16px;padding:5px;display:grid}.detail-fields-grid--single-col{grid-template-columns:1fr}.form-field{flex-direction:column;gap:4px;min-width:0;display:flex}.form-field input,.form-field select,.form-field textarea{box-sizing:border-box;border:1px solid var(--border-input);width:100%;color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:6px 10px;font-family:inherit;font-size:13.5px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.production-type-toggle{border:1px solid var(--border-input);border-radius:6px;gap:0;display:flex;overflow:hidden}.prod-type-btn{color:var(--text-muted);background:var(--bg-card);border:none;border-right:1px solid var(--border-input);cursor:pointer;flex:1;padding:6px 8px;font-size:12.5px;font-weight:500;transition:background .1s,color .1s}.prod-type-btn:last-child{border-right:none}.prod-type-btn:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.prod-type-btn--active{color:#fff;background:#2563eb}.prod-type-btn--active:hover{color:#fff;background:#1d4ed8}.detail-save-row{justify-content:flex-end;margin-top:14px;display:flex}.material-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;overflow:hidden}.section-subheader{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.section-empty{color:var(--text-muted);padding:12px 14px;font-size:13px}.material-table-wrap{padding:6px 0;overflow-x:auto}.material-table{border-collapse:collapse;width:100%;font-size:12.5px}.material-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--bg-tertiary);white-space:nowrap;background:#fafafa;padding:7px 10px;font-size:10.5px;font-weight:700}.material-table td{vertical-align:middle;border-bottom:1px solid #f9fafb;padding:4px 6px}.material-table tr:last-child td{border-bottom:none}.mat-cell-input{width:100%;color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;min-width:80px;padding:4px 6px;font-family:inherit;font-size:12.5px}.mat-cell-input:hover{border-color:var(--border-color);background:var(--bg-card)}.mat-cell-input:focus{background:var(--bg-card);border-color:#2563eb;box-shadow:0 0 0 2px #2563eb15}.mat-cell-sm{min-width:60px;max-width:90px}.mat-cell-select{color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;max-width:130px;padding:4px 6px;font-family:inherit;font-size:12.5px}.mat-cell-select:hover,.mat-cell-select:focus{border-color:var(--border-input);background:var(--bg-card)}.mat-upload-btn{color:#2563eb;cursor:pointer;white-space:nowrap;background:#eff6ff;border:1px dashed #bfdbfe;border-radius:4px;padding:3px 8px;font-size:12px;transition:background .1s;display:inline-block}.mat-upload-btn:hover{background:#dbeafe}.mat-upload-btn--large{text-align:center;border-radius:6px;margin-top:8px;padding:20px 16px;font-size:13px;display:block}.mat-file-link{color:#2563eb;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:12px;text-decoration:none;display:inline-block;overflow:hidden}.mat-file-link:hover{text-decoration:underline}.phases-section{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.project-releases-section{margin-bottom:16px}.phases-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:11px;font-weight:700}.phase-accordion{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.phase-header{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;align-items:center;gap:8px;padding:11px 14px;font-size:15px;font-weight:700;display:flex}.phase-header:hover{background:var(--bg-secondary)}.phase-chevron{color:var(--text-muted);width:12px;font-size:11px}.phase-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.phase-name{flex:1}.phase-count{color:var(--text-muted);font-size:12px;font-weight:500}.phase-body{border-top:1px solid var(--bg-tertiary);padding:4px 0 8px;display:none}.phase-body--open{display:block}.phase-section-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-top:1px solid var(--bg-tertiary);margin-top:2px;padding:8px 14px 3px;font-size:10.5px;font-weight:700}.releases-collapsible{border-top:1px solid var(--bg-tertiary)}.releases-collapsible-header{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:600;transition:background .1s;display:flex}.releases-collapsible-header:hover{background:var(--bg-secondary)}.releases-header-left{align-items:center;gap:6px;display:flex}.releases-count-badge{background:var(--bg-tertiary);color:var(--text-muted);text-align:center;border-radius:9px;min-width:18px;padding:1px 6px;font-size:11px;font-weight:700}.phase-extra-actions{padding:6px 10px 4px}.add-task-btn{color:#2563eb;cursor:pointer;text-align:left;background:0 0;border:1px dashed #bfdbfe;border-radius:4px;width:calc(100% - 16px);margin:6px 8px 0;padding:4px 10px;font-size:12.5px;display:block}.add-task-btn:hover{background:#eff6ff}.add-task-inline{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 8px 4px;display:flex}.add-task-inline__name{border:1px solid var(--border-color);background:var(--bg-card);min-width:120px;color:var(--text-primary);border-radius:4px;flex:160px;padding:4px 8px;font-size:13px}.add-task-inline__date{border:1px solid var(--border-color);background:var(--bg-card);width:140px;color:var(--text-primary);border-radius:4px;padding:4px 6px;font-size:13px}.art-extras{flex-direction:column;gap:12px;padding:8px 10px 4px;display:flex}.art-section{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:6px;overflow:hidden}.outsource-grid{grid-template-columns:repeat(2,1fr);gap:10px 16px;padding:12px;display:grid}.file-list-compact{flex-direction:column;gap:4px;margin:0;padding:6px 12px 10px;list-style:none;display:flex}.file-item-compact{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.file-link{color:#2563eb;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;text-decoration:none;overflow:hidden}.file-link:hover{text-decoration:underline}.eng-extras{flex-direction:column;gap:12px;padding:8px 10px 4px;display:flex}.eng-section{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:6px;overflow:hidden}.floor-update-inputs{align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.floor-update-manual{flex:1;min-width:0}.floor-manual-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;font-size:11.5px;font-weight:700}.floor-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px;display:grid}.floor-update-upload{flex-shrink:0;width:160px;padding-top:22px}.floor-updates-list{border-top:1px solid var(--border-color);flex-direction:column;gap:0;display:flex}.floor-update-item{border-bottom:1px solid var(--bg-tertiary);align-items:center;gap:10px;padding:8px 14px;font-size:12.5px;display:flex}.floor-update-item:last-child{border-bottom:none}.fu-meta{flex-shrink:0;align-items:center;gap:6px;min-width:140px;display:flex}.fu-date{color:var(--text-secondary);font-size:12px;font-weight:600}.fu-type{border-radius:10px;padding:1px 6px;font-size:10.5px;font-weight:600}.fu-type--manual{color:#0369a1;background:#e0f2fe}.fu-type--upload{color:#92400e;background:#fef3c7}.fu-content{color:var(--text-muted);flex-wrap:wrap;flex:1;gap:10px;font-size:12px;display:flex}.fu-text{color:var(--text-secondary);flex-basis:100%;font-style:italic}.mom-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;overflow:hidden}.mom-header{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);padding:10px 14px;font-size:13px;font-weight:600}.mom-textarea{width:100%;color:var(--text-primary);resize:vertical;box-sizing:border-box;background:0 0;border:none;outline:none;padding:10px 14px;font-family:inherit;font-size:13px;line-height:1.6}.mom-textarea:focus{background:var(--bg-secondary)}.project-discussion-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;padding:16px 20px}.modal{background:var(--bg-card);border-radius:10px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:24px;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal--wide{width:760px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-close:hover{color:var(--text-secondary)}.modal form{flex-direction:column;gap:12px;display:flex}.intake-grid{grid-template-columns:repeat(2,1fr);gap:10px 16px;margin-bottom:16px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 12px;font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.new-proj-contacts-section{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-secondary,#f8fafc);border-radius:6px;padding:10px 12px}.new-proj-contacts-heading{color:var(--text-secondary,#64748b);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:12px;font-weight:600}.new-proj-contact-row{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.new-proj-contact-row input[type=checkbox]{cursor:pointer;flex-shrink:0}.new-proj-contact-name{color:var(--text-primary,#1e293b);min-width:0;font-weight:500}.new-proj-contact-detail{color:var(--text-muted,#94a3b8);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.btn-sm{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-input);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .1s}.btn-sm--primary{color:#fff;background:#2563eb;border-color:#2563eb}.btn-sm--primary:hover:not(:disabled){background:#1d4ed8}.btn-sm--danger{color:#dc2626;background:0 0;border-color:#dc2626}.btn-sm--danger:hover:not(:disabled){color:#fff;background:#dc2626}.pli-delete-btn{cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0 2px;font-size:12px;transition:opacity .12s}.project-list-item:hover .pli-delete-btn{opacity:.7}.pli-delete-btn:hover{opacity:1!important}.sidebar-filter-bar{border-bottom:1px solid var(--bg-tertiary);align-items:center;gap:6px;padding:6px 12px;display:flex}.filter-toggle-btn{color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;padding:3px 8px;font-size:12px;transition:background .1s,color .1s}.filter-toggle-btn:hover,.filter-toggle-btn--active{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.filter-clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.filter-clear-btn:hover{color:var(--text-secondary)}.sidebar-filter-panel{border-bottom:1px solid var(--bg-tertiary);flex-direction:column;gap:4px;padding:8px 12px;display:flex}.filter-option{color:var(--text-secondary);cursor:pointer;align-items:center;gap:7px;padding:2px 0;font-size:12px;display:flex}.filter-count{background:var(--bg-tertiary);color:var(--text-muted);border-radius:8px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600}.pli-archived-badge{color:#92400e;background:#fef3c7;border-radius:3px;margin-left:auto;padding:1px 4px;font-size:10px}.project-list-item--archived{opacity:.7}.archived-banner{color:#78350f;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 16px;font-size:13px;display:flex}.project-detail-2col{flex:1;align-items:stretch;gap:0;width:100%;display:flex;overflow:hidden}.project-detail-left{border-right:1px solid var(--border-color);flex:0 0 45%;width:45%;min-width:0;height:100%;padding:16px 20px;overflow-y:auto}.project-detail-right{flex:0 0 55%;width:55%;min-width:0;height:100%;padding:16px 20px;overflow-y:auto}.btn-archive{background:var(--bg-card);color:#b45309;cursor:pointer;border:1px solid #fcd34d;border-radius:5px;margin-left:auto;padding:4px 10px;font-size:12px}.btn-archive:hover{background:#fef3c7}.btn-danger{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled{opacity:.5;cursor:default}.detail-description-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;padding:1rem 1.25rem}.description-label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.description-label-row label{color:var(--text-secondary);font-size:13px;font-weight:600}.word-count{color:var(--text-muted);font-size:11px}.discussion-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.discussion-tabs{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);display:flex}.discussion-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1.25rem;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.discussion-tab:hover{color:#1f2937}.discussion-tab--active{color:#2563eb;border-bottom-color:#2563eb}.discussion-tab-content{padding:.75rem 1rem}.discussion-card--overflow{overflow:visible}.discussion-card--overflow .discussion-tabs{border-radius:8px 8px 0 0}.gantt-tab-pad{padding:16px}.mat-cell-narrow{text-align:center;width:40px;color:var(--text-muted);font-size:12px}.form-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);border-radius:6px 6px 0 0;margin-top:14px;margin-bottom:8px;padding:12px 12px 8px;font-size:14px;font-weight:700}.form-group-label:first-of-type{margin-top:0}.form-field--toggles{flex-direction:column;justify-content:center;gap:6px;display:flex}.toggle-row{color:var(--text-secondary);cursor:pointer;align-items:center;gap:7px;font-size:13px;font-weight:500;display:flex}.toggle-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:15px;height:15px}.bom-routing-textarea{border:1px solid var(--border-input);resize:vertical;box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px}.bom-routing-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f620}.printing-subsection{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;margin-top:8px;padding:10px 12px}@media (width<=1200px){.project-detail-2col{flex-direction:column;height:auto;overflow:visible}.project-detail-left,.project-detail-right{flex:unset;border-right:none;width:100%;height:auto;overflow:visible}.project-detail{overflow:visible}.projects-main{overflow-y:auto}.description-textarea{resize:vertical;min-height:300px}}@media (width<=768px){.projects-page{flex-direction:column}.projects-sidebar{border-right:none;border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;max-height:220px}.projects-main{overflow-y:auto}}.project-files-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;padding:14px 16px}.project-files-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.project-files-title{color:var(--text-primary);font-size:13px;font-weight:600}.project-files-upload-row{align-items:center;gap:6px;display:flex}.files-category-select{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:5px;padding:4px 6px;font-size:12px}.files-upload-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#2563eb;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:500}.files-upload-btn:hover{background:#1d4ed8}.project-files-tabs{border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:2px;margin-bottom:10px;display:flex}.files-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:4px;margin-bottom:-1px;padding:5px 10px;font-size:12px;display:flex}.files-tab:hover{color:#2563eb}.files-tab--active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.files-tab-count{background:var(--border-color);color:var(--text-secondary);border-radius:10px;padding:1px 5px;font-size:11px}.files-empty{color:var(--text-muted);text-align:center;padding:10px 0;font-size:13px}.files-table{border-collapse:collapse;width:100%;font-size:12px}.files-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:4px 8px;font-weight:500}.files-table td{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);vertical-align:middle;padding:5px 8px}.files-table tr:last-child td{border-bottom:none}.category-badge{background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:11px}.comment-attachments{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.comment-attachment-link{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;text-decoration:none;display:inline-flex}.comment-attachment-link:hover{background:#dbeafe}.comment-pending-attachments{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.pending-attachment-chip{background:var(--bg-tertiary);border:1px solid var(--border-input);color:var(--text-secondary);border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;display:inline-flex}.pending-attachment-chip button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:12px;line-height:1}.comment-attach-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:4px;font-size:14px}.comment-attach-btn:hover{color:#2563eb;background:#eff6ff}.contact-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.contact-row input{flex:1;min-width:0}.pli-owner-initials{color:#3730a3;background:#e0e7ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-left:auto;font-size:10px;font-weight:700;display:flex}.project-pct-bar{background:var(--border-color);border-radius:2px;height:3px;margin:3px 0;overflow:hidden}.project-pct-fill{background:#2563eb;border-radius:2px;height:100%;transition:width .3s}.project-pct-text{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:10px}.project-dimmed{opacity:.5}.project-status-bar{border-top-width:3px;flex-wrap:wrap;gap:8px;margin-bottom:8px;padding:8px 0;display:flex}.status-chip{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:500}.status-chip--red{color:#dc2626;background:#fee2e2}.status-chip--yellow{color:#92400e;background:#fef9c3}.project-teams-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.team-chip{cursor:pointer;border:1px solid;border-radius:12px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;transition:opacity .15s;display:inline-flex}.team-chip:hover{opacity:.75}.team-assign-select{border:1px dashed var(--border-color);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:6px;padding:3px 6px;font-size:12px}.project-update-banner{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px 12px;font-size:13px;display:flex}.project-update-banner button{color:#1d4ed8;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.project-updated-time{color:var(--text-muted);margin-left:auto;font-size:11px}.readonly-field{color:var(--text-primary);cursor:default;border-bottom:1px dashed var(--border-color);min-height:32px;padding:6px 0;font-size:13.5px;display:block}.date-clear-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:14px;line-height:1}.date-clear-btn:hover{color:#dc2626}.material-cards{flex-direction:column;gap:8px;margin-top:8px;display:flex}.material-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 14px}.material-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.material-card-body{grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:12px;display:grid}.mat-type-badge{border-radius:12px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.mat-type-badge--purchased{color:#6d28d9;background:#ede9fe}.mat-type-badge--customer{color:#1d4ed8;background:#dbeafe}.mat-status-pill{border-radius:12px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.supplier-search{width:100%}.supplier-search-input{border:1px solid var(--border-input);background:var(--bg-card);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;outline:none;padding:5px 8px;font-size:13px}.supplier-search-input:focus{border-color:#2563eb}.supplier-dropdown{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:8px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.supplier-option{cursor:pointer;color:var(--text-primary);padding:8px 12px;font-size:13px}.supplier-option:hover{background:var(--bg-secondary)}.supplier-contact{color:var(--text-secondary);font-size:12px}.supplier-no-results{color:var(--text-secondary);padding:8px 12px;font-size:12px}.owner-display{color:var(--text-secondary);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.contact-card-header:hover,.contact-card--open .contact-card-header{background:var(--bg-secondary)}@media (width<=680px){.contact-cards-grid,.contact-card-fields{grid-template-columns:1fr}}.tag-chip{background:var(--tag-color,#6366f1);color:#fff;white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:600;line-height:1.5;display:inline-flex}.tag-chip--sm{padding:1px 5px;font-size:10px}.tag-chip--more{background:var(--bg-tertiary,#e5e7eb);color:var(--text-muted)}.tag-chip-remove{cursor:pointer;color:#fffc;background:0 0;border:none;margin:0;padding:0 0 0 2px;font-size:13px;line-height:1}.tag-chip-remove:hover{color:#fff}.tag-picker{position:relative}.tag-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.tag-add-btn{background:var(--bg-secondary);border:1px dashed var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.tag-add-btn:hover{color:#6366f1;border-color:#6366f1}.tag-dropdown{background:var(--bg-card);border:1px solid var(--border-color);z-index:200;border-radius:8px;min-width:180px;max-height:220px;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.tag-dropdown-item{cursor:pointer;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.tag-dropdown-item:hover{background:var(--bg-secondary)}.tag-dropdown-empty{color:var(--text-muted);padding:10px 12px;font-size:12px}.tag-dropdown-footer{border-top:1px solid var(--border-color);color:var(--text-muted);padding:7px 12px;font-size:11px}.tag-manage-link{color:var(--accent,#6366f1);font-size:inherit;text-decoration:none}.tag-manage-link:hover{text-decoration:underline}.tag-manage-hint{color:var(--text-muted);font-size:inherit}.filter-tag-empty{padding:4px 2px 6px;font-size:12px}.pj-tags-row{margin-top:6px;margin-bottom:2px}.pj-star-btn{color:var(--text-muted)}.pj-star-btn--active{color:#d97706!important}.pj-star-btn--active:hover{background:#fef3c7!important}.header-menu-dropdown{background:var(--bg-card);border:1px solid var(--border-color);z-index:100;border-radius:6px;min-width:160px;margin-top:4px;position:absolute;top:100%;right:0;box-shadow:0 4px 6px #0000001a}.header-menu-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.header-menu-item:hover{background:var(--bg-secondary)}.header-menu-item:first-child{border-radius:5px 5px 0 0}.header-menu-item:last-child{border-radius:0 0 5px 5px}.pli-star-btn{cursor:pointer;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;align-items:center;margin-left:auto;padding:2px 3px;transition:opacity .15s;display:flex}.project-list-item:hover .pli-star-btn{opacity:1}.pli-star-btn--active{color:#d97706;opacity:1!important}.pli-star-btn:hover{color:#d97706}.pli-tags{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.sidebar-views-bar{align-items:center;gap:6px;padding:4px 10px 0;display:flex}.views-trigger-wrap{position:relative}.views-trigger-btn{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:4px 8px;font-size:11.5px;display:flex}.views-trigger-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.views-trigger-btn--open{background:var(--bg-secondary);color:var(--text-primary);border-color:#6366f1}.views-dropdown{z-index:200;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;min-width:220px;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #0000001f}.views-dropdown-empty{color:var(--text-muted);padding:8px 12px;font-size:12px}.views-dropdown-item{align-items:center;padding:0 4px;display:flex}.views-dropdown-apply{text-align:left;color:var(--text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:5px;flex:1;padding:6px 10px;font-size:12.5px;overflow:hidden}.views-dropdown-apply:hover{background:var(--bg-secondary)}.views-dropdown-star,.views-dropdown-delete{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px 5px;display:flex}.views-dropdown-star:hover,.views-dropdown-star--active{color:#f59e0b}.views-dropdown-delete:hover{color:#dc2626;background:#fee2e2}.views-dropdown-divider{background:var(--border-color);height:1px;margin:4px 0}.views-dropdown-save-btn{text-align:left;color:#6366f1;cursor:pointer;background:0 0;border:none;width:100%;padding:6px 12px;font-size:12px}.views-dropdown-save-btn:hover{background:var(--bg-secondary)}.filter-panel-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 0 2px;font-size:10px;font-weight:700}.sidebar-tag-filter-chips{flex-wrap:wrap;gap:4px;padding:4px 10px 0;display:flex}.tag-filter-active-chip{background:color-mix(in srgb, var(--tag-color,#6366f1) 15%, transparent);color:var(--tag-color,#6366f1);border:1px solid color-mix(in srgb, var(--tag-color,#6366f1) 30%, transparent);border-radius:12px;align-items:center;gap:3px;padding:2px 6px 2px 8px;font-size:11px;display:inline-flex}.tag-filter-active-chip button{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;padding:0;font-size:13px;line-height:1}.tag-filter-active-chip button:hover{opacity:1}.views-modal-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.views-modal{background:var(--bg-card);border-radius:10px;width:360px;max-width:90vw;box-shadow:0 12px 40px #0003}.views-modal-header{color:var(--text-primary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 16px 10px;font-size:14px;font-weight:600;display:flex}.views-modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;display:flex}.views-modal-close:hover{color:var(--text-primary)}.views-modal-body{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.views-modal-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11.5px;font-weight:600}.views-modal-input{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:7px 10px;font-family:inherit;font-size:13.5px}.views-modal-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.views-modal-check-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.views-modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:10px 16px 14px;display:flex}.ui-state{color:var(--text-muted);flex-direction:column;align-items:flex-start;gap:6px;padding:12px 0;display:flex}.ui-state__icon-wrap{background:var(--bg-tertiary);width:24px;height:24px;color:var(--text-secondary);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.ui-state__spinner{animation:.9s linear infinite ui-state-spin}.ui-state__title{color:var(--text-secondary);font-size:14px;font-weight:600}.ui-state__message{color:var(--text-muted);font-size:13px}.ui-state__action{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:2px;padding:0;font-size:13px;font-weight:600;text-decoration:none}.ui-state__action:hover{text-decoration:underline}@keyframes ui-state-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-selector{flex-direction:column;gap:4px;margin-bottom:24px;display:flex}.project-selector-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.project-selector-row{align-items:center;gap:8px;display:flex}.project-selector-select{border:1px solid var(--border-input);max-width:480px;color:var(--text-primary);background:var(--bg-card);cursor:pointer;border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:14px;font-weight:500}.project-selector-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.project-selector-loading,.project-selector-empty{color:var(--text-muted);margin-bottom:24px;font-size:14px}.project-selector-state{margin-bottom:24px}.project-selector-empty a{color:#2563eb;text-decoration:none}.milestones-toolbar{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.toggle-label{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13.5px;display:flex}.cell-input{color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;padding:4px 6px;font-family:inherit;font-size:13.5px}.cell-date{width:130px}.cell-pct{width:70px}.cell-select{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding:4px 6px;font-family:inherit;font-size:13px}.cell-select:hover,.cell-select:focus{border-color:var(--border-input);background:var(--bg-card)}.milestone-row--complete td{color:#16a34a}.ms-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.ms-dot--red{background:#dc2626}.ms-dot--yellow{background:#f59e0b}.ms-dot--green{background:#16a34a}.ms-overall-progress{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;display:flex}.ms-overall-label{color:var(--text-secondary);white-space:nowrap;min-width:100px;font-size:12px;font-weight:600}.ms-overall-bar{background:var(--bg-tertiary);border-radius:4px;flex:1;height:8px;overflow:hidden}.ms-overall-fill{border-radius:4px;height:100%;transition:width .4s}.ms-overall-pct{color:var(--text-primary);text-align:right;min-width:36px;font-size:13px;font-weight:700}.ms-category-row{pointer-events:none;background:var(--bg-secondary)!important}.ms-category-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700;padding:6px 12px!important}.page-no-project,.page-loading,.page-empty{color:var(--text-muted);padding:12px 0;font-size:14px}.toolbar{justify-content:flex-end;align-items:center;margin-bottom:14px;display:flex}.cell-input{color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;min-width:80px;padding:4px 6px;font-family:inherit;font-size:13px}.cell-input:hover,.cell-input:focus{border-color:var(--border-input);background:var(--bg-card)}.cell-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.cell-num{width:70px;min-width:60px}.cell-date{width:130px;min-width:120px}.cell-textarea{color:var(--text-primary);resize:none;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;min-width:120px;padding:4px 6px;font-family:inherit;font-size:13px}.cell-textarea:hover,.cell-textarea:focus{border-color:var(--border-input);background:var(--bg-card);resize:vertical}.cell-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.row-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.row-delete-btn:hover{color:#ef4444;background:#fef2f2}.production-note{color:var(--text-muted);margin-top:14px;font-size:12.5px;font-style:italic}.page-header{margin-bottom:20px}.page-no-project,.section-loading{color:var(--text-muted);padding:12px 0;font-size:14px}.shipment-form-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:20px;padding:20px}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px;font-size:14px;font-weight:700}.shipment-grid{grid-template-columns:repeat(2,1fr);gap:10px 16px;display:grid}.form-field{flex-direction:column;gap:4px;display:flex}.form-field--full{grid-column:1/-1}.form-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.form-field input,.form-field textarea{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:6px 10px;font-family:inherit;font-size:13.5px}.form-field input:focus,.form-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.form-field textarea{resize:vertical}.form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-top:10px;padding:8px 12px;font-size:13px}.attachments-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:20px}.upload-area{margin-bottom:18px}.upload-area:last-child{margin-bottom:0}.upload-area-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.upload-area-label{color:var(--text-secondary);font-size:13px;font-weight:600}.upload-btn{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-input);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:12.5px;font-weight:600;transition:background .12s}.upload-btn:hover{background:var(--border-color)}.upload-empty{color:var(--text-muted);padding:6px 0;font-size:12.5px}.file-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.file-item{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.file-name{color:#2563eb;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;text-decoration:none;overflow:hidden}.file-name:hover{text-decoration:underline}.file-meta{color:var(--text-muted);flex-shrink:0;font-size:12px}.file-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.file-delete-btn:hover{color:#ef4444;background:#fef2f2}.ship-filter-tabs{gap:4px;margin-bottom:16px;display:flex}.ship-filter-tab{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:500;transition:background .1s,color .1s}.ship-filter-tab:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.ship-filter-tab--active{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.weekly-summary-page{box-sizing:border-box;width:100%;max-width:none!important}.export-btns{gap:8px;display:flex}.week-nav{align-items:center;gap:10px;margin-bottom:20px;display:flex}.week-nav-btn{background:var(--bg-tertiary);border:1px solid var(--border-input);cursor:pointer;color:var(--text-secondary);border-radius:6px;padding:6px 12px;font-size:18px;line-height:1}.week-nav-btn:hover{background:var(--border-color)}.week-label{color:var(--text-secondary);align-items:center;gap:6px;font-size:14px;display:flex}.week-input{border:1px solid var(--border-input);border-radius:6px;outline:none;padding:4px 8px;font-size:13.5px}.week-input:focus{border-color:#2563eb}.summary-stats-row{align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.summary-stats{flex:1;gap:12px;display:flex}.summary-pie-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex-shrink:0;padding:10px 12px 4px}.summary-pie-title{color:var(--text-secondary);text-align:center;margin-bottom:4px;font-size:12px;font-weight:600}.overdue-badge{color:#dc2626;background:#fee2e2;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.weekly-table-container{border:1px solid var(--border-color);background:var(--bg-card);border-radius:8px;width:100%;overflow-x:auto;max-width:none!important}.weekly-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.weekly-table-head{z-index:10;position:sticky;top:0}.weekly-table-head th{color:#fff;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:#1e293b;border:.5px solid #374151;padding:6px 8px;font-size:11.5px;font-weight:700;overflow:hidden}.weekly-table td{vertical-align:top;text-overflow:ellipsis;white-space:nowrap;border:.5px solid #e5e7eb;padding:6px 8px;overflow:hidden}.weekly-table td:hover{white-space:normal;z-index:5;background:var(--bg-card);box-shadow:var(--shadow-md,0 4px 6px -1px #00000012);position:relative;overflow:visible}.col-resize-handle{cursor:col-resize;z-index:1;background:0 0;width:4px;position:absolute;top:0;bottom:0;right:0}.col-resize-handle:hover{background:var(--accent,#2563eb);opacity:.5}.weekly-table th:has(.col-resize-handle:active){background:var(--accent-light,#eff6ff)}.weekly-row--updated{border-left:3px solid #f59e0b!important}.weekly-td-customer{color:var(--text-primary);white-space:nowrap;font-weight:600}.weekly-td-date{white-space:nowrap;color:var(--text-secondary)}.weekly-td-center{text-align:center}.weekly-td-notes{min-width:140px;color:var(--text-secondary)}.weekly-health-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:6px;display:inline-block}.weekly-health-dot--red{background:#ef4444}.weekly-health-dot--yellow{background:#f59e0b}.weekly-health-dot--green{background:#10b981}.weekly-health-dot--grey{background:#9ca3af}.page-container{max-width:1200px;padding:24px 28px}.page-header-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.page-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.header-actions{gap:8px;display:flex}.generated-at{color:var(--text-muted);margin-bottom:20px;font-size:12.5px}.page-loading,.page-empty,.page-error{color:var(--text-muted);padding:12px 0;font-size:14px}.page-error{color:#dc2626}.summary-stats{gap:12px;margin-bottom:24px;display:flex}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:8px;flex:1;padding:14px 18px}.stat-value{color:var(--text-primary);margin-bottom:4px;font-size:28px;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.stat-card--red .stat-value{color:#ef4444}.stat-card--yellow .stat-value{color:#f59e0b}.stat-card--green .stat-value{color:#10b981}.exec-section{margin-bottom:28px}.exec-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:13px;font-weight:700}.table-wrap{border:1px solid var(--border-color);background:var(--bg-card);border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--bg-tertiary);vertical-align:middle;padding:10px 12px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-secondary)}.td-customer{color:var(--text-primary);font-weight:600}.td-project{color:var(--text-secondary)}.td-status{color:var(--text-muted);max-width:200px;font-size:12.5px}.status-pill{text-transform:capitalize;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:12px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.status-pill--active{color:#065f46;background:#d1fae5}.status-pill--on_hold{color:#92400e;background:#fef3c7}.status-pill--completed{color:#1e40af;background:#eff6ff}.status-pill--cancelled{color:#991b1b;background:#fee2e2}.pct-wrap{align-items:center;gap:8px;display:flex}.pct-bar{background:var(--border-color);border-radius:3px;flex:1;min-width:60px;height:6px;overflow:hidden}.pct-fill{background:#10b981;border-radius:3px;height:100%;transition:width .3s}.pct-label{color:var(--text-muted);text-align:right;flex-shrink:0;min-width:32px;font-size:12px}.btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:background .12s}.timeline-page{max-width:1200px;padding:2rem}.timeline-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.timeline-title{color:var(--text-primary);flex-shrink:0;margin:0;font-size:1.5rem;font-weight:700}.timeline-project-select{border:1px solid var(--border-input);background:var(--bg-card);border-radius:6px;outline:none;flex:1;max-width:400px;padding:7px 12px;font-size:14px}.timeline-project-select:focus{border-color:#2563eb}.timeline-view-toggle{border:1px solid var(--border-input);border-radius:6px;display:flex;overflow:hidden}.view-toggle-btn{background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border:none;padding:6px 14px;font-size:13px;transition:background .1s}.view-toggle-btn+.view-toggle-btn{border-left:1px solid var(--border-input)}.view-toggle-btn--active{color:#fff;background:#2563eb}.timeline-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;min-height:300px;padding:1.5rem}.timeline-empty{text-align:center;color:var(--text-muted);padding:3rem;font-size:14px}.gantt-container{flex-direction:column;gap:.75rem;display:flex}.gantt-axis{color:var(--text-muted);justify-content:space-between;padding:0 0 .5rem 140px;font-size:11px;display:flex}.gantt-row{align-items:center;gap:.75rem;height:32px;display:flex}.gantt-row-label{width:140px;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:13px;overflow:hidden}.gantt-row-track{background:var(--bg-tertiary);border-radius:4px;flex:1;height:20px;position:relative}.gantt-bar{opacity:.85;cursor:pointer;border-radius:4px;height:100%;transition:opacity .1s;position:absolute;top:0}.gantt-bar:hover{opacity:1}.milestone-timeline{flex-direction:column;display:flex}.milestone-row{gap:1rem;display:flex}.milestone-connector{flex-direction:column;flex-shrink:0;align-items:center;width:20px;display:flex}.milestone-node{border:2px solid var(--border-input);background:var(--bg-card);border-radius:50%;flex-shrink:0;width:16px;height:16px}.milestone-node--done{background:#10b981;border-color:#10b981}.milestone-line{background:var(--border-color);flex:1;width:2px;min-height:24px;margin:4px 0}.milestone-content{flex:1;margin-top:-2px;padding-top:0;padding-bottom:1.25rem}.milestone-name-row{align-items:center;gap:.5rem;display:flex}.milestone-name{color:var(--text-primary);font-size:14px;font-weight:600}.milestone-meta{color:var(--text-muted);gap:.75rem;margin-top:2px;font-size:12px;display:flex}.milestone-pct{font-weight:500}.milestone-status{text-transform:capitalize}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{text-transform:none;appearance:button;cursor:pointer;overflow:visible}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{box-sizing:border-box;flex-direction:column;align-items:stretch;height:100%;display:flex}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar :before,.rbc-calendar :after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{position:absolute;inset:0;overflow:hidden}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{text-overflow:ellipsis;white-space:nowrap;text-align:center;vertical-align:middle;border-bottom:1px solid #ddd;flex:1 0;min-height:0;padding:0 3px;font-size:90%;font-weight:700;overflow:hidden}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;cursor:pointer;-webkit-user-select:text;user-select:text;background:0 0;border:none;margin:0;padding:0}.rbc-row-content{-webkit-user-select:none;user-select:none;z-index:4;position:relative}.rbc-row-content-scrollable{flex-direction:column;height:100%;display:flex}.rbc-row-content-scrollable .rbc-row-content-scroll-container{-ms-overflow-style:none;scrollbar-width:none;-ms-overflow-style:none;scrollbar-width:none;height:100%;overflow-y:scroll}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:10px;font-size:16px;display:flex}.rbc-toolbar .rbc-toolbar-label{text-align:center;flex-grow:1;padding:0 10px}.rbc-toolbar button{color:#373a3c;text-align:center;vertical-align:middle;white-space:nowrap;background:0 0;border:1px solid #ccc;border-radius:4px;margin:0;padding:.375rem 1rem;line-height:normal;display:inline-block}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-color:#e6e6e6;background-image:none;border-color:#adadad;box-shadow:inset 0 3px 5px #00000020}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{white-space:nowrap;display:inline-block}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (width<=767px){.rbc-toolbar{flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;color:#fff;cursor:pointer;text-align:left;background-color:#3174ad;border:none;border-radius:5px;width:100%;margin:0;padding:2px 5px}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-right-radius:0;border-bottom-left-radius:0}.rbc-row{flex-direction:row;display:flex}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{z-index:4;color:#3174ad;background-color:#ffffff4d;height:auto;font-size:85%;font-weight:700;line-height:normal}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{-webkit-user-select:none;user-select:none;border:1px solid #ddd;flex-direction:column;flex:1 0 0;width:100%;height:100%;display:flex;position:relative}.rbc-month-header{flex-direction:row;display:flex}.rbc-month-row{flex-direction:column;flex:1 0 0;height:100%;display:flex;position:relative;overflow:hidden}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{text-align:right;flex:1 1 0;min-width:0;padding-right:5px}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{flex-direction:row;flex:1 0 0;display:flex;right:1px;overflow:hidden}.rbc-day-bg{flex:1 0}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{z-index:5;background-color:#fff;border:1px solid #e5e5e5;padding:10px;position:absolute;box-shadow:0 5px 15px #00000040}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{flex-direction:column;flex:1 0 0;display:flex;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{border-spacing:0;border-collapse:collapse;border:1px solid #ddd;width:100%}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{vertical-align:top;padding:5px 10px}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{text-transform:lowercase;padding-left:15px;padding-right:15px}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:left;border-bottom:1px solid #ddd;padding:3px 5px}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{flex-direction:column;min-height:100%;display:flex}.rbc-time-column .rbc-timeslot-group{flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;flex-flow:column;min-height:40px;display:flex}.rbc-time-gutter,.rbc-header-gutter{flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{margin-right:10px;position:absolute;inset:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;flex-flow:column wrap;align-items:flex-start;min-height:20px;max-height:100%;display:flex;position:absolute;overflow:hidden}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{flex:none;width:auto;padding-right:5px}.rbc-day-slot .rbc-event-content{word-wrap:break-word;flex:1 1 0;width:100%;height:100%;min-height:1em;line-height:1}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{z-index:10;background-color:#fff;border-right:1px solid #ddd;margin-right:-1px;position:sticky;left:0}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{flex:1 0 0;min-width:auto}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px;width:140px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;color:#fff;background-color:#00000080;width:100%;padding:3px;font-size:75%;position:absolute}.rbc-slot-selecting{cursor:move}.rbc-time-view{border:1px solid #ddd;flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{z-index:4;position:relative}.rbc-time-view .rbc-row{box-sizing:border-box;min-height:20px}.rbc-time-header{flex-direction:row;flex:none;display:flex}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-left:1px solid #ddd;border-right-width:0}.rbc-time-header>.rbc-row:first-child,.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{border-left:1px solid #ddd;flex-direction:column;flex:1;min-width:0;display:flex}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;flex-shrink:0}.rbc-time-content{border-top:2px solid #ddd;flex:1 0;align-items:flex-start;width:100%;display:flex;position:relative;overflow-y:auto}.rbc-time-content>.rbc-time-gutter{flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{-webkit-user-select:none;user-select:none;width:100%}.rbc-current-time-indicator{z-index:3;pointer-events:none;background-color:#74ad31;height:1px;position:absolute;left:0;right:0}.rbc-resource-grouping.rbc-time-header-content{flex-direction:column;display:flex}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.rbc-addons-dnd .rbc-addons-dnd-row-body{position:relative}.rbc-addons-dnd .rbc-addons-dnd-drag-row{position:absolute;top:0;left:0;right:0}.rbc-addons-dnd .rbc-addons-dnd-over{background-color:#0000004d}.rbc-addons-dnd .rbc-event{transition:opacity .15s}.rbc-addons-dnd .rbc-event:hover .rbc-addons-dnd-resize-ns-icon,.rbc-addons-dnd .rbc-event:hover .rbc-addons-dnd-resize-ew-icon{display:block}.rbc-addons-dnd .rbc-addons-dnd-dragged-event{opacity:0}.rbc-addons-dnd.rbc-addons-dnd-is-dragging .rbc-event:not(.rbc-addons-dnd-dragged-event):not(.rbc-addons-dnd-drag-preview){opacity:.5}.rbc-addons-dnd .rbc-addons-dnd-resizable{width:100%;height:100%;position:relative}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor{text-align:center;width:100%;position:absolute}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor:first-child{top:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor:last-child{bottom:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor .rbc-addons-dnd-resize-ns-icon{cursor:ns-resize;border-top:3px double;width:10px;margin:0 auto;display:none}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor{position:absolute;top:4px;bottom:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor:first-child{left:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor:last-child{right:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor .rbc-addons-dnd-resize-ew-icon{cursor:ew-resize;border-left:3px double;height:10px;margin-top:auto;margin-bottom:auto;display:none}.cal-page{flex-direction:column;min-width:0;height:calc(100vh - 64px);padding:20px 24px 16px;display:flex}.cal-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.cal-loading-badge{color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:12px}.cal-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex:1;min-height:0;overflow:hidden}.cal-wrap .rbc-calendar{background:var(--bg-card);height:100%;color:var(--text-primary);font-family:inherit}.cal-wrap .rbc-toolbar{background:var(--bg-card);border-bottom:1px solid var(--border-color);gap:8px;padding:10px 14px}.cal-wrap .rbc-toolbar-label{color:var(--text-primary);font-size:16px;font-weight:600}.cal-wrap .rbc-btn-group button{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;padding:4px 12px;font-size:13px;transition:background .15s}.cal-wrap .rbc-btn-group button:hover{background:var(--bg-tertiary)}.cal-wrap .rbc-btn-group button.rbc-active{background:var(--accent);color:#fff;border-color:var(--accent)}.cal-wrap .rbc-header{color:var(--text-secondary);background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:6px 4px;font-size:12px;font-weight:600}.cal-wrap .rbc-month-view,.cal-wrap .rbc-time-view{border:none}.cal-wrap .rbc-month-row{border-top:1px solid var(--border-color)}.cal-wrap .rbc-day-bg{border-right:1px solid var(--border-color)}.cal-wrap .rbc-day-bg:last-child{border-right:none}.cal-wrap .rbc-off-range-bg{background:var(--bg-secondary)}.cal-wrap .rbc-today{background:color-mix(in srgb, var(--accent) 8%, transparent)}.cal-wrap .rbc-date-cell{color:var(--text-secondary);padding:3px 6px;font-size:12px}.cal-wrap .rbc-date-cell.rbc-now{color:var(--accent);font-weight:700}.cal-wrap .rbc-show-more{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:11px}.cal-wrap .rbc-time-content{border-top:1px solid var(--border-color)}.cal-wrap .rbc-timeslot-group{border-bottom:1px solid var(--border-color)}.cal-wrap .rbc-time-slot{color:var(--text-muted);font-size:11px}.cal-wrap .rbc-time-header-content{border-left:1px solid var(--border-color)}.cal-wrap .rbc-label{color:var(--text-muted);font-size:11px}.cal-wrap .rbc-event{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer!important;border:none!important;border-radius:3px!important;padding:1px 5px!important;font-size:12px!important;font-weight:500!important}.cal-wrap .rbc-event:focus{outline:none}.cal-wrap .cal-event--overdue{background:var(--cal-overdue)!important;color:#fff!important;border:1px solid color-mix(in srgb, var(--cal-overdue) 70%, black)!important}.cal-wrap .cal-event--due_soon{background:var(--cal-due-soon)!important;color:#fff!important;border:1px solid color-mix(in srgb, var(--cal-due-soon) 70%, black)!important}.cal-wrap .cal-event--due_week{background:var(--cal-due-week)!important;color:#fff!important;border:1px solid color-mix(in srgb, var(--cal-due-week) 70%, black)!important}.cal-wrap .cal-event--future{background:var(--cal-future)!important;color:#fff!important;border:1px solid color-mix(in srgb, var(--cal-future) 70%, black)!important}.cal-wrap .cal-event--completed{opacity:.7;background:var(--cal-completed)!important;color:#fff!important;border:1px solid color-mix(in srgb, var(--cal-completed) 70%, black)!important}.cal-wrap .cal-event--type-milestone{font-style:italic;border-left:3px solid #0003!important}.cal-wrap .cal-event--type-project_finish,.cal-wrap .cal-event--type-project_extended{letter-spacing:.01em;border-left:3px solid #ffffff80!important}.cal-wrap .rbc-event:not(.rbc-event--dragging){cursor:pointer}.cal-scope-control{border:1px solid var(--border-color);border-radius:6px;flex-shrink:0;gap:0;display:flex;overflow:hidden}.cal-scope-pill{background:var(--bg-secondary);border:none;border-right:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;padding:5px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.cal-scope-pill:last-child{border-right:none}.cal-scope-pill:not(.cal-scope-pill--active):hover{background:var(--bg-tertiary)}.cal-scope-pill--active{background:var(--accent);color:var(--accent-text,#fff);font-weight:600}[data-theme=dark] .cal-scope-pill--active{background:var(--accent);color:#fff}.cal-project-picker{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:6px;max-width:280px;padding:5px 10px;font-size:13px}.cal-project-picker:focus{border-color:var(--accent);outline:none}.cal-day-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cal-day-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;width:380px;max-width:calc(100vw - 32px);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000002e}.cal-day-modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.cal-day-modal-date{color:var(--text-primary);font-size:15px;font-weight:600}.cal-day-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;font-size:20px;line-height:1}.cal-day-modal-close:hover{color:var(--text-primary);background:var(--bg-secondary)}.cal-day-modal-body{flex:1;padding:8px;overflow-y:auto}.cal-day-modal-empty{text-align:center;color:var(--text-muted);margin:0;padding:24px 0;font-size:14px}.cal-day-modal-item{cursor:pointer;border-radius:6px;align-items:center;margin-bottom:4px;padding:8px 12px;transition:opacity .15s;display:flex}.cal-day-modal-item:last-child{margin-bottom:0}.cal-day-modal-item:hover{filter:brightness(1.12);transform:translate(2px)}.cal-day-modal-item-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.capacity-page{max-width:1100px;padding:2rem}.capacity-title{color:var(--text-primary);margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.capacity-loading,.capacity-error{color:var(--text-muted);padding:2rem}.capacity-chart-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.25rem .5rem}.capacity-chart-title{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600}.capacity-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:auto}.capacity-table{border-collapse:collapse;width:100%;font-size:14px}.capacity-table th{background:var(--bg-secondary);text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);padding:10px 14px;font-size:12px;font-weight:700}.capacity-table td{border-bottom:1px solid var(--bg-tertiary);vertical-align:middle;padding:10px 14px}.capacity-row{cursor:pointer;transition:background .1s}.capacity-row:hover{filter:brightness(.97)}.capacity-row--green{background:#10b9811a}.capacity-row--yellow{background:#eab3081a}.capacity-row--red{background:#ef44441a}.capacity-name{color:var(--text-primary);align-items:center;gap:6px;font-weight:500;display:flex}.capacity-expand{color:var(--text-muted);flex-shrink:0;width:12px;font-size:11px}.overdue-cell{color:#ef4444;font-weight:600}.capacity-expand-row td{background:var(--bg-card);padding:0}.capacity-task-list{border-top:1px solid var(--bg-tertiary);flex-direction:column;gap:.4rem;padding:.5rem 1rem .75rem 2.5rem;display:flex}.capacity-task-empty{color:var(--text-muted);padding:.5rem 0;font-size:13px}.capacity-task-item{cursor:pointer;border-radius:5px;align-items:center;gap:.75rem;padding:5px 8px;font-size:13px;transition:background .1s;display:flex}.capacity-task-item:hover{background:var(--bg-secondary)}.capacity-task-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.capacity-task-project{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:12px;overflow:hidden}.capacity-task-due{color:var(--text-muted);flex-shrink:0;font-size:12px}.fu-page{max-width:1400px}.fu-page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.fu-page-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.fu-filters{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:16px;display:flex}.fu-filter-group{flex-direction:column;flex:1;gap:4px;min-width:160px;display:flex}.fu-filter-group label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px;font-weight:600}.fu-filter-group input,.fu-filter-group select{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:6px;outline:none;padding:7px 10px;font-size:13px}.fu-filter-group input:focus,.fu-filter-group select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.fu-loading,.fu-empty{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;color:var(--text-muted);border-radius:8px;padding:48px;font-size:14px}.fu-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.fu-table{border-collapse:collapse;width:100%;font-size:13px}.fu-table th{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}.fu-table td{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);vertical-align:top;padding:10px 12px}.fu-table tr:last-child td{border-bottom:none}.fu-table tr:hover td{background:var(--bg-secondary)}.fu-cell-nowrap{white-space:nowrap}.fu-cell-wrap{white-space:pre-wrap;word-break:break-word;max-width:200px}.fu-cell-actions{white-space:nowrap;gap:6px;display:flex}.fu-action-btn{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px;transition:background .1s}.fu-action-btn:hover{background:var(--bg-tertiary)}.fu-action-btn--danger{color:#dc2626;border-color:#fca5a5}.fu-action-btn--danger:hover{background:#fee2e2}.fu-modal-overlay{z-index:500;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.fu-modal{background:var(--bg-card);border-radius:10px;flex-direction:column;width:100%;max-width:620px;max-height:90vh;display:flex;box-shadow:0 20px 60px #0003}.fu-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:18px 20px 12px;display:flex}.fu-modal-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.fu-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.fu-modal-close:hover{color:var(--text-secondary)}.fu-modal-body{flex:1;padding:16px 20px;overflow-y:auto}.fu-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fu-form-grid .form-field{flex-direction:column;gap:4px;display:flex}.fu-form-grid .form-field label{color:var(--text-secondary);font-size:12px;font-weight:600}.fu-form-grid .form-field input,.fu-form-grid .form-field select,.fu-form-grid .form-field textarea{border:1px solid var(--border-input);color:var(--text-primary);border-radius:6px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}.fu-form-grid .form-field input:focus,.fu-form-grid .form-field select:focus,.fu-form-grid .form-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.fu-form-grid .form-field--full{grid-column:1/-1}.fu-modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;padding:12px 20px 16px;display:flex}.notif-page{max-width:720px}.notif-page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.notif-page-title{color:var(--text-primary);margin:0 0 4px;font-size:22px;font-weight:700}.notif-unread-count{color:var(--text-muted);font-size:12px}.notif-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notif-empty{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;color:var(--text-muted);border-radius:8px;padding:48px;font-size:14px}.notif-list{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:0;display:flex;overflow:hidden}.notif-item{border-bottom:1px solid var(--bg-tertiary);cursor:pointer;align-items:flex-start;gap:12px;padding:14px 16px;transition:background .1s;display:flex;position:relative}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--bg-tertiary)}.notif-item--unread{background:var(--notif-unread-bg,#eff6ff)}.notif-item--unread:hover{background:var(--notif-unread-hover,#dbeafe)}.notif-icon{flex-shrink:0;font-size:20px;line-height:1.4}.notif-content{flex:1;min-width:0}.notif-title{color:var(--text-primary);margin-bottom:2px;font-size:14px;font-weight:600}.notif-body{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.notif-time{color:var(--text-muted);font-size:11px}.notif-dot{background:#3b82f6;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-filter-tabs{gap:4px;margin-bottom:16px;display:flex}.notif-filter-tab{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px;transition:background .1s,color .1s,border-color .1s}.notif-filter-tab:hover{background:var(--bg-tertiary);border-color:var(--border-input)}.notif-filter-tab--active{background:var(--accent,#6366f1);color:#fff;border-color:var(--accent,#6366f1)}.notif-groups{flex-direction:column;gap:16px;display:flex}.notif-group-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:0 4px 6px;font-size:12px;font-weight:600}.notif-project-link{color:var(--text-muted);text-decoration:none}.notif-project-link:hover{color:var(--accent);text-decoration:underline}.notif-meta{align-items:center;gap:6px;display:flex}.notif-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.notif-badge--instant{color:#dc2626;background:#fee2e2}.notif-badge--digest{color:#7c3aed;background:#ede9fe}.notif-item--hidden{opacity:.65;cursor:default;background:var(--bg-secondary)}.notif-item--hidden:hover{background:var(--bg-secondary)}.notif-item--hidden .notif-title{color:var(--text-secondary);font-weight:500}.notif-hidden-label{color:var(--text-muted);font-size:11px;font-style:italic}.notif-restore-btn{flex-shrink:0;align-self:center}.notif-archive-toggle{justify-content:center;margin-top:24px;display:flex}.notif-archive-section{border:1px solid var(--border-color);border-radius:8px;margin-top:16px;overflow:hidden}.notif-archive-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:10px 16px;font-size:12px;font-weight:600;display:flex}.notif-archive-count{background:var(--bg-tertiary);color:var(--text-muted);border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600}.notif-archive-section .notif-list{border:none;border-radius:0}.teams-page{max-width:1100px}.teams-layout{grid-template-columns:280px 1fr;align-items:start;gap:16px;margin-top:16px;display:grid}.teams-list-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.teams-list-loading,.teams-list-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:14px}.teams-list-item{border-bottom:1px solid var(--bg-tertiary);cursor:pointer;align-items:center;gap:10px;padding:12px 14px;transition:background .1s;display:flex}.teams-list-item:last-child{border-bottom:none}.teams-list-item:hover{background:var(--bg-secondary)}.teams-list-item--active{background:#eff6ff}.teams-list-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.teams-list-info{flex:1;min-width:0}.teams-list-name{color:var(--text-primary);font-size:14px;font-weight:600;display:block}.teams-private-badge{opacity:.7;margin-left:5px;font-size:12px}.teams-list-desc{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.teams-list-count{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:10px;flex-shrink:0;padding:2px 7px;font-size:11px;font-weight:600}.teams-detail-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;min-height:300px}.teams-detail-empty{text-align:center;color:var(--text-muted);padding:48px;font-size:14px}.team-detail{padding:20px}.team-detail-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.team-detail-color-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.team-detail-name-input{color:var(--text-primary);background:0 0;border:none;border-bottom:2px solid #0000;outline:none;flex:1;min-width:0;padding:2px 0;font-size:18px;font-weight:700}.team-detail-name-input:focus{border-bottom-color:var(--accent,#6366f1)}.team-detail-name{flex:1;margin:0;font-size:18px;font-weight:700}.team-detail-meta{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:16px}.team-detail-desc{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin:0 0 16px;padding-bottom:16px;font-size:13px}.form-input{border:1px solid var(--border-color);background:var(--bg-input,#fff);color:var(--text-primary);border-radius:4px;padding:4px 8px;font-size:13px}.team-members-section{margin-top:4px}.team-members-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.team-members-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600}.team-add-member-row{gap:8px;margin-bottom:12px;display:flex}.team-add-member-select{border:1px solid var(--border-color);background:var(--bg-input,#fff);color:var(--text-primary);border-radius:4px;flex:1;padding:5px 8px;font-size:13px}.team-members-list{flex-direction:column;gap:8px;display:flex}.team-member-row{background:var(--bg-secondary);border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.team-member-info{flex:1;min-width:0}.team-member-name{color:var(--text-primary);font-size:14px;font-weight:500;display:block}.team-member-desig{color:var(--text-muted);font-size:12px;display:block}.team-member-role{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);border-radius:4px;padding:2px 6px;font-size:12px}.team-members-empty{text-align:center;color:var(--text-muted);background:var(--bg-secondary);border-radius:6px;padding:16px;font-size:13px}@media (width<=768px){.teams-layout{grid-template-columns:1fr}}.config-page{max-width:900px;padding:2rem}.config-title{color:var(--text-primary);margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.config-error,.config-loading,.config-empty{color:var(--text-muted);padding:2rem;font-size:14px}.config-tabs{border-bottom:1px solid var(--border-color);margin-bottom:1.5rem;display:flex}.config-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.6rem 1.25rem;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.config-tab:hover{color:#1f2937}.config-tab--active{color:#2563eb;border-bottom-color:#2563eb}.config-tab-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem}.config-departments{flex-direction:column;gap:.75rem;display:flex}.config-dept-card{border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.config-dept-header{background:var(--bg-secondary);align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.config-dept-expand{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:12px}.config-dept-color-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.config-dept-info{flex:0 0 140px}.config-dept-name{color:var(--text-primary);font-size:14px;font-weight:600}.config-dept-order{color:var(--text-muted);font-size:11px}.config-dept-fields{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.config-input{border:1px solid var(--border-input);border-radius:5px;outline:none;padding:5px 8px;font-size:13px}.config-input:focus{border-color:#2563eb}.config-input--sm{width:160px}.config-input--color{width:80px}.config-active-toggle{color:var(--text-secondary);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.config-dept-tasks{border-top:1px solid var(--bg-tertiary);padding:.75rem 1rem}.config-task-empty{color:var(--text-muted);font-size:13px}.config-task-group{margin-bottom:.75rem}.config-task-group-name{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.3rem;font-size:11px;font-weight:700}.config-task-item{color:var(--text-secondary);border-left:2px solid var(--border-color);margin-bottom:2px;margin-left:.25rem;padding:2px 0 2px .75rem;font-size:13px}.config-templates{flex-direction:column;gap:.75rem;display:flex}.config-template-card{border:1px solid var(--border-color);border-radius:6px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;display:flex}.config-template-name{color:var(--text-primary);font-size:14px;font-weight:600}.config-template-desc{color:var(--text-muted);margin-top:2px;font-size:13px}.config-template-meta{color:var(--text-muted);margin-top:4px;font-size:11px}.btn-sm--danger{background:var(--bg-card);color:#ef4444;border-color:#fca5a5}.btn-sm--danger:hover:not(:disabled){background:var(--bg-card)5f5}.config-status-labels{max-width:500px}.config-status-note{color:var(--text-muted);margin-bottom:1rem;font-size:13px}.config-status-row{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.config-status-key{width:120px;color:var(--text-secondary);font-family:monospace;font-size:13px;font-weight:500}.config-status-row .config-input{flex:1}.config-notifications{margin-top:8px}.notif-settings-grid{border:1px solid var(--border-color);border-radius:8px;margin-top:12px;overflow:hidden}.notif-settings-header,.notif-settings-row{grid-template-columns:200px repeat(5,1fr);align-items:center;gap:8px;padding:10px 12px;display:grid}.notif-settings-header{background:var(--bg-secondary);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);font-size:12px;font-weight:600}.notif-settings-role{text-align:center}.notif-settings-row{color:var(--text-primary);border-bottom:1px solid var(--bg-tertiary);font-size:13px}.notif-settings-row:last-child{border-bottom:none}.notif-settings-row:hover{background:var(--bg-secondary)}.notif-settings-check{cursor:pointer;justify-content:center;display:flex}.config-field-labels{max-width:800px}.config-field-labels .data-table td:first-child{width:200px}.config-field-labels .data-table td:nth-child(3){width:220px}.config-features{max-width:600px}.feature-toggle-row{border-bottom:1px solid var(--bg-tertiary);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.feature-toggle-row:last-child{border-bottom:none}.feature-toggle-info{flex:1}.feature-toggle-label{color:var(--text-primary);margin-bottom:2px;font-size:14px;font-weight:600}.feature-toggle-desc{color:var(--text-muted);font-size:12px}.toggle-switch{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--bg-tertiary);cursor:pointer;border-radius:22px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--accent,#3b82f6)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.config-fields{overflow-x:auto}.fields-matrix-wrap{margin-top:12px;overflow-x:auto}.fields-matrix-table{border-collapse:collapse;width:100%;min-width:620px;font-size:13px}.fields-matrix-table thead th{background:var(--bg-secondary);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);border-right:1px solid var(--bg-tertiary);text-align:center;padding:8px 10px;font-size:11px;font-weight:600}.fields-matrix-field-col{min-width:180px;text-align:left!important}.fields-matrix-role-col{min-width:100px}.fields-matrix-table tbody tr{border-bottom:1px solid var(--bg-tertiary)}.fields-matrix-table tbody tr:last-child{border-bottom:none}.fields-matrix-table tbody tr:hover{background:var(--bg-secondary)}.fields-matrix-field-name{color:var(--text-primary);border-right:1px solid var(--bg-tertiary);padding:8px 10px;font-weight:500}.fields-matrix-cell{text-align:center;border-right:1px solid var(--bg-tertiary);padding:6px 8px}.fields-matrix-cell:last-child{border-right:none}.fields-matrix-select{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:4px;width:90px;padding:3px 6px;font-size:12px}.fields-matrix-select--hidden{color:#dc2626;background:#fff5f5;border-color:#fca5a5}.fields-matrix-select--readonly{color:#d97706;background:#fffbeb;border-color:#fcd34d}.fields-matrix-select--editable{color:#16a34a;background:#f0fdf4;border-color:#86efac}.holidays-page{max-width:900px;padding:2rem}.holidays-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.holidays-title{color:var(--text-primary);flex-shrink:0;margin:0;font-size:1.5rem;font-weight:700}.holidays-filters{flex:1;gap:4px;display:flex}.holidays-filter-btn{border:1px solid var(--border-input);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:5px;padding:5px 12px;font-size:13px;transition:background .1s}.holidays-filter-btn:hover{background:var(--bg-tertiary)}.holidays-filter-btn--active{color:#fff;background:#2563eb;border-color:#2563eb}.holidays-loading,.holidays-error{color:var(--text-muted);padding:1rem 0}.holidays-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:auto}.holidays-table{border-collapse:collapse;width:100%;font-size:14px}.holidays-table th{background:var(--bg-secondary);text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);padding:10px 14px;font-size:12px;font-weight:700}.holidays-table td{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);padding:10px 14px}.holidays-table tr:last-child td{border-bottom:none}.holiday-name{font-weight:500}.country-badge{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:10px;width:460px;max-width:95vw;box-shadow:0 20px 60px #0003}.modal-header{border-bottom:1px solid var(--bg-tertiary);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 1rem;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1}.modal-actions{justify-content:flex-end;gap:.5rem;padding-top:1rem;display:flex}.form-field{margin-bottom:1rem}.form-field label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-field input,.form-field select{border:1px solid var(--border-input);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:7px 10px;font-size:14px}.form-field input:focus,.form-field select:focus{border-color:#2563eb}.checkbox-label{cursor:pointer;align-items:center;gap:6px;font-weight:500!important;display:flex!important}.checkbox-label input[type=checkbox]{width:auto!important}.form-error{color:#dc2626;margin-top:.5rem;font-size:13px}.btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-input);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500}.btn-secondary:hover{background:var(--bg-secondary)}.btn-sm{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-input);cursor:pointer;border-radius:5px;padding:4px 8px;font-size:12px;transition:background .1s}.btn-sm:hover:not(:disabled){background:var(--bg-tertiary)}.btn-sm:disabled{opacity:.5;cursor:default}.adm-search{border:1px solid var(--border-input);border-radius:6px;outline:none;width:200px;padding:7px 10px;font-size:13px}.adm-search:focus{border-color:#2563eb}.adm-cell-notes{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--text-muted);font-size:12.5px;overflow:hidden}.adm-cell-notes a{color:#2563eb;text-decoration:none}.adm-cell-notes a:hover{text-decoration:underline}.adm-form-field--inline{flex-direction:row;align-items:center;gap:8px}.adm-form-field--inline label{color:var(--text-secondary);text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.adm-form-field textarea{border:1px solid var(--border-input);color:var(--text-primary);resize:vertical;border-radius:6px;outline:none;padding:7px 10px;font-family:inherit;font-size:13.5px}.adm-form-field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.adm-modal--wide{width:90vw;max-width:640px}.supplier-perf-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:1rem;display:grid}.supplier-perf-stat{background:var(--bg-secondary);border:1px solid var(--border-color);text-align:center;border-radius:8px;padding:12px}.supplier-perf-stat-value{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.2;display:block}.supplier-perf-stat-label{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.contact-cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;margin-top:6px;display:grid}.contact-card{border:1px solid var(--border-color);background:var(--bg-card);border-radius:8px;overflow:hidden}.contact-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.contact-card-header:hover,.contact-card--open .contact-card-header{background:var(--bg-secondary)}.contact-card-initials{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:600;display:flex}.contact-card-identity{flex:1;min-width:0}.contact-card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.contact-card-position{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.contact-card-badge{color:#7c3aed;text-transform:uppercase;letter-spacing:.04em;background:#ede9fe;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:700}.contact-card-delete{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:3px 5px;display:flex}.contact-card-delete:hover{color:#dc2626;background:#fee2e2}.contact-card-chevron{color:var(--text-muted);flex-shrink:0}.contact-card-body{border-top:1px solid var(--border-color);padding:10px 12px 14px}.contact-card-fields{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.contact-card-field{flex-direction:column;gap:3px;display:flex}.contact-card-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:700}.contact-card-field input,.contact-card-field select{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:5px;outline:none;padding:5px 8px;font-family:inherit;font-size:13px}.contact-card-field input:focus,.contact-card-field select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.contact-card-field .readonly-field{color:var(--text-secondary);padding:4px 0;font-size:13px}@media (width<=680px){.contact-cards-grid,.contact-card-fields{grid-template-columns:1fr}}.adm-page{max-width:100%;padding:28px 32px}.adm-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.adm-title{color:var(--text-primary);margin:0 0 4px;font-size:22px;font-weight:700}.adm-subtitle{color:var(--text-muted);margin:0;font-size:13.5px}.adm-header-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.adm-toggle-label{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.adm-loading,.adm-empty{color:var(--text-muted);padding:20px;font-size:14px}.adm-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.adm-table{border-collapse:collapse;width:100%;font-size:13.5px}.adm-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border-color);white-space:nowrap;background:#fafafa;padding:10px 14px;font-size:11px;font-weight:700}.adm-table td{border-bottom:1px solid var(--bg-tertiary);color:var(--text-secondary);vertical-align:middle;padding:10px 14px}.adm-table tr:last-child td{border-bottom:none}.adm-row--inactive td{opacity:.5}.adm-cell-name{font-weight:600;color:var(--text-primary)!important}.adm-cell-mono{font-family:monospace;font-size:12.5px;color:var(--text-muted)!important}.adm-role-chip{border-radius:10px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.adm-role-chip--admin{color:#5b21b6;background:#ede9fe}.adm-role-chip--manager{color:#1e40af;background:#dbeafe}.adm-role-chip--dept_staff{background:var(--bg-tertiary);color:var(--text-secondary)}.adm-role-chip--sales{color:#065f46;background:#d1fae5}.adm-status-dot{align-items:center;gap:5px;font-size:12.5px;font-weight:500;display:inline-flex}.adm-status-dot--active{color:#059669}.adm-status-dot--inactive{color:var(--text-muted)}.adm-cell-actions{align-items:center;gap:6px;display:flex}.adm-action-btn{border:1px solid var(--border-input);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .1s}.adm-action-btn:hover{background:var(--border-color)}.adm-action-btn--danger{background:var(--bg-card);color:#dc2626;border-color:#fca5a5}.adm-action-btn--danger:hover{background:#fee2e2}.adm-modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.adm-modal{background:var(--bg-card);border-radius:10px;width:520px;max-width:calc(100vw - 32px);padding:24px;box-shadow:0 20px 60px #0003}.adm-modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.adm-modal-header h2{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.adm-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.adm-modal-close:hover{color:var(--text-secondary)}.adm-modal form{flex-direction:column;gap:12px;display:flex}.adm-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.adm-form-field{flex-direction:column;gap:4px;display:flex}.adm-form-field--center{justify-content:center;align-items:flex-start;padding-top:20px}.adm-form-field--center label{margin-bottom:4px}.adm-form-field--center input[type=checkbox]{cursor:pointer;width:16px;height:16px}.adm-form-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}.adm-form-field input,.adm-form-field select{border:1px solid var(--border-input);color:var(--text-primary);border-radius:6px;outline:none;padding:7px 10px;font-family:inherit;font-size:13.5px}.adm-form-field input:focus,.adm-form-field select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb20}.adm-form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 12px;font-size:13px}.adm-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.adm-btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:8px 16px;font-size:13.5px;font-weight:600;transition:background .12s}.adm-btn-primary:hover:not(:disabled){background:#1d4ed8}.adm-btn-primary:disabled{opacity:.6;cursor:default}.adm-btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-input);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13.5px;font-weight:600}.adm-btn-secondary:hover{background:var(--border-color)}.adm-tag-chip{color:#fff;border-radius:12px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.adm-color-swatches{flex-wrap:wrap;gap:4px;display:flex}.adm-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;height:18px;padding:0}.adm-color-swatch--active{border-color:var(--text-primary);box-shadow:inset 0 0 0 1px #fff}.perm-page{max-width:900px}.perm-page-header{margin-bottom:24px}.perm-page-title{color:var(--text-primary);margin:0 0 4px;font-size:22px;font-weight:700}.perm-page-sub{color:var(--text-muted);margin:0;font-size:14px}.perm-loading{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;color:var(--text-muted);border-radius:8px;padding:48px}.perm-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.perm-table{border-collapse:collapse;width:100%}.perm-table th{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;padding:12px 16px;font-size:12px;font-weight:700}.perm-feature-col{width:200px}.perm-role-col{width:120px;text-align:center!important}.perm-table tr:not(:last-child) td{border-bottom:1px solid var(--bg-tertiary)}.perm-feature-name{color:var(--text-primary);padding:14px 16px;font-size:14px;font-weight:500}.perm-toggle-cell{text-align:center;padding:14px 16px}.perm-toggle{cursor:pointer;align-items:center;display:inline-flex;position:relative}.perm-toggle input{opacity:0;width:0;height:0;position:absolute}.perm-toggle-slider{background:var(--border-input);border-radius:10px;width:38px;height:20px;transition:background .2s;display:inline-block;position:relative}.perm-toggle-slider:after{content:"";background:var(--bg-card);border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.perm-toggle input:checked+.perm-toggle-slider{background:#2563eb}.perm-toggle input:checked+.perm-toggle-slider:after{transform:translate(18px)}.perm-toggle--locked{cursor:not-allowed;opacity:.6}.sec-page{max-width:1200px;padding:24px}.sec-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.sec-title{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.sec-filter{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:13px}.sec-loading,.sec-empty{color:var(--text-secondary);padding:20px 0;font-size:14px}.sec-table-wrap{border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.sec-table{border-collapse:collapse;width:100%;font-size:13px}.sec-table th{background:var(--bg-secondary);text-align:left;color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid var(--border-color);padding:10px 12px;font-weight:600}.sec-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:top;padding:9px 12px}.sec-table tbody tr:last-child td{border-bottom:none}.sec-table tbody tr:hover{background:var(--bg-secondary)}.sec-row--fail td{background:#fff5f5}[data-theme=dark] .sec-row--fail td{background:#dc262614}.sec-cell-time{white-space:nowrap;color:var(--text-secondary);font-size:12px}.sec-event-code{background:var(--bg-secondary);white-space:nowrap;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11px}.sec-cell-ip{color:var(--text-secondary);font-family:monospace;font-size:12px}.sec-cell-detail{word-break:break-word;max-width:280px;color:var(--text-secondary);font-size:12px}.sec-status{border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.sec-status--ok{color:#166534;background:#dcfce7}.sec-status--fail{color:#991b1b;background:#fee2e2}[data-theme=dark] .sec-status--ok{color:#4ade80;background:#16a34a33}[data-theme=dark] .sec-status--fail{color:#f87171;background:#dc262633}.sec-pagination{align-items:center;gap:12px;margin-top:16px;display:flex}.sec-page-btn{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px}.sec-page-btn:hover:not(:disabled){background:var(--bg-secondary)}.sec-page-btn:disabled{opacity:.4;cursor:default}.sec-page-label{color:var(--text-secondary);font-size:13px}.sec-tabs{border-bottom:1px solid var(--border-color);gap:4px;margin-bottom:24px;padding-bottom:0;display:flex}.sec-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 18px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.sec-tab:hover{color:var(--text-primary)}.sec-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.sec-row--muted td{opacity:.55}.sys-page{max-width:1100px}.sys-tabs{border-bottom:2px solid var(--border-color);gap:4px;margin-bottom:20px;display:flex}.sys-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 16px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.sys-tab:hover{color:var(--text-primary)}.sys-tab--active{color:var(--accent,#6366f1);border-bottom-color:var(--accent,#6366f1)}.sys-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:13px;font-weight:600}.sys-stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:8px;display:grid}.sys-stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.sys-stat-value{color:var(--text-primary);word-break:break-all;font-size:22px;font-weight:700;line-height:1.2}.sys-stat-label{color:var(--text-secondary);margin-top:4px;font-size:12px}.sys-stat-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.sys-loading{color:var(--text-secondary);padding:20px 0;font-size:14px}.td-center{text-align:center}.ann-page{max-width:1000px}.ann-form-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;margin-bottom:24px;padding:20px 24px}.ann-form-title{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.ann-form{flex-direction:column;gap:14px;display:flex}.ann-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.ann-roles{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.ann-role-check{cursor:pointer;color:var(--text-primary);align-items:center;gap:6px;font-size:13px;display:flex}.ann-form-checks{flex-wrap:wrap;gap:20px;display:flex}.ann-form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.ann-title{font-size:14px;font-weight:600}.ann-body-preview{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:300px;margin-top:2px;font-size:12px;overflow:hidden}.ann-row--inactive{opacity:.5}.badge--green{color:#166534;background:#dcfce7}.badge--grey{background:var(--bg-secondary);color:var(--text-secondary)}.data-page{max-width:1000px}.data-tabs{border-bottom:2px solid var(--border-color);gap:4px;margin-bottom:24px;display:flex}.data-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 16px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.data-tab:hover{color:var(--text-primary)}.data-tab--active{color:var(--accent,#6366f1);border-bottom-color:var(--accent,#6366f1)}.data-tab-section{flex-direction:column;gap:14px;display:flex}.data-section-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.data-section-desc{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.data-section-desc code{background:var(--bg-secondary);border-radius:3px;padding:1px 5px;font-family:monospace;font-size:12px}.data-dropzone{border:2px dashed var(--border-color);text-align:center;color:var(--text-secondary);cursor:pointer;border-radius:10px;padding:32px;font-size:14px;transition:border-color .15s,background .15s}.data-dropzone:hover,.data-dropzone--active{border-color:var(--accent,#6366f1);color:var(--text-primary);background:#6366f10a}.data-import-result{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:14px 18px}.data-result-row{gap:12px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.data-result-ok{color:#16a34a}.data-result-warn{color:#d97706}.data-result-err{color:#dc2626}.data-error-list{color:#dc2626;flex-direction:column;gap:3px;margin:0;padding-left:18px;font-size:13px;display:flex}.purge-row--selected{background:#ef44440f!important}.pf-page{max-width:960px;margin:0 auto;padding:28px 24px}.pf-state{text-align:center;color:var(--text-muted);padding:48px;font-size:14px}.pf-state--error{color:#dc2626}.pf-header{border-bottom:1px solid var(--border-color);align-items:flex-start;gap:20px;margin-bottom:24px;padding-bottom:24px;display:flex}.pf-header-avatar{flex-shrink:0}.pf-header-info{flex:1;min-width:0}.pf-name{color:var(--text-primary);margin:0 0 6px;font-size:22px;font-weight:700}.pf-name-input{color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-input);border-radius:6px;outline:none;width:100%;max-width:360px;margin-bottom:6px;padding:4px 10px;font-size:20px;font-weight:700}.pf-name-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.pf-badges{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.pf-role-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700}.pf-role-badge--admin{color:#92400e;background:#fef3c7}.pf-role-badge--sales{color:#1e40af;background:#dbeafe}.pf-role-badge--manager{color:#6d28d9;background:#ede9fe}.pf-role-badge--dept_staff{color:#166534;background:#f0fdf4}.pf-role-badge--accounting{color:#0369a1;background:#f0f9ff}.pf-role-badge--executive{color:#9f1239;background:#fff1f2}.pf-dept-badge{background:var(--bg-secondary);color:var(--text-muted);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.pf-designation{color:var(--text-muted);margin-top:2px;font-size:13px}.pf-header-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.pf-body{grid-template-columns:320px 1fr;align-items:start;gap:24px;display:grid}@media (width<=720px){.pf-body{grid-template-columns:1fr}}.pf-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;margin-bottom:16px;padding:16px 18px}.pf-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;margin-bottom:14px;font-size:11px;font-weight:700;display:flex}.pf-fields{flex-direction:column;gap:12px;display:flex}.pf-field{grid-template-columns:110px 1fr;align-items:start;gap:8px;display:grid}.pf-field-label{color:var(--text-muted);flex-shrink:0;align-items:center;gap:5px;padding-top:1px;font-size:12px;font-weight:600;display:flex}.pf-field-value{color:var(--text-primary);font-size:13px}.pf-field-value input{border:1px solid var(--border-input);width:100%;color:var(--text-primary);background:var(--bg-card);border-radius:5px;outline:none;padding:4px 8px;font-family:inherit;font-size:13px}.pf-field-value input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.pf-about-input{border:1px solid var(--border-input);width:100%;color:var(--text-primary);background:var(--bg-card);resize:vertical;box-sizing:border-box;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.5}.pf-about-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.pf-about-text{color:var(--text-secondary);white-space:pre-wrap;font-size:13px;line-height:1.6}.pf-char-count{color:var(--text-muted);text-align:right;margin-top:4px;font-size:11px}.pf-empty{color:var(--text-muted);font-size:13px;font-style:italic}.pf-activity-item{border-bottom:1px solid var(--border-color);padding:10px 0}.pf-activity-item:last-child{border-bottom:none}.pf-activity-meta{align-items:center;gap:8px;margin-bottom:3px;display:flex}.pf-activity-time{color:var(--text-muted);flex-shrink:0;font-size:11px}.pf-activity-project{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.pf-activity-action{color:var(--text-secondary);font-size:12.5px}.pf-avatar-wrap{flex-shrink:0;position:relative}.pf-avatar-overlay{opacity:0;pointer-events:none;background:#00000073;border-radius:50%;justify-content:center;align-items:center;gap:4px;transition:opacity .15s;display:flex;position:absolute;inset:0}.pf-avatar-wrap--editable:hover .pf-avatar-overlay{opacity:1;pointer-events:auto}.pf-avatar-btn{cursor:pointer;color:#111;background:#ffffffe6;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.pf-avatar-btn:hover{background:#fff}.pf-avatar-btn--remove:hover{color:#dc2626;background:#fee2e2}.pf-avatar-btn:disabled{opacity:.5;cursor:not-allowed}.pf-field-value select{border:1px solid var(--border-input);color:var(--text-primary);background:var(--bg-card);border-radius:5px;outline:none;padding:4px 8px;font-family:inherit;font-size:13px}.pf-field-value select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f120}.btn-icon{border:1px solid var(--border-color);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:6px;align-items:center;padding:6px 8px;display:flex}.btn-icon:hover{background:var(--bg-secondary);color:var(--text-primary)}.pf-sessions-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.pf-sessions-signout-all{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:2px 4px;font-size:12px;display:flex}.pf-sessions-signout-all:hover{color:var(--danger,#ef4444);background:var(--bg-secondary)}.pf-sessions-confirm{color:var(--text-secondary);font-size:12px}.pf-sessions-confirm-yes{background:var(--danger,#ef4444);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:2px 8px;font-size:12px}.pf-sessions-confirm-no{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:12px;text-decoration:underline}.pf-sessions-list{flex-direction:column;gap:8px;display:flex}.pf-session-row{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.pf-session-row--current{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--bg-secondary))}.pf-session-icon{color:var(--text-muted);flex-shrink:0}.pf-session-info{flex:1;min-width:0}.pf-session-device{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.pf-session-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:500}.pf-session-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;margin-top:2px;font-size:11px;display:flex}.pf-session-remember{color:var(--text-muted);font-style:italic}.pf-session-revoke{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:4px;display:flex}.pf-session-revoke:hover{color:var(--danger,#ef4444);background:var(--bg-tertiary,var(--bg-secondary))}.pf-session-revoke:disabled{opacity:.4;cursor:not-allowed}
