:root{--bg:#f4f6f9;--surface:#fff;--surface-2:#ebeff3;--surface-3:#dfe6ec;--ink:#1a2433;--ink-muted:#5c6b7c;--ink-faint:#8996a6;--border:#dce3ea;--accent:#2f5d8a;--accent-strong:#1f4569;--accent-soft:#e4ecf4;--accent-ink:#fff;--good:#2e8b57;--good-soft:#e3f3ea;--warning:#b7791f;--warning-soft:#faf0dd;--critical:#c0392b;--critical-soft:#fbe6e3;--neutral-status:#7c8b9b;--neutral-status-soft:#ebeef2;--tt-line-1:#2f8f8f;--tt-line-2:#7b5ea7;--tt-line-3:#c2467d;--tt-line-4:#5b6ee1;--shadow-sm:0 1px 2px #1a24330f, 0 1px 1px #1a24330a;--shadow-md:0 8px 24px #1a24331f, 0 2px 6px #1a243314;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10161d;--surface:#19212b;--surface-2:#212b36;--surface-3:#2b3644;--ink:#e7ecf1;--ink-muted:#93a2b3;--ink-faint:#6c7a8b;--border:#2b3644;--accent:#6fa0d3;--accent-strong:#8fb6de;--accent-soft:#22344a;--accent-ink:#0e1620;--good:#4caf7d;--good-soft:#173328;--warning:#d9a441;--warning-soft:#362a12;--critical:#e0685e;--critical-soft:#3a1f1c;--neutral-status:#8a97a6;--neutral-status-soft:#232c36;--tt-line-1:#4fb8b8;--tt-line-2:#a78bde;--tt-line-3:#e070a0;--tt-line-4:#8593f0;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#10161d;--surface:#19212b;--surface-2:#212b36;--surface-3:#2b3644;--ink:#e7ecf1;--ink-muted:#93a2b3;--ink-faint:#6c7a8b;--border:#2b3644;--accent:#6fa0d3;--accent-strong:#8fb6de;--accent-soft:#22344a;--accent-ink:#0e1620;--good:#4caf7d;--good-soft:#173328;--warning:#d9a441;--warning-soft:#362a12;--critical:#e0685e;--critical-soft:#3a1f1c;--neutral-status:#8a97a6;--neutral-status-soft:#232c36;--tt-line-1:#4fb8b8;--tt-line-2:#a78bde;--tt-line-3:#e070a0;--tt-line-4:#8593f0;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=blue]{--bg:#eaf2fe;--surface:#fff;--surface-2:#dceafc;--surface-3:#c3dbfa;--ink:#0b2545;--ink-muted:#3e5c82;--ink-faint:#6f89ac;--border:#c3dbfa;--accent:#1355d6;--accent-strong:#0b3fa8;--accent-soft:#dce9fe;--accent-ink:#fff;--good:#1e8e63;--good-soft:#dff3ea;--warning:#b7791f;--warning-soft:#fdf1dc;--critical:#c23b32;--critical-soft:#fce4e1;--neutral-status:#5e7aa0;--neutral-status-soft:#e4edfa;--tt-line-1:#2f8f8f;--tt-line-2:#7b5ea7;--tt-line-3:#c2467d;--tt-line-4:#5b6ee1;--shadow-sm:0 1px 2px #0b254514, 0 1px 1px #0b25450d;--shadow-md:0 10px 26px #0b254529, 0 2px 8px #0b254514;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,h4{color:var(--ink);text-wrap:balance;margin:0;font-family:Plus Jakarta Sans,sans-serif;font-weight:600}p{margin:0}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}a{color:var(--accent)}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}[hidden]{display:none!important}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:13.5px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-strong)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--ink-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{background:var(--critical);color:#fff}.btn-danger:hover{filter:brightness(.9)}.btn-icon{border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:7px;display:inline-flex}.btn-icon:hover{background:var(--surface-2);color:var(--ink)}.btn-block{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-muted);justify-content:space-between;align-items:center;font-size:12.5px;font-weight:500;display:flex}.tk-name-row{align-items:center;gap:8px;display:flex}.tk-name-row>:last-child{flex:1;min-width:0}.tk-name-toggle{flex:none;gap:4px;display:inline-flex}.tk-name-toggle .tk-mode-btn{border:1px solid var(--border);background:var(--surface);width:22px;height:22px;color:var(--ink-faint);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.tk-name-toggle .tk-mode-btn svg{width:13px;height:13px}.tk-name-toggle .tk-mode-btn.active{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-soft)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=date],.field select,.field textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink);width:100%;padding:9px 11px;font-family:inherit;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--surface-2);color:var(--ink-faint);cursor:not-allowed;border-style:dashed}.field textarea{resize:vertical;min-height:72px;font-family:inherit}.field input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin:6px 0 2px}.discrete-slider{padding-top:22px;position:relative}.discrete-slider input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin:0 0 2px}.ds-bubble{background:var(--ink);color:var(--bg);pointer-events:none;white-space:nowrap;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600;position:absolute;top:0;transform:translate(-50%)}.ds-bubble:after{content:"";border:4px solid #0000;border-top-color:var(--ink);position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.ds-ticks{justify-content:space-between;padding:0 2px;display:flex}.ds-ticks span{background:var(--border);border-radius:50%;width:4px;height:4px}.ds-ticks span.active{background:var(--accent)}.deadline-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.deadline-dot.good{background:var(--good)}.deadline-dot.warning{background:var(--warning)}.deadline-dot.critical{background:var(--critical)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable .sort-arrow{vertical-align:middle;opacity:.55;margin-left:4px;display:inline-flex}th.sortable .sort-arrow.active{opacity:1}::placeholder{color:#a3a3a3;opacity:1}.field-error{color:var(--critical);font-size:12px;display:none}.field.invalid input{border-color:var(--critical)}.field.invalid .field-error{display:block}.field-hint{color:var(--ink-faint);font-size:12px}.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;align-items:center;gap:6px;padding:12px 14px;transition:background .12s,border-color .12s;display:flex}.dropzone.is-over{background:var(--accent-soft);border-color:var(--accent)}.dropzone-hint{color:var(--ink-faint);font-size:12px}.file-upload-field{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.dropzone-compact{border-style:solid;flex-direction:row;align-items:center;width:fit-content;padding:8px}.searchable-select{width:100%;position:relative}.searchable-select-control{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:text;align-items:center;gap:6px;width:100%;padding:0 8px 0 0;transition:border-color .12s;display:flex}.searchable-select-control:focus-within{border-color:var(--accent)}.searchable-select-control input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;min-width:0;padding:9px 11px;font-family:inherit;font-size:14px}.searchable-select-control input:disabled{color:var(--ink-faint);cursor:not-allowed}.searchable-select.is-disabled .searchable-select-control{background:var(--surface-2);border-style:dashed}.searchable-select-clear{color:var(--ink-faint);cursor:pointer;flex:none;align-items:center;display:flex}.searchable-select-clear:hover{color:var(--critical)}.searchable-select-clear svg{width:14px;height:14px}.searchable-select-caret{width:14px;height:14px;color:var(--ink-faint);pointer-events:none;flex:none}.searchable-select-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:200;max-height:240px;padding:4px;position:fixed;overflow-y:auto}.searchable-select-option{border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;padding:8px 10px;font-size:13.5px}.searchable-select-option:hover{background:var(--surface-2)}.searchable-select-option.is-selected{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}.searchable-select-empty{color:var(--ink-faint);text-align:center;padding:10px;font-size:13px}.password-wrap{position:relative}.password-wrap input{padding-right:38px}.password-toggle{width:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;bottom:4px;right:4px}.password-toggle:hover{background:var(--surface-2)}.checkbox-row{color:var(--ink);align-items:flex-start;gap:8px;font-size:13px;display:flex}.checkbox-row input{margin-top:3px}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.pill-good{background:var(--good-soft);color:var(--good)}.pill-warning{background:var(--warning-soft);color:var(--warning)}.pill-critical{background:var(--critical-soft);color:var(--critical)}.pill-neutral{background:var(--neutral-status-soft);color:var(--neutral-status)}.pill-accent{background:var(--accent-soft);color:var(--accent)}.pill-dot{background:currentColor;border-radius:99px;flex:none;width:6px;height:6px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}details.accordion>summary{cursor:pointer;justify-content:space-between;align-items:center;font-family:Plus Jakarta Sans;font-size:14.5px;font-weight:600;list-style:none;display:flex}details.accordion>summary::-webkit-details-marker{display:none}details.accordion>summary .chev{width:16px;height:16px;color:var(--ink-faint);flex:none;transition:transform .15s}details.accordion[open]>summary .chev{transform:rotate(180deg)}.accordion-title{align-items:center;gap:8px;display:flex}.accordion-icon{width:16px;height:16px;color:var(--accent);flex:none}.accordion-body{padding-top:14px}.file-related-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.file-related-item{align-items:center;gap:8px;font-size:12.5px;display:flex}.file-related-item .frl-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-muted);flex:1;overflow:hidden}.file-related-item .frl-source{color:var(--ink-faint);flex:none;font-size:11.5px}.table-scroll{overflow-x:auto}table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px}thead th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--border);background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;padding:10px 16px;font-size:11.5px;font-weight:600;position:sticky;top:0;overflow:hidden}.col-resize-handle{cursor:col-resize;z-index:3;touch-action:none;width:8px;position:absolute;top:0;bottom:0;right:-4px}.col-resize-handle:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:3px}.col-resize-handle:hover:after,.col-resize-handle:active:after{background:var(--accent)}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;padding:12px 16px;font-size:13.5px;overflow:hidden}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.row-actions{justify-content:flex-end;gap:4px;display:flex}.progress-track{background:var(--surface-3);border-radius:99px;width:100%;max-width:120px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:99px;height:100%}.progress-fill.is-good{background:var(--good)}.progress-cell{align-items:center;gap:8px;display:flex}.pagination{border-radius:var(--radius-lg);background:0 0;border:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px;margin-top:14px;padding:10px 18px;display:flex}.pagination .pg-info{color:var(--ink-muted);white-space:nowrap;font-size:12.5px}.pagination .pg-nav{align-items:center;gap:3px;display:flex}.pagination .pg-nav button{min-width:26px;height:26px;color:var(--ink-muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-family:inherit;font-size:12.5px;display:inline-flex}.pagination .pg-nav button svg{width:14px;height:14px}.pagination .pg-nav button:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.pagination .pg-nav button.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.pagination .pg-nav button:disabled{opacity:.35;cursor:not-allowed}.pagination .pg-size,.pagination .pg-goto{color:var(--ink-muted);white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;display:flex}.pagination .pg-size select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:4px 8px;font-family:inherit;font-size:12.5px}.pagination .pg-goto input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:48px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;padding:4px 6px;font-family:inherit;font-size:12.5px}svg.icon{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}svg.icon-lg{width:20px;height:20px}#auth-shell{background:linear-gradient(var(--bg), var(--bg)), repeating-linear-gradient(100deg, var(--accent-soft) 0 2px, transparent 2px 64px);background-blend-mode:normal;justify-content:center;align-items:center;min-height:100dvh;padding:32px 16px;display:flex;position:relative}.auth-card{width:100%;max-width:392px}.auth-brand{justify-content:space-between;align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-brand-info{align-items:center;gap:10px;display:flex}.auth-brand .mark{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);border-radius:9px;flex:none;justify-content:center;align-items:center;font-family:Plus Jakarta Sans;font-size:15px;font-weight:700;display:flex}.auth-brand .word{font-family:Plus Jakarta Sans;font-size:16px;font-weight:600}.auth-brand .word span{color:var(--ink-muted);margin-top:1px;font-size:12px;font-weight:400;display:block}.auth-panel{padding:28px}.auth-panel h1{margin-bottom:4px;font-size:19px}.auth-sub{color:var(--ink-muted);margin-bottom:22px;font-size:13px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-links{justify-content:flex-end;margin-top:-6px;display:flex}.auth-links a{font-size:12.5px;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-banner{color:var(--critical);align-items:flex-start;gap:7px;font-size:13px;font-weight:500;display:flex}.lang-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:99px;flex:none;gap:2px;padding:3px;display:flex}.lang-toggle button{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:99px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:600}.lang-toggle button.active{background:var(--accent);color:var(--accent-ink)}.auth-back{color:var(--ink-muted);align-items:center;gap:6px;margin-bottom:14px;font-size:12.5px;text-decoration:none;display:inline-flex}.auth-back:hover{color:var(--ink)}.success-box{border-radius:var(--radius-sm);background:var(--good-soft);color:var(--good);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.pw-checklist{flex-direction:column;gap:5px;margin-top:2px;display:flex}.pw-checklist li{color:var(--ink-faint);align-items:center;gap:7px;font-size:12.5px;list-style:none;display:flex}.pw-checklist li.ok{color:var(--good)}.pw-checklist li .dot{border:1.5px solid;border-radius:99px;flex:none;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.pw-checklist li.ok .dot{background:var(--good);border-color:var(--good)}.pw-checklist li.ok .dot svg{stroke:#fff}.pw-checklist li .dot svg{width:9px;height:9px}#app-shell{min-height:100dvh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:4px;width:232px;height:100dvh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{justify-content:space-between;align-items:center;gap:9px;padding:6px 4px 18px 8px;display:flex}.sidebar-brand-id{align-items:center;gap:9px;min-width:0;display:flex}.sidebar-brand .mark{border-radius:7px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:flex;overflow:hidden}.sidebar-brand .word{white-space:nowrap;min-width:0;font-family:Plus Jakarta Sans;font-size:13px;font-weight:600}.sidebar-brand .word span{color:var(--ink-muted);white-space:normal;margin-top:2px;font-size:9px;font-weight:400;line-height:1.3;display:block}.nav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:14px 10px 6px;font-size:10.5px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-group-toggle{border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex}.nav-group-toggle:hover{background:var(--surface-2);color:var(--ink)}.nav-group-toggle svg.chev{margin-left:auto;transition:transform .15s}.nav-group.open .nav-group-toggle svg.chev{transform:rotate(180deg)}.nav-group-items{flex-direction:column;gap:2px;max-height:0;margin-top:2px;padding-left:30px;display:flex;overflow:hidden}.nav-group.open .nav-group-items{max-height:200px}.nav-group-items .nav-item{padding:7px 10px;font-size:13px}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:auto;padding-top:14px;display:flex}.sidebar-version{color:var(--ink-faint);letter-spacing:.02em;padding:8px 10px 2px;font-family:IBM Plex Mono;font-size:11px}.sidebar-collapse-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}.sidebar-collapse-btn:hover{background:var(--surface-2);color:var(--ink)}.sidebar-collapse-btn svg{width:16px;height:16px;transition:transform .18s}#sidebar.collapsed{width:72px}#sidebar.collapsed .sidebar-brand .word,#sidebar.collapsed .nav-item span.label,#sidebar.collapsed .nav-group-toggle span.label,#sidebar.collapsed .nav-group-toggle svg.chev,#sidebar.collapsed .nav-group-items,#sidebar.collapsed .sidebar-version{display:none}#sidebar.collapsed .nav-item,#sidebar.collapsed .nav-group-toggle{justify-content:center}#sidebar.collapsed .sidebar-brand{flex-direction:column;gap:10px;padding-left:0;padding-right:0}#sidebar.collapsed .sidebar-collapse-btn svg{transform:rotate(180deg)}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;flex:none;align-items:center;gap:14px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.topbar h2{font-size:15.5px}.topbar-search{background:var(--surface-2);color:var(--ink-faint);border-radius:99px;align-items:center;gap:8px;width:240px;margin-left:auto;padding:7px 14px;font-size:13px;display:flex;position:relative}.topbar-search input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.search-results-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:30;max-height:60vh;color:var(--ink);padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.search-results-empty{color:var(--ink-muted);padding:10px 9px;font-size:13px}.search-results-group+.search-results-group{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.search-results-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:6px 9px 2px;font-size:11px;font-weight:600}.search-results-group button{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;width:100%;padding:7px 9px;font-family:inherit;display:flex}.search-results-group button:hover{background:var(--surface-2)}.search-results-group .r-title{color:var(--ink);font-size:13px}.search-results-group .r-sub{color:var(--ink-faint);margin-top:1px;font-size:11.5px}.topbar-actions{align-items:center;gap:6px;display:flex}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:99px;flex:none;justify-content:center;align-items:center;font-family:Plus Jakarta Sans;font-size:12px;font-weight:600;display:flex}.topbar-user{cursor:pointer;background:0 0;border:none;border-radius:99px;align-items:center;gap:9px;padding:4px 6px 4px 4px;display:flex}.topbar-user:hover{background:var(--surface-2)}.topbar-user .who{text-align:left;flex-direction:column;line-height:1.25;display:flex}.topbar-user .who b{font-size:13px;font-weight:600}.topbar-user .who span{color:var(--ink-faint);font-size:11.5px}.menu-btn{display:none}.theme-switch,.theme-switch-btn{position:relative}.theme-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:30;width:168px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.theme-menu button{border-radius:var(--radius-sm);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 9px;font-family:inherit;font-size:13px;display:flex}.theme-menu button:hover{background:var(--surface-2)}.theme-menu button.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.theme-dot{border:1px solid #00000014;border-radius:99px;flex:none;width:14px;height:14px}.theme-dot.t-light{background:#f4f6f9;box-shadow:inset 0 0 0 2px #2f5d8a}.theme-dot.t-dark{background:#10161d;box-shadow:inset 0 0 0 2px #6fa0d3}.theme-dot.t-blue{background:#1355d6;box-shadow:inset 0 0 0 2px #eaf2fe}.theme-menu button .check{width:14px;height:14px;color:var(--accent-strong);visibility:hidden;margin-left:auto}.theme-menu button.active .check{visibility:visible}.action-menu-wrap{display:inline-flex;position:relative}.action-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:90;min-width:168px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.action-menu.action-menu-portal{z-index:200;position:fixed;top:auto;right:auto}.action-menu button{border-radius:var(--radius-sm);width:100%;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;padding:8px 9px;font-family:inherit;font-size:13px;display:flex}.action-menu button:hover{background:var(--surface-2)}.action-menu button.danger{color:var(--critical)}.action-menu button.danger:hover{background:var(--critical-soft,var(--surface-2))}.action-menu button svg.icon{flex:none;width:15px;height:15px}.action-menu button:disabled{opacity:.5;cursor:not-allowed}main{width:100%;padding:26px 32px 60px}.view-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.view-head h1{font-size:21px}.dashboard-heading{align-items:center;gap:13px;display:flex}.dashboard-mark{border-radius:11px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.view-sub{color:var(--ink-muted);margin-top:3px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar .search-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-faint);flex:1;align-items:center;gap:8px;min-width:180px;max-width:280px;padding:8px 12px;font-size:13px;display:flex}.toolbar .search-box input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.toolbar select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:8px 11px;font-family:inherit;font-size:13px}.toolbar .spacer{flex:1}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.stat-tile{cursor:pointer;text-align:left;border:none;border-top:3px solid #0000;padding:16px 18px;font-family:inherit;transition:transform .12s,box-shadow .12s}.stat-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-tile .label{color:var(--ink-muted);font-size:12px;font-weight:500}.stat-tile .value{font-variant-numeric:tabular-nums;margin-top:6px;font-family:Plus Jakarta Sans;font-size:26px;font-weight:700}.stat-tile .delta{color:var(--ink-faint);align-items:center;gap:4px;margin-top:6px;font-size:12px;display:flex}.stat-tile.c-accent{border-top-color:var(--accent)}.stat-tile.c-accent .value{color:var(--accent)}.stat-tile.c-good{border-top-color:var(--good)}.stat-tile.c-good .value{color:var(--good)}.stat-tile.c-violet{border-top-color:#8258c7}.stat-tile.c-violet .value{color:#8258c7}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stat-tile.c-violet{border-top-color:#b79cea}:root:not([data-theme=light]) .stat-tile.c-violet .value{color:#b79cea}}:root[data-theme=dark] .stat-tile.c-violet{border-top-color:#b79cea}:root[data-theme=dark] .stat-tile.c-violet .value{color:#b79cea}.stat-tile.warn{border-top-color:var(--warning)}.stat-tile.warn .value{color:var(--warning)}.dash-filter-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dash-filter-row label{color:var(--ink-muted);font-size:12.5px;font-weight:500}.dash-grid{grid-template-columns:1.55fr 1fr;align-items:start;gap:16px;display:grid}.dash-stack{flex-direction:column;gap:16px;display:flex}.card-title-row{justify-content:space-between;align-items:center;padding:16px 18px 4px;display:flex}.card-title-row h3{font-size:14.5px}.card-title-row .count{color:var(--ink-faint);font-size:12px}.status-bar{border-radius:99px;height:12px;margin:14px 18px 10px;display:flex;overflow:hidden}.status-bar span{height:100%}.status-legend{color:var(--ink-muted);flex-wrap:wrap;gap:12px;padding:0 18px 16px;font-size:12px;display:flex}.status-legend .item{align-items:center;gap:6px;display:flex}.status-legend .sw{border-radius:3px;flex:none;width:9px;height:9px}.activity-list{flex-direction:column;padding:4px 18px 16px;display:flex}.activity-item{border-bottom:1px solid var(--border);gap:10px;padding:11px 0;display:flex}.activity-item:last-child{border-bottom:none;padding-bottom:0}.activity-item .dot-wrap{flex:none;justify-content:center;width:22px;padding-top:3px;display:flex}.activity-item .dot{background:var(--accent);border-radius:99px;width:7px;height:7px}.activity-item p{font-size:13px;line-height:1.45}.activity-item time{color:var(--ink-faint);margin-top:2px;font-size:11.5px;display:block}.activity-item b{font-weight:600}.deadline-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 18px;font-size:13px;display:flex}.deadline-row:last-child{border-bottom:none}.deadline-row .name{font-weight:500}.deadline-row .meta{color:var(--ink-faint);font-size:12px}.deadline-row .when{text-align:right;flex:none;margin-left:auto}.activity-search{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--ink-faint);align-items:center;gap:7px;margin:2px 18px 8px;padding:7px 11px;font-size:12.5px;display:flex}.activity-search input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:12.5px}.activity-item.is-hidden{display:none}.entity-link{font-weight:600;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.entity-link:hover{color:var(--accent);text-decoration:underline}.activity-item .transition{align-items:center;gap:6px;margin-top:4px;display:flex}.activity-item .transition svg{width:11px;height:11px;color:var(--ink-faint);flex:none}.dash-user-list{flex-direction:column;max-height:440px;padding:4px 18px 14px;display:flex;overflow-y:auto}.dash-user-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.dash-user-row:last-child{border-bottom:none;padding-bottom:0}.dash-user-row .name{flex:140px;min-width:0;font-size:13px;font-weight:500}.dash-user-stats{flex:none;align-items:center;gap:6px;display:flex}.dash-user-stats .pill{cursor:pointer;border:none;font-family:inherit}.dash-user-stats .pill:disabled{opacity:.45;cursor:default}.dash-user-stats .pill:not(:disabled):hover{filter:brightness(.94)}.dash-user-stats .pill-total{background:var(--surface-2);color:var(--ink-muted);cursor:default}#toast-host{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;top:18px;right:18px}.toast{color:var(--ink);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);align-items:flex-start;gap:11px;min-width:300px;max-width:360px;padding:14px 16px;font-size:13px;animation:.18s toast-in;display:flex}.toast-icon{border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;margin-top:1px;display:flex}.toast-icon svg{width:17px;height:17px}.toast-success .toast-icon{background:var(--good-soft);color:var(--good)}.toast-error .toast-icon{background:var(--critical-soft);color:var(--critical)}.toast-body{flex:1;min-width:0;padding-top:2px}.toast-title{margin-bottom:3px;font-size:13.5px;font-weight:700}.toast-message{color:var(--ink-muted);font-size:12.5px;line-height:1.4}.toast-close{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;margin:-2px -4px 0 0;padding:2px;display:inline-flex}.toast-close:hover{background:var(--surface-2);color:var(--ink)}.toast-close svg{width:14px;height:14px}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.file-chip{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);border:1px solid var(--border);align-items:center;gap:7px;padding:6px 10px;font-size:12.5px;display:inline-flex}.file-chip svg{color:var(--ink-faint);flex:none}.file-chip .rm{cursor:pointer;color:var(--ink-faint);display:flex}.file-chip .rm:hover{color:var(--critical)}.file-chip-dl{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:1px;padding:0;font-family:inherit;display:inline-flex}.file-chip-dl:hover{color:var(--accent)}.info-tip{background:var(--surface-2);width:16px;height:16px;color:var(--ink-faint);cursor:help;vertical-align:middle;border:1px solid var(--border);border-radius:99px;justify-content:center;align-items:center;margin-left:7px;font-size:10.5px;font-style:normal;font-weight:700;display:inline-flex}.file-upload-btn{border-radius:var(--radius-sm);border:1px dashed var(--border);background:var(--surface);color:var(--ink-muted);cursor:pointer;align-items:center;gap:7px;width:fit-content;padding:8px 12px;font-size:12.5px;display:inline-flex}.file-upload-btn:hover{background:var(--surface-2)}.detail-grid{grid-template-columns:1fr 1fr;gap:18px 20px;display:grid}.detail-item{border-bottom:1px solid var(--border);padding-bottom:12px}.detail-item .dt-label{letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-size:11.5px;font-weight:600}.detail-item .dt-value{color:var(--ink);font-size:13.5px}.detail-item.full{grid-column:1/-1}.task-tree{flex-direction:column;display:flex}.tn-add{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:4px;padding:4px 4px 10px;font-family:inherit;font-size:12px;display:flex}.tn-add:hover{text-decoration:underline}.tt-add-trigger{border-radius:var(--radius-md);border:1.5px dashed var(--accent);background:var(--accent-soft);color:var(--accent-strong);cursor:pointer;align-items:center;gap:6px;margin-top:14px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.tt-add-trigger:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tt-add-trigger .icon{width:16px;height:16px}.tt-legend-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tt-legend-row-actions{flex:none;align-items:center;gap:8px;display:flex}.tt-legend-row-actions .icon{width:14px;height:14px}.tt-multica-last-sync{color:var(--ink-faint);white-space:nowrap;font-size:12px}.tt-split-header-actions{gap:12px}.btn-link{color:var(--accent-strong);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;padding:0;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.btn-link:hover{text-decoration:underline}.tt-split-title{color:var(--accent-strong);background:var(--accent-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:99px;max-width:360px;padding:5px 12px;font-size:12.5px;font-weight:700;overflow:hidden}.tt-fullview-overlay{z-index:500;background:var(--surface);flex-direction:column;display:flex;position:fixed;inset:0}.tt-fullview-header{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;flex:none;align-items:center;gap:16px;padding:14px 20px;display:flex}.tt-fullview-header strong{margin-right:auto;font-size:14.5px}.tt-fullview-header .btn{flex:none}.tt-fullview-body{flex:1;padding:8px 20px 24px;overflow:auto}.tt-legend-swatches{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tt-legend-item{color:var(--ink-muted);cursor:default;align-items:center;gap:6px;font-size:12px;display:inline-flex}.tt-legend-dot{border-radius:5px;flex:none;width:9px;height:9px}.tt-legend-dot-tail{border-radius:2px}.tt-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-height:38px;display:flex;position:relative}.tt-row:last-child{border-bottom:none}.tt-row.is-dragging{opacity:.5}.tt-row.tt-row-editing{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.tt-row-left{flex:320px;grid-template-columns:max-content 1fr;align-items:center;gap:4px 8px;min-width:0;padding:6px 4px;display:grid}.tt-row-gutter{grid-area:1/1;align-items:center;gap:4px;display:flex}.tt-row-left-top{grid-area:1/2;align-items:center;gap:8px;min-width:0;display:flex}.tt-row-left-meta{grid-area:2/2;align-items:center;gap:10px;display:flex}.tt-row-right{border-left:1px solid var(--border);flex:260px;min-width:160px;margin-left:2px;padding-left:14px;position:relative}.tt-tree-spacer{flex:none}.tt-tree-lines{pointer-events:none;z-index:0;position:absolute;top:0;bottom:0;right:auto}.tt-line-vert{width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.tt-line-horiz{height:2px;position:absolute;top:50%;transform:translateY(-1px)}.tt-drag-handle{cursor:grab;color:var(--ink-faint);flex:none;align-items:center;display:flex}.tt-drag-handle:active{cursor:grabbing}.tt-drag-handle .icon{width:14px;height:14px}.tt-expand-btn{width:18px;height:18px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.tt-expand-btn .icon{width:12px;height:12px;transition:transform .15s}.tt-expand-btn .icon.is-open{transform:rotate(90deg)}.tt-expand-spacer{flex:none;width:18px}.tt-row .tn-name{font-size:13.5px;font-weight:500}.tt-row .tn-meta{color:var(--ink-faint);white-space:nowrap;font-size:12px}.tt-pic-avatar{background:var(--accent-soft);width:20px;height:20px;color:var(--accent-strong);border-radius:99px;flex:none;justify-content:center;align-items:center;font-family:Plus Jakarta Sans;font-size:9.5px;font-weight:600;display:flex}.tt-actions{flex:none;align-items:center;gap:2px;margin-left:auto;display:flex}.multica-badge{letter-spacing:.01em;background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-flex}.multica-badge-empty{background:var(--surface-3);color:var(--ink-faint);font-weight:500}.multica-badge-sync{opacity:.8;font-size:10px}.multica-badge-sdlc{background:var(--good-soft);color:var(--good)}.tt-status-chip{letter-spacing:.02em;border-radius:99px;flex:none;justify-content:center;align-items:center;min-width:22px;height:18px;padding:0 6px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.tt-sync-wrap{flex:none;align-items:center;gap:5px;display:inline-flex}.tt-parent-hint{opacity:.72}.tt-add-panel-title{color:var(--ink);margin:0 0 2px;font-size:13.5px;font-weight:600}.tt-timeline-on .tt-row-left{flex:0 0 300px;row-gap:3px;width:300px}.tt-timeline-on .tt-row-right{flex:auto;min-width:0}.tt-timeline-on .tt-row-left-top .tn-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.tt-timeline-on .tt-row-left-meta .tn-meta{font-size:11px}.tt-bar-track-wrap{height:38px;position:relative}.tt-bar-track{background:var(--surface-3);z-index:1;border-radius:5px;min-width:6px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}.tt-bar-fill{z-index:2;border-radius:5px;min-width:6px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}.tt-bar-fill-pending{opacity:.55;background-image:repeating-linear-gradient(45deg,#ffffff59,#ffffff59 3px,#0000 3px 7px)}.tt-bar-tail{background:var(--critical);z-index:2;border-radius:5px;min-width:4px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}.tt-bar-slip-label{color:var(--critical);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:10.5px;position:absolute;top:50%;left:calc(100% + 4px);transform:translateY(-50%)}.tt-bar-tick{background:var(--ink-faint);opacity:.6;z-index:3;width:2px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%)}.tt-edit-panel{background:var(--surface-2);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin:8px 0;padding:12px;display:flex}.tt-edit-panel-head{justify-content:flex-end;display:flex}.tt-edit-panel-foot{justify-content:flex-end;gap:8px;display:flex}.tt-add-panel{background:var(--surface-2);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin-top:12px;padding:12px;display:flex}.tt-edit-panel .field,.tt-add-panel .field{gap:3px}.tt-edit-panel .field label,.tt-add-panel .field label{font-size:11.5px}.tt-edit-panel .field-row,.tt-add-panel .field-row{gap:8px}.tt-edit-panel .field input[type=text],.tt-edit-panel .field input[type=email],.tt-edit-panel .field input[type=date],.tt-edit-panel .field select,.tt-edit-panel .field textarea,.tt-edit-panel .searchable-select-control input,.tt-add-panel .field input[type=text],.tt-add-panel .field input[type=email],.tt-add-panel .field input[type=date],.tt-add-panel .field select,.tt-add-panel .field textarea,.tt-add-panel .searchable-select-control input{padding:6px 9px;font-size:13px}.tt-edit-panel .field textarea,.tt-add-panel .field textarea{min-height:48px}.tt-edit-panel .discrete-slider,.tt-add-panel .discrete-slider{padding-top:18px}:is(.tt-edit-panel .field:has(>.searchable-select),.tt-add-panel .field:has(>.searchable-select)){max-width:320px}:is(.tt-edit-panel .field-row .field:has(>.searchable-select),.tt-add-panel .field-row .field:has(>.searchable-select)){max-width:none}.tt-record-card{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:10px;padding:12px;display:flex;position:relative}.tt-edit-panel .field input:disabled,.tt-edit-panel .field select:disabled,.tt-add-panel .field input:disabled,.tt-add-panel .field select:disabled,.accordion-body .field input:disabled,.accordion-body .field select:disabled{background:var(--surface-3);border-style:solid}.field-readonly{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:8px;padding:8px 10px;display:flex}.field-readonly-value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:600}.field-readonly-badge{letter-spacing:.02em;background:var(--accent-soft);color:var(--accent-strong);border-radius:99px;padding:2px 8px;font-size:10.5px;font-weight:600}.tt-split-layout{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:minmax(380px,1fr) minmax(460px,1.35fr);align-items:start;gap:0;display:grid}.tt-split-tree{border-right:1px solid var(--border);min-width:0}.tt-split-detail{min-width:0;padding:16px;position:sticky;top:12px}.tt-split-detail .tt-edit-panel,.tt-split-detail .tt-add-panel{background:0 0;border-radius:0;margin:0;padding:0}.tt-split-detail-inner{flex-direction:column;gap:12px;display:flex}.tt-mini-gantt{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px 12px 14px}.tt-mini-gantt .tt-bar-track-wrap{height:30px}.tt-mini-gantt-empty{color:var(--ink-faint);white-space:nowrap;font-size:12px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}@media (width<=900px){.tt-split-layout{grid-template-columns:1fr}.tt-split-tree{border-right:none;border-bottom:1px solid var(--border)}.tt-split-detail{position:static}}.tt-legend-sticky{z-index:4;background:var(--surface);border-bottom:1px solid var(--border);margin:0 -20px 12px;padding:14px 20px 12px;position:sticky;top:60px}.tt-legend-sticky .tt-legend-row{margin-bottom:0}.tt-legend-sticky .tt-add-trigger{margin-top:12px;padding:6px 12px;font-size:12px}.tt-legend-sticky .tt-add-trigger .icon{width:14px;height:14px}.tt-fullview-toolbar.toolbar{flex:260px;margin-bottom:0}.tt-splc-pic-name{text-overflow:ellipsis;max-width:120px;overflow:hidden}.tt-splc-mini-progress{background:var(--surface-3);border-radius:3px;flex:auto;max-width:90px;height:6px;position:relative;overflow:hidden}.tt-splc-mini-progress-fill{border-radius:3px;position:absolute;inset:0 auto 0 0}.tt-splc-progress-pct{flex:none}.tt-row-left-actual{color:var(--ink-faint);font-variant-numeric:tabular-nums;grid-area:3/2;font-size:11px}.tt-row-left-actual-late{color:var(--critical);font-weight:600}.tt-splc-row.tt-timeline-on .tt-row-left-top .tn-name{white-space:normal;text-overflow:clip;word-break:break-word;flex:0 auto;overflow:visible}.tt-splc-row.tt-timeline-on .tt-actions{margin-left:0}.tt-row.tt-timeline-on:not(.tt-splc-row) .tt-row-left-top .tn-name{white-space:normal;text-overflow:clip;word-break:break-word;flex:0 auto;overflow:visible}.tt-row.tt-timeline-on:not(.tt-splc-row) .tt-actions{margin-left:0}.gantt-header{background:var(--surface-2);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.gantt-month-row{border-bottom:1px solid var(--border);height:24px;position:relative}.gantt-month-tick{color:var(--ink-muted);border-left:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.gantt-axis{flex:1;display:flex;position:relative}.gantt-tick{color:var(--ink-faint);border-left:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:clip;flex:1;padding:9px 4px;font-size:11px;overflow:hidden}.gantt-tick:empty{border-left:1px solid var(--surface-3);padding-left:0;padding-right:0}.gantt-daylabel-row{pointer-events:none;position:absolute;inset:0}.gantt-daylabel{color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:9px;font-size:11px;position:absolute;top:0;transform:translate(-50%)}.gantt-offday{background:repeating-linear-gradient(45deg, var(--surface-3), var(--surface-3) 4px, transparent 4px, transparent 8px);opacity:.6;pointer-events:none;position:absolute;top:0;bottom:0}.view-toggle{background:var(--surface-2);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.view-toggle button{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 13px;font-family:inherit;font-size:12.5px;font-weight:500}.view-toggle button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.role-grid{grid-template-columns:380px 1fr;align-items:start;gap:16px;display:grid}.role-grid>.card:last-child{position:sticky;top:76px}.role-list{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;max-height:calc(100vh - 230px);padding:4px 0 10px;display:flex;overflow-y:auto}.role-list::-webkit-scrollbar{display:none}.role-list-item{border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;width:100%;padding:10px 18px;font-family:inherit;display:flex}.role-list-item:last-child{border-bottom:none}.role-list-item:hover{background:var(--surface-2)}.role-list-item.active{background:var(--accent-soft)}.role-list-name{flex:1;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:500;display:flex}.role-list-name .role-desc{color:var(--ink-faint);font-size:11.5px;font-weight:400;display:block}.role-list-name .role-updated{color:var(--ink-faint);margin-top:1px;font-size:11px;font-weight:400;display:block}.role-list-actions{flex:none;gap:2px;display:flex}.user-name-cell{align-items:center;gap:9px;display:flex}.avatar-initial{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-strong);letter-spacing:.01em;border-radius:99px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.perm-matrix-empty{color:var(--ink-muted);padding:20px 20px 24px;font-size:13px}.role-search-row{align-items:center;gap:8px;margin:10px 18px 6px;display:flex}.role-search-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-faint);flex:1;align-items:center;gap:8px;padding:7px 11px;display:flex}.role-search-box .icon{flex:none;width:14px;height:14px}.role-search-box input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.role-sort-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);flex:none;padding:7px 9px;font-family:inherit;font-size:12.5px}.perm-count-badge{background:var(--surface-2);color:var(--ink-muted);border-radius:99px;flex:none;padding:2px 9px;font-size:11.5px;font-weight:600}.perm-count-badge.has-access{background:var(--accent-soft);color:var(--accent-strong)}.md-divider{border-top:1px solid var(--border);margin:0 0 4px}.card-foot-right{border-top:1px solid var(--border);justify-content:flex-end;margin-top:4px;padding:14px 18px 18px;display:flex}.md-grid{grid-template-columns:200px 4px 1fr;display:grid}.md-list{min-width:0;padding:6px 0;overflow-y:auto}.md-resizer{cursor:col-resize;background:0 0;position:relative}.md-resizer:after{content:"";background:var(--border);width:1px;position:absolute;top:0;bottom:0;left:1px}.md-resizer:hover:after,.md-resizer.dragging:after{background:var(--accent-strong);width:2px;left:0}.md-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);background:var(--accent-soft);margin-top:8px;padding:7px 16px;font-size:10.5px;font-weight:700}.md-group-label:first-child{margin-top:0}.md-item{width:100%;color:var(--ink-muted);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:9px 16px 9px 22px;font-family:inherit;font-size:13px;font-weight:500;display:flex}.md-item:hover{background:var(--surface-2);color:var(--ink)}.md-item.active{background:var(--accent-soft);color:var(--accent-strong)}.md-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.md-detail{padding:16px 20px 20px}.md-detail-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.md-detail-head h4{margin:0;font-size:14.5px}.perm-switch-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.perm-switch-row:last-child{border-bottom:none}.perm-switch-row-text .t{color:var(--ink);font-size:13px;font-weight:600}.perm-switch-row-text .d{color:var(--ink-faint);margin-top:1px;font-size:12px}.perm-preview-empty{color:var(--warning);background:var(--warning-soft);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.role-tree{flex-direction:column;display:flex}.rt-group{margin-bottom:4px;padding-left:18px;position:relative}.rt-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;margin:10px 0 6px -18px;padding:4px 10px;font-size:10.5px;font-weight:700;display:inline-block}.rt-node{border-left:1px dashed var(--border);justify-content:space-between;align-items:center;gap:12px;margin-left:4px;padding:7px 0 7px 18px;display:flex;position:relative}.rt-node:last-child{border-left-color:#0000}.rt-node:before{content:"";border-top:1px dashed var(--border);width:14px;height:1px;position:absolute;top:50%;left:0}.rt-menu-label{color:var(--ink);font-size:13px;font-weight:500}.rt-actions{flex:none;align-items:center;gap:5px;display:flex}.rt-chip{background:var(--accent-soft);width:20px;height:20px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;display:inline-flex}.rt-no-access{color:var(--ink-faint);font-size:11.5px}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--border);border-radius:99px;flex:none;width:34px;height:19px;transition:background .15s;position:relative}.switch-thumb{background:var(--surface);border-radius:50%;width:15px;height:15px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(15px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.switch.disabled{cursor:not-allowed;opacity:.55}.cal-grid-wrap{align-items:start;gap:16px;display:flex}.cal-main-card{flex:1;min-width:0}.cal-head{justify-content:space-between;align-items:center;padding:16px 18px 10px;display:flex}.cal-panel-toggle-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-muted);cursor:pointer;border:1px solid var(--border);background:var(--surface);flex:none;justify-content:center;align-items:center;display:flex}.cal-panel-toggle-btn:hover{background:var(--surface-2);color:var(--ink)}.cal-panel-toggle-btn svg{width:16px;height:16px;transition:transform .18s}.cal-panel-toggle-btn.is-collapsed svg{transform:rotate(180deg)}.cal-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:0}.cal-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);text-align:center;padding:6px 4px;font-size:11px;font-weight:600}.cal-table td{text-align:center;vertical-align:top;padding:3px}.cal-day{aspect-ratio:1;font-variant-numeric:tabular-nums;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:100%;font-size:13px;display:flex}button.cal-day{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.cal-day.weekend{background:var(--surface-2);color:var(--ink-muted)}.cal-day.today{border:1.5px solid var(--accent);color:var(--accent);font-weight:600}.cal-day.holiday{background:var(--warning-soft);color:var(--warning);cursor:pointer;font-weight:600}.cal-day .sw{background:currentColor;border-radius:99px;width:4px;height:4px}.cal-year-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 14px;padding:4px 16px 18px;display:grid}.cal-year-month{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;padding:8px 8px 4px}.cal-year-month h4{padding:0 2px 6px;font-size:11.5px;font-weight:600}.cal-table-compact th{padding:1px;font-size:8.5px}.cal-table-compact td{padding:1px}.cal-table-compact .cal-day{border-radius:4px;gap:0;font-size:9.5px}.cal-holiday-popover{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:160px;padding:9px 12px;position:fixed}.cal-holiday-popover-date{color:var(--ink-muted);font-family:IBM Plex Mono;font-size:11px}.cal-holiday-popover-name{margin-top:2px;font-size:13px;font-weight:600}.holiday-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:11px 18px;display:flex}.holiday-item:last-child{border-bottom:none}.holiday-item .date-chip{background:var(--surface-2);color:var(--ink-muted);border-radius:6px;flex:none;padding:4px 8px;font-family:IBM Plex Mono;font-size:11.5px}.holiday-item .name{flex:1;font-size:13px}.cal-holiday-panel{flex-direction:column;flex:0 0 300px;width:300px;max-width:100%;max-height:calc(100vh - 150px);display:flex}.cal-holiday-panel-body{flex:1;overflow-y:auto}.tabs-row{gap:6px;margin-bottom:14px;display:flex}.tab-btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;padding:7px 14px;font-family:inherit;font-size:13px}.tab-btn:hover{background:var(--surface-2)}.tab-btn.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000;font-weight:600}.list-option-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 18px;display:flex}.list-option-item:last-child{border-bottom:none}.list-option-item.is-dragging{opacity:.5}.list-option-item .name{flex:1;font-size:13px}.modal-overlay{z-index:50;background:#0f141c73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-md);flex-direction:column;max-height:90vh;display:flex}.modal.modal-wide{max-width:600px}.modal-head{border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-head .btn-icon{cursor:pointer}.modal-head h3{font-size:15.5px}.modal-body{flex-direction:column;gap:14px;padding:20px;display:flex;overflow-y:auto}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tt-field-row-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.sdf-name-input-group{align-items:center;gap:8px;display:flex}.sdf-name-input-group input{flex:1;min-width:0}.sdf-module-picker{flex:none;align-items:center;gap:6px;display:flex;position:relative}.sdf-module-picker-btn{border:1px solid var(--border)}.sdf-module-picker-value{letter-spacing:.02em;background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.sdf-module-picker-more{opacity:.75;margin-left:4px}.sdf-module-picker .sdf-module-menu{width:180px;max-height:260px;left:0;right:auto;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);flex:none;justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}.modal-warn-icon{background:var(--critical-soft);width:38px;height:38px;color:var(--critical);border-radius:10px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.modal-warn-icon.tone-warning{background:var(--warning-soft);color:var(--warning)}.sidebar-backdrop{display:none}@media (width<=980px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dash-grid,.role-grid{grid-template-columns:1fr}.cal-grid-wrap{flex-direction:column}.cal-holiday-panel{flex-basis:auto;width:100%;max-height:none}.cal-year-grid{grid-template-columns:repeat(2,1fr)}.role-grid>.card:last-child{position:static}.role-list{max-height:none;overflow-y:visible}}@media (width<=720px){.sidebar{z-index:40;box-shadow:var(--shadow-md);transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%)}body.sidebar-open .sidebar{transform:translate(0)}.sidebar-backdrop{z-index:35;background:#0f141c66;display:none;position:fixed;inset:0}body.sidebar-open .sidebar-backdrop{display:block}.menu-btn{display:inline-flex}.topbar-search{display:none}main{padding:18px 14px 50px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.field-row,.tt-field-row-3,.detail-grid{grid-template-columns:1fr}.tt-row{flex-direction:column;align-items:stretch}.tt-row-left{flex:none}.tt-row-right{border-left:none;border-top:1px solid var(--border);flex:none;margin-left:0;padding-top:10px;padding-left:0}.tt-timeline-on .tt-row-left-top .tn-name{text-overflow:clip;white-space:normal;overflow:visible}.cal-year-grid{grid-template-columns:1fr}}@media (width<=460px){.stat-grid{grid-template-columns:1fr}.view-head{flex-direction:column;align-items:flex-start}.auth-panel{padding:22px}}.gv-table{min-width:860px}.gv-stream-row td{background:var(--surface-2);font-weight:600}.gv-collapse-btn{width:20px;height:20px;color:var(--ink-muted);cursor:pointer;border-radius:var(--radius-sm);vertical-align:middle;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-right:6px;display:inline-flex}.gv-collapse-btn:hover{background:var(--surface-3);color:var(--ink)}.gv-chev{width:15px;height:15px;transition:transform .15s}.gv-chev:not(.is-collapsed){transform:rotate(180deg)}.gv-sprint-row .gv-sprint-name{color:var(--ink-muted);padding-left:38px;font-weight:400}.gv-sprint-empty td{color:var(--ink-faint);font-style:italic}.gv-flag{vertical-align:middle;flex:none;width:14px;height:14px;margin-left:5px;display:inline-flex}.gv-flag.gv-flag-overdue{color:var(--critical)}.gv-flag.gv-flag-incomplete{color:var(--warning)}@media print{#sidebar,.topbar,.sidebar-backdrop,.no-print{display:none!important}#app-shell,.app-main{margin:0!important;padding:0!important;display:block!important}main{padding:0!important}.card.table-scroll{overflow:visible!important}.gv-table{min-width:0}thead th{position:static}.gv-group{break-inside:avoid;page-break-inside:avoid}@page{size:landscape;margin:10mm}}
