:root { --blue:#5d7ff5; --nav:#08090b; --ink:#121c36; --line:#e8ebf0; --muted:#8b8f98; }
* { box-sizing:border-box; }
.hidden { display:none !important; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; color:var(--ink); background:#f3f5f8; font-size:14px; }
button,input,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.app-shell { min-height:100vh; display:flex; }
.sidebar { width:220px; flex:none; height:100vh; position:sticky; top:0; background:linear-gradient(#3d3e46 0 144px,var(--nav) 144px); color:#fff; transition:width .2s; overflow:hidden; }
.brand { height:80px; display:flex; align-items:center; padding:0 22px 0 46px; border-bottom:1px solid rgba(255,255,255,.12); gap:20px; }
.brand-text { font-size:28px; font-weight:800; white-space:nowrap; letter-spacing:0; }
.collapse { width:30px; height:30px; border:0; border-radius:50%; background:#23242a; color:#aaa; cursor:pointer; font-size:17px; }
.sidebar-scroll { height:calc(100vh - 80px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#555 transparent; }
.sidebar-scroll::-webkit-scrollbar { width:5px; }
.sidebar-scroll::-webkit-scrollbar-thumb { border-radius:4px; background:#555; }
.group-title { width:100%; height:64px; display:flex; align-items:center; gap:12px; padding:0 24px; border:0; border-bottom:3px solid #111; background:transparent; color:#fff; font-size:14px; font-weight:500; text-align:left; white-space:nowrap; cursor:pointer; }
.cube { font-size:20px; }.chevron { margin-left:auto; font-size:13px; }
nav button { width:100%; height:50px; padding:0 48px; border:0; background:transparent; color:#fff; text-align:left; font-size:14px; font-weight:400; cursor:pointer; white-space:nowrap; }
nav button:hover { background:#1c1d21; } nav button.active { background:var(--blue); }
.menu-parent { display:flex; align-items:center; justify-content:space-between; }
.menu-parent.open { background:#151619; }
.menu-arrow { margin-left:12px; color:#a9abb1; font-size:12px; }
.submenu { display:none; background:#111216; }
.submenu.open { display:block; }
nav .third-level { height:40px; padding-left:66px; color:#c7c9ce; font-size:13px; }
nav .third-level.active { color:#fff; background:#4f6fdb; }
nav { overflow:visible; }
nav.menu-collapsed { display:none; }
.root-menu { width:100%; height:56px; display:flex; align-items:center; gap:12px; padding:0 24px; border:0; border-top:1px solid #202126; background:#303138; color:#fff; font-size:14px; text-align:left; cursor:pointer; }
.root-menu:hover { background:#383940; }
.root-menu.active { background:var(--blue); }
.root-icon { width:20px; text-align:center; color:#d8dae0; font-size:17px; }
.sidebar.collapsed { width:76px; }.sidebar.collapsed .brand { padding:0 20px; }.sidebar.collapsed .brand-text,.sidebar.collapsed .group-title span:not(.cube),.sidebar.collapsed nav span { display:none; }.sidebar.collapsed .group-title { padding:0 24px; }.sidebar.collapsed nav button { padding:0; text-align:center; }.sidebar.collapsed .submenu { display:none; }
.sidebar.collapsed .root-menu { justify-content:center; padding:0; }.sidebar.collapsed .root-menu span:last-child { display:none; }
.main { width:calc(100vw - 220px); max-width:calc(100vw - 220px); min-width:0; flex:1; overflow:hidden; }
.sidebar.collapsed + .main { width:calc(100vw - 76px); max-width:calc(100vw - 76px); }
.topbar { height:64px; background:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 28px; }
.breadcrumb { display:flex; gap:14px; align-items:center; font-size:15px; }.breadcrumb span,.breadcrumb b { color:#888; font-weight:400; }.breadcrumb strong { font-weight:600; }
.top-links { display:flex; align-items:center; gap:44px; }.top-links a { color:#5177f4; text-decoration:none; font-size:14px; }.avatar { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#5280ee; background:#c5edff; }
.workspace { width:100%; max-width:100%; padding:14px; height:calc(100vh - 64px); overflow:hidden; }
.panel { width:100%; max-width:100%; height:100%; min-height:520px; border-radius:5px; background:#fff; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 2px 8px rgba(20,34,60,.03); }
.module-head { min-height:72px; display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--line); }.module-head h1 { margin:0 0 4px; font-size:18px; }.module-head p { margin:0; color:#8a8f99; font-size:13px; }.module-head .compact-btn { margin:0; }.module-head-actions { display:flex; flex:none; align-items:center; gap:8px; margin-left:16px; }.export-btn { color:#45516a; }
.indicator-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:16px 18px; }.indicator-filters input,.indicator-filters select { width:220px; max-width:100%; height:38px; padding:0 12px; border:1px solid #d6d8dc; border-radius:4px; background:#fff; }.indicator-filters select { width:150px; }.reset-btn { height:38px; padding:0 18px; border:1px solid #d8dbe0; border-radius:4px; background:#fff; color:#555; cursor:pointer; }
.indicator-summary { display:flex; gap:32px; margin:0 18px 12px; padding:12px 16px; border:1px solid #e3e8f2; border-radius:4px; background:#f8faff; color:#666; }.indicator-summary b { margin-left:5px; color:#365edc; }
.quick-filter-btn { display:inline-flex; align-items:center; gap:7px; height:38px; padding:0 12px; border:1px solid #cfd7e6; border-radius:4px; background:#fff; color:#4b566b; white-space:nowrap; cursor:pointer; }.quick-filter-btn b { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:10px; background:#edf1f8; color:#53627c; font-size:11px; }.quick-filter-btn.active { border-color:#5d7ff5; background:#eef3ff; color:#365edc; }.quick-filter-btn.active b { background:#5d7ff5; color:#fff; }
.task-status-tabs { display:flex; align-items:center; gap:4px; margin:0 18px 10px; padding:0 2px; overflow-x:auto; border-bottom:1px solid #dfe4ed; white-space:nowrap; }.task-status-tabs button { position:relative; flex:none; height:40px; padding:0 11px; border:0; background:transparent; color:#687184; cursor:pointer; }.task-status-tabs button:after { content:""; position:absolute; left:10px; right:10px; bottom:-1px; height:2px; background:transparent; }.task-status-tabs button.active { color:#365edc; font-weight:600; }.task-status-tabs button.active:after { background:#5d7ff5; }.task-status-tabs b { margin-left:4px; color:#9aa1ad; font-size:11px; font-weight:500; }.task-status-tabs button.active b { color:#365edc; }
.indicator-table { min-width:980px; }.indicator-table th:first-child { width:270px; }.indicator-table th:nth-child(2) { width:120px; }.indicator-table th:nth-child(3) { width:220px; }.indicator-table th:nth-child(4) { width:auto; }.indicator-table th:nth-child(5) { width:110px; }.indicator-table th:nth-child(6) { width:220px; }.indicator-name { display:flex; align-items:center; gap:8px; }.level-indent { width:20px; height:1px; background:#ccd2df; margin-left:18px; }.level-tag { display:inline-block; padding:3px 8px; border-radius:3px; font-size:12px; color:#365edc; background:#eef3ff; }.level-tag.secondary { color:#687184; background:#f1f2f5; }.status-pill { display:inline-flex; align-items:center; gap:6px; }.status-dot { width:7px; height:7px; border-radius:50%; background:#24a56a; }.status-pill.disabled { color:#999; }.status-pill.disabled .status-dot { background:#aaa; }.table-actions { display:flex; gap:12px; }.danger-link { color:#e05252; }.indicator-pagination { flex:none; }
.indicator-modal { width:min(520px,100%); }.form-field { display:block; margin-bottom:16px; }.form-field > span { display:block; margin-bottom:7px; color:#555; }.form-field input,.form-field select,.form-field textarea { width:100%; border:1px solid #d6d8dc; border-radius:4px; padding:0 12px; outline:none; }.form-field input,.form-field select { height:40px; }.form-field textarea { height:88px; padding-top:10px; resize:vertical; font:inherit; }.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--blue); }
.task-flow { display:flex; align-items:center; gap:10px; margin:0 18px 10px; padding:12px 16px; overflow-x:auto; border:1px solid #e2e6ef; border-radius:4px; background:#fafbfc; white-space:nowrap; font-size:12px; color:#737987; }.task-flow b { padding:5px 10px; border:1px solid #aeb5c2; border-radius:3px; color:#303746; background:#fff; font-weight:500; }.task-flow i { color:#aab0bb; font-style:normal; }.task-batch-bar { min-height:46px; display:flex; align-items:center; justify-content:space-between; margin:0 18px 10px; padding:0 12px; border:1px solid #dce4f2; background:#f7f9fd; color:#697386; }.task-batch-bar b { color:#365edc; }.task-batch-bar .search-btn:disabled { background:#b8bfcc; cursor:not-allowed; }.task-table { min-width:1500px; }.task-table .task-check { width:54px; text-align:center; }.task-table th:nth-child(2) { width:270px; }.task-table th:nth-child(3) { width:110px; }.task-table th:nth-child(4) { width:140px; }.task-table th:nth-child(5) { width:110px; }.task-table th:nth-child(6) { width:80px; }.task-table th:nth-child(7) { width:100px; }.task-table th:nth-child(8) { width:130px; }.task-table th:nth-child(9) { width:180px; }.task-table th:last-child { width:300px; }.task-score-grade { color:#34466c; font-weight:600; }
.task-flow { display:flex; align-items:center; gap:10px; margin:0 18px 10px; padding:12px 16px; overflow-x:auto; border:1px solid #e2e6ef; border-radius:4px; background:#fafbfc; white-space:nowrap; font-size:12px; color:#737987; }.task-flow b { padding:5px 10px; border:1px solid #aeb5c2; border-radius:3px; color:#303746; background:#fff; font-weight:500; }.task-flow i { color:#aab0bb; font-style:normal; }.task-batch-bar { min-height:46px; display:flex; align-items:center; justify-content:space-between; margin:0 18px 10px; padding:0 12px; border:1px solid #dce4f2; background:#f7f9fd; color:#697386; }.task-batch-bar b { color:#365edc; }.task-batch-bar .search-btn:disabled { background:#b8bfcc; cursor:not-allowed; }.task-table { width:100%; min-width:0 !important; table-layout:fixed; }.task-table .task-check { width:40px; padding:0; text-align:center; text-overflow:clip; }.task-table .task-check input { width:15px; height:15px; margin:0; }.task-table th:nth-child(2) { width:20%; }.task-table th:nth-child(3) { width:7%; }.task-table th:nth-child(4) { width:9%; }.task-table th:nth-child(5) { width:7%; }.task-table th:nth-child(6) { width:5%; }.task-table th:nth-child(7) { width:7%; }.task-table th:nth-child(8) { width:9%; }.task-table th:nth-child(9) { width:12%; }.task-table th:last-child,.task-table td:last-child { position:sticky; right:0; z-index:2; width:255px; background:#fff; box-shadow:-8px 0 12px rgba(35,48,75,.06); }.task-table th:last-child { z-index:3; background:#f4f7fc; }.task-table .table-actions { gap:8px; white-space:nowrap; }.task-table .table-actions .link-btn { font-size:12px; }.task-score-grade { color:#34466c; font-weight:600; }#taskPanel>.table-wrap { overflow-x:hidden; }
@media (max-width:1200px) { .task-table th:nth-child(6),.task-table td:nth-child(6),.task-table th:nth-child(9),.task-table td:nth-child(9) { display:none; }.task-table th:nth-child(2) { width:25%; }.task-table th:nth-child(4) { width:12%; }.task-table th:last-child,.task-table td:last-child { width:230px; } }
@media (max-width:980px) { .task-table th:nth-child(4),.task-table td:nth-child(4) { display:none; }.task-table th:nth-child(2) { width:30%; }.task-table th:last-child,.task-table td:last-child { width:220px; }.task-batch-bar { position:sticky; right:0; z-index:4; }.task-batch-bar .search-btn { flex:none; } }
.task-modal { width:min(1180px,calc(100vw - 48px)); max-width:1180px; height:calc(100vh - 48px); max-height:none; overflow:auto; padding:26px 32px; }.task-basic { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:14px; }.scheme-title { display:flex; align-items:center; justify-content:space-between; margin:8px 0 12px; }.scheme-title small { display:block; margin-top:4px; color:#999; }.scheme-grid { min-width:1160px; display:grid; grid-template-columns:42px 178px 80px 190px 92px repeat(4,96px) 38px; column-gap:0; align-items:stretch; }.scheme-head { position:sticky; top:-26px; z-index:3; min-height:44px; padding:0; border:1px solid #dfe4ed; border-bottom:0; border-radius:5px 5px 0 0; background:#eef2f8; color:#354057; font-size:12px; font-weight:600; }.scheme-head span { display:flex; align-items:center; padding:0 10px; border-right:1px solid #dfe4ed; }.scheme-head span:first-child { justify-content:center; }.scheme-head span:last-child { border-right:0; }.scheme-row { position:relative; min-height:48px; padding:0; border:1px solid #e4e8ef; border-bottom:0; background:#fff; }.scheme-row:last-child { border-bottom:1px solid #e4e8ef; border-radius:0 0 5px 5px; }.scheme-row:hover { background:#fafcff; }.scheme-index { grid-column:1; display:flex; align-items:center; justify-content:center; border-right:1px solid #edf0f4; color:#8b92a0; font-variant-numeric:tabular-nums; }.scheme-primary { grid-column:2; }.primary-weight { grid-column:3; }.scheme-secondary { grid-column:4; }.scheme-weight { grid-column:5; }.scheme-target { grid-column:6; }.scheme-month:nth-of-type(3) { grid-column:7; }.scheme-month:nth-of-type(4) { grid-column:8; }.scheme-month:nth-of-type(5) { grid-column:9; }.remove-row { grid-column:10; }.scheme-row select,.scheme-row input { min-width:0; width:calc(100% - 12px); height:32px; margin:7px 6px; padding:0 8px; border:1px solid transparent; border-radius:3px; background:#f5f7fa; }.scheme-row input { text-align:right; font-variant-numeric:tabular-nums; }.scheme-row select:hover,.scheme-row input:hover { border-color:#ccd4e2; background:#fff; }.scheme-row select:focus,.scheme-row input:focus { border-color:var(--blue); background:#fff; outline:none; box-shadow:0 0 0 2px rgba(93,127,245,.1); }.scheme-row .primary-weight { margin:0; width:auto; height:100%; border:0; border-radius:0; background:#f1f4f9; color:#53627c; text-align:center; }.scheme-row.group-start { margin-top:8px; border-top:1px solid #d9e0eb; }.scheme-row.group-start:first-child { margin-top:0; }.primary-merged { position:absolute; z-index:2; top:0; display:flex; align-items:center; height:calc(var(--group-rows) * 48px); border-right:1px solid #d9e0eb; background:#f3f6fb; }.primary-weight.primary-merged { left:220px; width:80px; justify-content:center; color:#40506c; font-weight:600; }.scheme-primary.primary-merged { left:42px; width:178px; height:calc(var(--group-rows) * 48px); margin:0; padding:0 14px; border:0; border-right:1px solid #d9e0eb; border-radius:0; background:#f3f6fb; color:#26344d; font-weight:600; }.scheme-row.group-child .scheme-primary,.scheme-row.group-child .primary-weight { visibility:hidden; pointer-events:none; }.remove-row { align-self:center; justify-self:center; width:28px; height:28px; border:0; border-radius:4px; background:transparent; color:#a6acb7; cursor:pointer; font-size:18px; line-height:1; }.remove-row:hover { color:#e05252; background:#fff0f0; }.weight-note { margin-top:10px; color:#8b9099; font-size:12px; }.scheme-summary { display:flex; justify-content:flex-end; gap:30px; margin-top:8px; padding:10px 12px; border-radius:4px; background:#f7f9fc; }.scheme-summary b { color:#365edc; }.scheme-summary #weightTotal.invalid { color:#e05252; }.scheme-summary #weightTotal.valid { color:#239662; }
.task-detail-modal { width:min(900px,96vw); }.workflow-steps { display:flex; align-items:flex-start; justify-content:space-between; margin:4px 0 24px; }.workflow-step { flex:1; position:relative; text-align:center; color:#9a9faa; font-size:12px; }.workflow-step:before { content:""; display:block; width:12px; height:12px; margin:0 auto 7px; border:2px solid #b7bdc8; border-radius:50%; background:#fff; position:relative; z-index:1; }.workflow-step:after { content:""; position:absolute; left:50%; right:-50%; top:6px; height:2px; background:#d9dde5; }.workflow-step:last-child:after { display:none; }.workflow-step.done,.workflow-step.current { color:#365edc; }.workflow-step.done:before,.workflow-step.current:before { border-color:var(--blue); background:var(--blue); }.workflow-step.done:after { background:var(--blue); }.detail-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:14px; background:#f7f9fc; }.detail-meta span { display:block; color:#999; font-size:12px; margin-bottom:5px; }.scheme-detail-table { width:100%; min-width:0; margin-top:16px; }.scheme-detail-table th,.scheme-detail-table td { height:42px; }
.result-modal { width:min(900px,96vw); max-height:92vh; overflow:auto; }.result-permission { padding:10px 12px; margin-bottom:12px; border:1px solid #d9e4ff; background:#f2f6ff; color:#4c65a5; }.result-row { display:grid; grid-template-columns:2fr repeat(5,1fr); gap:8px; align-items:center; padding:10px; border-bottom:1px solid var(--line); }.result-row.header { background:#f4f7fc; font-size:12px; font-weight:600; }.result-row input { width:100%; height:36px; border:1px solid #d8dbe0; border-radius:4px; padding:0 8px; }.score-summary { display:flex; justify-content:flex-end; gap:30px; margin:16px 0; padding:14px; background:#f7f9fc; }.score-summary b { margin-left:8px; color:#365edc; font-size:18px; }.manual-rating { display:block; margin:12px 0; }.manual-rating input { width:16px; height:16px; vertical-align:middle; }.manual-fields { padding:14px; border:1px solid #f0d4a8; background:#fffaf1; }.manual-fields p { margin:0; color:#a1722d; font-size:12px; }
@media (max-width:900px) { .task-basic { grid-template-columns:1fr 1fr; }.scheme-grid { grid-template-columns:44px 170px 82px 180px 92px repeat(4,100px) 36px; }.detail-meta { grid-template-columns:1fr 1fr; } }
.filters { display:grid; grid-template-columns:minmax(220px,360px) minmax(170px,230px) minmax(170px,230px) auto 76px 1fr; gap:14px; padding:18px 18px 0; align-items:start; }
.filters input,.filters select,.modal select { height:38px; border:1px solid #d6d8dc; border-radius:4px; padding:0 12px; color:#42495a; background:#fff; outline:none; }.filters input::placeholder { color:#b9bbc0; }.filters input:focus,.filters select:focus { border-color:var(--blue); }
.expand-btn { height:38px; background:transparent; color:var(--blue); border:0; cursor:pointer; white-space:nowrap; }.search-btn,.primary-btn { border:0; color:#fff; background:#48516a; border-radius:4px; cursor:pointer; }.search-btn { height:38px; padding:0 18px; }.primary-btn { margin:12px 0 16px 18px; align-self:flex-start; height:38px; padding:0 16px; background:var(--blue); }
.extra-filters { display:none; grid-column:1 / 4; gap:22px; grid-template-columns:1fr 1fr; }.extra-filters.open { display:grid; }
.selection-bar { margin:0 18px 12px; min-height:44px; border:1px solid #cdddff; background:#f0f6ff; border-radius:4px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; color:#313744; }.selection-bar i { display:inline-grid; place-items:center; width:18px; height:18px; border-radius:50%; background:var(--blue); color:#fff; font-style:normal; font-size:11px; margin-right:8px; }.selection-bar b { color:var(--blue); font-weight:500; }.selection-bar button { border:0; background:transparent; color:var(--blue); cursor:pointer; }
.table-wrap { flex:1; overflow:auto; min-height:300px; }
table { width:100%; min-width:1200px; border-collapse:collapse; table-layout:fixed; } th,td { height:52px; padding:0 14px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } th { height:48px; background:#f4f7fc; font-weight:600; color:#111c35; } th.check,td.check { width:68px; text-align:center; } th:nth-child(2){width:250px} th:nth-child(3){width:180px} th:nth-child(4){width:130px} th:nth-child(5){width:175px} th:nth-child(6){width:155px} th:nth-child(7){width:180px} th:nth-child(8){width:145px} th:nth-child(9){width:115px}
tbody tr:hover { background:#fafcff; } input[type=checkbox] { width:20px; height:20px; accent-color:var(--blue); cursor:pointer; } .link-btn { border:0; background:transparent; color:#5478df; cursor:pointer; padding:0; font-size:14px; }
.pagination { min-height:64px; display:flex; align-items:center; justify-content:center; gap:8px; padding:10px; background:#fff; }.pagination button,.pagination select,.pagination input { height:36px; border:1px solid #d8dbe0; border-radius:4px; background:#fff; }.pagination button { min-width:36px; cursor:pointer; }.pagination button:disabled { color:#c8cbd1; cursor:not-allowed; }.page-buttons { display:flex; gap:6px; }.page-buttons button.active { color:var(--blue); border-color:var(--blue); }.pagination select { padding:0 10px; }.pagination label { display:flex; align-items:center; gap:8px; }.pagination input { width:58px; padding:0 8px; }
.modal-layer { position:fixed; inset:0; z-index:10; display:none; place-items:center; background:rgba(12,18,32,.45); padding:20px; }.modal-layer.open { display:grid; }.modal { width:min(620px,100%); position:relative; background:#fff; border-radius:7px; padding:28px; box-shadow:0 15px 50px rgba(0,0,0,.2); }.modal.compact { width:min(440px,100%); }.modal h2 { margin:0 0 25px; font-size:18px; }.modal-close { position:absolute; right:18px; top:14px; border:0; background:transparent; color:#999; font-size:25px; cursor:pointer; }.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }.detail-item span { display:block; color:#999; margin-bottom:7px; font-size:13px; }.modal-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:30px; }.cancel { height:46px; padding:0 22px; border:1px solid #d9dce2; background:#fff; border-radius:5px; cursor:pointer; }.modal-hint { color:#777; }.modal.compact select { width:100%; }
.modal.task-modal { width:min(1180px,calc(100vw - 48px)); max-width:1180px; height:calc(100vh - 48px); max-height:none; padding:26px 32px; overflow:auto; }
.toast { position:fixed; left:50%; top:24px; transform:translate(-50%,-20px); padding:12px 22px; border-radius:5px; color:#fff; background:#30384b; opacity:0; pointer-events:none; transition:.2s; z-index:20; }.toast.show { opacity:1; transform:translate(-50%,0); }
@media (max-width:900px) { .sidebar { width:76px; }.brand { height:64px; padding:0 20px; }.sidebar-scroll { height:calc(100vh - 64px); }.brand-text,.group-title span:not(.cube),nav span { display:none; }.group-title { height:54px; padding:0 24px; }.sidebar nav button { height:46px; padding:0; text-align:center; }.root-menu { justify-content:center; padding:0; }.root-menu span:last-child { display:none; }.top-links a { display:none; }.topbar { height:64px; padding:0 18px; }.workspace { height:calc(100vh - 64px); padding:10px; }.filters { grid-template-columns:1fr 1fr; gap:10px; padding:14px 14px 0; }.filters .expand-btn,.filters .search-btn { width:100%; }.extra-filters { grid-column:1 / 3; }.primary-btn { margin:10px 14px 12px; }.selection-bar { margin:0 14px 10px; }.pagination { justify-content:flex-start; overflow:auto; }.pagination label { display:none; } }
@media (max-width:560px) { .sidebar { display:none; }.breadcrumb span,.breadcrumb b { display:none; }.filters { grid-template-columns:1fr; }.extra-filters { grid-column:1; grid-template-columns:1fr; }.detail-grid { grid-template-columns:1fr; } }
.scheme-row .scheme-primary,.scheme-row .scheme-secondary { margin:0; border-radius:0; background:transparent; cursor:default; }
.scheme-row .scheme-secondary { display:flex; align-items:center; padding:0 12px; border-right:1px solid #edf0f4; color:#39455b; }
.scheme-row .scheme-primary { color:#26344d; }
.indicator-table td { overflow:visible; }
.indicator-table td > .cell-tooltip,.indicator-table .indicator-name .cell-tooltip { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cell-tooltip { cursor:default; }
.hover-tooltip { position:fixed; z-index:100; display:none; width:max-content; max-width:min(420px,calc(100vw - 32px)); padding:9px 12px; border:1px solid #d9dee8; border-radius:4px; background:#fff; color:#253047; box-shadow:0 6px 20px rgba(24,36,60,.18); white-space:normal; overflow-wrap:anywhere; line-height:1.6; font-size:13px; pointer-events:none; }
.hover-tooltip.show { display:block; }
@media (max-width:1200px) {
  .indicator-table-wrap { overflow-x:auto; overflow-y:auto; }
  .indicator-table { min-width:1120px; table-layout:fixed; }
  .indicator-table th:first-child { width:250px; }
  .indicator-table th:nth-child(2) { width:110px; }
  .indicator-table th:nth-child(3) { width:220px; }
  .indicator-table th:nth-child(4) { width:300px; }
  .indicator-table th:nth-child(5) { width:100px; }
  .indicator-table th:nth-child(6) { width:190px; }
  .indicator-table td { overflow:hidden; }
  .indicator-table td:nth-child(4) { white-space:nowrap; text-overflow:ellipsis; }
  .indicator-table td:nth-child(5),.indicator-table td:nth-child(6) { background:#fff; }
  .indicator-table .table-actions { gap:10px; white-space:nowrap; }
  .indicator-table .status-pill { white-space:nowrap; }
}
.indicator-table-wrap { overflow-x:auto !important; overflow-y:auto; }
.indicator-table { min-width:1120px !important; width:1120px; table-layout:fixed !important; }
.indicator-table th:first-child,.indicator-table td:first-child { width:250px !important; }
.indicator-table th:nth-child(2),.indicator-table td:nth-child(2) { width:110px !important; }
.indicator-table th:nth-child(3),.indicator-table td:nth-child(3) { width:220px !important; }
.indicator-table th:nth-child(4),.indicator-table td:nth-child(4) { width:300px !important; }
.indicator-table th:nth-child(5),.indicator-table td:nth-child(5) { width:100px !important; }
.indicator-table th:nth-child(6),.indicator-table td:nth-child(6) { width:190px !important; }
.indicator-table td { overflow:hidden !important; white-space:nowrap; text-overflow:ellipsis; }
.indicator-table .status-pill { display:inline-flex; white-space:nowrap; }
.indicator-table .table-actions { display:flex; flex-wrap:nowrap; gap:10px; white-space:nowrap; }
.scheme-tools { display:flex; gap:8px; }.danger-outline { color:#d84d4d; border-color:#efcaca; }.danger-outline:hover { background:#fff5f5; }
.task-basic { grid-template-columns:minmax(320px,2fr) minmax(180px,1fr) minmax(180px,1fr); }
.scheme-grid { width:100%; min-width:0 !important; grid-template-columns:48px minmax(125px,1.15fr) 72px minmax(150px,1.35fr) 76px 78px 72px 72px 72px minmax(150px,1.35fr) 38px !important; }
.scheme-head span { padding:0 6px; white-space:nowrap; }
.scheme-secondary { grid-column:4 !important; }.scheme-weight { grid-column:5 !important; }.scheme-target { grid-column:6 !important; }.scheme-month:nth-of-type(3) { grid-column:7 !important; }.scheme-month:nth-of-type(4) { grid-column:8 !important; }.scheme-month:nth-of-type(5) { grid-column:9 !important; }.scheme-description { grid-column:10; display:flex; align-items:center; min-width:0; padding:0 8px; border-right:1px solid #edf0f4; color:#697386; }.scheme-description .cell-tooltip { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.remove-row { grid-column:11 !important; }
.scheme-index { white-space:nowrap; }.task-modal { overflow-x:hidden !important; }
.task-detail-modal { width:min(1180px,calc(100vw - 48px)) !important; max-height:calc(100vh - 48px); overflow:auto; padding:26px 30px; }.detail-title-row { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:18px; }.detail-title-row h2 { margin-bottom:4px; }.detail-title-row p { margin:0; color:#9297a1; font-size:13px; }.detail-meta.preview-meta { grid-template-columns:repeat(4,minmax(150px,1fr)); gap:0; padding:0; border:1px solid #e1e5ed; border-radius:5px; overflow:hidden; background:#fff; }.preview-meta > div { min-height:68px; padding:13px 16px; border-right:1px solid #e8ebf0; border-bottom:1px solid #e8ebf0; }.preview-meta > div:nth-child(4n) { border-right:0; }.preview-meta > div:nth-last-child(-n+4) { border-bottom:0; }.preview-section-title { margin:20px 0 10px; font-size:15px; }.detail-table-wrap { overflow:auto; border:1px solid #e1e5ed; border-radius:5px; }.scheme-detail-table.preview-table { min-width:1380px; margin:0; table-layout:fixed; }.preview-table th,.preview-table td { height:54px; padding:0 10px; }.preview-table th:first-child { width:190px; }.preview-table th:nth-child(2) { width:90px; }.preview-table th:nth-child(3) { width:230px; }.preview-table th:nth-child(4) { width:260px; }.preview-table th:nth-child(5) { width:90px; }.preview-table th:nth-child(n+6):nth-child(-n+9) { width:130px; }.preview-value { display:grid; gap:5px; line-height:1.2; }.preview-value small { color:#9298a3; }.preview-value span { display:flex; justify-content:space-between; color:#59657a; }.preview-value b { color:#2f5fbd; }.audit-record { margin-top:14px; padding:12px 14px; border:1px solid #f0d3a4; border-radius:4px; background:#fff9ee; color:#8b6124; }
.preview-table .preview-primary,.preview-table .preview-primary-weight { background:#f3f6fb; color:#2f3d57; font-weight:600; vertical-align:middle; }.preview-table .preview-primary-weight { color:#40506c; text-align:center; }.preview-table tr.preview-group-start:not(:first-child) td { border-top:4px solid #dfe5ef; }
.detail-title-summary { display:flex; align-items:center; gap:8px; padding-right:30px; }.detail-title-summary > span:not(.level-tag) { padding:6px 10px; border:1px solid #dce3ef; border-radius:4px; background:#f5f8fd; color:#34466c; font-size:13px; font-weight:600; }
.preview-table .detail-signature-row td { height:auto; padding:16px; border-top:4px solid #dfe5ef; background:#fff; white-space:normal; }.detail-signature-row h3 { margin:0 0 12px; font-size:14px; }.detail-signatures { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.detail-signature-card { display:grid; grid-template-columns:minmax(130px,1fr) minmax(140px,.9fr); align-items:center; gap:14px; min-height:106px; padding:12px 14px; border:1px solid #e0e5ed; border-radius:5px; background:#fafbfc; }.detail-signature-card span,.detail-signature-card small { display:block; }.detail-signature-card span { margin-bottom:8px; color:#344057; font-weight:600; }.detail-signature-card small { margin-top:4px; color:#9298a3; }.signature-content>small { margin:0 0 5px; }.detail-signature-image { display:grid; place-items:center; height:62px; overflow:hidden; border-bottom:1px solid #b8c0ce; background:#fff; }.detail-signature-image img { max-width:100%; max-height:58px; object-fit:contain; }.detail-signature-image strong { color:#263b63; font-family:cursive; font-size:25px; font-style:italic; font-weight:500; }
.review-word-count { margin-top:-10px; color:#999; font-size:12px; text-align:right; }.preview-table .detail-review-row td { height:auto; padding:16px; border-top:4px solid #dfe5ef; background:#f8faff; white-space:normal; }.detail-review-row h3 { margin:0 0 8px; font-size:14px; }.detail-review-row p { margin:0 0 8px; color:#39455b; line-height:1.7; }.detail-review-row small { color:#8c929d; }
.scheme-row.group-start { z-index:2; margin-top:0 !important; border-top:4px solid #dfe5ef !important; }
.scheme-row.group-start:first-child { border-top:1px solid #d9e0eb !important; }
.scheme-row.group-start .primary-merged { top:0; height:calc(var(--group-rows) * 48px - 3px); }
.scheme-row.group-start:first-child .primary-merged { height:calc(var(--group-rows) * 48px); }
.scheme-row .primary-merged { grid-column:auto !important; grid-row:auto !important; }
.scheme-row .scheme-primary.primary-merged { left:42px !important; right:auto; width:178px !important; }
.scheme-row .primary-weight.primary-merged { left:220px !important; right:auto; width:80px !important; }
.scheme-row { border-bottom:0 !important; }
.scheme-row::after { content:""; position:absolute; z-index:1; left:300px; right:0; bottom:0; height:1px; background:#e4e8ef; pointer-events:none; }
.scheme-row .scheme-index { border-bottom:1px solid #e4e8ef; }
.scheme-row.group-start { border-top:4px solid #dfe5ef !important; }
.scheme-row.group-start:first-child { border-top:1px solid #d9e0eb !important; }
.scheme-row.group-start .primary-merged { z-index:3; border-bottom:1px solid #d9e0eb; }
.construction-panel { display:grid; place-items:center; text-align:center; color:#8b919c; }.construction-panel strong { display:block; margin-bottom:8px; color:#3d4658; font-size:22px; }.employee-picker-trigger { width:100%; height:40px; padding:0 12px; overflow:hidden; border:1px solid #d6d8dc; border-radius:4px; background:#fff; color:#30394b; text-align:left; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }.employee-picker-trigger.placeholder { color:#a2a6ad; }.employee-picker-modal { width:min(680px,94vw); max-height:80vh; overflow:auto; }.picker-hint { margin:-12px 0 16px; color:#9297a1; }.organization-tree { display:grid; gap:14px; }.org-group>strong { display:block; padding:10px 12px; background:#f0f3f8; }.department-group { padding:10px 12px; border-bottom:1px solid #e8ebf0; }.department-group h4 { margin:0 0 8px; }.employee-option { display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:8px; min-height:38px; padding:0 8px; border-radius:4px; }.employee-option:hover { background:#f8faff; }.employee-option em { color:#26976a; font-size:12px; font-style:normal; }.employee-option.configured em { color:#db7b34; }.employee-option.configured { color:#8c919a; }.result-modal { width:min(1120px,96vw); }.result-row { grid-template-columns:minmax(150px,1.15fr) minmax(220px,1.7fr) minmax(130px,1fr) repeat(3,minmax(130px,1fr)); gap:0; padding:0; border:1px solid #e5e8ee; border-bottom:0; }.result-row:last-child { border-bottom:1px solid #e5e8ee; }.result-row>span,.result-row>label { min-height:58px; padding:9px 10px; border-right:1px solid #e9ecf1; }.result-row>span { display:flex; align-items:center; }.result-primary { color:#36466a; font-size:12px; }.result-row em { font-style:normal; }.result-row label { display:grid; gap:4px; }.result-row label small { color:#9096a1; }.result-row input { height:30px; }.result-quarter span { display:flex; align-items:center; justify-content:space-between; color:#59657a; }.result-total { color:#2f5fbd; font-weight:700; }.result-progress { margin:14px 0 0; padding:11px 13px; border:1px solid #e4e8ef; background:#f7f9fc; color:#747b87; }.result-progress.complete { border-color:#c6e8d6; background:#f0faf5; color:#267d54; }.score-summary { margin:10px 0 0; padding:12px 14px; border:1px solid #dfe5ef; border-radius:4px; background:#f7f9fc; }
.signature-overlay { position:fixed; inset:0; z-index:50; display:none; place-items:center; padding:20px; background:rgba(10,19,31,.5); backdrop-filter:blur(6px); }.signature-overlay.open { display:grid; }.signature-board { display:grid; grid-template-rows:auto 1fr auto; width:min(92vw,760px); height:min(72vh,430px); padding:14px; border:1px solid rgba(255,255,255,.7); border-radius:14px; background:rgba(248,253,255,.96); box-shadow:0 24px 70px rgba(0,38,74,.3); }.signature-board header,.signature-board footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }.signature-board header { padding:0 2px 10px; }.signature-board header div { display:grid; gap:4px; }.signature-board header strong { color:#18222d; font-size:17px; }.signature-board header span { color:#8a949e; font-size:12px; }.signature-board header button { display:grid; place-items:center; width:30px; height:30px; border:0; border-radius:50%; color:#5e6872; background:#e8f1f8; font-size:22px; cursor:pointer; }.signature-canvas-wrap { position:relative; min-height:0; overflow:hidden; border:1px dashed rgba(105,151,184,.45); border-radius:10px; background:linear-gradient(transparent 31px,rgba(139,178,205,.13) 32px),linear-gradient(90deg,transparent 31px,rgba(139,178,205,.1) 32px),#fff;background-size:32px 32px; }.signature-canvas-wrap canvas { position:absolute; inset:0; width:100%; height:100%; touch-action:none; }.signature-placeholder { position:absolute; left:50%; top:50%; color:rgba(113,127,141,.42); font-size:20px; font-weight:700; pointer-events:none; transform:translate(-50%,-50%); }.signature-board footer { padding-top:12px; }.signature-board footer>div { display:flex; gap:8px; }.signature-board footer button { height:36px; padding:0 14px; border:0; border-radius:6px; font-weight:600; cursor:pointer; }.signature-secondary,.signature-ghost { color:#66717d; background:#e8f1f8; }.signature-primary { color:#fff; background:#4d6fe3; }.signature-primary:disabled { background:#b8c8df; cursor:not-allowed; }

/* Laptop layout: keep bulk and row actions visible without horizontal scrolling. */
#taskPanel > .table-wrap { overflow-x:hidden !important; }
#taskPanel .task-flow,#taskPanel .task-batch-bar,#taskPanel .module-head,#taskPanel .indicator-filters { max-width:100%; }
.task-table { width:100% !important; min-width:0 !important; }
.task-table .task-check { width:36px !important; padding:0 !important; text-overflow:clip !important; }
.task-table .task-check input { width:14px !important; height:14px !important; }
.task-table th:last-child,.task-table td:last-child { position:sticky !important; right:0; z-index:5; background:#fff; }
.task-table th:last-child { z-index:6; background:#f4f7fc; }
@media (max-width:1500px) {
  .task-table th:nth-child(6),.task-table td:nth-child(6),.task-table th:nth-child(9),.task-table td:nth-child(9) { display:none !important; }
  .task-table th:nth-child(2) { width:25% !important; }
  .task-table th:last-child,.task-table td:last-child { width:230px !important; }
}
@media (max-width:1200px) {
  .task-table th:nth-child(4),.task-table td:nth-child(4) { display:none !important; }
  .task-table th:nth-child(2) { width:30% !important; }
  .task-table th:last-child,.task-table td:last-child { width:220px !important; }
}

/* Desktop baseline: 1440px minimum, fluid above it, page scroll below it. */
html,body { min-width:1440px; overflow-x:auto; }
.app-shell { width:100%; min-width:1440px; }
.main,.sidebar.collapsed + .main { width:auto; max-width:none; min-width:0; flex:1 1 auto; }
.workspace { width:100%; max-width:none; }
.task-table { width:100% !important; min-width:1220px !important; }
.task-table th:nth-child(4),.task-table td:nth-child(4),
.task-table th:nth-child(6),.task-table td:nth-child(6),
.task-table th:nth-child(9),.task-table td:nth-child(9) { display:table-cell !important; }
.task-table th:nth-child(2) { width:22% !important; }
.task-table th:last-child,.task-table td:last-child { width:205px !important; }
.task-table .table-actions { gap:7px; }
.task-table .table-actions .link-btn { font-size:14px !important; }

/* Task status segmented filter */
.task-status-tabs { display:flex; align-items:center; gap:4px; margin:0 18px 12px; padding:5px; overflow:visible; border:1px solid #dfe4ed; border-radius:4px; background:#f5f7fa; white-space:nowrap; }
.task-status-tabs button { position:relative; display:inline-flex; flex:1 1 auto; align-items:center; justify-content:center; gap:6px; min-width:0; height:34px; padding:0 9px; border:1px solid transparent; border-radius:3px; background:transparent; color:#657084; cursor:pointer; font-size:13px; }
.task-status-tabs button:after { display:none; }
.task-status-tabs button:hover { color:#34466c; background:#eef1f6; }
.task-status-tabs button.active { border-color:#c8d5f2; background:#fff; color:#365edc; box-shadow:0 1px 4px rgba(45,68,118,.12); font-weight:600; }
.task-status-tabs b { display:inline-grid; place-items:center; min-width:20px; height:18px; margin:0; padding:0 5px; border-radius:9px; background:#e5e9f0; color:#737d8f; font-size:11px; font-weight:600; }
.task-status-tabs button.active b { background:#e8efff; color:#365edc; }

/* Simple connected status tabs, matching the reference interaction. */
.task-status-tabs { display:inline-flex; align-self:flex-start; gap:0; margin:0 18px 12px; padding:0; overflow:visible; border:0; border-radius:0; background:transparent; }
.task-status-tabs button { flex:none; min-width:auto; height:34px; margin:0 -1px 0 0; padding:0 15px; border:1px solid #d7dbe3; border-radius:0; background:#fff; color:#4f5665; box-shadow:none; font-size:13px; font-weight:400; }
.task-status-tabs button:first-child { border-radius:4px 0 0 4px; }
.task-status-tabs button:last-child { margin-right:0; border-radius:0 4px 4px 0; }
.task-status-tabs button:hover { position:relative; z-index:1; border-color:#aebce5; background:#fff; color:#365edc; }
.task-status-tabs button.active { position:relative; z-index:2; border-color:#5d7ff5; background:#fff; color:#365edc; box-shadow:none; font-weight:500; }
.task-status-tabs button:after,.task-status-tabs b { display:none; }

/* Lightweight workflow timeline */
.task-flow { gap:8px; margin:0 18px 12px; padding:10px 12px; border:0; border-radius:0; background:#f7f8fa; color:#8b929e; }
.task-flow span { color:#858d9a; }
.task-flow b { display:inline-flex; align-items:center; gap:6px; padding:0; border:0; border-radius:0; background:transparent; color:#344057; font-weight:600; }
.task-flow b:before { content:""; width:7px; height:7px; flex:none; border:2px solid #7e94d5; border-radius:50%; background:#fff; }
.task-flow i { color:#b5bbc5; font-size:11px; }
.task-process-note { display:flex; align-items:center; gap:10px; min-height:34px; margin:0 18px 12px; padding:0 12px; border-left:3px solid #8ca4e8; background:#f7f8fa; color:#747d8b; font-size:12px; }.task-process-note strong { flex:none; color:#3f4b60; font-weight:600; }.task-process-note span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-process-note span { flex:none; overflow:visible; text-overflow:clip; }.task-process-note i { flex:none; color:#aab2bf; font-size:16px; font-style:normal; line-height:1; }
.modal-actions .cancel,.modal-actions .search-btn,.modal-actions .reset-btn { height:38px; padding:0 18px; }
