:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--radius-sm:5px;--radius-md:7px;--radius-lg:10px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--bg:#f6f6f8;--surface:#fff;--surface-hover:#f1f1f4;--border:#e3e3e8;--border-strong:#d3d3da;--text-primary:#16161d;--text-secondary:#5c5c6b;--text-tertiary:#8b8b98;--accent:#5b4ee5;--accent-hover:#4b3fd1;--accent-soft:#edebfd;--accent-contrast:#fff;--success:#1a8a56;--success-soft:#e4f6ed;--warning:#b26a00;--warning-soft:#fdf1dc;--danger:#c62d3a;--danger-soft:#fbe9ea;--info:#1c66c9;--info-soft:#e8f1fd;--chart-series-1:#2a78d6;--chart-series-2:#eb6834;--chart-series-3:#1baf7a;--chart-series-4:#eda100;--chart-series-5:#e87ba4;--chart-series-6:#008300;--chart-series-7:#4a3aa7;--chart-series-8:#e34948;--chart-grid:var(--border);--chart-axis:var(--border-strong);--chart-muted:var(--text-tertiary);--shadow-sm:0 1px 2px #0f0f140f;--shadow-md:0 4px 16px #0f0f1414;--shadow-lg:0 12px 32px #0f0f1424;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;font:var(--fs-base)/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#101014;--surface:#17171d;--surface-hover:#1f1f27;--border:#2a2a33;--border-strong:#38383f;--text-primary:#eeeef2;--text-secondary:#a4a4b0;--text-tertiary:#71717d;--accent:#8b7ef0;--accent-hover:#a396f5;--accent-soft:#8b7ef029;--accent-contrast:#101014;--success:#3ec584;--success-soft:#3ec58424;--warning:#e6a23c;--warning-soft:#e6a23c24;--danger:#f0616c;--danger-soft:#f0616c24;--info:#5b9df0;--info-soft:#5b9df024;--chart-series-1:#3987e5;--chart-series-2:#d95926;--chart-series-3:#199e70;--chart-series-4:#c98500;--chart-series-5:#d55181;--chart-series-6:#008300;--chart-series-7:#9085e9;--chart-series-8:#e66767;--chart-grid:var(--border);--chart-axis:var(--border-strong);--chart-muted:var(--text-tertiary);--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000059;--shadow-lg:0 16px 40px #00000080}}*{box-sizing:border-box}body{margin:0}::selection{background:var(--accent-soft)}a{color:inherit}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{font-family:var(--sans);color:var(--text-primary);margin:0}h1{font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:650}h2{font-size:var(--fs-md);font-weight:650}h3{font-size:var(--fs-base);font-weight:600}p{margin:0}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary);font-size:var(--fs-xs)}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:232px;padding:var(--sp-4) var(--sp-3);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar.collapsed{width:68px}.sidebar-topbar{justify-content:space-between;align-items:center;gap:var(--sp-1);display:flex}.sidebar-brand{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-5);color:var(--text-primary);min-width:0;text-decoration:none;display:flex}.sidebar-brand-mark{border-radius:var(--radius-sm);background:var(--accent);width:26px;height:26px;color:var(--accent-contrast);font-weight:700;font-size:var(--fs-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand-name{font-weight:650;font-size:var(--fs-md);white-space:nowrap;overflow:hidden}.sidebar.collapsed .sidebar-brand-name,.sidebar.collapsed .nav-label,.sidebar.collapsed .sidebar-section-title,.sidebar.collapsed .sidebar-user-meta{display:none}.sidebar-section{margin-bottom:var(--sp-5)}.sidebar-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 var(--sp-2);margin-bottom:var(--sp-1);font-size:11px;font-weight:650}.nav-item{align-items:center;gap:var(--sp-2);padding:7px var(--sp-2);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-base);white-space:nowrap;font-weight:500;text-decoration:none;display:flex;overflow:hidden}.nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.sidebar-footer{border-top:1px solid var(--border);padding-top:var(--sp-3);align-items:center;gap:var(--sp-2);margin-top:auto;display:flex}.sidebar-user-meta{overflow:hidden}.sidebar-user-name{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sidebar-collapse-btn{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;margin-left:auto;padding:4px}.sidebar-collapse-btn:hover{background:var(--surface-hover)}.mobile-topbar{padding:var(--sp-3) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border);z-index:40;justify-content:space-between;align-items:center;display:none;position:sticky;top:0}.mobile-menu-btn{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);background:0 0;padding:6px 10px}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.content{padding:var(--sp-6) var(--sp-7);flex:1;width:100%;max-width:1320px;margin:0 auto}@media (width<=900px){.sidebar{display:none}.sidebar.mobile-open{z-index:50;width:240px;box-shadow:var(--shadow-lg);display:flex;position:fixed;inset:0 auto 0 0}.sidebar-scrim{z-index:45;background:#00000059;position:fixed;inset:0}.mobile-topbar{display:flex}.content{padding:var(--sp-4)}}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.page-header-text h1{margin-bottom:2px}.page-header-actions{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.breadcrumb{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--sp-2);align-items:center;gap:6px;display:flex}.breadcrumb a{color:var(--text-tertiary);text-decoration:none}.breadcrumb a:hover{color:var(--text-primary)}.page-loading{padding:var(--sp-6) 0}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text-primary);border-radius:var(--radius-md);font-size:var(--fs-base);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 13px;font-weight:550;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--accent-soft);color:var(--accent);border-color:#0000}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-hover)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}.btn-small{font-size:var(--fs-sm);padding:4px 9px}.btn-icon{padding:6px}.btn-spinner{opacity:.7;border:2px solid;border-top-color:#0000;border-radius:50%;width:13px;height:13px;animation:.6s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spinner{animation-duration:1.4s}}.field{font-size:var(--fs-sm);color:var(--text-secondary);flex-direction:column;gap:5px;display:flex}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-base);background:var(--surface);color:var(--text-primary);padding:7px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field label{color:var(--text-secondary);font-weight:600}.field-invalid input,.field-invalid select,.field-invalid textarea,.input-error{border-color:var(--danger)}.field-invalid input:focus,.field-invalid select:focus,.field-invalid textarea:focus,.input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.field-error-text{color:var(--danger);font-size:var(--fs-xs)}.field-hint-text{color:var(--text-tertiary);font-size:var(--fs-xs)}.select-wrap{position:relative}.select-wrap select{appearance:none;width:100%;padding-right:28px}.select-wrap .select-chevron{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.inline-form{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.inline-form input,.inline-form select{flex:1;min-width:180px}.search-box{min-width:220px;position:relative}.search-box input{width:100%;padding-left:30px}.search-box svg{color:var(--text-tertiary);position:absolute;top:50%;left:9px;transform:translateY(-50%)}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:360px;padding:var(--sp-7);gap:var(--sp-3);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.auth-brand{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.auth-card h1{font-size:var(--fs-lg)}.auth-subtitle{color:var(--text-secondary);margin-bottom:var(--sp-2);font-size:var(--fs-sm)}.auth-switch{font-size:var(--fs-sm);text-align:center;margin-top:var(--sp-1);color:var(--text-secondary)}.auth-switch a{color:var(--accent);font-weight:600;text-decoration:none}.error-banner{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-md);margin-bottom:var(--sp-3);font-size:var(--fs-sm);padding:9px 12px}.info-banner{background:var(--info-soft);color:var(--info);border-radius:var(--radius-md);margin-bottom:var(--sp-3);font-size:var(--fs-sm);padding:9px 12px}.card-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);color:inherit;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:block}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.card-subtext{color:var(--text-tertiary);font-size:var(--fs-xs);margin-top:2px;display:block}.section{margin-bottom:var(--sp-7)}.section-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.section-header h2{font-size:var(--fs-md)}.badge{background:var(--surface-hover);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:650;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.avatar{background:var(--accent);color:var(--accent-contrast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.avatar-sm{width:20px;height:20px}.avatar-md{width:28px;height:28px;font-size:11px}.avatar-lg{width:40px;height:40px;font-size:15px}.avatar-stack{display:flex}.avatar-stack .avatar{border:2px solid var(--surface);margin-left:-6px}.avatar-stack .avatar:first-child{margin-left:0}.kpi-row{gap:var(--sp-3);margin-bottom:var(--sp-7);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-1);flex-direction:column;display:flex}.kpi-top{justify-content:space-between;align-items:center;display:flex}.kpi-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:28px;height:28px;color:var(--accent);justify-content:center;align-items:center;display:flex}.kpi-value{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:700}.kpi-label{font-size:var(--fs-sm);color:var(--text-secondary)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table-scroll{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-base);min-width:640px}.data-table thead th{text-align:left;padding:10px var(--sp-4);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);border-bottom:1px solid var(--border);background:var(--surface);font-size:11px;font-weight:650;position:sticky;top:0}.data-table tbody td{padding:11px var(--sp-4);border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table .row-link{color:inherit;text-decoration:none;display:block}.cell-primary{color:var(--text-primary);font-weight:600}.cell-muted{color:var(--text-tertiary);font-size:var(--fs-sm)}.progress-bar{background:var(--surface-hover);vertical-align:middle;width:80px;height:6px;margin-right:var(--sp-2);border-radius:999px;display:inline-block;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:999px;height:100%}.toolbar{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface)}.empty-state-icon{background:var(--surface-hover);width:40px;height:40px;color:var(--text-tertiary);margin:0 auto var(--sp-3);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state h3{margin-bottom:4px}.empty-state p{font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.skeleton{background:linear-gradient(90deg, var(--surface-hover) 25%, var(--border) 37%, var(--surface-hover) 63%);border-radius:var(--radius-md);background-size:400% 100%;animation:1.4s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:100%}to{background-position:0}}.skeleton-kpi-row{gap:var(--sp-3);margin-bottom:var(--sp-7);grid-template-columns:repeat(4,1fr);display:grid}.skeleton-kpi{border-radius:var(--radius-lg);height:84px}.skeleton-row{border-radius:var(--radius-md);height:44px;margin-bottom:var(--sp-2)}.skeleton-line{height:14px}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.modal-overlay{z-index:100;padding:var(--sp-4);background:#0a0a0e73;justify-content:center;align-items:center;animation:.12s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-lg);width:400px;max-width:100%;box-shadow:var(--shadow-lg);animation:.14s modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.modal-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-header h2{margin:0}.modal-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1}.modal-close:hover{background:var(--surface-hover)}.modal-body{padding:var(--sp-5)}.modal-form{gap:var(--sp-3);flex-direction:column;display:flex}.modal-footer{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);display:flex}.modal-sm{width:320px}.modal-md{width:400px}.modal-lg{width:560px}.drawer-overlay{z-index:100;background:#0a0a0e73;justify-content:flex-end;animation:.12s fade-in;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);max-width:100%;height:100vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s drawer-in;display:flex}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-header h2{margin:0}.drawer-body{padding:var(--sp-5);flex:1;overflow-y:auto}.drawer-footer{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);flex-shrink:0;display:flex}.tooltip-wrap{display:inline-flex;position:relative}.tooltip-wrap:after{content:attr(data-tooltip);background:var(--text-primary);color:var(--bg);font-size:var(--fs-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;z-index:300;padding:4px 8px;font-weight:500;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,4px)}.tooltip-wrap:hover:after,.tooltip-wrap:focus-within:after{opacity:1;transform:translate(-50%)}.tooltip-wrap.tooltip-bottom:after{top:calc(100% + 7px);bottom:auto;transform:translate(-50%,-4px)}.tooltip-wrap.tooltip-bottom:hover:after,.tooltip-wrap.tooltip-bottom:focus-within:after{transform:translate(-50%)}.ds-tabs{gap:var(--sp-1);scrollbar-width:none;border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.ds-tabs::-webkit-scrollbar{display:none}.ds-tab{margin-right:var(--sp-5);color:var(--text-secondary);font-size:var(--fs-base);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:9px 4px;font-family:inherit;font-weight:550;text-decoration:none}.ds-tab:hover{color:var(--text-primary)}.ds-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.toast-stack{bottom:var(--sp-5);right:var(--sp-5);gap:var(--sp-2);z-index:200;flex-direction:column;display:flex;position:fixed}.toast{background:var(--text-primary);color:var(--bg);border-radius:var(--radius-md);font-size:var(--fs-sm);box-shadow:var(--shadow-md);padding:10px 16px;animation:.16s toast-in}.toast.toast-error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.project-header{border-bottom:1px solid var(--border);background:var(--surface);padding:var(--sp-5) var(--sp-7) 0}.project-header-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-4);display:flex}.project-title-row{align-items:center;gap:var(--sp-2);display:flex}.project-tabs{gap:var(--sp-1);scrollbar-width:none;display:flex;overflow-x:auto}.project-tabs::-webkit-scrollbar{display:none}.project-tab{margin-right:var(--sp-5);color:var(--text-secondary);font-size:var(--fs-base);white-space:nowrap;border-bottom:2px solid #0000;padding:9px 4px;font-weight:550;text-decoration:none}.project-tab:hover{color:var(--text-primary)}.project-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.project-body{padding:var(--sp-6) var(--sp-7)}@media (width<=900px){.project-header{padding:var(--sp-4) var(--sp-4) 0}.project-body{padding:var(--sp-4)}}.board-toolbar{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.board{gap:var(--sp-3);padding-bottom:var(--sp-2);grid-template-columns:repeat(5,minmax(230px,1fr));display:grid;overflow-x:auto}.board-column{background:var(--bg);border-radius:var(--radius-lg);padding:var(--sp-2);min-height:160px;transition:background .15s}.board-column.drop-hover{background:var(--accent-soft)}.board-column-header{justify-content:space-between;align-items:center;padding:6px 8px 10px;display:flex}.board-column-header h2{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.column-count{background:var(--surface);border:1px solid var(--border);color:var(--text-tertiary);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:650}.board-column-body{gap:var(--sp-2);flex-direction:column;min-height:40px;display:flex}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);cursor:grab;gap:var(--sp-2);flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.task-title{font-size:var(--fs-base);color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-weight:550;line-height:1.35}.task-card-footer{align-items:center;gap:var(--sp-2);display:flex}.priority-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.task-meta-chip{font-size:var(--fs-xs);color:var(--text-tertiary);align-items:center;gap:3px;display:inline-flex}.task-meta-chip.overdue{color:var(--danger)}.backlog-list{flex-direction:column;gap:5px;display:flex}.backlog-row{align-items:center;gap:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px var(--sp-3);display:flex}.drag-handle{cursor:grab;color:var(--text-tertiary);-webkit-user-select:none;user-select:none}.backlog-title{text-align:left;color:var(--text-primary);font-size:var(--fs-base);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:0;font-weight:500;overflow:hidden}.backlog-row select{border-radius:var(--radius-sm);font-size:var(--fs-xs);padding:4px 6px}.task-detail-grid{gap:var(--sp-6);grid-template-columns:1fr 240px;display:grid}.task-main>section{margin-bottom:var(--sp-6)}.task-description{resize:vertical;width:100%;min-height:80px}.comment-list{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.comment{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3)}.comment-time{color:var(--text-tertiary);font-size:var(--fs-xs);margin-left:var(--sp-2)}.comment p{margin-top:4px}.mention-chip{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-sm);padding:0 4px;font-weight:600;display:inline-block}.mention-input-wrap{flex:1;position:relative}.mention-input-wrap input{width:100%}.mention-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;max-height:240px;box-shadow:var(--shadow-md);padding:var(--sp-1);z-index:60;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.mention-menu-item{align-items:center;gap:var(--sp-2);text-align:left;width:100%;padding:6px var(--sp-2);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer;background:0 0;border:none;display:flex}.mention-menu-item.active,.mention-menu-item:hover{background:var(--accent-soft)}.notification-bell{flex-shrink:0;position:relative}.notification-bell-btn{position:relative}.notification-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-6px}.notification-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;max-width:80vw;box-shadow:var(--shadow-lg);z-index:70;flex-direction:column;max-height:420px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.sidebar.collapsed .notification-panel{left:-8px}.notification-panel-header{padding:var(--sp-3) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border);font-weight:650;font-size:var(--fs-sm);justify-content:space-between;align-items:center;display:flex}.notification-panel-list{padding:var(--sp-1);overflow-y:auto}.notification-panel-empty{padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--text-tertiary);font-size:var(--fs-sm)}.notification-item{align-items:flex-start;gap:var(--sp-2);text-align:left;width:100%;padding:var(--sp-2);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;display:flex}.notification-item:hover{background:var(--surface-hover)}.notification-item.unread .notification-item-body p{font-weight:650}.notification-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:6px}.notification-item-body{min-width:0}.notification-item-body p{font-size:var(--fs-sm);color:var(--text-primary);margin:0}.notification-item-time{font-size:var(--fs-xs);color:var(--text-tertiary)}.notification-load-more{text-align:center;width:100%;padding:var(--sp-2)}.attachment-list{margin:0 0 var(--sp-3);padding:0;list-style:none}.attachment-list li{padding:var(--sp-2) 0;border-bottom:1px solid var(--border);justify-content:space-between;display:flex}.link-button{color:var(--accent);cursor:pointer;font-size:var(--fs-base);text-align:left;background:0 0;border:none;padding:0}.attachment-size{color:var(--text-tertiary);font-size:var(--fs-xs)}.task-sidebar{gap:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);flex-direction:column;align-self:flex-start;display:flex}.timeline{margin-top:var(--sp-2)}.timeline-axis{font-size:var(--fs-xs);color:var(--text-tertiary);margin-bottom:var(--sp-3);justify-content:space-between;display:flex}.timeline-row{align-items:center;gap:var(--sp-3);margin-bottom:10px;display:flex}.timeline-label{width:180px;font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-weight:500;overflow:hidden}.timeline-track{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;height:22px;position:relative}.timeline-bar{background:var(--accent);border-radius:4px;position:absolute;top:2px;bottom:2px}.timeline-bar.status-done{background:var(--success)}.timeline-bar.status-in_progress{background:var(--warning)}.timeline-bar.status-review{background:var(--info)}.document-title-input{width:100%;font-size:var(--fs-xl);padding:0 0 var(--sp-3);margin-bottom:var(--sp-3);border:none;border-bottom:1px solid var(--border);background:0 0;font-weight:650}.document-title-input:focus{box-shadow:none;outline:none}.document-content{width:100%;min-height:60vh;font-size:var(--fs-md);resize:none;background:0 0;border:none;line-height:1.65}.document-content:focus{box-shadow:none;outline:none}.save-status{font-size:var(--fs-xs);color:var(--text-tertiary)}.documents-shell{margin:calc(var(--sp-5) * -1) calc(var(--sp-6) * -1);gap:0;height:calc(100vh - 64px);display:flex}.documents-sidebar{border-right:1px solid var(--border);width:260px;padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.documents-content{min-width:0;padding:var(--sp-5) var(--sp-6);flex:1;overflow-y:auto}.doc-search{position:relative}.doc-search-results{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);max-height:320px;padding:var(--sp-1);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.doc-search-empty{padding:var(--sp-3);color:var(--text-tertiary);font-size:var(--fs-sm)}.doc-search-result{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:var(--fs-sm);align-items:center;gap:6px;padding:7px 8px;display:flex}.doc-search-result:hover{background:var(--surface-hover)}.doc-search-result-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.doc-search-result-path{color:var(--text-tertiary);font-size:var(--fs-xs);flex-shrink:0}.doc-tree{gap:var(--sp-3);flex-direction:column;display:flex}.doc-tree-actions{gap:6px;display:flex}.doc-tree-section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);align-items:center;gap:5px;margin-bottom:4px;padding:0 4px;font-weight:650;display:flex}.doc-tree-section-toggle{text-align:left;cursor:pointer;background:0 0;border:none;width:100%}.doc-tree-empty{font-size:var(--fs-sm);padding:0 4px}.doc-tree-loading,.doc-tree-error{padding:var(--sp-3);font-size:var(--fs-sm);color:var(--text-tertiary)}.doc-tree-row{border-radius:var(--radius-sm);align-items:center;gap:2px;display:flex;position:relative}.doc-tree-row:hover{background:var(--surface-hover)}.doc-tree-row.active{background:var(--accent-soft)}.doc-tree-row.active .doc-tree-label{color:var(--accent)}.doc-tree-caret,.doc-tree-caret-spacer{width:18px;height:26px;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-tree-label{min-width:0;font-size:var(--fs-sm);color:var(--text-secondary);text-align:left;flex:1;align-items:center;gap:6px;padding:5px 4px;display:flex}.doc-tree-label span:not(.doc-tree-flag){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.doc-tree-folder-label{color:var(--text-primary);font-weight:550}.doc-tree-flag{color:var(--accent);flex-shrink:0}.doc-tree-row .doc-context-menu{opacity:0;flex-shrink:0}.doc-tree-row:hover .doc-context-menu,.doc-tree-row .doc-context-menu:focus-within{opacity:1}.doc-context-menu{position:relative}.doc-context-menu-trigger{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.doc-context-menu-trigger:hover{background:var(--surface-hover);color:var(--text-primary)}.doc-context-menu-panel{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;padding:var(--sp-1);flex-direction:column;display:flex;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #00000024}.doc-context-menu-item{text-align:left;border-radius:var(--radius-sm);width:100%;font-size:var(--fs-sm);color:var(--text-primary);align-items:center;gap:8px;padding:7px 9px;display:flex}.doc-context-menu-item:hover:not(:disabled){background:var(--surface-hover)}.doc-context-menu-item:disabled{color:var(--text-tertiary);cursor:not-allowed}.doc-context-menu-item.danger{color:var(--danger)}.doc-context-menu-divider{background:var(--border);height:1px;margin:4px 2px}.slash-menu{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:240px;max-height:320px;padding:var(--sp-1);overflow-y:auto;box-shadow:0 12px 28px #0000002e}.slash-menu-item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:6px 10px;display:flex}.slash-menu-item.active,.slash-menu-item:hover{background:var(--accent-soft)}.slash-menu-item-label{font-size:var(--fs-sm);color:var(--text-primary);font-weight:600}.slash-menu-item-hint{font-size:var(--fs-xs);color:var(--text-tertiary)}.slash-menu-empty{padding:var(--sp-3);font-size:var(--fs-sm);color:var(--text-tertiary)}.document-editor-layout{gap:var(--sp-6);grid-template-columns:1fr 260px;align-items:start;display:grid}.document-editor-main{min-width:0}.document-editor-sidebar{position:sticky;top:0}@media (width<=900px){.document-editor-layout{grid-template-columns:1fr}}.tiptap-toolbar{padding-bottom:var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex}.tiptap-toolbar-btn{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700}.tiptap-toolbar-btn:hover{background:var(--surface-hover)}.tiptap-toolbar-btn.active{background:var(--accent-soft);color:var(--accent)}.tiptap-toolbar-hint{color:var(--text-tertiary);font-size:var(--fs-xs);align-items:center;gap:4px;margin-left:auto;display:flex}.tiptap-wrap .ProseMirror{min-height:55vh;font-size:var(--fs-md);outline:none;line-height:1.65}.tiptap-wrap .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:var(--text-tertiary);pointer-events:none}.tiptap-wrap .ProseMirror h1{font-size:var(--fs-2xl);margin:var(--sp-4) 0 var(--sp-2)}.tiptap-wrap .ProseMirror h2{font-size:var(--fs-xl);margin:var(--sp-4) 0 var(--sp-2)}.tiptap-wrap .ProseMirror h3{font-size:var(--fs-lg);margin:var(--sp-3) 0 var(--sp-1)}.tiptap-wrap .ProseMirror p{margin:0 0 var(--sp-2)}.tiptap-wrap .ProseMirror ul,.tiptap-wrap .ProseMirror ol{margin:0 0 var(--sp-2);padding-left:1.4em}.tiptap-wrap .ProseMirror ul[data-type=taskList]{padding-left:.2em;list-style:none}.tiptap-wrap .ProseMirror ul[data-type=taskList] li{align-items:flex-start;gap:6px;display:flex}.tiptap-wrap .ProseMirror ul[data-type=taskList] li>label{margin-top:3px}.tiptap-wrap .ProseMirror blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);padding:var(--sp-2) var(--sp-3);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 var(--sp-2);color:var(--text-secondary)}.tiptap-wrap .ProseMirror pre{background:var(--surface-hover);border-radius:var(--radius-md);padding:var(--sp-3);font-family:var(--mono,monospace);font-size:var(--fs-sm);margin:0 0 var(--sp-2);overflow-x:auto}.tiptap-wrap .ProseMirror code{background:var(--surface-hover);border-radius:4px;padding:1px 4px;font-size:.9em}.tiptap-wrap .ProseMirror pre code{background:0 0;padding:0}.tiptap-wrap .ProseMirror img{border-radius:var(--radius-sm);max-width:100%}.tiptap-wrap .ProseMirror table{border-collapse:collapse;width:100%;margin:0 0 var(--sp-3);overflow:hidden}.tiptap-wrap .ProseMirror th,.tiptap-wrap .ProseMirror td{border:1px solid var(--border);font-size:var(--fs-sm);vertical-align:top;padding:6px 9px}.tiptap-wrap .ProseMirror th{background:var(--surface-hover);text-align:left;font-weight:650}.tiptap-wrap .ProseMirror a{color:var(--accent)}.linked-tasks-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3)}.linked-tasks-panel h3{margin-bottom:var(--sp-2);align-items:center;gap:6px;display:flex}.linked-task-row{border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-primary);align-items:center;gap:6px;padding:6px 4px;display:flex}.linked-task-row:hover{background:var(--surface-hover)}.linked-task-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.linked-task-status{color:var(--text-tertiary);font-size:var(--fs-xs)}.version-list{flex-direction:column;gap:2px;display:flex}.version-row{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-primary);align-items:center;gap:8px;padding:8px 6px;display:flex}.version-row:hover{background:var(--surface-hover)}.version-row-editor{font-weight:600;font-size:var(--fs-sm)}.version-row-time{color:var(--text-tertiary);font-size:var(--fs-xs);margin-left:auto}.version-preview-meta{color:var(--text-tertiary);font-size:var(--fs-xs);margin:var(--sp-2) 0}.version-preview-content{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);max-height:50vh;margin-bottom:var(--sp-3);overflow-y:auto}.activity-list{flex-direction:column;display:flex}.activity-item{gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);display:flex}.activity-item:last-child{border-bottom:none}.activity-icon{background:var(--surface-hover);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.activity-text{font-size:var(--fs-base)}.activity-text strong{font-weight:600}.activity-time{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.table-sort-header{color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;padding:0;display:inline-flex}.task-filter-bar{align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:1;display:flex}.task-filter-select{min-width:130px;margin:0}.task-filter-select select{font-size:var(--fs-sm);padding:6px 26px 6px 10px}.filter-clear-btn{color:var(--text-tertiary);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 6px;display:inline-flex}.filter-clear-btn:hover{color:var(--text-primary)}.task-type-badge{font-size:var(--fs-xs);align-items:center;gap:4px;font-weight:600;display:inline-flex}.task-key{font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:.02em;font-weight:600}.task-card-top{justify-content:space-between;align-items:center;display:flex}.task-parent-link{font-size:var(--fs-xs);color:var(--text-tertiary);align-items:center;gap:3px;display:inline-flex}.label-chip-row{flex-wrap:wrap;gap:4px;display:inline-flex}.label-chip{font-weight:600}.board-column-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.column-reorder-btns{gap:2px;margin-left:auto;display:inline-flex}.column-reorder-btns button{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:2px;display:flex}.column-reorder-btns button:disabled{opacity:.3;cursor:default}.column-reorder-btns button:not(:disabled):hover{color:var(--text-primary)}.add-column{padding-top:var(--sp-2);background:0 0;justify-content:center;align-items:flex-start;display:flex}.add-column-btn{border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-tertiary);cursor:pointer;font-size:var(--fs-sm);background:0 0;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 12px;display:inline-flex}.add-column-btn:hover{color:var(--text-primary);border-color:var(--text-tertiary)}.add-column-form{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.backlog-row-select{align-items:center;display:flex}.bulk-action-bar{bottom:var(--sp-3);align-items:center;gap:var(--sp-3);background:var(--text-primary);color:var(--surface);border-radius:var(--radius-lg);padding:10px var(--sp-4);box-shadow:var(--shadow-lg);margin-top:var(--sp-3);flex-wrap:wrap;display:flex;position:sticky}.bulk-action-bar strong{font-weight:650}.bulk-action-bar select{font-size:var(--fs-sm)}.bulk-action-bar .btn-ghost{color:var(--surface)}.subtask-list{margin-bottom:var(--sp-2);flex-direction:column;gap:6px;display:flex}.subtask-row{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px;display:flex}.subtask-row a{color:var(--text-primary);flex:1;text-decoration:none}.subtask-row a:hover{color:var(--accent)}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4);max-width:560px}.settings-section h2{font-size:var(--fs-md);margin-bottom:4px}.settings-section p{color:var(--text-secondary);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.settings-section.danger{border-color:var(--danger-soft)}.settings-row{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.settings-section.wide{max-width:860px}.webhook-create-form,.automation-rule-form{flex-direction:column;align-items:flex-start;gap:0;display:flex}.webhook-create-form select,.automation-rule-form select{margin-top:6px}.custom-fields-list{flex-direction:column;gap:6px;display:flex}.task-detail-custom-fields{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.public-project-page{background:var(--bg,var(--surface-2,#f6f6f9));min-height:100vh;padding:var(--sp-5) var(--sp-3);justify-content:center;display:flex}.public-project-inner{width:100%;max-width:760px}.public-project-brand{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-3);letter-spacing:.01em;font-weight:600}@media (width<=720px){.board,.task-detail-grid{grid-template-columns:1fr}.kpi-row{grid-template-columns:repeat(2,1fr)}}.sprint-start-panel{align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);flex-direction:column;display:flex}.sprint-start-row{gap:var(--sp-2);align-items:center;display:flex}.sprint-header-bar{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-4);display:flex}.sprint-name{font-size:var(--fs-lg);margin-bottom:2px}.sprint-goal{margin-bottom:2px}.backlog-move-sprint{border-radius:var(--radius-sm);font-size:var(--fs-xs);max-width:140px;padding:4px 6px}.roadmap-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.roadmap-filters{gap:var(--sp-2);flex-wrap:wrap;flex:1;align-items:center;display:flex}.roadmap-view-toggle{border:1px solid var(--border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.roadmap-view-toggle button{background:var(--surface);font-size:var(--fs-sm);cursor:pointer;color:var(--text-secondary);border:none;padding:6px 12px}.roadmap-view-toggle button.active{background:var(--accent);color:var(--accent-contrast)}.roadmap-view-toggle button+button{border-left:1px solid var(--border)}.roadmap-timeline-axis{font-size:var(--fs-xs);color:var(--text-tertiary);margin-bottom:var(--sp-2);justify-content:space-between;padding-left:200px;display:flex}.roadmap-row{align-items:center;gap:var(--sp-3);margin-bottom:10px;display:flex}.roadmap-row-label{flex-shrink:0;width:188px;overflow:hidden}.roadmap-row-label .title{font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;font-weight:550;display:block;overflow:hidden}.roadmap-row-label .owner{font-size:var(--fs-xs);color:var(--text-tertiary)}.roadmap-track{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;height:26px;position:relative}.roadmap-bar{cursor:pointer;color:#fff;white-space:nowrap;border-radius:4px;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:flex;position:absolute;top:3px;bottom:3px;overflow:hidden}.roadmap-bar.status-planned{background:var(--text-tertiary)}.roadmap-bar.status-in_progress{background:var(--info)}.roadmap-bar.status-completed{background:var(--success)}.roadmap-bar.status-at_risk{background:var(--danger)}.roadmap-milestone-marker{background:var(--warning);border:1px solid var(--surface);cursor:pointer;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}.roadmap-milestones-row{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.roadmap-legend{gap:var(--sp-3);margin-top:var(--sp-4);font-size:var(--fs-xs);color:var(--text-secondary);flex-wrap:wrap;align-items:center;display:flex}.roadmap-legend-item{align-items:center;gap:5px;display:inline-flex}.roadmap-legend-dot{border-radius:3px;width:9px;height:9px;display:inline-block}.roadmap-progress-bar{background:var(--border);vertical-align:middle;border-radius:999px;width:80px;height:6px;margin-right:6px;display:inline-block;overflow:hidden}.roadmap-progress-fill{background:var(--accent);height:100%}.milestones-list{margin-bottom:var(--sp-3);flex-direction:column;gap:6px;display:flex}.milestone-row{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px;display:flex}.milestone-row .title{flex:1;font-weight:550}.milestone-row.completed .title{color:var(--text-tertiary);text-decoration:line-through}.milestone-due{font-size:var(--fs-xs);color:var(--text-tertiary)}.milestone-chip{font-size:var(--fs-xs);color:var(--warning);align-items:center;gap:4px;display:inline-flex}.dependency-group{margin-bottom:var(--sp-3)}.dependency-group h3{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:6px}.dependency-row{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:4px;padding:6px 10px;display:flex}.dependency-row a{color:var(--text-primary);flex:1;text-decoration:none}.dependency-row a:hover{color:var(--accent)}.dependency-remove-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:2px;display:flex}.dependency-remove-btn:hover{color:var(--danger)}.blocked-indicator{color:var(--danger);align-items:center;display:inline-flex}.analytics-page{gap:var(--sp-7);flex-direction:column;display:flex}.analytics-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.analytics-range{background:var(--surface-hover);border-radius:var(--radius-md);gap:2px;padding:2px;display:flex}.analytics-range button{color:var(--text-secondary);font-size:var(--fs-sm);border-radius:calc(var(--radius-md) - 2px);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-weight:550}.analytics-range button.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.analytics-range button:hover:not(.active){color:var(--text-primary)}.stat-tile-row{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);flex-direction:column;gap:4px;display:flex}.stat-tile-label{font-size:var(--fs-sm);color:var(--text-secondary)}.stat-tile-value{font-size:var(--fs-2xl);letter-spacing:-.02em;font-variant-numeric:proportional-nums;font-weight:700}.stat-tile-caption{font-size:var(--fs-xs);color:var(--text-tertiary)}.stat-tile-delta{font-size:var(--fs-xs);align-items:center;gap:2px;font-weight:600;display:inline-flex}.stat-tile-delta.up-good{color:var(--success)}.stat-tile-delta.down-bad{color:var(--danger)}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-4) var(--sp-5)}.chart-card-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.chart-card-title{font-size:var(--fs-md);color:var(--text-primary);margin:0 0 2px;font-weight:650}.chart-card-subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin:0}.chart-table-toggle{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;background:0 0;padding:5px 10px;font-weight:600}.chart-table-toggle:hover{color:var(--text-primary);border-color:var(--border-strong)}.chart-table-toggle.active{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chart-legend{gap:var(--sp-4);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.chart-legend-item{font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.chart-legend-item.dimmed{opacity:.4}.chart-legend-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.chart-legend-swatch.is-line{border-radius:1px;width:12px;height:2px}.chart-svg-wrap{width:100%;position:relative}.chart-svg-wrap svg{width:100%;display:block;overflow:visible}.chart-tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--fs-xs);z-index:5;min-width:140px;padding:8px 10px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.chart-tooltip-title{color:var(--text-primary);margin-bottom:4px;font-weight:650}.chart-tooltip-row{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:2px 0;display:flex}.chart-tooltip-key{color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.chart-tooltip-key-swatch{border-radius:2px;flex-shrink:0;width:8px;height:8px}.chart-tooltip-key-line{border-radius:1px;flex-shrink:0;width:10px;height:2px}.chart-tooltip-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:650}.chart-data-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.chart-data-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);border-bottom:1px solid var(--border);padding:6px 10px;font-size:11px;font-weight:650}.chart-data-table td{border-bottom:1px solid var(--border);color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:6px 10px}.chart-data-table tr:last-child td{border-bottom:none}.chart-data-table td:first-child,.chart-data-table th:first-child{color:var(--text-primary);font-variant-numeric:initial}.workload-rows{gap:var(--sp-4);flex-direction:column;display:flex}.workload-row{gap:var(--sp-3);grid-template-columns:140px 1fr;align-items:center;display:grid}.workload-row-name{font-size:var(--fs-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-weight:550;display:flex;overflow:hidden}.workload-row-bar{border-radius:var(--radius-sm);background:var(--surface-hover);height:22px;display:flex;overflow:hidden}.workload-segment{cursor:pointer;height:100%}.workload-row-overdue{font-size:var(--fs-xs);color:var(--danger);white-space:nowrap}
