:root{--canvas:#0b1220;--surface-1:#111b2e;--surface-2:#162238;--surface-hover:#1b2b45;--border:#273852;--text:#edf4ff;--text-2:#a8b7cc;--muted:#70829b;--brand:#4ab3a7;--brand-strong:#2c8f86;--positive:#48b98a;--pending:#5ea8ff;--warning:#f4b75e;--negative:#ee7272;--neutral:#8292aa;--focus:#8ccbff;--radius:8px;--shadow:0 18px 48px rgb(0 0 0 / 36%);font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;color:var(--text);background:var(--canvas)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas)}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer}.eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.muted{color:var(--text-2);font-size:14px;line-height:1.6}.brand-mark{align-items:center;background:var(--brand);border-radius:10px;color:#06221e;display:inline-flex;font-size:34px;font-weight:900;height:50px;justify-content:center;width:50px}.brand-mark.small{border-radius:7px;font-size:24px;height:34px;width:34px}
.login-shell{display:grid;grid-template-columns:minmax(340px,1.05fr) minmax(420px,.95fr);min-height:100vh}.login-intro{background:radial-gradient(circle at 15% 12%,#1a3c4a 0,transparent 34%),linear-gradient(145deg,#0e1b2d,#08101d);display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,10vw,170px)}.login-intro h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.04em;margin:20px 0 12px}.intro-copy{color:var(--text-2);font-size:17px;line-height:1.8;max-width:480px}.security-note{border-left:2px solid var(--brand);color:var(--text-2);display:flex;font-size:13px;gap:12px;line-height:1.7;margin-top:48px;padding:9px 14px}.security-note span:first-child{color:var(--brand)}.login-panel{align-items:center;background:#0b1220;display:flex;justify-content:center;padding:32px}.login-card{display:grid;gap:18px;max-width:390px;width:100%}.login-card h2{font-size:28px;margin:2px 0 0}.login-card label{color:var(--text-2);display:grid;font-size:13px;font-weight:600;gap:7px}.login-card label span{color:var(--muted);font-size:11px;font-weight:400;margin-left:5px}.login-card input,.filter-input,.filter-select{background:#0d1727;border:1px solid var(--border);border-radius:6px;color:var(--text);height:42px;outline:none;padding:0 12px}.login-card input:focus,.filter-input:focus,.filter-select:focus,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.link-button{align-self:start;background:transparent;border:0;color:var(--brand);font-size:13px;padding:0;text-decoration:underline}.primary-button{align-items:center;background:var(--brand);border:0;border-radius:6px;color:#05211d;display:flex;font-weight:800;height:44px;justify-content:center;gap:8px}.primary-button:hover{background:#60c4b9}.form-error{background:rgb(238 114 114 / 12%);border:1px solid rgb(238 114 114 / 50%);border-radius:6px;color:#ffc1c1;font-size:13px;margin:0;padding:10px 12px}
.console{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface-1);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:100vh;padding:16px 12px;position:sticky;top:0}.sidebar-brand{align-items:center;display:flex;gap:10px;height:42px;margin:4px 8px 22px}.sidebar-brand b{display:block;font-size:16px;letter-spacing:.02em}.sidebar-brand small{color:var(--muted);display:block;font-size:11px;margin-top:1px}.navigation{display:grid;gap:2px}.nav-section{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;margin:19px 10px 6px;text-transform:uppercase}.nav-item{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--text-2);display:flex;font-size:14px;gap:10px;height:38px;padding:0 10px;text-align:left;width:100%}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:rgb(74 179 167 / 15%);color:#b4f0e8;font-weight:700}.nav-icon{font-size:16px;width:18px}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-2);font-size:12px;line-height:1.7;margin:24px 8px 4px;padding-top:16px;margin-top:auto}.sidebar-footer small{color:var(--muted)}.environment-dot{color:var(--warning)}.workspace{min-width:0}.topbar{align-items:center;background:rgb(17 27 46 / 94%);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;height:56px;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.topbar h1{font-size:20px;line-height:23px;margin:0}.topbar .eyebrow{font-size:9px;margin-bottom:0}.topbar-actions{align-items:center;display:flex;gap:10px;position:relative}.icon-button{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-2);font-size:19px;height:34px;width:34px}.icon-button:hover{background:var(--surface-hover);border-color:var(--border);color:var(--text)}.account-button{align-items:center;background:transparent;border:0;color:var(--text);display:flex;gap:9px;padding:2px 4px;text-align:left}.account-button>span:first-child{align-items:center;background:#27465d;border-radius:50%;display:flex;font-size:13px;font-weight:700;height:30px;justify-content:center;width:30px}.account-button b,.account-button small{display:block;font-size:12px}.account-button small{color:var(--muted);font-size:10px;margin-top:2px}.popover{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:5px;position:absolute;right:0;top:42px;z-index:20}.popover button{background:transparent;border:0;border-radius:5px;color:var(--text-2);min-width:132px;padding:9px 10px;text-align:left}.popover button:hover{background:var(--surface-hover);color:var(--text)}.connection-banner{background:rgb(244 183 94 / 10%);border-bottom:1px solid rgb(244 183 94 / 28%);color:#f8ce91;font-size:12px;padding:9px 24px}.connection-banner span{color:var(--warning);font-size:10px}.page-content{padding:24px;max-width:1800px}.page-heading{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin:0 0 20px}.page-heading h2{font-size:20px;margin:0}.page-heading p{margin:6px 0 0}.section-note{background:rgb(94 168 255 / 8%);border:1px solid rgb(94 168 255 / 25%);border-radius:8px;color:#b8d8ff;font-size:13px;line-height:1.6;margin-bottom:18px;padding:12px 14px}.stats-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.stat-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);min-height:124px;padding:16px;text-align:left}.stat-card:hover{background:var(--surface-hover);border-color:#365170}.stat-card small{color:var(--text-2);display:block;font-size:12px}.stat-card strong{display:block;font-size:31px;letter-spacing:-.03em;margin:10px 0}.stat-card em{color:var(--muted);font-size:11px;font-style:normal}.stat-card.pending strong{color:#8ec4ff}.stat-card.warning strong{color:#ffd18a}.stat-card.negative strong{color:#ffabab}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;overflow:hidden}.panel-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;min-height:54px;padding:0 16px}.panel-header h3{font-size:15px;margin:0}.panel-header p{color:var(--muted);font-size:12px;margin:0}.panel-body{padding:16px}.two-column{display:grid;gap:18px;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}.empty-state{color:var(--text-2);font-size:13px;line-height:1.7;padding:26px 8px;text-align:center}.empty-state strong{color:var(--text);display:block;font-size:14px;margin-bottom:4px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;font-size:13px;width:100%}.data-table th{background:rgb(11 18 32 / 45%);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.03em;padding:10px 12px;text-align:left;white-space:nowrap}.data-table td{border-top:1px solid rgb(39 56 82 / 72%);color:var(--text-2);max-width:270px;padding:11px 12px;vertical-align:middle}.data-table tr[data-id]{cursor:pointer}.data-table tr[data-id]:hover td{background:var(--surface-hover)}.data-table td.primary-cell{color:var(--text);font-weight:600}.subline{color:var(--muted);display:block;font-family:"Cascadia Mono",Consolas,monospace;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nowrap{white-space:nowrap}.status{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:700;gap:5px;padding:3px 7px;white-space:nowrap}.status::before{content:"●";font-size:8px}.status.positive{background:rgb(72 185 138 / 13%);color:#8ee2bd}.status.pending{background:rgb(94 168 255 / 14%);color:#a9d1ff}.status.warning{background:rgb(244 183 94 / 13%);color:#ffd695}.status.negative{background:rgb(238 114 114 / 14%);color:#ffb4b4}.status.neutral{background:rgb(130 146 170 / 15%);color:#c2cede}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:9px;margin:0 0 14px}.filter-input{min-width:240px}.filter-select{color:var(--text-2)}.secondary-button{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-2);height:34px;padding:0 11px}.secondary-button:hover{background:var(--surface-hover);color:var(--text)}.danger-button{background:rgb(238 114 114 / 10%);border:1px solid rgb(238 114 114 / 35%);border-radius:6px;color:#ffb4b4;height:32px;padding:0 10px}.danger-button:hover{background:rgb(238 114 114 / 18%)}.row-actions{display:flex;gap:6px}.mini-button{background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--text-2);font-size:12px;height:29px;padding:0 8px}.mini-button:hover{background:var(--surface-hover);color:var(--text)}.mono{font-family:"Cascadia Mono",Consolas,monospace;font-size:11px}.action-list{display:grid}.action-item{align-items:center;border-bottom:1px solid var(--border);display:grid;gap:12px;grid-template-columns:10px 1fr auto;padding:13px 0}.action-item:last-child{border-bottom:0}.action-dot{background:var(--pending);border-radius:50%;height:7px;width:7px}.action-dot.warning{background:var(--warning)}.action-dot.negative{background:var(--negative)}.action-item b{display:block;font-size:13px}.action-item small{color:var(--muted);display:block;font-size:11px;margin-top:3px}.action-item a{color:var(--brand);font-size:12px;text-decoration:none}.audit-list{display:grid;gap:0}.audit-row{border-bottom:1px solid var(--border);display:grid;grid-template-columns:112px 1fr auto;gap:10px;padding:11px 0}.audit-row:last-child{border-bottom:0}.audit-row b{font-size:12px}.audit-row small{color:var(--muted);font-size:11px}.risk-strip{display:flex;gap:0;margin-bottom:18px}.risk-step{background:var(--surface-1);border:1px solid var(--border);border-right:0;flex:1;min-height:76px;padding:12px}.risk-step:first-child{border-radius:8px 0 0 8px}.risk-step:last-child{border-radius:0 8px 8px 0;border-right:1px solid var(--border)}.risk-step small{color:var(--muted);display:block;font-size:11px}.risk-step b{display:block;font-size:13px;margin-top:7px}.kv-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.kv-item{border-bottom:1px solid var(--border);padding:10px 0}.kv-item small{color:var(--muted);display:block;font-size:11px}.kv-item b{display:block;font-size:13px;margin-top:5px;word-break:break-word}.toast-region{bottom:20px;display:grid;gap:8px;position:fixed;right:20px;z-index:50}.toast{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--positive);border-radius:7px;box-shadow:var(--shadow);font-size:13px;max-width:360px;padding:12px 14px}.toast.error{border-left-color:var(--negative)}.modal-backdrop{align-items:center;background:rgb(0 0 0 / 55%);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.modal{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-width:520px;padding:22px;width:100%}.modal h3{font-size:17px;margin:0 0 8px}.modal p{color:var(--text-2);font-size:13px;line-height:1.65}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.modal .primary-button{padding:0 14px}.modal label{color:var(--text-2);display:grid;font-size:12px;gap:6px;margin-top:14px}.modal input{background:#0d1727;border:1px solid var(--border);border-radius:6px;color:var(--text);height:38px;padding:0 10px;width:100%}.mobile-only{display:none}
@media(max-width:1279px){.console{grid-template-columns:64px minmax(0,1fr)}.sidebar{padding:16px 8px}.sidebar-brand{justify-content:center;margin:4px 0 22px}.sidebar-brand>span:last-child,.nav-item span:not(.nav-icon),.nav-section,.sidebar-footer{display:none}.nav-item{justify-content:center;padding:0}.nav-icon{font-size:18px;text-align:center}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.login-shell{grid-template-columns:1fr}.login-intro{min-height:235px;padding:34px}.login-intro h1{font-size:31px;margin:14px 0 4px}.intro-copy{font-size:14px;margin:5px 0}.security-note{display:none}.login-panel{padding:32px 24px}.console{display:block}.sidebar{box-shadow:var(--shadow);display:none;height:100vh;position:fixed;width:232px;z-index:30}.sidebar.open{display:flex}.sidebar-brand{justify-content:flex-start;margin-left:8px}.sidebar-brand>span:last-child,.nav-item span:not(.nav-icon),.nav-section,.sidebar-footer{display:block}.nav-item{justify-content:flex-start;padding:0 10px}.mobile-only{display:inline-block}.topbar{padding:0 14px}.connection-banner{padding:9px 14px}.page-content{padding:16px}.page-heading{display:block}.page-heading .secondary-button{margin-top:12px}.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{min-height:105px;padding:12px}.stat-card strong{font-size:26px;margin:7px 0}.two-column{grid-template-columns:1fr}.data-table th:nth-child(n+4),.data-table td:nth-child(n+4){display:none}.risk-strip{display:grid;grid-template-columns:1fr 1fr}.risk-step{border:1px solid var(--border);border-radius:0!important}.risk-step:first-child{border-radius:8px 0 0 0!important}.risk-step:nth-child(2){border-radius:0 8px 0 0!important}.risk-step:nth-child(3){border-radius:0 0 0 8px!important}.risk-step:last-child{border-radius:0 0 8px 0!important}.filter-input{min-width:0;width:100%}.audit-row{grid-template-columns:90px 1fr}.audit-row>small:last-child{display:none}}
.drawer-backdrop{background:rgb(0 0 0 / 54%);inset:0;position:fixed;z-index:60}.drawer{background:var(--surface-2);border-left:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;height:100%;margin-left:auto;max-width:560px;overflow:auto;width:min(100%,560px)}.drawer-head{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:14px;justify-content:space-between;padding:22px 22px 17px}.drawer-head h3{font-size:19px;margin:3px 0 5px}.drawer-head p:not(.eyebrow){color:var(--text-2);font-size:12px;line-height:1.55;margin:0}.drawer-body{display:grid;gap:16px;padding:20px 22px}.drawer-body h4{font-size:14px;margin:5px 0 -4px}.drawer-note{color:var(--muted);font-size:12px;line-height:1.65;margin:0}.drawer-actions{border-top:1px solid var(--border);display:flex;gap:9px;justify-content:flex-end;margin-top:auto;padding:16px 22px}.drawer-actions .primary-button,.inline-form .primary-button{padding:0 14px}.form{display:grid;gap:16px}.form-grid{display:grid;gap:13px;grid-template-columns:1fr 1fr}.form-grid label,.inline-form label{color:var(--text-2);display:grid;font-size:12px;gap:6px}.form-grid input,.inline-form select{background:#0d1727;border:1px solid var(--border);border-radius:6px;color:var(--text);height:38px;padding:0 10px;width:100%}.customer-type-choice{border:1px solid var(--border);border-radius:7px;display:flex;gap:18px;margin:0;padding:11px 13px}.customer-type-choice legend{color:var(--muted);font-size:11px;padding:0 4px}.customer-type-choice label{color:var(--text-2);font-size:13px}.customer-type-choice input{accent-color:var(--brand)}.inline-form{align-items:end;border-top:1px solid var(--border);display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;margin:4px 0 -4px;padding-top:16px}.data-table tr[data-customer-id]{cursor:pointer}.data-table tr[data-customer-id]:hover td{background:var(--surface-hover)}@media(max-width:767px){.drawer{max-width:none;width:100%}.drawer-head{padding:18px 16px 15px}.drawer-body{padding:16px}.drawer-actions{padding:14px 16px}.form-grid{grid-template-columns:1fr}.inline-form{align-items:stretch;grid-template-columns:1fr}.customer-type-choice{gap:12px}.data-table tr[data-customer-id] td:nth-child(n+3){display:table-cell}}
.form-grid select{background:#0d1727;border:1px solid var(--border);border-radius:6px;color:var(--text);height:38px;padding:0 10px;width:100%}
