.login-error[data-v-a3897778],.login-tip[data-v-a3897778]{margin:10px 0 0;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.5}.login-error[data-v-a3897778]{color:#b42318;background:#fff1f0;border:1px solid #ffd6d1}.login-tip[data-v-a3897778]{color:#1357a6;background:#eef5ff;border:1px solid #cfe0ff}.pagination-bar[data-v-c2879ad9]{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding:14px 0 0;color:var(--muted);font-size:13px}.pagination-bar label[data-v-c2879ad9]{display:inline-flex;align-items:center;gap:6px}.pagination-bar select[data-v-c2879ad9]{min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text)}.pagination-actions[data-v-c2879ad9]{display:flex;gap:6px}.pagination-actions button[data-v-c2879ad9]{min-height:30px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text)}.pagination-actions button[data-v-c2879ad9]:disabled{cursor:not-allowed;opacity:.48}@media (max-width:620px){.pagination-bar[data-v-c2879ad9]{justify-content:flex-start}.pagination-actions[data-v-c2879ad9]{width:100%}.pagination-actions button[data-v-c2879ad9]{flex:1;padding:4px}}.tool-heading[data-v-e2c529cc]{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(120deg,#f4f9ff,#dcf3fd);background:linear-gradient(120deg,color(xyz 0.892 0.942 1.095),#dcf3fd)}.tool-heading h2[data-v-e2c529cc]{margin:8px 0 6px;font-size:26px}.tool-heading p[data-v-e2c529cc]{margin:0;color:var(--muted)}.eyebrow[data-v-e2c529cc]{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-size:13px;font-weight:700}.tool-tabs[data-v-e2c529cc]{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tool-tabs button[data-v-e2c529cc]{padding:11px 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted)}.tool-tabs button.active[data-v-e2c529cc]{border-color:var(--primary);color:var(--primary);font-weight:700}.tool-actions[data-v-e2c529cc]{min-width:360px;flex-wrap:wrap}.table-wrap small[data-v-e2c529cc],td small[data-v-e2c529cc]{display:block;margin-top:4px;color:var(--muted)}.tool-report-grid[data-v-e2c529cc]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tool-report-grid article[data-v-e2c529cc]{padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.tool-report-grid span[data-v-e2c529cc]{color:var(--muted)}.tool-report-grid strong[data-v-e2c529cc]{display:block;margin-top:8px;font-size:28px}.reminder-list[data-v-e2c529cc]{padding:0}.reminder-row[data-v-e2c529cc]{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .18s ease}.reminder-row[data-v-e2c529cc]:hover{background:#f3f9ff;background:oklch(98% .012 245)}.reminder-row p[data-v-e2c529cc]{margin:6px 0;color:var(--muted)}.reminder-row.read[data-v-e2c529cc]{opacity:.65}.reminder-leading[data-v-e2c529cc]{display:flex;align-items:flex-start;gap:13px}.reminder-icon[data-v-e2c529cc]{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e4f5ff;background:oklch(96% .035 235);color:var(--primary)}.reminder-icon.high[data-v-e2c529cc]{background:#ffe7e4;background:oklch(95% .04 25);color:#bd3d2a}.reminder-title-line[data-v-e2c529cc]{display:flex;gap:8px;align-items:center}.unread-dot[data-v-e2c529cc]{border-radius:999px;padding:2px 7px;background:#e6f4ff;background:oklch(96% .04 240);color:var(--primary);font-size:11px;font-weight:700}.reminder-arrow[data-v-e2c529cc]{color:var(--muted)}.empty-copy[data-v-e2c529cc]{padding:28px;text-align:center;color:var(--muted)}.tool-modal[data-v-e2c529cc]{width:min(900px,calc(100vw - 32px))}.wide-modal[data-v-e2c529cc]{width:min(980px,calc(100vw - 32px))}.attachment-toolbar[data-v-e2c529cc]{padding:18px 0}.attachment-list[data-v-e2c529cc]{display:grid;gap:8px}.attachment-list button[data-v-e2c529cc]{display:flex;justify-content:space-between;gap:20px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);text-align:left}.attachment-list small[data-v-e2c529cc]{color:var(--muted)}.report-hero[data-v-e2c529cc]{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:25px 28px;border-radius:16px;background:linear-gradient(125deg,#0f3b68,#1f6dad);color:#fff}.report-hero .eyebrow[data-v-e2c529cc]{color:#bfe2ff}.report-hero h3[data-v-e2c529cc]{margin:8px 0 6px;font-size:25px}.report-hero p[data-v-e2c529cc]{margin:0;color:#d7e9fb}.report-kpis article[data-v-e2c529cc]{position:relative;overflow:hidden}.report-kpis small[data-v-e2c529cc]{display:block;margin-top:7px;color:var(--muted)}.metric-icon[data-v-e2c529cc]{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px}.metric-icon.blue[data-v-e2c529cc]{background:#e5f1ff;color:#1768a9}.metric-icon.orange[data-v-e2c529cc]{background:#fff0de;color:#b5680b}.metric-icon.violet[data-v-e2c529cc]{background:#efe9ff;color:#6b49bc}.metric-icon.red[data-v-e2c529cc]{background:#ffe8e7;color:#bd3d2a}.report-risk-grid[data-v-e2c529cc]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.risk-card[data-v-e2c529cc]{display:flex;align-items:flex-start;gap:11px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left}.risk-card>svg[data-v-e2c529cc]:last-child{margin-left:auto;color:var(--muted)}.risk-card strong[data-v-e2c529cc]{display:block;font-size:24px}.risk-card span[data-v-e2c529cc],.risk-card small[data-v-e2c529cc]{display:block}.risk-card span[data-v-e2c529cc]{font-weight:700;margin-top:2px}.risk-card small[data-v-e2c529cc]{margin-top:5px;color:var(--muted);line-height:1.45}.risk-card.critical[data-v-e2c529cc]{border-color:#f0beaf;background:#fff8f5;color:#b53a25}.risk-card.warning[data-v-e2c529cc]{border-color:#f0d19c;background:#fffbf2;color:#a7620d}.risk-card.danger[data-v-e2c529cc]{border-color:#e8bac1;background:#fff7f8;color:#aa3544}.risk-card.neutral[data-v-e2c529cc]{border-color:#c9d7e4;background:#f7fbff;color:#29618e}.report-analytics-grid[data-v-e2c529cc]{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:14px}.report-section[data-v-e2c529cc]{padding:21px}.report-section header[data-v-e2c529cc]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.report-section h3[data-v-e2c529cc]{margin:4px 0 0;font-size:17px}.section-kicker[data-v-e2c529cc]{display:flex;align-items:center;gap:5px;color:var(--primary);font-size:12px;font-weight:700}.report-total[data-v-e2c529cc]{border-radius:999px;padding:5px 10px;background:#f1f6fa;color:var(--muted);font-size:12px}.bar-list[data-v-e2c529cc]{display:grid;gap:13px}.bar-row[data-v-e2c529cc]{display:grid;grid-template-columns:minmax(84px,1fr) minmax(110px,2.4fr) 42px;align-items:center;gap:10px}.bar-label[data-v-e2c529cc]{display:flex;justify-content:space-between;gap:8px;font-size:13px}.bar-label strong[data-v-e2c529cc]{font-size:12px}.bar-track[data-v-e2c529cc]{height:9px;border-radius:99px;background:#edf1f4;overflow:hidden}.bar-fill[data-v-e2c529cc]{display:block;height:100%;min-width:4px;border-radius:inherit;background:#367ab5}.bar-fill.borrowed[data-v-e2c529cc],.bar-fill.testing[data-v-e2c529cc],.bar-fill.repairing[data-v-e2c529cc]{background:#d28a26}.bar-fill.pending_scrap[data-v-e2c529cc],.bar-fill.scrapped[data-v-e2c529cc]{background:#c34e4e}.bar-fill.pending_test[data-v-e2c529cc]{background:#7c68b7}.bar-row>small[data-v-e2c529cc]{text-align:right;color:var(--muted)}.text-button[data-v-e2c529cc]{padding:0;border:0;background:transparent;color:var(--primary);font-weight:700}.attention-item[data-v-e2c529cc]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.attention-item[data-v-e2c529cc]:last-of-type{border-bottom:0}.attention-item>span[data-v-e2c529cc]{padding:4px 7px;border-radius:6px;background:#f0f5f9;color:#36627f;font-size:11px;font-weight:700}.attention-item.high>span[data-v-e2c529cc]{background:#fff0ed;color:#bd3d2a}.attention-item strong[data-v-e2c529cc],.attention-item small[data-v-e2c529cc]{display:block}.attention-item small[data-v-e2c529cc]{margin-top:3px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.rank-list[data-v-e2c529cc]{display:grid;gap:8px}.rank-row[data-v-e2c529cc]{display:grid;grid-template-columns:28px minmax(0,1fr) auto 40px;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.rank-row[data-v-e2c529cc]:last-of-type{border-bottom:0}.rank-number[data-v-e2c529cc]{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#edf3f8;color:#4e6e84;font-size:12px;font-weight:700}.rank-name[data-v-e2c529cc]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row strong[data-v-e2c529cc]{font-size:13px}.rank-row small[data-v-e2c529cc]{color:var(--muted);text-align:right}.reminder-modal[data-v-e2c529cc]{width:min(760px,calc(100vw - 32px))}.reminder-modal header h2[data-v-e2c529cc]{margin:4px 0 0}.reminder-detail[data-v-e2c529cc]{display:grid;gap:16px}.reminder-detail-head[data-v-e2c529cc]{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px}.detail-level[data-v-e2c529cc]{padding:5px 10px;border-radius:99px;background:#eff5fa;color:#3a6685;font-weight:700}.detail-level.high[data-v-e2c529cc]{background:#fff0ed;color:#bd3d2a}.reminder-detail h3[data-v-e2c529cc]{margin:0;font-size:21px}.reminder-detail>p[data-v-e2c529cc]{margin:0;color:var(--muted);font-size:15px;line-height:1.75}.reminder-meta[data-v-e2c529cc]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reminder-meta>div[data-v-e2c529cc]{padding:13px;border-radius:10px;background:#f5f8fa}.reminder-meta span[data-v-e2c529cc],.reminder-meta strong[data-v-e2c529cc],.reminder-meta small[data-v-e2c529cc]{display:block}.reminder-meta span[data-v-e2c529cc],.reminder-meta small[data-v-e2c529cc]{color:var(--muted);font-size:12px}.reminder-meta strong[data-v-e2c529cc]{margin:7px 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reminder-advice[data-v-e2c529cc]{display:flex;gap:11px;padding:14px;border-radius:10px;background:#fff8ec;color:#9b6017}.reminder-advice strong[data-v-e2c529cc]{display:block}.reminder-advice p[data-v-e2c529cc]{margin:4px 0 0;line-height:1.55;color:#785a31}@media (max-width:1050px){.report-risk-grid[data-v-e2c529cc]{grid-template-columns:repeat(2,1fr)}.report-analytics-grid[data-v-e2c529cc]{grid-template-columns:1fr}}@media (max-width:900px){.tool-report-grid[data-v-e2c529cc]{grid-template-columns:repeat(2,1fr)}.tool-heading[data-v-e2c529cc]{padding:20px}.tool-actions[data-v-e2c529cc]{min-width:260px}}@media (max-width:620px){.tool-report-grid[data-v-e2c529cc],.report-risk-grid[data-v-e2c529cc],.reminder-meta[data-v-e2c529cc]{grid-template-columns:1fr}.tool-heading[data-v-e2c529cc],.report-hero[data-v-e2c529cc]{display:block}.tool-heading button[data-v-e2c529cc],.report-hero button[data-v-e2c529cc]{margin-top:16px}.tool-tabs[data-v-e2c529cc]{overflow-x:auto}.tool-tabs button[data-v-e2c529cc]{white-space:nowrap}.reminder-row[data-v-e2c529cc]{align-items:flex-start}.reminder-row .secondary[data-v-e2c529cc]{display:none}.bar-row[data-v-e2c529cc]{grid-template-columns:82px minmax(80px,1fr) 34px}.report-section[data-v-e2c529cc]{padding:17px}}.sync-heading[data-v-61e870d8]{display:flex;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(125deg,#f5f9fe,#ddf4f2)}.sync-heading span[data-v-61e870d8]{color:var(--green);font-size:13px;font-weight:700}.sync-heading h2[data-v-61e870d8]{margin:7px 0}.sync-heading p[data-v-61e870d8]{margin:0;color:var(--muted)}.sync-flow[data-v-61e870d8]{display:grid;gap:10px}.sync-flow article[data-v-61e870d8]{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:8px;background:var(--surface);opacity:.58}.sync-flow article.available[data-v-61e870d8]{opacity:1;border-color:color-mix(in oklch,var(--primary) 22%,var(--line))}.sync-flow b[data-v-61e870d8]{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--surface-soft);color:var(--primary)}.sync-flow strong[data-v-61e870d8]{font-size:15px}.sync-flow p[data-v-61e870d8]{margin:5px 0;color:var(--muted)}.sync-note[data-v-61e870d8]{display:flex;gap:12px;padding:15px 18px;border:1px solid color-mix(in oklch,var(--orange) 35%,var(--line));border-radius:8px;background:#fef4e3;color:#5f3808}.sync-note p[data-v-61e870d8]{margin:0;line-height:1.6}.compact-search[data-v-61e870d8]{min-width:150px;flex:0 1 190px}td code[data-v-61e870d8]{font-size:12px;word-break:break-all}td small[data-v-61e870d8]{display:block;margin-top:4px;color:var(--muted)}@media (max-width:760px){.sync-heading[data-v-61e870d8]{display:block}.sync-heading button[data-v-61e870d8]{margin-top:16px}.sync-flow article[data-v-61e870d8]{grid-template-columns:38px 1fr}.sync-flow article>button[data-v-61e870d8]{grid-column:2;width:100%}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#1a222e;background:#f0f5fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--primary: oklch(57% .19 255);--primary-dark: oklch(34% .11 255);--surface: oklch(99% .004 255);--surface-soft: oklch(96% .015 255);--line: oklch(89% .015 255);--text: oklch(25% .025 255);--muted: oklch(51% .025 255);--green: oklch(58% .16 155);--orange: oklch(68% .16 70);--red: oklch(58% .2 27);--shadow: 0 14px 40px rgba(33, 63, 118, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in oklch,var(--primary) 25%,transparent);outline-offset:2px}.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(420px,1fr) 430px;gap:48px;align-items:center;padding:48px clamp(24px,6vw,92px);background:linear-gradient(135deg,#e2f1ffd1,#f4f8fdf0),radial-gradient(circle at 22% 28%,rgba(22,119,255,.18),transparent 32%),repeating-linear-gradient(90deg,rgba(22,119,255,.06) 0 1px,transparent 1px 82px)}.login-visual h1{margin:28px 0 14px;max-width:760px;font-size:44px;line-height:1.14;letter-spacing:0;color:var(--primary-dark)}.login-visual p{max-width:680px;margin:0;color:var(--muted);font-size:18px;line-height:1.7}.flow-map{width:min(680px,100%);min-height:190px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:28px;border:1px solid rgba(22,119,255,.2);background:#f8fbffb8;border-radius:8px;box-shadow:var(--shadow)}.flow-node{min-height:118px;display:grid;place-items:center;border:1px dashed rgba(35,63,112,.2);color:var(--muted);background:var(--surface);border-radius:8px;font-weight:700}.flow-node.active{background:linear-gradient(180deg,#dfedff,#fafcfe);background:linear-gradient(180deg,color(xyz 0.784 0.833 1.188),#fafcfe);border-color:#1677ff47;color:var(--primary)}.login-card{padding:32px;border-radius:8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;color:var(--primary);background:#dfedff;background:oklch(94% .04 255)}.login-card h2{margin:18px 0 24px;font-size:26px}label{display:grid;gap:8px;color:var(--text);font-size:14px;font-weight:600}input,select,textarea{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--surface)}.search-select{position:relative;display:flex;align-items:center;width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.search-select>svg{flex:0 0 auto;margin-left:12px;color:var(--muted)}.search-select input{min-height:38px;border:0;background:transparent;outline:none}.search-select-menu{position:absolute;z-index:80;top:calc(100% + 6px);left:0;right:0;max-height:240px;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 40px color-mix(in oklch,var(--text) 14%,transparent)}.search-select-menu button{width:100%;min-height:34px;justify-content:flex-start;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left}.search-select-menu button:hover,.search-select-menu button.active{background:#e4f0ff;background:oklch(95% .025 255);color:var(--primary)}.search-select-menu p{margin:0;padding:8px;color:var(--muted);font-size:13px}textarea{min-height:108px;resize:vertical}.login-card label+label,.login-card .role-grid{margin-top:16px}.login-row,.form-inline{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.login-row{justify-content:space-between;margin-top:12px}.checkbox{display:inline-flex;align-items:center;gap:8px;font-weight:500}.checkbox input{width:16px;min-height:16px}.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.role-grid button{min-height:68px;padding:12px;border:1px solid var(--line);border-radius:8px;text-align:left;background:var(--surface-soft);color:var(--text)}.role-grid button.selected{color:var(--primary);border-color:color-mix(in oklch,var(--primary) 45%,var(--line));background:#e9f3ff;background:oklch(96% .035 255)}.role-grid small{display:block;margin-top:6px;color:var(--muted)}.primary,.secondary,.ghost,.link-button,.icon-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;border:1px solid transparent;padding:8px 14px}.primary{color:#f6f9fd;background:var(--primary);border-color:var(--primary)}.primary.dark{color:#f6f9fd;background:var(--primary-dark);border-color:var(--primary-dark)}.secondary{color:var(--primary);background:#e9f3ff;background:oklch(96% .035 255);border-color:color-mix(in oklch,var(--primary) 30%,var(--line))}.ghost{color:var(--text);background:var(--surface);border-color:var(--line)}.link-button{color:var(--primary);background:transparent;padding-inline:0}.icon-button{width:40px;padding:0;color:var(--text);background:var(--surface);border-color:var(--line)}.danger{color:var(--red);background:#fff1ef;background:oklch(97% .025 25);border-color:#ffc8c2;border-color:oklch(88% .08 25)}.wide{width:100%;margin-top:22px}.refined-login{grid-template-columns:minmax(560px,1fr) minmax(380px,440px);gap:clamp(28px,5vw,72px);align-items:stretch;padding:clamp(28px,5vw,64px);background:linear-gradient(135deg,#e9f2fceb,#f8fbfffa),repeating-linear-gradient(0deg,rgba(36,83,149,.045) 0 1px,transparent 1px 42px),repeating-linear-gradient(90deg,rgba(36,83,149,.04) 0 1px,transparent 1px 42px)}.login-hero{min-height:calc(100dvh - clamp(56px,10vw,128px));display:grid;grid-template-rows:auto 1fr auto;gap:22px}.hero-topline,.login-card-head,.security-strip{display:flex;align-items:center;gap:12px}.hero-topline{color:var(--primary-dark)}.hero-topline strong,.role-title span{display:block;font-weight:800}.hero-topline span,.login-note,.role-title small,.security-strip{color:var(--muted)}.system-seal{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;color:#f6f9fd;background:var(--primary-dark);box-shadow:0 10px 24px #1943822e}.command-board{align-self:center;padding:clamp(22px,4vw,34px);border:1px solid rgba(70,116,183,.18);border-radius:8px;background:linear-gradient(180deg,#fbfdfff0,#f4f8fdfa),linear-gradient(120deg,#1677ff14,#2197660f);box-shadow:0 24px 70px #25467429}.board-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.eyebrow{display:inline-flex;align-items:center;margin-bottom:8px;color:var(--primary);font-size:12px;font-weight:800}.board-header h1{max-width:760px;margin:0;color:var(--primary-dark);font-size:clamp(28px,4.2vw,46px);line-height:1.14;letter-spacing:0}.live-pill{flex:0 0 auto;min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;color:var(--green);background:#d7f4e0;font-size:12px;font-weight:800}.pipeline-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:28px}.pipeline-step{min-height:104px;display:grid;align-content:space-between;gap:7px;padding:14px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface)}.pipeline-step strong{color:var(--text);font-size:17px}.pipeline-step.done{color:var(--green);background:#e4f8ea;border-color:#aae0bc}.pipeline-step.active{color:var(--primary);background:#e9f3ff;background:oklch(96% .035 255);border-color:color-mix(in oklch,var(--primary) 34%,var(--line))}.capability-list{display:grid;gap:12px;margin-top:18px}.capability-list article{min-height:72px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8}.capability-list svg{color:var(--primary-dark)}.capability-list strong{display:block;margin-bottom:4px;color:var(--text);font-size:15px}.capability-list span{color:var(--muted);font-size:14px}.hero-footer{display:flex;flex-wrap:wrap;gap:10px}.hero-footer span{min-height:32px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid rgba(70,116,183,.16);border-radius:999px;color:var(--muted);background:#ffffffa3;font-size:13px;font-weight:700}.refined-card{align-self:center;padding:30px;border-color:#4674b72e;box-shadow:0 24px 70px #25467429}.login-card-head h2{margin:0}.login-note{margin:16px 0 20px;line-height:1.65}.input-line{margin-top:14px}.input-line>div{min-height:44px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted)}.input-line input{min-height:42px;padding:0;border:0}.role-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 10px}.refined-card .role-grid{margin-top:0}.security-strip{margin-top:14px;padding:11px 12px;border-radius:8px;background:var(--surface-soft);font-size:13px}.small{min-height:32px;padding:6px 10px}.app-shell{min-height:100dvh;display:grid;grid-template-columns:auto minmax(0,1fr);background:var(--surface-soft)}.sidebar{width:260px;min-height:100dvh;padding:18px 12px;background:linear-gradient(180deg,#0b2648,#0b1b2f);color:#e2ecf9;transition:width .18s ease-out}.sidebar.collapsed{width:78px}.sidebar-title{min-height:52px;display:flex;align-items:center;gap:10px;padding:0 8px 16px;font-weight:700;line-height:1.35}.sidebar.collapsed .sidebar-title span,.sidebar.collapsed nav span{display:none}.logo-box{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--primary)}.sidebar nav{display:grid;gap:6px}.sidebar nav button{min-height:42px;display:flex;align-items:center;gap:10px;padding:9px 12px;border:0;border-radius:6px;color:#c6d2e2;background:transparent;text-align:left}.sidebar nav button.active,.sidebar nav button:hover{color:#f6f9fd;background:#ffffff1f}.main-area{min-width:0;overflow:hidden}.topbar{height:72px;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:20px;letter-spacing:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.user-chip{min-height:36px;display:flex;align-items:center;gap:7px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft);font-size:14px}.badge{min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 5px;border-radius:999px;color:#f6f9fd;background:var(--red);font-size:12px}.action-tag{border:0;cursor:pointer;font:inherit}.action-tag:hover{filter:brightness(.98);text-decoration:underline;text-underline-offset:3px}.action-tag:focus-visible{outline:2px solid color-mix(in oklch,var(--primary) 50%,transparent);outline-offset:2px}.content{min-width:0;padding:24px}.page-stack{min-width:0;display:grid;gap:18px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px}.stat-card,.panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 8px 22px #29436c0f}.stat-card{display:grid;gap:8px;padding:18px}.stat-card span,.stat-card small{color:var(--muted)}.stat-card strong{font-size:30px;letter-spacing:0}.stat-card.blue strong{color:var(--primary)}.stat-card.green strong{color:var(--green)}.stat-card.orange strong{color:var(--orange)}.stat-card.red strong{color:var(--red)}.panel{min-width:0;padding:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-head h2{margin:0;font-size:18px}.panel-head p{margin:4px 0 0;color:var(--muted)}.split-grid,.chart-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.chart-grid{grid-template-columns:1.1fr .8fr 1.1fr}.chart-grid.compact{grid-template-columns:1fr 260px;align-items:center}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid button,.todo-row,.message-list button,.status-steps button{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text)}.quick-grid button{min-height:72px;display:grid;place-items:center;gap:6px}.todo-row,.message-list button{width:100%;min-height:46px;display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;text-align:left}.todo-row+.todo-row,.message-list button+button{margin-top:8px}.dot{width:8px;height:8px;border-radius:999px}.dot.red{background:var(--red)}.dot.gray{background:#abb2bb}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.search-box{min-width:min(360px,100%);flex:1;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.search-box input{border:0;padding-inline:0}.search-clear{flex:0 0 28px;width:28px;min-height:28px;color:var(--muted);background:transparent;border-color:transparent}.filter-count{color:var(--muted);font-size:13px;white-space:nowrap}.filter-bar select{width:auto;min-width:128px}.filter-bar .search-select{width:min(420px,100%);min-width:220px}.batch-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--highlight);border:1px solid var(--primary);border-radius:6px;margin-bottom:12px}.batch-bar span{color:var(--primary);font-size:14px}.batch-bar strong{font-weight:600}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .2s ease}.modal-card{background:var(--surface);border-radius:12px;width:480px;max-width:90vw;max-height:90vh;overflow:auto;box-shadow:0 24rpx 48rpx #00000026;animation:slide-up .3s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:18px;font-weight:600}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--line)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-grid span{padding:12px;background:var(--highlight);border-radius:6px;font-size:14px}.file-row{background:var(--surface-soft)}.file-row td{padding:8px 12px;font-size:13px}.file-actions{display:flex;gap:8px}.file-actions button{padding:4px 8px;font-size:12px}tbody tr.selected{background:var(--highlight)}tbody tr.selected td{border-color:var(--primary)}.col-check{width:40px;text-align:center}.col-check input[type=checkbox]{width:16px;height:16px;cursor:pointer}.table-wrap{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable;background:var(--surface)}.panel.table-wrap{padding:0}table{width:100%;border-collapse:collapse;border-spacing:0;min-width:760px;table-layout:fixed;font-size:14px}.dense table{min-width:2580px}.project-table-wrap.global-project-table .project-table{min-width:2820px}.project-table .col-index{width:58px}.project-table .col-year{width:78px}.project-table .col-contract{width:142px}.project-table .col-code{width:136px}.project-table .col-project-name{width:220px}.project-table .col-material-code{width:132px}.project-table .col-material-desc{width:240px}.project-table .col-quantity{width:88px}.project-table .col-unit{width:72px}.project-table .col-money{width:126px}.project-table .col-tax{width:70px}.project-table .col-supplier{width:180px}.project-table .col-region{width:104px}.project-table .col-progress{width:220px}.project-table .col-owner{width:108px}.project-table .col-approval{width:126px}.project-table .col-remark{width:170px}.project-table .col-actions{width:420px}th,td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top;white-space:normal;line-height:1.45;overflow-wrap:break-word;word-break:break-word}th{color:var(--muted);font-size:13px;font-weight:700;background:#f0f6fd;vertical-align:middle}.dense th,.dense td{padding:9px 10px;font-size:13px}.project-table th:first-child,.project-table td:first-child{width:58px;text-align:center}.dense th:nth-child(5),.dense td:nth-child(5){width:220px}.dense th:nth-child(7),.dense td:nth-child(7){width:240px}.dense th:nth-child(13),.dense td:nth-child(13){width:180px}.dense th:nth-last-child(2),.dense td:nth-last-child(2){width:170px}.dense th:last-child,.dense td.actions{width:420px}tr.warning td{background:#fff0ee;background:oklch(97% .027 25)}.table-link{border:0;background:transparent;color:var(--primary);padding:0;white-space:nowrap}.supplier-link,.project-link,.project-code-link{min-height:auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--primary);font-weight:700;text-align:left;white-space:normal;text-decoration:underline;text-underline-offset:3px}.supplier-link:hover,.project-link:hover,.project-code-link:hover{color:var(--primary-dark)}.supplier-link:disabled,.project-link:disabled,.project-code-link:disabled{color:var(--muted);text-decoration:none;cursor:default}.active-filter-chip{min-height:34px;display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid color-mix(in oklch,var(--primary) 32%,var(--line));border-radius:999px;background:#e9f3ff;background:oklch(96% .025 255);color:var(--primary);font-size:13px;font-weight:700}.active-filter-chip button{min-height:auto;padding:0;border:0;background:transparent;color:inherit}.actions{display:flex;flex-wrap:wrap;gap:8px}td.actions{display:table-cell;white-space:normal;vertical-align:middle;line-height:normal}.project-table td:nth-child(3),.project-table td:nth-child(4),.project-table td:nth-child(6),.project-table td:nth-child(8),.project-table td:nth-child(9),.project-table td:nth-child(10),.project-table td:nth-child(11),.project-table td:nth-child(12),.project-table td:nth-child(14),.project-table td:nth-child(15){white-space:nowrap;word-break:keep-all}.project-table td:nth-child(8),.project-table td:nth-child(10),.project-table td:nth-child(11),.project-table td:nth-child(12){font-variant-numeric:tabular-nums}.action-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.actions.right{justify-content:flex-end}.actions button{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);white-space:nowrap}td.actions button{min-height:28px;min-width:58px;margin:0 6px 6px 0;padding:4px 7px;font-size:12px;line-height:1.2;justify-content:center}.dense td.actions button{min-width:64px}td.actions .action-buttons button{margin:0}.project-table td.actions .action-buttons{max-width:396px}.project-table td.actions button{min-width:62px}.tag{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700}.tag.blue{color:var(--primary);background:#dfedff;background:oklch(94% .04 255)}.tag.green{color:var(--green);background:#d7f4e0}.tag.orange{color:var(--orange);background:#f8eace}.tag.red{color:var(--red);background:#ffe2df;background:oklch(94% .05 25)}.tag.gray{color:#666;background:#e7ecf2}.tag.gray{color:var(--muted);background:#e3e8ef}.project-progress{display:grid;gap:8px;min-width:0}.project-progress .tag{justify-self:start}.progress-steps{display:grid;grid-template-columns:repeat(4,minmax(34px,1fr));gap:4px;width:100%}.progress-steps span{min-height:24px;padding:3px 4px;border:1px solid var(--line);border-radius:6px;background:#f1f6fc;color:var(--muted);font-size:12px;font-weight:700;text-align:center;white-space:nowrap}.progress-steps span.done{border-color:#8ec7a1;background:#d7f4e0;color:var(--green)}.pagination{padding-top:14px;color:var(--muted);text-align:right}.region-tree{display:grid;gap:14px}.region-tree h3{margin:0 0 8px}.region-row{display:flex;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft)}.image-strip{display:flex;gap:10px;margin-top:16px}.image-strip button{min-width:150px;min-height:90px;border:1px solid var(--line);border-radius:8px;color:var(--primary);background:linear-gradient(135deg,#deedff,#f6f9fc),repeating-linear-gradient(45deg,rgba(22,119,255,.08) 0 8px,transparent 8px 16px);background:linear-gradient(135deg,color(xyz 0.784 0.832 1.129),#f6f9fc),repeating-linear-gradient(45deg,rgba(22,119,255,.08) 0 8px,transparent 8px 16px)}.back-button{justify-self:start}.attachment-list{display:grid;gap:10px;margin:12px 0}.attachment-list>div{min-height:48px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.attachment-list button{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:6px 10px}.project-docs{display:grid;align-items:stretch}.approval-stage-docs{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.approval-stage-docs strong{color:var(--primary-dark)}.approval-doc-row{display:grid;grid-template-columns:auto minmax(110px,1fr) auto;gap:8px;align-items:center;padding:8px;border-radius:6px;background:var(--surface-soft)}.approval-doc-row button{grid-column:1 / -1;justify-self:start;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:5px 8px}.full-label{display:grid;gap:8px}.step-line{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.step-line span{min-height:48px;display:grid;place-items:center;border-radius:8px;color:var(--muted);background:#e3e8f0}.step-line span.done{color:var(--green);background:#d7f4e0;font-weight:700}.check-report{padding:14px;border-radius:8px;background:var(--surface-soft)}.check-report h3{margin:0 0 8px}.dangerText{color:var(--red);font-weight:700}.bar-chart{height:220px;display:grid;grid-template-columns:repeat(4,1fr);align-items:end;gap:18px;padding:16px 10px 0}.bar-chart span{position:relative;display:grid;align-items:end;justify-items:center;height:var(--h);min-height:38px;border-radius:6px 6px 0 0;color:var(--primary-dark);background:linear-gradient(180deg,#5fa1f3,#408dea,#1779e1);font-size:13px;font-weight:700;padding-bottom:8px}.donut{width:180px;height:180px;display:grid;place-items:center;margin:18px auto;border-radius:50%;background:conic-gradient(var(--primary) 0 42%,var(--green) 42% 70%,var(--orange) 70% 86%,oklch(88% .02 255) 86%)}.donut span{width:112px;height:112px;display:grid;place-items:center;border-radius:50%;background:var(--surface);font-weight:800}.line-chart{width:100%;height:220px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#f5f9fe,#edf2fa)}.warning-list{display:grid;gap:10px}.warning-list p{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border-radius:8px;color:var(--red);background:#fff1ef;background:oklch(97% .025 25)}.report-page{gap:16px}.report-toolbar{justify-content:flex-end}.report-toolbar>div{flex:1;min-width:280px;display:grid;gap:4px}.report-toolbar strong{color:var(--text);font-size:16px}.report-toolbar span{color:var(--muted);font-size:13px}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.report-metrics article{min-height:92px;display:grid;align-content:center;gap:8px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 8px 22px #29436c0f}.report-metrics span{color:var(--muted);font-size:13px;font-weight:700}.report-metrics strong{color:var(--primary-dark);font-size:26px;letter-spacing:0}.report-grid{display:grid;grid-template-columns:minmax(520px,1.45fr) minmax(280px,.8fr) minmax(320px,.9fr);gap:16px;align-items:stretch}.report-chart-card{min-height:300px}.dynamic-bar-chart{height:218px;display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));align-items:end;gap:16px;padding:10px 4px 0}.dynamic-bar{min-width:0;height:100%;display:grid;grid-template-rows:24px 1fr 34px;align-items:end;justify-items:center;gap:8px}.dynamic-bar i{width:min(72px,72%);min-height:16px;display:block;border-radius:6px 6px 0 0;background:linear-gradient(180deg,oklch(70% .14 255),var(--primary));box-shadow:0 10px 20px #1677ff29}.bar-value{color:var(--primary-dark);font-size:13px;font-weight:800}.bar-label{max-width:100%;color:var(--muted);font-size:12px;font-weight:700;line-height:1.25;text-align:center;overflow-wrap:anywhere}.report-donut-wrap{display:grid;justify-items:center;gap:14px}.report-donut{width:168px;height:168px;margin:6px auto 0}.report-donut span{width:102px;height:102px;text-align:center}.donut-legend{width:100%;display:grid;gap:8px}.donut-legend span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.donut-legend i{width:10px;height:10px;border-radius:50%}.legend-blue{background:var(--primary)}.legend-green{background:var(--green)}.legend-orange{background:var(--orange)}.legend-0{background:var(--primary)}.legend-1{background:var(--green)}.legend-2{background:var(--orange)}.legend-3{background:#94a0ae}.analysis-list{display:grid;gap:14px;padding-top:4px}.analysis-row{display:grid;gap:8px}.analysis-row>div{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:13px}.analysis-row strong{flex:0 0 auto;color:var(--primary-dark);font-size:13px}.analysis-row i{height:10px;overflow:hidden;border-radius:999px;background:#e3e8f0}.analysis-row b{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--primary),oklch(70% .14 255))}.report-line-chart{width:100%;height:210px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(0deg,rgba(22,119,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(22,119,255,.04) 1px,transparent 1px),var(--surface-soft);background-size:100% 32px,44px 100%,auto}.report-table table{min-width:900px}.dashboard-page{gap:16px}.dashboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.dashboard-stat{min-height:112px;display:grid;align-content:center;gap:8px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 8px 22px #29436c0f}.dashboard-stat span,.dashboard-stat small{color:var(--muted)}.dashboard-stat strong{font-size:30px;letter-spacing:0}.dashboard-stat.blue strong{color:var(--primary)}.dashboard-stat.green strong{color:var(--green)}.dashboard-stat.orange strong{color:var(--orange)}.dashboard-stat.red strong{color:var(--red)}.dashboard-chart-grid{display:grid;grid-template-columns:minmax(500px,1.2fr) minmax(280px,.82fr) minmax(360px,1fr);gap:16px}.dashboard-chart-card{min-height:316px}.dashboard-bars{height:230px}.dashboard-line{height:188px}.trend-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:8px;color:var(--muted);font-size:12px;font-weight:700;text-align:center}.dashboard-bottom-grid{grid-template-columns:minmax(520px,1.25fr) minmax(360px,.95fr)}.dashboard-table table{min-width:1040px}.dashboard-chart-card .donut-legend span:nth-child(1) i{background:var(--primary)}.dashboard-chart-card .donut-legend span:nth-child(2) i{background:var(--green)}.dashboard-chart-card .donut-legend span:nth-child(3) i{background:var(--orange)}.detail-grid,.settings-form,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.detail-grid span{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.project-code-group{display:grid;gap:14px}.project-code-summary{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}.project-code-summary span,.project-detail-progress{min-height:46px;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.compact-table table{min-width:900px}.compact-table th,.compact-table td{padding:9px 10px;font-size:13px}.project-detail-panel{display:grid;gap:14px}.project-detail-progress{justify-content:space-between;flex-wrap:wrap}.project-detail-progress>span{color:var(--muted);font-weight:700}.modal-inline-actions{display:flex;justify-content:flex-end;gap:10px}.project-detail-docs{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f4f9ff}.project-detail-docs-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-detail-docs-head h3{margin:0;font-size:16px}.project-detail-docs .contract-docs{margin-top:0}.project-detail-docs .contract-doc-stage{background:var(--surface)}.stage-summary{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin-bottom:14px}.stage-summary span{min-height:44px;display:flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);font-size:13px}.stage-doc-table{min-width:980px}.stage-doc-table td:first-child strong,.stage-doc-table td:first-child small{display:block}.stage-doc-table td:first-child small{margin-top:4px;color:var(--muted);font-size:12px}.file-pill-row{display:flex;flex-wrap:wrap;gap:6px}.file-pill{max-width:260px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font-size:12px;overflow-wrap:anywhere}.payment-inline{align-items:end;margin-top:14px}.ok-text{color:var(--green)}.rule-tip{grid-column:1 / -1;margin:0;padding:12px;border-radius:8px;color:var(--primary);background:#e4f0ff;background:oklch(95% .04 255);font-weight:700}.timeline{display:grid;gap:8px;margin:14px 0;padding:14px;border-radius:8px;background:var(--surface-soft)}.timeline p{display:flex;align-items:center;gap:8px;margin:0}.tabs{display:flex;flex-wrap:wrap;gap:8px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.tabs button{min-height:36px;padding:7px 12px;border:0;border-radius:6px;background:transparent;color:var(--muted)}.tabs button.active{color:var(--primary);background:#e4f0ff;background:oklch(95% .04 255);font-weight:700}.approval-chain{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.approval-chain h3{flex-basis:100%;margin:0}.approval-chain span{padding:8px 12px;border-radius:6px;background:var(--surface);border:1px solid var(--line)}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.permission-grid hr{grid-column:1 / -1;width:100%;border:0;border-top:1px solid var(--line)}.backup-panel{max-width:720px;display:grid;gap:12px}.backup-schedule{display:grid;grid-template-columns:1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.backup-schedule-title{display:inline-flex;align-items:center;gap:8px}.schedule-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.schedule-options button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text)}.schedule-options button.selected{border-color:color-mix(in oklch,var(--primary) 48%,var(--line));background:#e9f3ff;background:oklch(96% .035 255);color:var(--primary);font-weight:700}.retention-input{display:grid;gap:6px;max-width:180px;color:var(--muted);font-size:13px;font-weight:600}.drawer{position:fixed;top:0;right:0;z-index:30;width:min(620px,94vw);height:100dvh;padding:20px;overflow-y:auto;background:var(--surface);border-left:1px solid var(--line);box-shadow:-18px 0 42px #1f365c2e}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.drawer-head h2{margin:0}.status-steps{display:grid;gap:10px;margin-top:18px}.status-steps button{min-height:70px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 10px;padding:12px;text-align:left}.status-steps small{grid-column:2;color:var(--muted)}.status-steps em{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-style:normal}.status-steps i{padding:3px 7px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:12px;font-style:normal}.drawer-loading{margin-top:18px;color:var(--muted)}.contract-docs{display:grid;gap:14px;margin-top:18px}.contract-doc-stage{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.contract-doc-stage header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.contract-doc-stage h3{margin:0 0 3px;font-size:16px}.contract-doc-stage small{color:var(--muted)}.contract-doc-row{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;gap:8px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.contract-doc-main{display:grid;gap:3px}.contract-doc-main strong{font-size:14px}.contract-doc-main small{max-width:100%;line-height:1.45}.contract-doc-files,.contract-doc-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px}.contract-doc-actions button,.contract-stage-link{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);white-space:nowrap}.contract-stage-link{justify-self:start}@media (max-width: 560px){.contract-doc-row{grid-template-columns:1fr}.contract-doc-stage header{display:grid}.contract-doc-files,.contract-doc-actions{grid-column:auto}}.ok-icon{color:var(--green)}.bad-icon{color:var(--red)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0d1c3385}.modal{width:min(780px,96vw);max-height:88dvh;overflow:auto;padding:18px;border-radius:8px;background:var(--surface);box-shadow:0 22px 70px #0c1a3047}.modal>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.modal-title-row{min-width:0;display:flex;align-items:center;gap:10px}.modal h2{margin:0;font-size:20px;overflow-wrap:anywhere}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:16px}.modal-actions button:disabled{opacity:.45;cursor:not-allowed}.preview-box{min-height:240px;display:grid;place-items:center;gap:10px;text-align:center;color:var(--primary);border:1px dashed color-mix(in oklch,var(--primary) 42%,var(--line));border-radius:8px;background:#eff6ff;background:oklch(97% .025 255)}.toast{position:fixed;right:24px;bottom:24px;z-index:80;min-height:42px;display:grid;place-items:center;padding:10px 16px;border-radius:8px;color:#f6f9fd;background:#103058;box-shadow:var(--shadow)}@media (max-width: 1120px){.login-page{grid-template-columns:1fr}.stat-grid,.chart-grid,.dashboard-metrics,.dashboard-chart-grid,.dashboard-bottom-grid,.report-grid,.report-metrics,.split-grid{grid-template-columns:repeat(2,1fr)}.topbar{height:auto;min-height:72px;align-items:flex-start;padding-block:14px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20;width:100%;min-height:auto}.sidebar.collapsed{width:100%}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar.collapsed .sidebar-title span,.sidebar.collapsed nav span{display:inline}.topbar{flex-wrap:wrap}.topbar-actions{width:100%;margin-left:0;justify-content:flex-start}.content{padding:14px}.stat-grid,.chart-grid,.dashboard-metrics,.dashboard-chart-grid,.dashboard-bottom-grid,.report-grid,.report-metrics,.split-grid,.detail-grid,.settings-form,.form-grid,.permission-grid,.role-grid,.step-line{grid-template-columns:1fr}.flow-map{grid-template-columns:repeat(2,1fr)}.login-page{padding:22px}.refined-login{padding:16px}.login-visual h1{font-size:30px}.login-hero{min-height:auto}.board-header,.hero-topline,.login-card-head{align-items:flex-start}.pipeline-preview{grid-template-columns:1fr}.refined-card{padding:22px}.filter-bar{align-items:stretch}.filter-bar>*{width:100%}}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}.login-page.agent-login{position:relative;overflow:hidden;min-height:100dvh;height:100dvh;display:grid;grid-template-columns:minmax(560px,740px) minmax(440px,500px);grid-template-rows:auto minmax(0,1fr);column-gap:clamp(34px,4vw,56px);row-gap:clamp(20px,3vh,32px);align-items:center;justify-content:center;padding:22px clamp(32px,6vw,92px) 26px;background:radial-gradient(circle at 26% 32%,rgba(147,181,255,.34),transparent 34%),radial-gradient(circle at 66% 56%,rgba(196,203,255,.26),transparent 35%),linear-gradient(135deg,#eaf3ff,#eef3ff 48%,#f8fbff)}.login-page.agent-login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(22,119,255,.045) 1px,transparent 1px),linear-gradient(0deg,rgba(22,119,255,.035) 1px,transparent 1px);background-size:82px 82px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.65),transparent 76%);mask-image:linear-gradient(180deg,rgba(0,0,0,.65),transparent 76%)}.login-page.agent-login.extranet-login{background:radial-gradient(circle at 24% 28%,rgba(255,204,134,.28),transparent 32%),radial-gradient(circle at 70% 62%,rgba(177,222,204,.24),transparent 34%),linear-gradient(135deg,#fff8ed,#f5fbf8 52%,#f7fbff)}.agent-login-header{position:relative;z-index:1;grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:24px}.agent-brand{display:flex;align-items:center;gap:12px;color:var(--primary-dark)}.agent-logo{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#f6f9fd;background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 14px 30px #1f5bb02e}.agent-brand strong{display:block;color:var(--primary-dark);font-size:20px;font-weight:900;line-height:1.2}.agent-brand span:not(.agent-logo){display:block;margin-top:3px;color:var(--muted);font-size:13px;font-weight:700}.agent-env{min-height:34px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid rgba(70,116,183,.18);border-radius:999px;color:var(--muted);background:#ffffff94;font-size:13px;font-weight:800;gap:7px}.agent-env.intranet{color:#1357a6;border-color:#1677ff38;background:#eef6ffd1}.agent-env.extranet{color:#8b5d10;border-color:#c9891b47;background:#fff7e7db}.extranet-login .agent-logo{background:linear-gradient(135deg,#d58b1b,#a7660c);box-shadow:0 14px 30px #ae701433}.extranet-login .agent-copy h1{color:#6c4a16}.extranet-login .agent-feature-grid svg{color:#9a6916}.agent-login-showcase{position:relative;z-index:1;align-self:center;width:100%;max-width:740px;justify-self:stretch}.agent-copy{margin-bottom:28px}.agent-copy h1{max-width:760px;margin:0;color:var(--primary-dark);font-size:clamp(32px,3.3vw,46px);line-height:1.12;letter-spacing:0}.agent-copy p{max-width:640px;margin:14px 0 0;color:#2e3c4d;font-size:16px;line-height:1.6}.agent-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.agent-feature-grid article{min-height:128px;display:grid;align-content:start;gap:10px;padding:18px;border:1px solid rgba(89,126,180,.18);border-radius:16px;background:#ffffff8a;box-shadow:0 18px 40px #3d56871a}.agent-feature-grid svg{color:#222f3f}.agent-feature-grid strong{color:var(--text);font-size:16px;line-height:1.35}.agent-feature-grid span{color:var(--muted);font-size:14px;line-height:1.5}.agent-auth-card{position:relative;z-index:1;align-self:center;justify-self:stretch;width:100%;max-width:500px;min-height:0;padding:32px 38px;border:1px solid rgba(70,116,183,.13);border-radius:22px;background:#fffffff0;box-shadow:0 28px 80px #334e8024}.agent-auth-head h2{margin:0;color:var(--text);font-size:26px;font-weight:800;line-height:1.25}.agent-auth-head p{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.agent-tabs{display:flex;gap:34px;margin:24px 0 18px;border-bottom:1px solid var(--line)}.agent-tabs button{position:relative;min-height:36px;padding:0 0 11px;border:0;color:var(--muted);background:transparent;font-weight:700}.agent-tabs button.active{color:var(--primary)}.agent-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:999px;background:var(--primary)}.agent-input{margin-top:12px;gap:8px}.agent-input>span{color:var(--muted);font-size:13px;font-weight:700}.agent-input>div{min-height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface)}.agent-input input{min-height:42px;padding:0;border:0;background:transparent}.agent-auth-card .login-row{margin-top:10px}.agent-auth-card .role-title{margin:18px 0 10px}.agent-auth-card .role-title span{color:var(--text);font-size:14px;font-weight:800}.agent-auth-card .role-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:0}.agent-auth-card .role-grid button{min-height:48px;display:flex;align-items:center;justify-content:center;padding:0 14px;border-radius:8px;text-align:center;font-size:15px;font-weight:800;background:#f0f6fd}.agent-auth-card .role-grid button.selected{color:var(--primary);border-color:color-mix(in oklch,var(--primary) 50%,var(--line));background:#e9f3ff;background:oklch(96% .035 255)}.agent-auth-card .primary.wide{min-height:46px;margin-top:20px;border-radius:8px;font-size:16px;font-weight:800}.agent-auth-card .security-strip{margin-top:12px;justify-content:center;color:var(--muted);background:transparent;font-size:13px}@media (max-width: 1120px){.login-page.agent-login{height:auto;overflow:auto;grid-template-columns:1fr;grid-template-rows:auto auto auto;align-items:stretch;padding:24px}.agent-login-showcase,.agent-auth-card{justify-self:center}.agent-login-showcase{max-width:900px}}@media (min-width: 1121px) and (max-height: 860px){.login-page.agent-login{row-gap:18px;padding-top:18px;padding-bottom:20px}.agent-copy{margin-bottom:22px}.agent-copy h1{font-size:clamp(30px,3vw,42px)}.agent-copy p{font-size:15px;line-height:1.55}.agent-feature-grid article{min-height:116px;gap:8px;padding:16px}.agent-feature-grid span{line-height:1.42}.agent-auth-card{padding:28px 34px}.agent-tabs{margin:20px 0 16px}.agent-auth-card .role-title{margin-top:16px}}@media (max-width: 760px){.login-page.agent-login{gap:24px;padding:18px}.agent-login-header{align-items:flex-start}.agent-env{display:none}.agent-copy{margin-bottom:22px}.agent-copy h1{font-size:30px}.agent-copy p{font-size:15px}.agent-feature-grid{grid-template-columns:1fr}.agent-auth-card{min-height:auto;padding:26px 22px;border-radius:16px}.agent-auth-card .role-grid{grid-template-columns:1fr}}.muted-text{color:var(--muted);font-size:13px}
