.inv-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.inv-low{background:#fff2e2;color:#a96116;font-weight:600}:where(html[data-theme=dark]) .inv-low{background:#4a351c;color:#f0bd89}.inv-zero{color:#a3a9b3}:where(html[data-theme=dark]) .inv-zero{color:#737c8c}.inv-table tbody td>div{white-space:nowrap}.inv-table td small{max-width:260px}.inv-row{cursor:pointer}.inv-row .text-button{white-space:normal;text-align:left;font-weight:550;font-size:13px}.inv-more{width:auto;min-height:38px;font-size:13px;padding:6px 8px}.inv-warn td{background:color-mix(in srgb,#f5b800 14%,transparent)}:where(html[data-theme=dark]) .inv-warn td{background:color-mix(in srgb,#f5b800 14%,transparent)}.inv-warning-text{color:#a96116}:where(html[data-theme=dark]) .inv-warning-text{color:#f0bd89}.inv-summary{margin:0 0 12px}.inv-h{margin-top:22px}.inv-preview{margin-top:14px;font-size:13px;font-weight:550}.inv-check{align-self:end;padding-bottom:9px}.inv-structure{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:10px;overflow:auto;max-height:260px;display:flex;justify-content:center}.inv-structure img{max-width:100%;max-height:230px;object-fit:contain;background:#fff;border-radius:6px}:where(html[data-theme=dark]) .inv-structure img{background:#262626}.inv-structure pre{margin:0;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;width:100%}.inv-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin:0 0 16px}.inv-facts div{min-width:0}.inv-facts dt{font-size:11px;color:var(--muted)}.inv-facts dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:13px}.inv-detail-actions{margin-bottom:8px}.inv-io{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.inv-io-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}.inv-io-card h3{margin:0}.inv-io-card input[type=file]{width:auto;max-width:100%}@media(max-width:720px){.inv-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-io{grid-template-columns:1fr}.inv-table.inv-table{min-width:720px}.filter-row input[type=date]{max-width:150px}}@container app (max-width: 720px){.inv-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-io{grid-template-columns:1fr}.inv-table.inv-table{min-width:720px}.filter-row input[type=date]{max-width:150px}}@media(max-width:720px){.inv-items.inv-table{min-width:0}.inv-items thead{display:none}.inv-items,.inv-items tbody,.inv-items tr,.inv-items td{display:block;width:auto;height:auto}.inv-items tr{padding:12px 14px;border-bottom:1px solid var(--border)}.inv-items td{padding:3px 0!important;border:0!important}.inv-items td:nth-child(3){margin:2px 0 4px}.inv-items.inv-table tbody td>div{white-space:normal}.inv-items .inv-thumb{width:120px;height:87px}.inv-items td.inv-struct-cell{margin:2px 0 4px}.inv-items td:nth-child(5):before{content:"合计 ";color:var(--muted);font-size:12px}.inv-items td:nth-child(6):before{content:"项目 ";color:var(--muted);font-size:12px}.inv-items td:nth-child(7) .row-actions{flex-wrap:nowrap;margin-top:6px}}@container app (max-width: 720px){.inv-items.inv-table{min-width:0}.inv-items thead{display:none}.inv-items,.inv-items tbody,.inv-items tr,.inv-items td{display:block;width:auto;height:auto}.inv-items tr{padding:12px 14px;border-bottom:1px solid var(--border)}.inv-items td{padding:3px 0!important;border:0!important}.inv-items td:nth-child(3){margin:2px 0 4px}.inv-items.inv-table tbody td>div{white-space:normal}.inv-items .inv-thumb{width:120px;height:87px}.inv-items td.inv-struct-cell{margin:2px 0 4px}.inv-items td:nth-child(5):before{content:"合计 ";color:var(--muted);font-size:12px}.inv-items td:nth-child(6):before{content:"项目 ";color:var(--muted);font-size:12px}.inv-items td:nth-child(7) .row-actions{flex-wrap:nowrap;margin-top:6px}}.inv-pending{position:relative;font:inherit;font-size:11px;font-weight:700;background:#ffd666;color:#6b4200;border:1px solid #e0a800;cursor:pointer;margin:0 0 0 6px;padding:1px 8px;border-radius:999px}:where(html[data-theme=dark]) .inv-pending{background:#ffc21a;color:#ffe2b3;border:1px solid #e0a800}tr:nth-last-child(-n+2) .inv-pending-tip{top:auto;bottom:calc(100% + 6px)}.inv-pending-tip{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:20;width:max-content;max-width:min(260px,70vw);padding:8px 10px;border-radius:8px;background:#fffbea;color:#5c4200;border:1px solid #e6c95c;box-shadow:0 4px 14px #00000026;text-align:left;font-weight:400;white-space:normal;overflow-wrap:anywhere}:where(html[data-theme=dark]) .inv-pending-tip{background:#4a411c;color:#ffe9b3;border:1px solid #e6c95c}.inv-pending-tip b{display:block;font-weight:600}.inv-pending-tip em{display:block;margin-top:4px;font-style:normal;font-size:11px;color:#8a6100}:where(html[data-theme=dark]) .inv-pending-tip em{color:#ffe29e}.inv-pending:hover .inv-pending-tip,.inv-pending:focus-within .inv-pending-tip,.inv-pending:focus .inv-pending-tip{display:block}.inv-pending-box{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff4c2;color:#5c4200;border:1px solid #e6c95c;font-size:13px;overflow-wrap:anywhere}:where(html[data-theme=dark]) .inv-pending-box{background:#4a421c;color:#ffe9b3;border:1px solid #e6c95c}.inv-struct{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:84px}.inv-thumb{display:block;padding:0;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:zoom-in;overflow:hidden;width:72px;height:52px}:where(html[data-theme=dark]) .inv-thumb{background:#262626}.inv-thumb img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}:where(html[data-theme=dark]) .inv-thumb img{background:#262626}.inv-struct-text{font-size:11px;color:var(--muted);max-width:120px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.inv-struct-up{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent,#2f6fed);cursor:pointer;padding:2px 0}:where(html[data-theme=dark]) .inv-struct-up{color:var(--accent,#4880ef)}.inv-struct-up.disabled{opacity:.6;cursor:default}.inv-struct-up input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inv-struct-up:focus-within{outline:2px solid currentColor;outline-offset:2px;border-radius:4px}.inv-structure-large{max-height:none}.inv-structure-large img{max-height:min(62vh,560px);width:auto;max-width:100%}.contract-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.contract-metrics>div{padding:17px 20px;border:1px solid var(--accent-border);border-radius:12px;background:#fff}:where(html[data-theme=dark]) .contract-metrics>div{background:#262626}.contract-metrics strong{display:block;font-size:22px;font-weight:650;line-height:1.25;color:var(--accent-ink)}.contract-metrics strong.positive{color:#1f8a55}:where(html[data-theme=dark]) .contract-metrics strong.positive{color:#9ee9c4}.contract-metrics strong.negative{color:#c53b3b}:where(html[data-theme=dark]) .contract-metrics strong.negative{color:#d67575}.contract-metrics span{display:block;font-size:12px;color:var(--muted);margin-top:6px}.contract-charts{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-bottom:22px;align-items:stretch}.contract-chart-panel,.contract-top{border:1px solid var(--accent-border);border-radius:12px;background:#fff;padding:16px 18px;min-width:0}:where(html[data-theme=dark]) .contract-chart-panel,:where(html[data-theme=dark]) .contract-top{background:#262626}.contract-chart-panel h3,.contract-top h3{font-size:13px;color:var(--accent-ink);margin-bottom:10px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:10px}.contract-chart-legend{font-size:11px;color:var(--muted);margin-bottom:10px}.legend-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;margin:0 5px 0 12px;vertical-align:middle}.legend-swatch:first-child{margin-left:0}.legend-swatch.sell{background:#7542c8}:where(html[data-theme=dark]) .legend-swatch.sell{background:#7542c8}.legend-swatch.buy{background:#c07a1e}:where(html[data-theme=dark]) .legend-swatch.buy{background:#c07a1e}.contract-chart{display:flex;align-items:flex-end;gap:4px;height:140px}.contract-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;min-width:0}.contract-chart-bars{display:flex;gap:2px;align-items:flex-end;height:100%;width:100%;justify-content:center}.contract-chart-bar{width:9px;border-radius:3px 3px 0 0;min-height:2px;transition:height .2s}.contract-chart-bar.sell{background:#7542c8}:where(html[data-theme=dark]) .contract-chart-bar.sell{background:#7542c8}.contract-chart-bar.buy{background:#c07a1e}:where(html[data-theme=dark]) .contract-chart-bar.buy{background:#c07a1e}.contract-chart-col span{font-size:10px;color:var(--muted)}.company-table{min-width:520px}.company-row{cursor:pointer}.company-row:hover{background:#faf8fd}:where(html[data-theme=dark]) .company-row:hover{background:#2e1c4a}.company-row.selected{background:var(--accent-soft)}.direction-tag{display:inline-block;font-size:11px;padding:3px 8px;border-radius:6px;white-space:nowrap}.direction-tag.sell{background:#f2ecfc;color:#5a349e}:where(html[data-theme=dark]) .direction-tag.sell{background:#2d1c4a;color:#ab90db}.direction-tag.buy{background:#fdf0dd;color:#8a5514}:where(html[data-theme=dark]) .direction-tag.buy{background:#4a371c;color:#f1cc9e}.contract-company-readonly{white-space:pre-wrap;font-family:inherit;font-size:13px;color:#3a4350;background:#f7f8fa;border-radius:9px;padding:12px 14px;margin:0}:where(html[data-theme=dark]) .contract-company-readonly{color:#bbc3ce;background:#272f3f}.lines-table{min-width:820px}.lines-table td,.lines-table th{padding:8px}.lines-table input,.lines-table select{font-size:12px;padding:6px 8px}.lines-editor .button{margin-top:8px}.attachment-section.no-border{border-top:none;padding-top:0}@media(max-width:900px){.contract-charts{grid-template-columns:1fr}}@container app (max-width: 900px){.contract-charts{grid-template-columns:1fr}}@media(max-width:640px){.contract-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-chart{height:110px}.lines-table{min-width:720px}.company-table{min-width:460px}}@container app (max-width: 640px){.contract-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-chart{height:110px}.lines-table{min-width:720px}.company-table{min-width:460px}}.auto-mark{font-style:normal;font-size:10px;padding:1px 6px;margin-left:6px;border-radius:5px;background:#e8f2ff;color:#2b62b0;font-weight:500}:where(html[data-theme=dark]) .auto-mark{background:#1c304a;color:#84aae1}.pending-tag{display:inline-block;font-size:10px;padding:2px 7px;margin-left:8px;border-radius:5px;background:#fff2e2;color:#a66a21;font-weight:500;vertical-align:middle}:where(html[data-theme=dark]) .pending-tag{background:#4a351c;color:#e8be8b}.original-box{border:1px dashed var(--accent-border);border-radius:10px;padding:14px 16px;margin-bottom:14px;background:var(--accent-soft)}.original-box .field{margin-bottom:10px}.original-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.notice.plain{background:#fff8eb;border-color:#f0e4c8}:where(html[data-theme=dark]) .notice.plain{background:#4a3a1c;border-color:#806423}.document-status{display:flex;flex-wrap:wrap;gap:5px}.document-status span{padding:4px 7px;border-radius:5px;font-size:11px;white-space:nowrap}.document-status .present{color:#24734b;background:#eaf6ee}:where(html[data-theme=dark]) .document-status .present{color:#afe6ca;background:#1f472c}.document-status .missing{color:#8b5918;background:#fff2de}:where(html[data-theme=dark]) .document-status .missing{color:#eecb9e;background:#4a381c}.document-status-button{border:0;background:none;padding:0;text-align:left;cursor:pointer;min-width:160px}.document-status-button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.document-bundle-summary{padding:16px;border-radius:10px;margin-bottom:20px;border:1px solid #ecd7b6;background:#fffaf1}:where(html[data-theme=dark]) .document-bundle-summary{border:1px solid #815c22;background:#4a3a1c}.document-bundle-summary.complete{border-color:#baddc6;background:#f3faf5}:where(html[data-theme=dark]) .document-bundle-summary.complete{border-color:#baddc6;background:#1e482a}.document-bundle-summary p{font-size:13px;color:var(--muted);margin:8px 0 12px}.document-bundle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.document-card{min-width:0;border:1px solid var(--accent-border);border-radius:10px;padding:14px;background:#fff}:where(html[data-theme=dark]) .document-card{background:#262626}.document-card.missing{border-style:dashed;border-color:#ddbd8b}:where(html[data-theme=dark]) .document-card.missing{border-color:#ddbd8b}.document-card .section-heading{align-items:flex-start;flex-wrap:wrap;margin:0 0 12px;gap:8px}.document-card h3{margin:0;font-size:16px}.document-state{font-size:11px;color:#24734b}:where(html[data-theme=dark]) .document-state{color:#afe6ca}.document-card.missing .document-state{color:#8b5918}:where(html[data-theme=dark]) .document-card.missing .document-state{color:#eecb9e}.document-empty{padding:15px 0;color:#8b5918;font-size:13px;line-height:1.8}:where(html[data-theme=dark]) .document-empty{color:#eecb9e}.document-empty small{color:var(--muted);font-size:12px}.document-card .attachment-row{flex-wrap:wrap}.document-card .attachment{min-width:0;max-width:100%}.document-card .attachment span{overflow-wrap:anywhere}.document-card .upload-button{margin-top:12px}@media(max-width:760px){.document-bundle{grid-template-columns:1fr}}@container app (max-width: 760px){.document-bundle{grid-template-columns:1fr}}.document-bundle>.document-card{margin:0}.contract-tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--accent-border)}.contract-tabs button{border:0;background:none;padding:10px 18px;font-size:15px;cursor:pointer;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}.contract-tabs button.active{color:var(--accent-ink);border-bottom-color:var(--accent-ink);font-weight:600}.finance-metrics{margin-top:-6px}.state-tag{display:inline-block;font-size:11px;padding:3px 7px;border-radius:5px;white-space:nowrap}.state-tag.none{background:#eef0f3;color:#5d6675}:where(html[data-theme=dark]) .state-tag.none{background:#161a1f;color:#9ca3b0}.state-tag.part{background:#fff2de;color:#8b5918}:where(html[data-theme=dark]) .state-tag.part{background:#4a381c;color:#eecb9e}.state-tag.done{background:#eaf6ee;color:#24734b}:where(html[data-theme=dark]) .state-tag.done{background:#1f472c;color:#afe6ca}.finance-progress{display:flex;flex-direction:column;gap:5px;min-width:150px}.finance-tags{display:flex;flex-wrap:wrap;gap:4px}.finance-progress-button{border:0;background:none;padding:0;text-align:left;cursor:pointer}.finance-progress-button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.finance-owed{color:#c53b3b}:where(html[data-theme=dark]) .finance-owed{color:#d67575}.finance-clear{color:#24734b}:where(html[data-theme=dark]) .finance-clear{color:#afe6ca}.finance-records{margin:18px 0}.finance-record-grid{display:flex;flex-direction:column;gap:14px}.finance-card{min-width:0;border:1px solid var(--accent-border);border-radius:10px;padding:14px;background:#fff}:where(html[data-theme=dark]) .finance-card{background:#262626}.finance-card .section-heading{flex-wrap:wrap;gap:8px;margin:0 0 10px}.finance-card h3{margin:0;font-size:16px}.finance-card-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:13px;margin-bottom:10px}.finance-warning{font-size:12px;color:#8b5918;background:#fff8eb;border-radius:6px;padding:6px 10px;margin:0 0 8px}:where(html[data-theme=dark]) .finance-warning{color:#eecb9e;background:#4a3a1c}.record-table{min-width:720px}.record-table small{display:block}.record-table tr.voided td{color:#98a0ab;background:#f6f7f9}:where(html[data-theme=dark]) .record-table tr.voided td{color:#737d8c;background:#1a1e27}.record-table tr.voided td strong{text-decoration:line-through}.void-reason{color:#b03a3a}:where(html[data-theme=dark]) .void-reason{color:#d68484}.record-status{color:#b03a3a}:where(html[data-theme=dark]) .record-status{color:#d68484}.upload-link{position:relative;cursor:pointer}.upload-link input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.archive-mark{background:#eaf6ee;color:#24734b}:where(html[data-theme=dark]) .archive-mark{background:#1f472c;color:#afe6ca}.archive-preview-note{border:1px solid var(--accent-border);background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;font-size:14px}:where(html[data-theme=dark]) .archive-preview-note{background:#262626}.archive-preview-note p{color:var(--muted);font-size:13px;margin:8px 0 0;line-height:1.6}.archive-signer-groups{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.archive-signer-groups button{display:flex;align-items:center;gap:20px;border:1px solid var(--accent-border);border-radius:9px;background:#fff;padding:12px 16px;font-size:14px;cursor:pointer}:where(html[data-theme=dark]) .archive-signer-groups button{background:#262626}.archive-signer-groups button.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-ink)}.archive-signer-groups strong{font-size:19px}.archive-preview-table{min-width:1050px}.archive-preview-table th,.archive-preview-table td{padding:12px;font-size:13px;vertical-align:top}.archive-preview-table td strong{display:block;margin:4px 0}.archive-preview-table td>div+div{margin-top:8px}.archive-toolbar select{max-width:290px}.archive-pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin:16px 0;font-size:13px;color:var(--muted)}.archive-pagination>span{margin-right:auto}.archive-source{margin:14px 0;border:1px solid var(--accent-border);border-radius:8px;padding:12px;font-size:13px}.archive-source summary{cursor:pointer;font-weight:600}.archive-source li{margin:8px 0;overflow-wrap:anywhere}.archive-source pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:12px;max-height:360px;overflow:auto;background:#f7f8fa;padding:12px;border-radius:6px}:where(html[data-theme=dark]) .archive-source pre{background:#272f3f}.archive-summary{margin:18px 0}.edited-tag{display:inline-block;font-size:10px;padding:2px 7px;margin-left:6px;border-radius:5px;background:#e8f0fb;color:#2f5f9e;font-weight:500;vertical-align:middle}:where(html[data-theme=dark]) .edited-tag{background:#1c2f4a;color:#90b2de}.archive-total-note{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-6px 0 14px;font-size:13px;color:var(--muted)}@media(max-width:640px){.archive-signer-groups{gap:8px}.archive-signer-groups button{padding:10px 12px;gap:12px;font-size:13px}.archive-toolbar select{max-width:100%;width:100%}.archive-preview-note{padding:14px}.contract-tabs{flex-wrap:wrap}.archive-source{overflow-wrap:anywhere}}@container app (max-width: 640px){.archive-signer-groups{gap:8px}.archive-signer-groups button{padding:10px 12px;gap:12px;font-size:13px}.archive-toolbar select{max-width:100%;width:100%}.archive-preview-note{padding:14px}.contract-tabs{flex-wrap:wrap}.archive-source{overflow-wrap:anywhere}}.project-picker{display:flex;flex-direction:column;gap:8px}.project-options{max-height:150px;overflow:auto;border:1px solid var(--accent-border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.partner-table{min-width:1100px}.partner-contract-table{min-width:640px}.merge-box{display:flex;flex-direction:column;gap:10px;max-width:460px}@media(max-width:640px){.finance-metrics{margin-top:0}.record-table{min-width:640px}.contract-tabs button{padding:9px 12px}}@container app (max-width: 640px){.finance-metrics{margin-top:0}.record-table{min-width:640px}.contract-tabs button{padding:9px 12px}}.agreement-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.agreement-options>div{min-width:0;border:1px solid #e5eaf0;border-radius:9px;padding:12px}:where(html[data-theme=dark]) .agreement-options>div{border:1px solid #3c5067}.agreement-options .field{margin-top:12px}.agreement-bundle{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.agreement-options,.agreement-bundle{grid-template-columns:1fr}}@container app (max-width: 640px){.agreement-options,.agreement-bundle{grid-template-columns:1fr}}.archive-inline{cursor:text;border-radius:4px;padding:0 2px;margin:0 -2px;border-bottom:1px dashed transparent;transition:background .12s}.archive-inline:hover,.archive-inline:focus-visible{background:#eef4fb;border-bottom-color:#7a9cc6;outline:0}:where(html[data-theme=dark]) .archive-inline:hover,:where(html[data-theme=dark]) .archive-inline:focus-visible{background:#1c314a;border-bottom-color:#7a9cc6}.archive-inline-empty{color:#b0762a}:where(html[data-theme=dark]) .archive-inline-empty{color:#e2b984}.archive-inline-changed{background:#fff3c4}:where(html[data-theme=dark]) .archive-inline-changed{background:#4a411c}.archive-inline-wrap{display:inline-block;max-width:100%}.archive-inline-input{width:auto;min-width:90px;max-width:220px;padding:3px 6px;font-size:13px}.archive-inline-pop{position:fixed;z-index:60;max-height:240px;overflow:auto;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #1d2c4433}:where(html[data-theme=dark]) .archive-inline-pop{background:#262626}.archive-inline-pop li{padding:6px 9px;border-radius:5px;font-size:13px;cursor:pointer;overflow-wrap:anywhere}.archive-inline-pop li:hover{background:#eef4fb}:where(html[data-theme=dark]) .archive-inline-pop li:hover{background:#1c314a}.archive-inline-dirty{background:#fffdf3}:where(html[data-theme=dark]) .archive-inline-dirty{background:#4a421c}.archive-inline-err td{padding-top:0}.archive-inline-err .error{margin:0}.archive-docs-cell{min-width:150px}.archive-docs-cell small{display:block;margin-top:4px;color:var(--muted)}.archive-doc-btns{margin-top:6px}.archive-doc-btn{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.archive-doc-upload{position:relative;display:inline-block;border:1px solid var(--accent-border);border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;background:#fff;color:var(--accent-ink)}:where(html[data-theme=dark]) .archive-doc-upload{background:#262626}.archive-doc-upload.disabled{opacity:.5;cursor:default}.archive-doc-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}.archive-doc-error{color:#b3261e!important;overflow-wrap:anywhere}:where(html[data-theme=dark]) .archive-doc-error{color:#ea8782!important}.archive-docs-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.archive-docs-col{border:1px solid var(--accent-border);border-radius:10px;padding:12px;min-width:0}.archive-docs-col h4{margin:0 0 8px;font-size:14px}.archive-docs-col h4 small{margin-left:8px;color:var(--muted);font-weight:400}.archive-doc-list{display:grid;gap:10px;margin-bottom:10px}.archive-doc-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.archive-doc-thumb{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--border);display:block}.archive-doc-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px}.archive-doc-name small{display:block;color:var(--muted)}@media(max-width:640px){.archive-docs-cols{grid-template-columns:1fr}}@container app (max-width: 640px){.archive-docs-cols{grid-template-columns:1fr}}.archive-docs-cols{align-items:start}.archive-docs-cols>.archive-docs-col{margin:0}.doc-carry{display:flex;margin-bottom:12px}.doc-pick-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.doc-pick-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;min-width:0}.doc-pick-list li span{overflow-wrap:anywhere;min-width:0}.doc-pick-list small{color:var(--muted)}.contract-charts{grid-template-columns:minmax(0,1fr);overflow:visible}@media(min-width:900px){:where(html:not([data-layout=mobile])) .contract-charts{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.contract-charts .contract-top.contract-company-summary{overflow:visible;position:relative;z-index:5}.company-picker{position:relative;margin-bottom:12px;max-width:100%}.company-picker-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:40px;padding:8px 12px;border:1px solid #d9cdf0;border-radius:10px;background:#fff;color:#2a2140;font:inherit;font-size:14px;cursor:pointer;text-align:left}:where(html[data-theme=dark]) .company-picker-btn{border:1px solid #44267e;background:#262626;color:#d4cde5}.company-picker-btn span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-picker-btn i{font-style:normal;color:#7542c8}:where(html[data-theme=dark]) .company-picker-btn i{color:#966fd5}.company-picker-panel{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;border:1px solid #d9cdf0;border-radius:10px;background:#fff;box-shadow:0 8px 24px #2814502e;padding:8px}:where(html[data-theme=dark]) .company-picker-panel{border:1px solid #44267e;background:#262626}.company-picker-panel input{width:100%;box-sizing:border-box;margin-bottom:6px}.company-picker-list{max-height:280px;overflow-y:auto}.company-picker-list button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:#fff;color:#2a2140;font:inherit;font-size:13px;text-align:left;cursor:pointer}:where(html[data-theme=dark]) .company-picker-list button{background:#262626;color:#d4cde5}.company-picker-list button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-picker-list button b{font-weight:500;color:#6b6280;flex:none}:where(html[data-theme=dark]) .company-picker-list button b{color:#9a92ac}.company-picker-list button:hover,.company-picker-list button.on{background:#f1eafc}:where(html[data-theme=dark]) .company-picker-list button:hover,:where(html[data-theme=dark]) .company-picker-list button.on{background:#2e1c4a}.company-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}.company-cards>div{border:1px solid #e6dcf6;border-radius:10px;background:#faf7ff;padding:10px 12px;min-width:0}:where(html[data-theme=dark]) .company-cards>div{border:1px solid #462182;background:#2d1c4a}.company-cards span{display:block;font-size:11px;color:#6b6280;margin-bottom:4px}:where(html[data-theme=dark]) .company-cards span{color:#9a92ac}.company-cards strong{font-size:15px;color:#2a2140;overflow-wrap:anywhere}:where(html[data-theme=dark]) .company-cards strong{color:#d4cde5}.company-cards .total{grid-column:1/-1;background:#f1eafc}:where(html[data-theme=dark]) .company-cards .total{background:#2e1c4a}.company-cards .total strong{font-size:18px;color:#7542c8}:where(html[data-theme=dark]) .company-cards .total strong{color:#966fd5}@media(max-width:720px){.lab-metrics.contract-metrics strong{font-size:17px;line-height:1.3;overflow-wrap:anywhere;word-break:break-all}}@container app (max-width: 720px){.lab-metrics.contract-metrics strong{font-size:17px;line-height:1.3;overflow-wrap:anywhere;word-break:break-all}}.excluded-toggle{padding:14px 20px;border-top:1px solid var(--border)}.excluded-row td{color:#9aa1ac}:where(html[data-theme=dark]) .excluded-row td{color:#737d8c}.excluded-row .table-scroll{margin-top:10px}.tag{display:inline-block;font-size:10px;padding:2px 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent-ink);margin-left:6px;vertical-align:middle}.tag-error{background:#fdecec;color:#b8423c}:where(html[data-theme=dark]) .tag-error{background:#4a1c1c;color:#d5827e}.adj-badge{display:inline-block;font-size:10px;padding:2px 6px;border-radius:5px;background:#fff2d9;color:#896013;margin-left:6px;cursor:help}:where(html[data-theme=dark]) .adj-badge{background:#4a3a1c;color:#f2d59f}.totals-row td{font-weight:650;color:#252c37;background:#f8f9fb;border-top:2px solid var(--border)}:where(html[data-theme=dark]) .totals-row td{color:#d0d6e0;background:#252e41}.import-records{margin-top:26px;border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}:where(html[data-theme=dark]) .import-records{background:#262626}.import-records summary{padding:14px 20px;cursor:pointer;font-size:13px;font-weight:600;color:#474e5c;list-style:none}:where(html[data-theme=dark]) .import-records summary{color:#b1b7c3}.import-records summary::-webkit-details-marker{display:none}.import-records summary:before{content:"▸ ";color:var(--accent)}.import-records[open] summary:before{content:"▾ "}.import-records table{margin-top:0}.lock-hint{background:#fff8eb;border:1px solid #f0e4c8;color:#8c743f;border-radius:9px;padding:10px 14px;font-size:12px;margin-bottom:16px}:where(html[data-theme=dark]) .lock-hint{background:#4a3a1c;border:1px solid #806423;color:#d3c29d}section+section{margin-top:26px}.trip-range-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:12px}.adjust-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.adjust-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border);border-radius:9px;padding:9px 13px;font-size:12px}.adjust-row span{color:#333c4b}:where(html[data-theme=dark]) .adjust-row span{color:#bfc7d4}.adjust-row small{color:#9098a5}:where(html[data-theme=dark]) .adjust-row small{color:#727c8d}.adjust-form{border:1px dashed var(--border);border-radius:10px;padding:14px;margin-top:6px}.day-table th,.day-table td{white-space:nowrap;font-size:12px}.day-table tbody tr.mismatch{background:#fff8eb}:where(html[data-theme=dark]) .day-table tbody tr.mismatch{background:#4a3a1c}.kind-badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px}.kind-badge.kind-present{background:#e6f4ed;color:#246e50}:where(html[data-theme=dark]) .kind-badge.kind-present{background:#1f4733;color:#b2e6d1}.kind-badge.kind-weekend{background:#fff0e2;color:#a45c17}:where(html[data-theme=dark]) .kind-badge.kind-weekend{background:#4a321c;color:#efbc8c}.kind-badge.kind-rest{background:#f1f3f6;color:#77818f}:where(html[data-theme=dark]) .kind-badge.kind-rest{background:#28313e;color:#858e9a}.kind-badge.kind-trip{background:#e7f0ff;color:#235fae}:where(html[data-theme=dark]) .kind-badge.kind-trip{background:#1c2d4a;color:#85afe7}.kind-badge.kind-inactive{background:#f1f3f6;color:#aeb5bf}:where(html[data-theme=dark]) .kind-badge.kind-inactive{background:#28313e;color:#717d8e}.late-yes{color:#a45c17;font-weight:600}:where(html[data-theme=dark]) .late-yes{color:#efbc8c}.late-no{color:#69717e}:where(html[data-theme=dark]) .late-no{color:#949ba6}.override-note{display:block;color:#896013;margin-top:2px}:where(html[data-theme=dark]) .override-note{color:#f2d59f}.version-tabs button:last-child{color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:4px}.param-row,.formula-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;margin-bottom:10px}.formula-row input:nth-child(2){grid-column:2/3}.formula-row .row-actions{display:flex;gap:2px}.trial-result{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.variables-help{margin-top:22px;border-top:1px solid var(--border);padding-top:16px}.variables-help ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.variables-help li{font-size:12px;color:#606978}:where(html[data-theme=dark]) .variables-help li{color:#99a1ad}.variables-help li strong{display:inline-block;min-width:96px;color:#333c4b}:where(html[data-theme=dark]) .variables-help li strong{color:#bfc7d4}.variables-help li span{color:#8b93a0}:where(html[data-theme=dark]) .variables-help li span{color:#737d8d}.holiday-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.holiday-cell{border:1px solid var(--border);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.holiday-cell>span{font-size:12px;font-weight:600;color:#333c4b}:where(html[data-theme=dark]) .holiday-cell>span{color:#bfc7d4}@media(max-width:640px){.trip-range-row{grid-template-columns:1fr;gap:8px}.param-row,.formula-row{grid-template-columns:1fr;gap:6px}.formula-row input:nth-child(2){grid-column:auto}.variables-help ul{grid-template-columns:1fr}.holiday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-table th,.day-table td{font-size:11px}}@container app (max-width: 640px){.trip-range-row{grid-template-columns:1fr;gap:8px}.param-row,.formula-row{grid-template-columns:1fr;gap:6px}.formula-row input:nth-child(2){grid-column:auto}.variables-help ul{grid-template-columns:1fr}.holiday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-table th,.day-table td{font-size:11px}}.app-shell[data-module=projects],.app-shell[data-module=laboratory],.app-shell[data-module=rd]{--accent:#087f91;--accent-soft:#e7f5f7;--accent-border:#cce6eb;--accent-ink:#125764}:where(html[data-theme=dark]) .app-shell[data-module=projects],:where(html[data-theme=dark]) .app-shell[data-module=laboratory],:where(html[data-theme=dark]) .app-shell[data-module=rd]{--accent:#0cbeda;--accent-soft:#1c444a;--accent-border:#2e6a75;--accent-ink:#b9e9f2}.app-shell[data-module=analysis]{--accent:#5859bb;--accent-soft:#eeeefa;--accent-border:#dadbf3;--accent-ink:#404186}:where(html[data-theme=dark]) .app-shell[data-module=analysis]{--accent:#6e6fc4;--accent-soft:#1c1c4a;--accent-border:#282b7b;--accent-ink:#a1a2d2}.app-shell[data-module=documents],.app-shell[data-module=research]{--accent:#3f718e;--accent-soft:#edf4f8;--accent-border:#d5e4ee;--accent-ink:#34576d}:where(html[data-theme=dark]) .app-shell[data-module=documents],:where(html[data-theme=dark]) .app-shell[data-module=research]{--accent:#6198b9;--accent-soft:#1d3949;--accent-border:#2f5974;--accent-ink:#b3cbdb}.nav-item[data-module=projects],.nav-item[data-module=laboratory],.nav-item[data-module=rd]{--nav-color:#087f91;--nav-soft:#e7f5f7}:where(html[data-theme=dark]) .nav-item[data-module=projects],:where(html[data-theme=dark]) .nav-item[data-module=laboratory],:where(html[data-theme=dark]) .nav-item[data-module=rd]{--nav-color:#0cbeda;--nav-soft:#1c444a}.nav-item[data-module=analysis]{--nav-color:#5859bb;--nav-soft:#eeeefa}:where(html[data-theme=dark]) .nav-item[data-module=analysis]{--nav-color:#6e6fc4;--nav-soft:#1c1c4a}.nav-item[data-module=documents],.nav-item[data-module=research]{--nav-color:#3f718e;--nav-soft:#edf4f8}:where(html[data-theme=dark]) .nav-item[data-module=documents],:where(html[data-theme=dark]) .nav-item[data-module=research]{--nav-color:#6198b9;--nav-soft:#1d3949}.laboratory{--lab-accent:#087f91;--lab-soft:#e7f5f7;--lab-border:#cce6eb;--lab-ink:#125764}:where(html[data-theme=dark]) .laboratory{--lab-accent:#0cbeda;--lab-soft:#1c444a;--lab-border:#2e6a75;--lab-ink:#b9e9f2}.laboratory.analysis-workspace{--lab-accent:#5859bb;--lab-soft:#eeeefa;--lab-border:#dadbf3;--lab-ink:#404186}:where(html[data-theme=dark]) .laboratory.analysis-workspace{--lab-accent:#6e6fc4;--lab-soft:#1c1c4a;--lab-border:#282b7b;--lab-ink:#a1a2d2}.laboratory.lab-documents{--lab-accent:#3f718e;--lab-soft:#edf4f8;--lab-border:#d5e4ee;--lab-ink:#34576d}:where(html[data-theme=dark]) .laboratory.lab-documents{--lab-accent:#6198b9;--lab-soft:#1d3949;--lab-border:#2f5974;--lab-ink:#b3cbdb}.laboratory .page-heading{background:var(--lab-soft);border-color:var(--lab-border)}.laboratory .page-heading h1{color:var(--lab-ink)}.laboratory .button.primary{background:var(--lab-accent);border-color:var(--lab-accent)}.laboratory .button.primary:hover:not(:disabled){background:var(--lab-ink);border-color:var(--lab-ink)}.laboratory .search svg{color:var(--lab-accent)}.laboratory .table-panel{border-color:var(--lab-border)}.laboratory thead{background:color-mix(in srgb,var(--lab-soft) 65%,white)}.laboratory thead th{color:var(--lab-ink)}.lab-project-layout{display:grid;grid-template-columns:278px minmax(0,1fr);gap:20px;align-items:start}.lab-project-sidebar{border:1px solid var(--lab-border);border-radius:12px;background:#fff;overflow:hidden;min-width:0}:where(html[data-theme=dark]) .lab-project-sidebar{background:#262626}.lab-sidebar-summary{padding:15px 17px;display:flex;justify-content:space-between;align-items:center;background:var(--lab-soft);border-bottom:1px solid var(--lab-border);font-size:13px}.lab-sidebar-summary span{font-size:11px;color:#6c7c87}:where(html[data-theme=dark]) .lab-sidebar-summary span{color:#8c9aa3}.lab-owner-group{padding:14px 12px 0}.lab-owner-group:last-child{padding-bottom:12px}.lab-owner-label{display:flex;justify-content:space-between;color:#586574;font-size:12px;padding:0 5px 9px;font-weight:600}:where(html[data-theme=dark]) .lab-owner-label{color:#9ca7b4}.lab-owner-label small{color:#89929e;font-weight:400}:where(html[data-theme=dark]) .lab-owner-label small{color:#75808e}.lab-project-card{display:block;width:100%;text-align:left;background:#fafbfd;border:1px solid #e9edf2;border-radius:10px;padding:12px;margin-bottom:9px;color:#36424f;transition:background .12s,border-color .12s}:where(html[data-theme=dark]) .lab-project-card{background:#1d2c49;border:1px solid #3d4f67;color:#bcc6d1}.lab-project-card:hover{border-color:#adcbd1;background:#f4fafb}:where(html[data-theme=dark]) .lab-project-card:hover{border-color:#adcbd1;background:#1c434a}.lab-project-card.selected{background:var(--lab-soft);border-color:var(--lab-accent);box-shadow:inset 3px 0 var(--lab-accent)}.lab-project-card>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.lab-project-card>strong{display:block;font-size:14px;font-weight:600;margin:4px 0 7px;overflow-wrap:anywhere}.lab-project-card small{font-size:10px;color:#7c8a96}:where(html[data-theme=dark]) .lab-project-card small{color:#7e8c97}.lab-project-card span{font-size:11px;color:#597481}:where(html[data-theme=dark]) .lab-project-card span{color:#91a8b3}.lab-mini-progress{height:4px;background:#e1e9ed;border-radius:9px;margin-top:10px;overflow:hidden}:where(html[data-theme=dark]) .lab-mini-progress{background:#263740}.lab-mini-progress>span{display:block;height:100%;background:var(--lab-accent);border-radius:9px}.lab-project-content{min-width:0}.lab-project-overview,.lab-flow,.lab-history{border:1px solid var(--lab-border);border-radius:12px;background:#fff;padding:20px;margin-bottom:18px}:where(html[data-theme=dark]) .lab-project-overview,:where(html[data-theme=dark]) .lab-flow,:where(html[data-theme=dark]) .lab-history{background:#262626}.lab-project-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:20px}.lab-project-title small{color:var(--lab-accent);font-size:12px}.lab-project-title h2{margin-top:3px;overflow-wrap:anywhere}.lab-overview-actions{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0 4px}.lab-overview-actions .button{min-height:33px;padding:6px 11px;font-size:12px}.lab-state{display:inline-flex;border-radius:6px;padding:3px 7px;background:#eef3f8;color:#607086;font-size:11px;font-weight:500;white-space:nowrap}:where(html[data-theme=dark]) .lab-state{background:#1e3348;color:#8d9bad}.lab-state.done{background:#e6f4ed;color:#246e50}:where(html[data-theme=dark]) .lab-state.done{background:#1f4733;color:#b2e6d1}.lab-state.warn{background:#fff2e2;color:#a66a21}:where(html[data-theme=dark]) .lab-state.warn{background:#4a351c;color:#e8be8b}.lab-flow .section-heading{margin-top:0;gap:12px}.lab-flow .section-heading small{font-size:11px;color:#88949f}:where(html[data-theme=dark]) .lab-flow .section-heading small{color:#74828f}.lab-flow ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 12px}.lab-flow li{display:flex;gap:9px;align-items:flex-start;min-width:0}.lab-step-number{width:25px;height:25px;flex:none;border:1px solid #e0e7ec;background:#f4f7f9;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:11px;color:#8a96a1}:where(html[data-theme=dark]) .lab-step-number{border:1px solid #3e5565;background:#243642;color:#72818e}.lab-flow .completed .lab-step-number{color:#fff;background:var(--lab-accent);border-color:var(--lab-accent)}:where(html[data-theme=dark]) .lab-flow .completed .lab-step-number{color:#fff}.lab-flow .current .lab-step-number{color:var(--lab-accent);background:var(--lab-soft);border-color:var(--lab-accent)}.lab-flow li>div{min-width:0}.lab-flow strong{display:block;font-size:12px;font-weight:600;margin-bottom:4px}.lab-flow li small{display:block;font-size:10px;color:#929aa5;margin-top:5px}:where(html[data-theme=dark]) .lab-flow li small{color:#737e8c}.lab-flow li p{font-size:11px;color:#65717f;overflow-wrap:anywhere;margin-top:5px;white-space:pre-wrap}:where(html[data-theme=dark]) .lab-flow li p{color:#939da9}.lab-flow .row-actions{gap:10px;margin-top:7px}.lab-flow .text-button{font-size:11px}.lab-tabs{margin-bottom:14px;width:max-content}.lab-tabs button.selected{color:var(--lab-accent);background:var(--lab-soft)}.lab-paragraph{margin-top:17px}.lab-paragraph h4{font-size:12px;color:#6b7988;font-weight:500;margin:0 0 5px}:where(html[data-theme=dark]) .lab-paragraph h4{color:#8b97a4}.lab-paragraph p{font-size:13px;color:#3f4b59;white-space:pre-wrap;overflow-wrap:anywhere}:where(html[data-theme=dark]) .lab-paragraph p{color:#b3bec9}.lab-history .timeline{margin-bottom:0}.lab-history .timeline p{font-size:13px;margin-top:5px;white-space:pre-wrap}.lab-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.lab-metrics>div{padding:17px 20px;border:1px solid var(--lab-border);border-radius:12px;background:#fff}:where(html[data-theme=dark]) .lab-metrics>div{background:#262626}.lab-metrics strong{display:block;font-size:27px;font-weight:650;line-height:1.25;color:var(--lab-ink)}.lab-metrics span{display:block;font-size:12px;color:#7e8997;margin-top:6px}:where(html[data-theme=dark]) .lab-metrics span{color:#7d8896}.lab-priority{font-size:12px;color:#77818c}:where(html[data-theme=dark]) .lab-priority{color:#88909a}.lab-priority.urgent{color:#ad6a20;background:#fff4e4;padding:3px 7px;border-radius:6px}:where(html[data-theme=dark]) .lab-priority.urgent{color:#e9ba86;background:#4a371c}.lab-wrap-cell{white-space:normal!important;min-width:140px;max-width:240px}.lab-result{background:#f4f4fb;border:1px solid #e1e2f5;border-radius:10px;padding:17px;margin:20px 0}:where(html[data-theme=dark]) .lab-result{background:#1c1c4a;border:1px solid #292d7a}.lab-result>p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.lab-result h3{color:#4f5195;font-size:14px;margin-bottom:8px}:where(html[data-theme=dark]) .lab-result h3{color:#9798c8}.lab-saved-note{margin-top:15px;padding:12px;border-radius:9px;background:#edf7f2;color:#347453;font-size:12px}:where(html[data-theme=dark]) .lab-saved-note{background:#1f4733;color:#aedbc3}.lab-file-list{display:flex;flex-direction:column;gap:9px}.lab-file-row{display:flex;align-items:center;gap:10px;border:1px solid #e6eaf0;border-radius:9px;padding:12px}:where(html[data-theme=dark]) .lab-file-row{border:1px solid #3d4e66}.lab-file-row>svg{color:#778aa0;flex:none}:where(html[data-theme=dark]) .lab-file-row>svg{color:#73879d}.lab-file-row>div{flex:1;min-width:0}.lab-file-row a,.lab-file-row strong{font-size:13px;overflow-wrap:anywhere;font-weight:500}.lab-file-row small{display:block;margin-top:3px;font-size:11px;color:#8b95a2;overflow-wrap:anywhere}:where(html[data-theme=dark]) .lab-file-row small{color:#717e8e}.lab-file-row small.red{color:#c75954}:where(html[data-theme=dark]) .lab-file-row small.red{color:#ce6e6a}.lab-file-version{font-size:10px;padding:3px 6px;border-radius:5px;background:#f0f2f5;color:#7b8590;white-space:nowrap}:where(html[data-theme=dark]) .lab-file-version{background:#29313d;color:#848d97}.lab-documents .toolbar .filter-row{flex-wrap:wrap}.lab-documents .toolbar select{max-width:210px}.lab-documents tbody td:first-child{max-width:300px}@media(min-width:1500px){:where(html:not([data-layout=mobile])) .lab-project-layout{grid-template-columns:300px minmax(0,1fr)}:where(html:not([data-layout=mobile])) .lab-flow ol{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:1100px){.lab-project-layout{grid-template-columns:235px minmax(0,1fr);gap:15px}.lab-project-overview,.lab-flow,.lab-history{padding:17px}.lab-flow ol{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-project-card>div:last-of-type{flex-wrap:wrap}.lab-metrics{gap:10px}.lab-metrics>div{padding:15px}}@container app (max-width: 1100px){.lab-project-layout{grid-template-columns:235px minmax(0,1fr);gap:15px}.lab-project-overview,.lab-flow,.lab-history{padding:17px}.lab-flow ol{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-project-card>div:last-of-type{flex-wrap:wrap}.lab-metrics{gap:10px}.lab-metrics>div{padding:15px}}@media(max-width:850px){.lab-project-layout{grid-template-columns:1fr}.lab-project-sidebar{max-height:345px;overflow:auto}.lab-owner-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.lab-owner-label{grid-column:1/-1}.lab-project-content .detail-summary,.lab-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tabs{width:100%}.lab-flow ol{grid-template-columns:repeat(4,minmax(0,1fr))}}@container app (max-width: 850px){.lab-project-layout{grid-template-columns:1fr}.lab-project-sidebar{max-height:345px;overflow:auto}.lab-owner-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.lab-owner-label{grid-column:1/-1}.lab-project-content .detail-summary,.lab-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tabs{width:100%}.lab-flow ol{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.lab-project-overview,.lab-flow,.lab-history{padding:15px}.lab-project-title h2{font-size:18px}.lab-flow ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 12px}.lab-project-sidebar .empty{height:175px}.lab-owner-group{grid-template-columns:1fr}.lab-project-card{padding:10px}.lab-project-sidebar{max-height:310px}.lab-metrics>div{padding:13px 15px}.lab-metrics strong{font-size:24px}.lab-file-row{flex-wrap:wrap;padding:10px}.lab-file-row>div{flex-basis:calc(100% - 40px)}.lab-file-row>.text-button{margin-left:29px}.lab-tabs button{padding:7px 9px}.lab-documents .toolbar select{max-width:160px}.lab-flow .section-heading{align-items:flex-start;flex-direction:column;gap:0}.lab-flow .section-heading small{margin-bottom:12px}}@container app (max-width: 640px){.lab-project-overview,.lab-flow,.lab-history{padding:15px}.lab-project-title h2{font-size:18px}.lab-flow ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 12px}.lab-project-sidebar .empty{height:175px}.lab-owner-group{grid-template-columns:1fr}.lab-project-card{padding:10px}.lab-project-sidebar{max-height:310px}.lab-metrics>div{padding:13px 15px}.lab-metrics strong{font-size:24px}.lab-file-row{flex-wrap:wrap;padding:10px}.lab-file-row>div{flex-basis:calc(100% - 40px)}.lab-file-row>.text-button{margin-left:29px}.lab-tabs button{padding:7px 9px}.lab-documents .toolbar select{max-width:160px}.lab-flow .section-heading{align-items:flex-start;flex-direction:column;gap:0}.lab-flow .section-heading small{margin-bottom:12px}}.lab-unassigned-note{margin-top:-10px;margin-bottom:18px;color:#8c6b35}:where(html[data-theme=dark]) .lab-unassigned-note{color:#dac39d}@media(min-width:1101px){:where(html:not([data-layout=mobile])) .lab-project-overview .detail-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}:where(html:not([data-layout=mobile])) .lab-project-overview{padding:18px}:where(html:not([data-layout=mobile])) .lab-project-title{margin-bottom:14px}:where(html:not([data-layout=mobile])) .lab-project-overview .lab-paragraph{margin-top:12px}}.laboratory table .row-actions{flex-wrap:nowrap}.laboratory .table-scroll table{min-width:760px}@media(max-width:640px){.topbar-actions{margin-left:auto;gap:10px}}@container app (max-width: 640px){.topbar-actions{margin-left:auto;gap:10px}}.lab-conclusion{display:inline-block;font-size:11px;padding:3px 7px;border-radius:6px;background:#eef1f5;color:#566070;white-space:nowrap}:where(html[data-theme=dark]) .lab-conclusion{background:#263140;color:#a0a8b6}.lab-conclusion.pass{background:#e6f4ed;color:#246e50}:where(html[data-theme=dark]) .lab-conclusion.pass{background:#1f4733;color:#b2e6d1}.lab-conclusion.fail{background:#fdecec;color:#b8423c;font-weight:600}:where(html[data-theme=dark]) .lab-conclusion.fail{background:#4a1c1c;color:#d5827e}.lab-test-presets{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:6px}.lab-linked{margin-top:18px}.lab-linked ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lab-linked li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid #e6eaf0;border-radius:9px;padding:9px 11px}:where(html[data-theme=dark]) .lab-linked li{border:1px solid #3d4e66}.lab-linked li>span{color:#7d8492;font-size:12px}:where(html[data-theme=dark]) .lab-linked li>span{color:#828896}.lab-batch-sample{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0}.lab-batch-sample small{color:#8b95a2}:where(html[data-theme=dark]) .lab-batch-sample small{color:#717e8e}.lab-yield{position:relative;width:110px;height:18px;background:#eef1f5;border-radius:5px;overflow:hidden}:where(html[data-theme=dark]) .lab-yield{background:#263140}.lab-yield span{position:absolute;inset:0 auto 0 0;background:#bfe3d2}:where(html[data-theme=dark]) .lab-yield span{background:#5fb98f}.lab-yield b{position:relative;display:block;text-align:center;font-size:11px;line-height:18px;color:#246e50}:where(html[data-theme=dark]) .lab-yield b{color:#b2e6d1}.lab-card-members{display:block;margin-top:2px;font-size:11px;color:#6b7a8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:where(html[data-theme=dark]) .lab-card-members{color:#8895a4}.lab-card-period{margin-top:7px;flex-wrap:wrap;gap:4px!important}.lab-card-period .lab-state{font-size:10px}.overview-body{--ov-accent:#1767d2;--ov-accent-ink:#194d94;--ov-track:#e7ebf2;--ov-a:#1767d2;--ov-b:#147d60;--ov-good:#246e50;--ov-good-soft:#e6f4ed;--ov-bad:#b8423c;--ov-bad-soft:#fdecec;--ov-ref:#8b93a0;--ov-warn:#a45c17;--ov-warn-soft:#fff3e6;--ov-member:#5b6578;--ov-member-soft:#eef1f5;display:flex;flex-direction:column;gap:28px}:where(html[data-theme=dark]) .overview-body{--ov-accent:#478deb;--ov-accent-ink:#97bcee;--ov-track:#242f42;--ov-a:#478deb;--ov-b:#a8f1dd;--ov-good:#b2e6d1;--ov-good-soft:#1f4733;--ov-bad:#cd6a65;--ov-bad-soft:#4a1c1c;--ov-ref:#8f97a3;--ov-warn:#efbc8c;--ov-warn-soft:#4a341c;--ov-member:#99a2b2;--ov-member-soft:#263140}.overview-summary{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 18px;color:#42495a;font-size:14px;line-height:1.7}:where(html[data-theme=dark]) .overview-summary{background:#262626;color:#b3b8c7}.overview-section h2{font-size:17px;margin-bottom:14px}.overview-section{display:flex;flex-direction:column;gap:14px}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.kpi-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}:where(html[data-theme=dark]) .kpi-card{background:#262626}.kpi-label{font-size:12px;color:var(--muted)}.kpi-value{font-size:22px;font-weight:650;color:#1d2531}:where(html[data-theme=dark]) .kpi-value{color:#cfd7e3}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.person-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}:where(html[data-theme=dark]) .person-card{background:#262626}.person-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.person-head strong{display:block;font-size:15px}.person-head small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.progress-ring{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;position:relative}.progress-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}:where(html[data-theme=dark]) .progress-ring:before{background:#262626}.progress-ring span{position:relative;font-size:11px;font-weight:650;color:#333c4b}:where(html[data-theme=dark]) .progress-ring span{color:#bfc7d4}.person-projects{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.project-row{border:1px solid var(--border);border-radius:10px;overflow:hidden}.project-row>div,.project-row button{display:block;width:100%;text-align:left;border:0;background:#fcfcfd;padding:10px 12px;font:inherit;color:inherit}:where(html[data-theme=dark]) .project-row>div,:where(html[data-theme=dark]) .project-row button{background:#29293d}.project-row.clickable button{cursor:pointer}.project-row.clickable button:hover{background:#f4f7fc}:where(html[data-theme=dark]) .project-row.clickable button:hover{background:#1c2d4a}.project-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-code{font-size:13px;font-weight:560;color:#252c37;overflow-wrap:anywhere}:where(html[data-theme=dark]) .project-code{color:#d0d6e0}.role-tag{font-size:10px;padding:3px 7px;border-radius:6px;white-space:nowrap;flex:none}.role-owner{background:#eaf2ff;color:var(--ov-accent-ink)}:where(html[data-theme=dark]) .role-owner{background:#1c2e4a}.role-member{background:var(--ov-member-soft);color:var(--ov-member)}.project-row-meta{display:flex;align-items:center;gap:10px;margin-top:8px}.stage-tag{font-size:11px;color:#606978;background:#f1f3f6;padding:3px 8px;border-radius:6px;white-space:nowrap;flex:none}:where(html[data-theme=dark]) .stage-tag{color:#99a1ad;background:#28313e}.project-row-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.project-row-foot small{color:var(--muted);font-size:11px}.badge-stale{font-size:10px;padding:3px 7px;border-radius:6px;background:var(--ov-warn-soft);color:var(--ov-warn);white-space:nowrap;flex:none}.progress-bar{flex:1;height:8px;border-radius:5px;background:var(--ov-track);position:relative;display:flex;align-items:center;min-width:60px}.progress-bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--ov-accent)}.progress-bar span{position:absolute;right:-34px;font-size:11px;color:var(--muted);white-space:nowrap}.bars{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px}:where(html[data-theme=dark]) .bars{background:#262626}.bar-row{display:flex;align-items:center;gap:10px}.bar-label{width:82px;flex:none;font-size:12px;color:#4a5162;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:where(html[data-theme=dark]) .bar-label{color:#acb2c0}.bar-track{flex:1;height:10px;border-radius:6px;background:var(--ov-track)}.bar-fill{height:100%;border-radius:6px;background:var(--ov-accent)}.bar-value{width:28px;flex:none;text-align:right;font-size:12px;color:#333c4b;font-weight:560}:where(html[data-theme=dark]) .bar-value{color:#bfc7d4}.bars-total{margin-top:2px}.overview-grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;align-items:stretch}.day-chart-wrap{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}:where(html[data-theme=dark]) .day-chart-wrap{background:#262626}.day-chart{width:100%;height:130px;display:block}.chart-axis{stroke:var(--ov-track);stroke-width:1}.chart-tick{font-size:6px;fill:var(--muted)}.bar-fill-a{fill:var(--ov-a)}.bar-fill-b{fill:var(--ov-b)}.chart-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:#606978}:where(html[data-theme=dark]) .chart-legend{color:#99a1ad}.legend-dot{width:8px;height:8px;border-radius:2px;display:inline-block}.legend-dot.dot-a{background:var(--ov-a)}.legend-dot.dot-b{background:var(--ov-b);margin-left:14px}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f4f7fc}:where(html[data-theme=dark]) .clickable-row:hover{background:#1c2d4a}.conclusion-fail{color:var(--ov-bad);background:var(--ov-bad-soft);padding:3px 7px;border-radius:6px;font-weight:560;white-space:nowrap}.conclusion-pass{color:var(--ov-good);background:var(--ov-good-soft);padding:3px 7px;border-radius:6px;white-space:nowrap}.conclusion-ref{color:var(--ov-ref);white-space:nowrap}@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid-2{grid-template-columns:1fr}}@container app (max-width: 1150px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid-2{grid-template-columns:1fr}}@media(max-width:640px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.people-grid{grid-template-columns:1fr}.progress-bar span{position:static;margin-left:8px}.bar-label{width:64px}.table-scroll table{min-width:720px}.overview-summary{font-size:13px}}@container app (max-width: 640px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.people-grid{grid-template-columns:1fr}.progress-bar span{position:static;margin-left:8px}.bar-label{width:64px}.table-scroll table{min-width:720px}.overview-summary{font-size:13px}}:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;color:#1d1d1f;background:#f5f5f7;font-synthesis:none;font-size:14px;line-height:1.5;--blue:#007aff;--border:#e2e4e9;--muted:#7d8492;--radius:12px}:root:where([data-theme=dark]){color:#e5e5e6;background:#1c1c22;--blue:#3395ff;--border:#393e4b;--muted:#828896}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:var(--blue);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #007aff55;outline-offset:2px}:where(html[data-theme=dark]) button:focus-visible,:where(html[data-theme=dark]) a:focus-visible,:where(html[data-theme=dark]) input:focus-visible,:where(html[data-theme=dark]) select:focus-visible,:where(html[data-theme=dark]) textarea:focus-visible{outline:3px solid rgba(0,122,255,.333)}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-.8px;font-weight:680;line-height:1.3}h2{font-size:20px;font-weight:650}h3{font-size:16px;font-weight:600;margin-bottom:12px}p{line-height:1.65}fieldset{border:0;padding:0;margin:0;min-width:0}.app-shell{min-height:100dvh;display:flex}.sidebar{width:224px;flex:none;background:#ffffffe6;border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:28px 14px 16px;z-index:20}:where(html[data-theme=dark]) .sidebar{background:#262626e6}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:2px 10px 30px}.brand-icon{width:44px;height:44px;border-radius:11px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 3px 9px #007aff18}:where(html[data-theme=dark]) .brand-icon{color:#fff}.sidebar-brand strong{font-size:18px;white-space:nowrap;letter-spacing:-.3px}.sidebar-brand span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;display:flex;align-items:center;gap:13px;width:100%;padding:13px 16px;color:#394150;border-radius:10px;text-align:left;font-size:15px;font-weight:500}:where(html[data-theme=dark]) .nav-item{color:#bbc2cf}.nav-item.active{color:var(--blue);background:#e8f2ff;font-weight:600}:where(html[data-theme=dark]) .nav-item.active{background:#1c304a}.nav-item:hover:not(.active){background:#f4f5f8}:where(html[data-theme=dark]) .nav-item:hover:not(.active){background:#282d3e}.sidebar-bottom{margin-top:auto;padding-top:24px}.user-row{border-top:1px solid var(--border);margin:0 8px;padding:20px 2px 13px;display:flex;gap:12px;align-items:center;min-width:0}.user-row strong{font-size:13px;display:block;overflow-wrap:anywhere}.user-row small{display:block;color:var(--muted);font-size:11px}.avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#e8e9ed;border-radius:50%;font-size:16px;color:#444c59;flex:none;font-weight:600}:where(html[data-theme=dark]) .avatar{background:#131419;color:#b3bac5}.avatar.small{width:30px;height:30px;font-size:14px}.sidebar-bottom .nav-item{font-size:13px;padding:11px 14px}.logout{color:var(--muted)}.workspace{margin-left:224px;min-width:0;width:calc(100% - 224px)}.topbar{height:60px;border-bottom:1px solid var(--border);padding:0 32px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#596170;background:#f8f8fa}:where(html[data-theme=dark]) .topbar{color:#a0a7b3;background:#1c1c27}.breadcrumb-divider{padding:0 16px;color:#9399a3}:where(html[data-theme=dark]) .breadcrumb-divider{color:#757d8a}main{padding:30px 32px 32px;max-width:1600px;margin:auto;min-width:0}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-heading p{color:#666e7c;font-size:16px;margin-top:8px}:where(html[data-theme=dark]) .page-heading p{color:#969ca8}.heading-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.button{min-height:38px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#333c4b;padding:8px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-weight:500;font-size:13px}:where(html[data-theme=dark]) .button{background:#262626;color:#bfc7d4}.button:hover:not(:disabled){background:#fafbfc;border-color:#c6cbd4}:where(html[data-theme=dark]) .button:hover:not(:disabled){background:#263340;border-color:#313640}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover:not(:disabled){background:#006ae0;border-color:#006ae0}:where(html[data-theme=dark]) .button.primary:hover:not(:disabled){background:#006ae0;border-color:#006ae0}.heading-actions .primary{padding:11px 18px;min-height:44px;font-size:14px}.button.danger{background:#d73437;color:#fff;border-color:#d73437}:where(html[data-theme=dark]) .button.danger{background:#d73437;border-color:#d73437}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;background:transparent;border:0;color:#7a8190;border-radius:8px}:where(html[data-theme=dark]) .icon-button{color:#848a98}.icon-button:hover{background:#f0f1f4}:where(html[data-theme=dark]) .icon-button:hover{background:#181a20}.text-button{background:none;border:0;padding:3px 0;color:var(--blue);font-size:13px;white-space:nowrap}.text-button:hover{text-decoration:underline}.red{color:#d6373f}:where(html[data-theme=dark]) .red{color:#df6369}.toolbar{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap}.segments{display:flex;align-items:center;border:1px solid var(--border);padding:4px;border-radius:11px;background:#fff;overflow:auto;max-width:100%}:where(html[data-theme=dark]) .segments{background:#262626}.segments button{border:0;background:none;font-size:13px;color:#3a4350;padding:8px 15px;border-radius:8px;white-space:nowrap;position:relative}:where(html[data-theme=dark]) .segments button{color:#bbc3ce}.segments button.selected{color:var(--blue);background:#e8f2ff;font-weight:600}:where(html[data-theme=dark]) .segments button.selected{background:#1c304a}.segments button:not(.selected):hover{background:#f7f8fa}:where(html[data-theme=dark]) .segments button:not(.selected):hover{background:#272f3f}.search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:11px;padding:9px 13px;color:#798190;width:280px;max-width:100%}:where(html[data-theme=dark]) .search{background:#262626;color:#848b99}.search input{border:0;outline:0;width:100%;min-width:0;background:transparent;padding:0;font-size:13px;box-shadow:none}.search input::placeholder{color:#89909d}:where(html[data-theme=dark]) .search input::placeholder{color:#767f8e}.table-panel{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;min-width:0}:where(html[data-theme=dark]) .table-panel{background:#262626}.table-scroll{overflow-x:auto;overscroll-behavior-x:contain;max-width:100%}.table-panel{overflow:clip}.table-scroll.has-rail{scrollbar-width:none}.table-scroll.has-rail::-webkit-scrollbar{display:none}.scroll-rail{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:8px;padding:5px 8px;background:#eef1f5;border-top:1px solid var(--border);-webkit-user-select:none;user-select:none}:where(html[data-theme=dark]) .scroll-rail{background:#263140}.scroll-rail button{flex:none;width:30px;height:22px;padding:0;border:1px solid #c9d0d9;border-radius:6px;background:#fff;color:#3d4653;font-size:17px;line-height:1;cursor:pointer}:where(html[data-theme=dark]) .scroll-rail button{border:1px solid #303944;background:#262626;color:#b8c0cb}.scroll-rail button:hover{background:#e3e8ef}:where(html[data-theme=dark]) .scroll-rail button:hover{background:#253141}.scroll-rail-track{position:relative;flex:1;height:14px;border-radius:7px;background:#d5dbe3;cursor:pointer;touch-action:none}:where(html[data-theme=dark]) .scroll-rail-track{background:#0c0f12}.scroll-rail-thumb{position:absolute;top:0;left:0;height:14px;border-radius:7px;background:#7b8696;cursor:grab;touch-action:none}:where(html[data-theme=dark]) .scroll-rail-thumb{background:#697484}.scroll-rail-thumb:hover{background:#5f6b7b}:where(html[data-theme=dark]) .scroll-rail-thumb:hover{background:#8490a0}.scroll-rail-thumb:active{cursor:grabbing;background:#4a5563}:where(html[data-theme=dark]) .scroll-rail-thumb:active{background:#9ca7b5}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}thead{background:#f8f9fb}:where(html[data-theme=dark]) thead{background:#252e41}th{font-weight:600;color:#474e5c;white-space:nowrap}:where(html[data-theme=dark]) th{color:#b1b7c3}th,td{padding:16px 20px;border-bottom:1px solid var(--border);vertical-align:middle}thead th{padding-top:16px;padding-bottom:16px}td{color:#464c57}:where(html[data-theme=dark]) td{color:#b5bac3}td strong{display:block;font-weight:550;color:#252c37;max-width:320px;overflow-wrap:anywhere}:where(html[data-theme=dark]) td strong{color:#d0d6e0}td small{display:block;font-size:11px;color:#8a919c;margin-top:4px;max-width:300px}:where(html[data-theme=dark]) td small{color:#78808c}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfcfe}:where(html[data-theme=dark]) tbody tr:hover{background:#1c1c4a}.row-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;white-space:nowrap}.empty{height:212px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#a7aebb;text-align:center;padding:20px}:where(html[data-theme=dark]) .empty{color:#6f7b90}.empty strong{font-size:16px;color:#48505e;font-weight:550;margin-top:3px}:where(html[data-theme=dark]) .empty strong{color:#afb6c2}.empty p{font-size:13px;color:#8a93a2}:where(html[data-theme=dark]) .empty p{color:#717c8e}.status{font-size:11px;padding:4px 8px;border-radius:6px;display:inline-block;color:#77818f;background:#f1f3f6;white-space:nowrap}:where(html[data-theme=dark]) .status{color:#858e9a;background:#28313e}.status-1{background:#eaf1ff;color:#3574be}:where(html[data-theme=dark]) .status-1{background:#1c2b4a;color:#7aa6da}.status-2{background:#fff3e6;color:#bd7924}:where(html[data-theme=dark]) .status-2{background:#4a341c;color:#e6b67b}.status-3{background:#f0ebff;color:#815db5}:where(html[data-theme=dark]) .status-3{background:#281c4a;color:#997bc3}.status-4{background:#e8f6ef;color:#39926a}:where(html[data-theme=dark]) .status-4{background:#1d4933;color:#99d7bb}.page-note{color:#8b93a0;font-size:12px;margin-top:17px}:where(html[data-theme=dark]) .page-note{color:#737d8d}.loading{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);padding:30px}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#fff1f1;border:1px solid #f1c9ca;color:#b6373b;border-radius:9px;padding:10px 13px;font-size:13px;overflow-wrap:anywhere;margin-bottom:14px}:where(html[data-theme=dark]) .error{background:#4a1c1c;border:1px solid #822224;color:#d98082}.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filter-row select,.filter-row input{width:auto;max-width:170px;font-size:13px}.inline-label{display:flex;align-items:center;gap:12px;color:#68717f;font-size:13px}:where(html[data-theme=dark]) .inline-label{color:#939ba7}.dialog{border:1px solid var(--border);border-radius:14px;padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);background:#fff;color:#1d1d1f;box-shadow:0 18px 80px #1d2c4433;overflow:auto}:where(html[data-theme=dark]) .dialog{background:#262626;color:#e5e5e6}.wide-dialog{width:min(840px,calc(100vw - 32px))}.dialog::backdrop{background:#19243a33;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}:where(html[data-theme=dark]) .dialog::backdrop{background:#19243a33}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;background:#fff}:where(html[data-theme=dark]) .dialog-header{background:#262626}.dialog-header h2{font-size:19px;overflow-wrap:anywhere}.dialog-content{padding:22px 24px}.dialog-content>p{margin-bottom:15px}.dialog-footer{padding:16px 24px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;margin-bottom:14px;color:#555e6d;font-size:12px}:where(html[data-theme=dark]) .field{color:#a2aab7}.form-grid .field{margin-bottom:0}.field>span{font-weight:500}.field.wide{grid-column:1/-1}.field small{font-size:11px;color:#9097a2}:where(html[data-theme=dark]) .field small{color:#747d8b}input,select,textarea{border:1px solid #dce0e6;background:#fff;border-radius:8px;padding:9px 11px;color:#303847;min-width:0;width:100%;font-size:13px}:where(html[data-theme=dark]) input,:where(html[data-theme=dark]) select,:where(html[data-theme=dark]) textarea{border:1px solid #363e4b;background:#262626;color:#c3c9d6}input::placeholder,textarea::placeholder{color:#a0a6b0}:where(html[data-theme=dark]) input::placeholder,:where(html[data-theme=dark]) textarea::placeholder{color:#747d8b}input[readonly]{background:#f8f9fb;color:#7b8391}:where(html[data-theme=dark]) input[readonly]{background:#252e41;color:#838a97}textarea{resize:vertical;line-height:1.6;min-height:60px}input[type=file]{padding:9px;font-size:12px}input[type=checkbox]{width:15px;height:15px;accent-color:var(--blue);padding:0;flex:none}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-heading h3{margin:0}.section-heading h2{font-size:19px}.line-form{border:1px solid var(--border);border-radius:10px;padding:15px 17px;margin-bottom:14px;background:#fcfcfd}:where(html[data-theme=dark]) .line-form{background:#29293d}.line-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.line-heading strong{font-weight:600;font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;margin-top:6px;border-top:1px solid var(--border)}.form-actions .button{min-width:82px}.detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.detail-summary span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.detail-summary strong{font-size:13px;font-weight:550;overflow-wrap:anywhere}.detail-note{padding:12px 14px;background:#f7f8fa;border-radius:9px;color:#69717e;font-size:13px}:where(html[data-theme=dark]) .detail-note{background:#272f3f;color:#949ba6}.detail-line{border:1px solid var(--border);border-radius:10px;padding:15px 18px;margin-bottom:12px}.detail-line p{font-size:12px;margin-bottom:6px}.detail-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:14px}.detail-controls .field{margin-bottom:0;width:140px}.upload-button{position:relative;cursor:pointer;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0}.upload-button.disabled{opacity:.5;cursor:default}.attachment-list{display:flex;flex-direction:column;gap:9px}.attachment{display:flex;align-items:center;gap:9px;overflow-wrap:anywhere;font-size:13px}.attachment small{display:block;font-size:10px;color:#9299a4;margin-top:2px}:where(html[data-theme=dark]) .attachment small{color:#747d8b}.attachment svg{flex:none}.attachment-section{padding-bottom:15px;border-top:1px solid var(--border)}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:0 0 16px 18px;margin-left:5px;border-left:1px solid #dce1e8;position:relative;font-size:13px}:where(html[data-theme=dark]) .timeline li{border-left:1px solid #414f62}.timeline li:before{content:"";width:7px;height:7px;border-radius:50%;position:absolute;left:-4px;top:7px;background:#9ebce1}:where(html[data-theme=dark]) .timeline li:before{background:#5086c9}.timeline small{display:block;color:#939aa5;font-size:11px;margin-top:5px}:where(html[data-theme=dark]) .timeline small{color:#747d8b}.muted{color:#8b93a0;font-size:12px}:where(html[data-theme=dark]) .muted{color:#737d8d}.notice{background:#fff;border:1px solid var(--border);border-radius:11px;display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:22px}:where(html[data-theme=dark]) .notice{background:#262626}.notice strong{font-size:13px;white-space:nowrap;color:#6a717e}:where(html[data-theme=dark]) .notice strong{color:#949aa5}.notice span{font-size:12px;color:#9299a5;flex:1}:where(html[data-theme=dark]) .notice span{color:#737c8c}.notice .button{font-size:12px;background:#f7f8fa}:where(html[data-theme=dark]) .notice .button{background:#272f3f}.rules-summary{margin-top:24px}.rule-summary-list{display:flex;gap:28px;flex-wrap:wrap}.rule-summary-list>span{font-size:13px;color:#606978}:where(html[data-theme=dark]) .rule-summary-list>span{color:#99a1ad}.rule-summary-list small{display:block;color:#9299a5;font-size:11px;margin:4px 0 0 13px}:where(html[data-theme=dark]) .rule-summary-list small{color:#737c8c}.dot{display:inline-block;width:6px;height:6px;background:#aeb5bf;border-radius:50%;margin-right:7px;vertical-align:middle}:where(html[data-theme=dark]) .dot{background:#404751}.dot.enabled{background:#3f9d77}:where(html[data-theme=dark]) .dot.enabled{background:#3f9d77}.warning{background:#fff8eb;border:1px solid #f0e4c8;border-radius:10px;padding:13px 16px;margin-bottom:16px;font-size:12px;color:#8c743f}:where(html[data-theme=dark]) .warning{background:#4a3a1c;border:1px solid #806423;color:#d3c29d}.warning ul{margin:6px 0 0;padding-left:18px}.sheet-tabs{display:flex;gap:6px;overflow-x:auto;margin:16px 0 12px}.sheet-tabs button{border:1px solid var(--border);padding:8px 13px;border-radius:8px;background:#fff;color:#606978;white-space:nowrap;font-size:12px}:where(html[data-theme=dark]) .sheet-tabs button{background:#262626;color:#99a1ad}.sheet-tabs .selected{border-color:#bddeff;color:var(--blue);background:#eef6ff}:where(html[data-theme=dark]) .sheet-tabs .selected{border-color:#0052a3;background:#1c324a}.preview-table{margin-top:10px}.preview-table td,.preview-table th{font-size:12px;padding:9px 12px;min-width:90px;max-width:320px;overflow-wrap:anywhere;white-space:pre-wrap}.preview-table th{min-width:40px;background:#f8f9fb;color:#9098a5;text-align:center}:where(html[data-theme=dark]) .preview-table th{background:#252e41;color:#727c8d}.inset{padding:18px}.check{display:flex;align-items:center;gap:7px;font-size:12px;color:#65707e;cursor:pointer}:where(html[data-theme=dark]) .check{color:#949da9}.weekday-options{display:flex;gap:16px;flex-wrap:wrap;padding:5px 0}.permission-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:17px}.permissions-summary{max-width:340px;font-size:12px;line-height:1.7;display:flex;align-items:center;gap:6px}.audit-heading{margin-top:32px}.no-access{padding:30px 0}.no-access p{margin-top:15px;color:var(--muted)}.session-loading{height:100dvh;display:flex;align-items:center;justify-content:center}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-panel{width:390px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:35px 34px;box-shadow:0 12px 40px #23344b08}:where(html[data-theme=dark]) .login-panel{background:#262626}.login-brand{text-align:center;margin-bottom:28px}.login-brand .brand-icon{margin:0 auto 18px;width:50px;height:50px}.login-brand h1{font-size:25px;letter-spacing:-.5px}.login-brand p{font-size:13px;color:#9097a3;margin-top:8px}:where(html[data-theme=dark]) .login-brand p{color:#747c8b}.login-panel .field{margin-bottom:18px}.login-submit{width:100%;min-height:41px;margin-top:6px}.login-note{font-size:11px;color:#9aa1ad;margin-top:24px;text-align:center}:where(html[data-theme=dark]) .login-note{color:#727c8d}.mobile-menu,.mobile-close,.mobile-shade{display:none}@media(min-width:1500px){:where(html:not([data-layout=mobile])) main{padding:36px 40px}:where(html:not([data-layout=mobile])) .topbar{padding:0 40px}:where(html:not([data-layout=mobile])) .page-heading{margin-bottom:30px}}@media(max-width:1150px){main{padding:26px 24px}.toolbar{gap:12px}.segments button{padding:7px 10px}.search{width:245px}.heading-actions{flex-wrap:wrap;justify-content:flex-end}th,td{padding:15px 16px}.notice{flex-wrap:wrap}.notice span{min-width:200px}.notice .button{margin-left:auto}}@container app (max-width: 1150px){main{padding:26px 24px}.toolbar{gap:12px}.segments button{padding:7px 10px}.search{width:245px}.heading-actions{flex-wrap:wrap;justify-content:flex-end}th,td{padding:15px 16px}.notice{flex-wrap:wrap}.notice span{min-width:200px}.notice .button{margin-left:auto}}@media(max-width:850px){.sidebar{width:200px;padding:24px 12px}.sidebar-brand{gap:9px;padding:0 7px 26px}.sidebar-brand strong{font-size:16px}.brand-icon{width:39px;height:39px}.workspace{margin-left:200px;width:calc(100% - 200px)}.topbar{padding:0 22px}.page-heading{align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}h1{font-size:28px}.page-heading p{font-size:14px}.heading-actions{justify-content:flex-start}.heading-actions .primary{min-height:40px;padding:9px 14px}.toolbar{align-items:stretch}.search{width:100%}.segments{width:100%;justify-content:space-between}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.notice span{min-width:160px}.permission-options{grid-template-columns:1fr}.rules-summary{margin-top:22px}}@container app (max-width: 850px){.sidebar{width:200px;padding:24px 12px}.sidebar-brand{gap:9px;padding:0 7px 26px}.sidebar-brand strong{font-size:16px}.brand-icon{width:39px;height:39px}.workspace{margin-left:200px;width:calc(100% - 200px)}.topbar{padding:0 22px}.page-heading{align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}h1{font-size:28px}.page-heading p{font-size:14px}.heading-actions{justify-content:flex-start}.heading-actions .primary{min-height:40px;padding:9px 14px}.toolbar{align-items:stretch}.search{width:100%}.segments{width:100%;justify-content:space-between}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.notice span{min-width:160px}.permission-options{grid-template-columns:1fr}.rules-summary{margin-top:22px}}@media(max-width:640px){.sidebar{transform:translate(-100%);transition:transform .18s;width:224px}.sidebar.mobile-open{transform:translate(0)}.mobile-shade{display:block;position:fixed;inset:0;background:#17243a44;border:0;z-index:15}:where(html[data-theme=dark]) .mobile-shade{background:#17243a44}.mobile-close{display:flex;position:absolute;right:8px;top:8px}.mobile-menu{display:flex;margin-right:10px}.workspace{margin-left:0;width:100%}.topbar{height:56px;padding:0 16px;justify-content:flex-start;font-size:12px}.topbar>.avatar{margin-left:auto}.breadcrumb-divider{padding:0 10px}main{padding:24px 16px}.page-heading{gap:16px}.page-heading p{font-size:13px}.heading-actions{gap:8px}.heading-actions .button{font-size:12px}.segments button{font-size:12px;padding:7px 10px}.segments{justify-content:flex-start}.table-scroll table{min-width:660px}.empty{height:192px;padding:18px}.empty p{font-size:12px}.notice{gap:10px;padding:15px}.notice span{flex-basis:100%}.notice .button{margin-left:0}.dialog{max-height:calc(100dvh - 24px);width:calc(100vw - 20px);border-radius:12px}.dialog-header{padding:16px 18px}.dialog-content{padding:18px}.dialog-header h2{font-size:17px}.form-grid,.form-grid.three{grid-template-columns:1fr;gap:12px}.line-form{padding:13px}.detail-summary{gap:14px}.line-heading strong{font-size:13px}.detail-line{padding:13px}.weekday-options{gap:12px}.form-actions{padding-top:15px}.rules-summary h3{font-size:15px}.rule-summary-list{gap:18px}.login-panel{padding:30px 25px}.inline-label{font-size:12px}.filter-row{gap:8px}.filter-row select{max-width:155px}.preview-table .table-scroll table{min-width:0;width:max-content;min-width:100%}}@container app (max-width: 640px){.sidebar{transform:translate(-100%);transition:transform .18s;width:224px}.sidebar.mobile-open{transform:translate(0)}.mobile-shade{display:block;position:fixed;inset:0;background:#17243a44;border:0;z-index:15}:where(html[data-theme=dark]) .mobile-shade{background:#17243a44}.mobile-close{display:flex;position:absolute;right:8px;top:8px}.mobile-menu{display:flex;margin-right:10px}.workspace{margin-left:0;width:100%}.topbar{height:56px;padding:0 16px;justify-content:flex-start;font-size:12px}.topbar>.avatar{margin-left:auto}.breadcrumb-divider{padding:0 10px}main{padding:24px 16px}.page-heading{gap:16px}.page-heading p{font-size:13px}.heading-actions{gap:8px}.heading-actions .button{font-size:12px}.segments button{font-size:12px;padding:7px 10px}.segments{justify-content:flex-start}.table-scroll table{min-width:660px}.empty{height:192px;padding:18px}.empty p{font-size:12px}.notice{gap:10px;padding:15px}.notice span{flex-basis:100%}.notice .button{margin-left:0}.dialog{max-height:calc(100dvh - 24px);width:calc(100vw - 20px);border-radius:12px}.dialog-header{padding:16px 18px}.dialog-content{padding:18px}.dialog-header h2{font-size:17px}.form-grid,.form-grid.three{grid-template-columns:1fr;gap:12px}.line-form{padding:13px}.detail-summary{gap:14px}.line-heading strong{font-size:13px}.detail-line{padding:13px}.weekday-options{gap:12px}.form-actions{padding-top:15px}.rules-summary h3{font-size:15px}.rule-summary-list{gap:18px}.login-panel{padding:30px 25px}.inline-label{font-size:12px}.filter-row{gap:8px}.filter-row select{max-width:155px}.preview-table .table-scroll table{min-width:0;width:max-content;min-width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}tbody td{white-space:nowrap}tbody td:first-child{white-space:normal}.preview-table td{white-space:pre-wrap}.table-scroll tbody td:first-child{min-width:145px}@media(max-width:640px){.sidebar{visibility:hidden}.sidebar.mobile-open{visibility:visible}.table-scroll tbody td:first-child{min-width:150px}}@container app (max-width: 640px){.sidebar{visibility:hidden}.sidebar.mobile-open{visibility:visible}.table-scroll tbody td:first-child{min-width:150px}}.app-shell{--accent:#1767d2;--accent-soft:#eaf2ff;--accent-border:#d4e3fb;--accent-ink:#194d94;--blue:var(--accent);background:#f3f5fa}:where(html[data-theme=dark]) .app-shell{--accent:#478deb;--accent-soft:#1c2e4a;--accent-border:#0e4295;--accent-ink:#97bcee;background:#1e2a48}.app-shell[data-module=contracts]{--accent:#7542c8;--accent-soft:#f2ecfc;--accent-border:#e2d6f5;--accent-ink:#57318f}:where(html[data-theme=dark]) .app-shell[data-module=contracts]{--accent:#8c61d1;--accent-soft:#2d1c4a;--accent-border:#462083;--accent-ink:#b69bdd}.app-shell[data-module=attendance]{--accent:#147d60;--accent-soft:#e8f6ef;--accent-border:#cde8db;--accent-ink:#155c47}:where(html[data-theme=dark]) .app-shell[data-module=attendance]{--accent:#20c698;--accent-soft:#1d4933;--accent-border:#337053;--accent-ink:#bff0e2}.app-shell[data-module=inventory]{--accent:#0b7d8a;--accent-soft:#e4f4f6;--accent-border:#c9e6ea;--accent-ink:#095f69}:where(html[data-theme=dark]) .app-shell[data-module=inventory]{--accent:#11c1d5;--accent-soft:#1c454a;--accent-border:#2e6d76;--accent-ink:#b5f2f9}.app-shell[data-module=accounts]{--accent:#a96116;--accent-soft:#fff2e2;--accent-border:#f1dfc6;--accent-ink:#824815}:where(html[data-theme=dark]) .app-shell[data-module=accounts]{--accent:#e38828;--accent-soft:#4a351c;--accent-border:#835a20;--accent-ink:#f0c8a4}.sidebar{background:#fcfdff;border-right-color:#dce3ef}:where(html[data-theme=dark]) .sidebar{background:#1c2b4a;border-right-color:#334a70}.sidebar .brand-icon{background:#276fe7;box-shadow:0 4px 12px #276fe724}:where(html[data-theme=dark]) .sidebar .brand-icon{background:#276fe7}.nav-item[data-module]{--nav-color:#1767d2;--nav-soft:#eaf2ff}:where(html[data-theme=dark]) .nav-item[data-module]{--nav-color:#478deb;--nav-soft:#1c2e4a}.nav-item[data-module=contracts]{--nav-color:#7542c8;--nav-soft:#f2ecfc}:where(html[data-theme=dark]) .nav-item[data-module=contracts]{--nav-color:#8c61d1;--nav-soft:#2d1c4a}.nav-item[data-module=attendance]{--nav-color:#147d60;--nav-soft:#e8f6ef}:where(html[data-theme=dark]) .nav-item[data-module=attendance]{--nav-color:#20c698;--nav-soft:#1d4933}.nav-item[data-module=inventory]{--nav-color:#0b7d8a;--nav-soft:#e4f4f6}:where(html[data-theme=dark]) .nav-item[data-module=inventory]{--nav-color:#11c1d5;--nav-soft:#1c454a}.nav-item[data-module=accounts]{--nav-color:#a96116;--nav-soft:#fff2e2}:where(html[data-theme=dark]) .nav-item[data-module=accounts]{--nav-color:#e38828;--nav-soft:#4a351c}.nav-item[data-module] svg{color:var(--nav-color);background:var(--nav-soft);border-radius:9px;padding:7px;width:35px;height:35px;flex:none}.nav-item[data-module]{padding:9px 11px;gap:11px}.nav-item[data-module].active{background:var(--nav-soft);color:var(--nav-color);box-shadow:inset 3px 0 var(--nav-color)}.nav-item[data-module].active svg{background:var(--nav-color);color:#fff}:where(html[data-theme=dark]) .nav-item[data-module].active svg{color:#fff}.topbar{background:#fcfdff;border-bottom-color:#e1e6f0}:where(html[data-theme=dark]) .topbar{background:#1c2b4a;border-bottom-color:#36496d}.avatar{background:#f2eafb;color:#7542a0}:where(html[data-theme=dark]) .avatar{background:#321c4a;color:#b38fd1}.topbar .avatar{background:var(--accent-soft);color:var(--accent-ink)}.page-heading{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:14px;padding:20px 22px;margin-bottom:22px}.page-heading h1{color:var(--accent-ink)}.page-heading p{color:#596579}:where(html[data-theme=dark]) .page-heading p{color:#98a2b3}.button.primary{box-shadow:0 3px 8px color-mix(in srgb,var(--accent) 15%,transparent)}.button.primary:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink)}.segments button.selected{background:var(--accent-soft);color:var(--accent)}.segments button:nth-child(2){color:#8d6717}:where(html[data-theme=dark]) .segments button:nth-child(2){color:#efd49c}.segments button:nth-child(3){color:#1767b9}:where(html[data-theme=dark]) .segments button:nth-child(3){color:#7eb5ef}.segments button:nth-child(4){color:#ae651e}:where(html[data-theme=dark]) .segments button:nth-child(4){color:#eab785}.segments button:nth-child(5){color:#7542b4}:where(html[data-theme=dark]) .segments button:nth-child(5){color:#a581d1}.segments button:nth-child(6){color:#147454}:where(html[data-theme=dark]) .segments button:nth-child(6){color:#aef1db}.segments button.selected{font-weight:650}.table-panel{border-color:var(--accent-border);box-shadow:0 3px 16px #20345604}thead{background:color-mix(in srgb,var(--accent-soft) 60%,white)}thead th{color:var(--accent-ink)}.empty>svg{color:var(--accent);background:var(--accent-soft);border-radius:15px;padding:12px;box-sizing:content-box;width:30px;height:30px}.empty strong{color:#354458}:where(html[data-theme=dark]) .empty strong{color:#c1ccda}.empty p{color:#6e7d90}:where(html[data-theme=dark]) .empty p{color:#8591a2}.status-0{background:#fff2d9;color:#896013}:where(html[data-theme=dark]) .status-0{background:#4a3a1c;color:#f2d59f}.status-1{background:#e7f0ff;color:#235fae}:where(html[data-theme=dark]) .status-1{background:#1c2d4a;color:#85afe7}.status-2{background:#fff0e2;color:#a45c17}:where(html[data-theme=dark]) .status-2{background:#4a321c;color:#efbc8c}.status-3{background:#f1eafb;color:#7542a0}:where(html[data-theme=dark]) .status-3{background:#2f1c4a;color:#b38fd1}.status-4{background:#e6f4ed;color:#246e50}:where(html[data-theme=dark]) .status-4{background:#1f4733;color:#b2e6d1}.notice{background:#fff7e9;border-color:#efdfbf}:where(html[data-theme=dark]) .notice{background:#4a391c;border-color:#836221}.notice strong{color:#89601b}:where(html[data-theme=dark]) .notice strong{color:#eccf9f}.notice span{color:#796a4d}:where(html[data-theme=dark]) .notice span{color:#c9bfaa}.rule-summary-list>span{padding:10px 14px;border:1px solid #cfe6da;border-radius:10px;background:#edf8f2;color:#225f49}:where(html[data-theme=dark]) .rule-summary-list>span{border:1px solid #386b50;background:#1d4931;color:#bde7d8}.rule-summary-list small{color:#577d69}:where(html[data-theme=dark]) .rule-summary-list small{color:#95b5a4}.page-note{color:#707e91}:where(html[data-theme=dark]) .page-note{color:#8490a0}.search{border-color:#dce4ef}:where(html[data-theme=dark]) .search{border-color:#334d70}.search svg{color:var(--accent)}@media(max-width:640px){.page-heading{padding:16px;gap:14px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px}.heading-actions{width:100%}.rule-summary-list{gap:10px}.rule-summary-list>span{padding:9px 11px}.nav-item[data-module]{padding:9px 11px}}@container app (max-width: 640px){.page-heading{padding:16px;gap:14px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px}.heading-actions{width:100%}.rule-summary-list{gap:10px}.rule-summary-list>span{padding:9px 11px}.nav-item[data-module]{padding:9px 11px}}.app-shell[data-module=projects]{--accent:#087e88;--accent-soft:#e5f5f5;--accent-ink:#125e65}:where(html[data-theme=dark]) .app-shell[data-module=projects]{--accent:#0dc9d9;--accent-soft:#1c4a4a;--accent-ink:#b8edf2}.app-shell[data-module=analysis]{--accent:#6352c9;--accent-soft:#efedfc;--accent-ink:#4d4197}:where(html[data-theme=dark]) .app-shell[data-module=analysis]{--accent:#7364ce;--accent-soft:#221c4a;--accent-ink:#9e95d2}.app-shell[data-module=documents]{--accent:#aa651c;--accent-soft:#fff3e6;--accent-ink:#87521a}:where(html[data-theme=dark]) .app-shell[data-module=documents]{--accent:#de8c35;--accent-soft:#4a341c;--accent-ink:#edc8a1}.nav-item[data-module=projects] svg{color:#087e88;background:#e5f5f5}:where(html[data-theme=dark]) .nav-item[data-module=projects] svg{color:#a0f2f9;background:#1c4a4a}.nav-item[data-module=analysis] svg{color:#6352c9;background:#efedfc}:where(html[data-theme=dark]) .nav-item[data-module=analysis] svg{color:#7768d0;background:#221c4a}.nav-item[data-module=documents] svg{color:#aa651c;background:#fff3e6}:where(html[data-theme=dark]) .nav-item[data-module=documents] svg{color:#ebbb88;background:#4a341c}.topbar-actions{display:flex;align-items:center;gap:16px}.notification-button{position:relative;overflow:visible}.notification-badge{position:absolute;top:0;right:-3px;min-width:16px;height:16px;padding:0 3px;border-radius:10px;background:#d9424e;color:#fff;font-size:10px;line-height:16px}:where(html[data-theme=dark]) .notification-badge{background:#d9404c}.notification-list{display:grid;gap:10px}.notification-item{border:1px solid #e5e8ed;border-radius:12px;padding:14px;background:#fafbfc}:where(html[data-theme=dark]) .notification-item{border:1px solid #374150;background:#263340}.notification-item.unread{background:#eef5ff;border-color:#cddffa}:where(html[data-theme=dark]) .notification-item.unread{background:#1c2f4a;border-color:#0f4494}.notification-item p{font-size:13px;line-height:1.65;white-space:pre-wrap}.notification-item small{color:#697386;font-size:11px}:where(html[data-theme=dark]) .notification-item small{color:#8d96a6}.notification-item .line-heading{gap:10px;flex-wrap:wrap}.notification-item .text-button{display:inline-flex;gap:4px;align-items:center}.sidebar nav{overflow-y:auto;min-height:0}.sidebar-bottom{flex-shrink:0}.permission-groups{display:grid;gap:12px}.permission-group{padding:12px;border:1px solid #e5e8ed;border-radius:10px;background:#fafbfd}:where(html[data-theme=dark]) .permission-group{border:1px solid #374150;background:#1d2c49}.permission-group h4{margin:0 0 10px;font-size:13px;color:#5b6578}:where(html[data-theme=dark]) .permission-group h4{color:#99a2b2}.permission-group .permission-options{margin:0}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.preview-link{flex:none;font-size:12px}.status-rejected{background:#fdecec;color:#b8423c}:where(html[data-theme=dark]) .status-rejected{background:#4a1c1c;color:#d5827e}.reject-reason{color:#b8423c;font-size:12px}:where(html[data-theme=dark]) .reject-reason{color:#d5827e}.member-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.backup-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid #e6eaf0;border-radius:10px;padding:12px 14px;margin:14px 0;background:#fff}:where(html[data-theme=dark]) .backup-panel{border:1px solid #3d4e66;background:#262626}.backup-panel small{display:block;color:#8b95a2;margin-top:3px}:where(html[data-theme=dark]) .backup-panel small{color:#717e8e}@media(max-width:760px){.member-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@container app (max-width: 760px){.member-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.nav-controls{display:flex;align-items:center;gap:2px;margin-right:14px}.icon-button:disabled{opacity:.35;cursor:default}.breadcrumb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.display-switch{display:flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:9px}.display-switch .icon-button{width:28px;height:28px}.display-switch .icon-button.selected{background:#e8effc;color:#1767d2}:where(html[data-theme=dark]) .display-switch .icon-button.selected{background:#1c2c4a;color:#6ca4ef}@media(max-width:640px){.nav-controls{margin-right:6px}.nav-controls .icon-button{width:30px}.breadcrumb{display:none}.topbar-actions{margin-left:auto;gap:6px}.topbar-actions>.avatar{display:none}}@container app (max-width: 640px){.nav-controls{margin-right:6px}.nav-controls .icon-button{width:30px}.breadcrumb{display:none}.topbar-actions{margin-left:auto;gap:6px}.topbar-actions>.avatar{display:none}}.phone-return{position:fixed;left:50%;bottom:36px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:14px;font-size:40px;font-weight:600;padding:20px 40px;border:0;border-radius:999px;background:#1767d2;color:#fff;box-shadow:0 10px 40px #0003}:where(html[data-theme=dark]) .phone-return{background:#1767d2;color:#fff}.role-templates{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:-4px 0 12px}.offboard-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.offboard-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:9px;padding:9px 11px}.offboard-list small{display:block;color:#8b95a2;font-size:11px}:where(html[data-theme=dark]) .offboard-list small{color:#717e8e}.offboard-notes{margin:0;padding-left:18px;color:#596170;font-size:13px;line-height:1.8}:where(html[data-theme=dark]) .offboard-notes{color:#a0a7b3}@media(max-width:640px){.offboard-list li{flex-direction:column;align-items:stretch}}@container app (max-width: 640px){.offboard-list li{flex-direction:column;align-items:stretch}}.log-table code{font-size:12px}.log-table tr.log-error td{background:#fdf1f0}:where(html[data-theme=dark]) .log-table tr.log-error td{background:#4a201c}.log-table tr.log-warn td{background:#fffaf0}:where(html[data-theme=dark]) .log-table tr.log-warn td{background:#4a3b1c}.log-stack{white-space:pre-wrap;font-size:11px;line-height:1.5;background:#f4f5f7;border-radius:6px;padding:8px;margin:6px 0 0;max-width:560px;overflow:auto}:where(html[data-theme=dark]) .log-stack{background:#1a1d23}.role-tag{display:inline-block;padding:2px 7px;border-radius:5px;background:#eef3fb;color:#1767d2;font-size:11px;font-weight:600;white-space:nowrap}:where(html[data-theme=dark]) .role-tag{background:#1c2e4a;color:#6ca4ef}tbody td .permissions-summary{white-space:normal;flex-wrap:wrap;gap:4px 5px;max-width:300px;line-height:1.4}.permission-chip{display:inline-block;padding:2px 6px;border-radius:5px;background:#f2f4f7;color:#4d5664;font-size:11px;white-space:nowrap}:where(html[data-theme=dark]) .permission-chip{background:#27313f;color:#aab2be}td.account-actions .row-actions{flex-wrap:nowrap;gap:10px}.permission-check{align-items:flex-start}.permission-check>span{display:flex;flex-direction:column;gap:2px}.permission-check small{color:#8b95a2;font-size:11px;line-height:1.4}:where(html[data-theme=dark]) .permission-check small{color:#717e8e}.permission-matrix th,.permission-matrix td{text-align:center;white-space:nowrap}.permission-matrix th:first-child,.permission-matrix td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}:where(html[data-theme=dark]) .permission-matrix th:first-child,:where(html[data-theme=dark]) .permission-matrix td:first-child{background:#262626}.permission-matrix .matrix-group{font-size:11px;color:#6b7a8c;border-bottom:1px solid var(--border)}:where(html[data-theme=dark]) .permission-matrix .matrix-group{color:#8895a4}.permission-matrix thead tr:nth-child(2) th{font-size:11px;font-weight:500;cursor:help}.permission-matrix .matrix-cell small{display:block;font-size:10px;color:#8b95a2}:where(html[data-theme=dark]) .permission-matrix .matrix-cell small{color:#717e8e}.permission-matrix tr.inactive td{opacity:.55}.status-5{background:#e6f4ed;color:#246e50}:where(html[data-theme=dark]) .status-5{background:#1f4733;color:#b2e6d1}.status-4{background:#e3f4f7;color:#1c6c7c}:where(html[data-theme=dark]) .status-4{background:#1c434a;color:#a8e0eb}.status-hazard{background:#fdeaea;color:#b3261e;font-weight:600}:where(html[data-theme=dark]) .status-hazard{background:#4a1c1c;color:#ea8782}.receive-progress{display:flex;align-items:center;gap:8px;margin:6px 0 10px}.receive-progress progress{width:160px;height:8px}.receipt-list{margin:0 0 8px;padding-left:18px;font-size:12px}.file-drop-target{outline:2px dashed #2f6fed!important;outline-offset:3px;background-color:#eaf2ff!important;border-radius:8px}:where(html[data-theme=dark]) .file-drop-target{outline:2px dashed #2f6fed!important;background-color:#1c2e4a!important}.file-drop-rejected{outline:2px dashed #c62828!important;outline-offset:3px;background-color:#fdeaea!important}:where(html[data-theme=dark]) .file-drop-rejected{outline:2px dashed #c62828!important;background-color:#4a1c1c!important}.file-drop-hint{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:10000;padding:10px 16px;border-radius:999px;background:#1d2c44;color:#fff;font-size:13px;box-shadow:0 6px 24px #0003;pointer-events:none}:where(html[data-theme=dark]) .file-drop-hint{background:#1d2c44;color:#fff}html:where([data-theme=dark]){color-scheme:dark}html:where([data-layout=mobile]) body{background:#d9dde4}html:where([data-layout=mobile][data-theme=dark]) body{background:#05070a}html:where([data-layout=mobile]) .layout-frame{container:app/inline-size;contain:layout;max-width:420px;height:100dvh;margin:0 auto;overflow:auto;box-shadow:0 0 0 1px #0000001a,0 12px 48px #0000002e}html:where([data-layout=mobile]) .dialog{width:min(400px,calc(100vw - 20px))}
