:root { --orange:#f0522d; --orange-dark:#d94422; --navy:#16324f; --text:#1d2939; --muted:#667085; --border:#dfe3e8; }
* { box-sizing: border-box; }
body { margin:0; min-width:320px; background:#f5f7fa; color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; }
button,input { font:inherit; }
select { font:inherit; }
.shell { display:grid; grid-template-columns:minmax(380px, .9fr) minmax(520px, 1.1fr); min-height:100vh; }
.brand-panel { position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:54px 64px 44px; background:linear-gradient(145deg,#102c48,#1d496c); color:#fff; }
.brand-panel::after { position:absolute; right:-140px; bottom:-180px; width:430px; height:430px; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018); content:""; }
.brand { display:flex; align-items:center; gap:16px; }
.logo { display:inline-flex; flex:none; align-items:center; justify-content:center; width:54px; height:54px; border-radius:15px; background:var(--orange); color:#fff; font-size:20px; font-weight:800; box-shadow:0 9px 24px rgba(240,82,45,.22); }
.brand h1,.brand p { margin:0; }.brand h1 { font-size:24px; letter-spacing:1px; }.brand p { margin-top:4px; color:rgba(255,255,255,.6); font-size:13px; }
.message { position:relative; z-index:1; max-width:550px; }
.eyebrow { color:var(--orange); font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; }
.message h2 { margin:17px 0; font-size:42px; line-height:1.25; }.message>p:last-child { color:rgba(255,255,255,.7); font-size:16px; line-height:1.8; }
.ownership { position:relative; z-index:1; color:rgba(255,255,255,.5); font-size:12px; line-height:1.7; }
.ownership p { margin:5px 0; }
.login-panel { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:52px 40px 28px; }
.login-card { width:min(100%,450px); padding:40px 42px; border:1px solid rgba(22,50,79,.06); border-radius:20px; background:#fff; box-shadow:0 18px 55px rgba(22,50,79,.08); }
.mobile-brand { display:none; }.login-card h2 { margin:9px 0; color:var(--navy); font-size:29px; }.subtitle { margin:0 0 31px; color:var(--muted); font-size:14px; }
.login-card>label { display:block; margin:19px 0 9px; color:#344054; font-size:14px; font-weight:600; }
input[type="text"],input[type="password"] { width:100%; height:48px; padding:0 14px; border:1px solid var(--border); border-radius:10px; outline:none; color:var(--text); transition:.2s; }
input:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(240,82,45,.1); }
.password-field { position:relative; }.password-field input { padding-right:60px; }.text-action { position:absolute; top:0; right:7px; height:48px; border:0; background:transparent; color:var(--orange); cursor:pointer; font-size:13px; }
.error { min-height:17px; margin:4px 0 0; color:#d92d20; font-size:12px; }
.options { display:flex; align-items:center; justify-content:space-between; margin:13px 0 23px; color:var(--muted); font-size:13px; }.remember { display:flex; align-items:center; gap:5px; }.remember input { accent-color:var(--orange); }
.link-button { border:0; background:transparent; color:var(--orange); cursor:pointer; }
.submit { width:100%; height:50px; border:0; border-radius:11px; background:var(--orange); color:#fff; cursor:pointer; font-weight:700; transition:.2s; }.submit:hover { background:var(--orange-dark); }.submit:disabled { cursor:not-allowed; opacity:.55; }
.demo-note,.form-message { text-align:center; font-size:12px; }.demo-note { margin:17px 0 0; color:#98a2b3; }.form-message { min-height:18px; color:var(--orange); }
.hidden { display:none!important; }
.dashboard { width:min(100%,980px); }
.dashboard-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; }.dashboard-header h2 { margin:5px 0; color:var(--navy); font-size:30px; }.dashboard-header p { margin:0; color:var(--muted); font-size:13px; }.dashboard-header .eyebrow { color:var(--orange); font-weight:700; }
.outline-button { height:40px; padding:0 17px; border:1px solid var(--navy); border-radius:9px; background:#fff; color:var(--navy); cursor:pointer; }
.outline-button:disabled { cursor:wait; opacity:.55; }
.locale-select { height:40px; padding:0 30px 0 10px; border:1px solid var(--border); border-radius:9px; background:#fff; color:var(--navy); }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.metrics article,.dashboard-card { border:1px solid rgba(22,50,79,.07); border-radius:14px; background:#fff; box-shadow:0 8px 30px rgba(22,50,79,.055); }.metrics article { padding:20px; }.metrics span,.metrics strong,.metrics small { display:block; }.metrics span { color:var(--muted); font-size:13px; }.metrics strong { margin:10px 0 7px; color:var(--navy); font-size:25px; }.metrics small { color:#12a36d; font-size:11px; }
.dashboard-card { margin-top:16px; padding:22px; }.card-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }.card-heading h3,.card-heading p { margin:0; }.card-heading h3 { color:var(--navy); font-size:17px; }.card-heading p,.card-heading>span { margin-top:5px; color:#98a2b3; font-size:11px; }
.table-wrap { overflow-x:auto; }table { width:100%; border-collapse:collapse; font-size:12px; }th { padding:11px 8px; background:#f8fafc; color:var(--muted); text-align:left; font-weight:600; }td { padding:15px 8px; border-bottom:1px solid #eef0f3; color:#475467; white-space:nowrap; }tbody tr:last-child td { border-bottom:0; }td strong { color:var(--text); }.progress { display:inline-block; overflow:hidden; width:65px; height:6px; margin-right:7px; border-radius:5px; background:#e9edf2; vertical-align:middle; }.progress i { display:block; height:100%; border-radius:5px; background:var(--orange); }.status { padding:5px 8px; border-radius:6px; font-size:10px; font-style:normal; }.status.orange { background:#fff0eb; color:var(--orange); }.status.blue { background:#eaf0f6; color:var(--navy); }
.review-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.review-grid span { padding:14px; border-radius:9px; background:#f8fafc; color:#667085; font-size:12px; }.review-grid b { margin-right:6px; color:var(--orange); font-size:18px; }
footer { margin-top:38px; color:#98a2b3; text-align:center; font-size:12px; line-height:1.65; }footer p { margin:3px; }footer nav { margin-top:8px; }footer nav span { margin:0 8px; color:#667085; }
@media (max-width:1050px) { .metrics { grid-template-columns:repeat(2,1fr); }.review-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:860px) { .shell { display:block; }.brand-panel { display:none; }.login-panel { min-height:100vh; padding:32px 20px 22px; }.mobile-brand { display:flex; align-items:center; gap:13px; margin-bottom:28px; color:var(--navy); }.mobile-brand .logo { width:45px; height:45px; border-radius:12px; }.login-card { padding:30px 25px; }.dashboard-header { align-items:flex-start; gap:18px; }.table-wrap { margin:0 -10px; }.dashboard~footer { margin-top:25px; } }
@media (max-width:540px) { .metrics,.review-grid { grid-template-columns:1fr; }.dashboard-header { flex-direction:column; }.outline-button { width:100%; } }

/* 第三阶段运营工作台 */
.shell.workspace { grid-template-columns:240px minmax(0,1fr); }
.shell.workspace .brand-panel { padding:28px 20px 24px; }
.shell.workspace .brand-panel::after,.shell.workspace #brand-message { display:none; }
.shell.workspace .brand { align-items:center; }.shell.workspace .brand h1 { font-size:18px; }.shell.workspace .brand .logo { width:42px; height:42px; border-radius:12px; }
.shell.workspace .login-panel { display:block; min-width:0; padding:30px 32px 20px; }
.admin-nav { position:relative; z-index:2; display:flex; flex:1; flex-direction:column; gap:6px; margin:36px 0; }
.nav-item { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:44px; padding:0 13px; border:0; border-radius:9px; background:transparent; color:rgba(255,255,255,.7); cursor:pointer; text-align:left; }
.nav-item:hover,.nav-item.active { background:rgba(255,255,255,.11); color:#fff; }.nav-item.active { box-shadow:inset 3px 0 var(--orange); }
.nav-item b { min-width:22px; padding:2px 6px; border-radius:9px; background:var(--orange); color:#fff; text-align:center; font-size:10px; }
.dashboard { width:100%; max-width:1500px; margin:0 auto; }
.dashboard-header { align-items:center; }.header-actions { display:flex; gap:9px; }.dashboard-header .outline-button { background:transparent; }
.metrics-five { grid-template-columns:repeat(5,1fr); }.metrics article strong { font-size:22px; }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }.toolbar h3,.toolbar p { margin:0; }.toolbar h3 { color:var(--navy); font-size:19px; }.toolbar p { margin-top:5px; color:var(--muted); font-size:12px; }
.primary-small,.table-action { border:0; border-radius:8px; background:var(--orange); color:#fff; cursor:pointer; font-weight:600; }
.primary-small { min-height:40px; padding:0 17px; }.table-action { min-height:29px; padding:0 10px; font-size:11px; }
.table-action.secondary { border:1px solid var(--border); background:#fff; color:var(--navy); }.table-action.danger { background:#fff0eb; color:#c43219; }.table-action:disabled { cursor:not-allowed; opacity:.45; }
.action-group { display:flex; flex-wrap:wrap; gap:6px; }.flush { padding:0; }.flush .table-wrap { padding:0; }.flush th:first-child,.flush td:first-child { padding-left:18px; }.flush th:last-child,.flush td:last-child { padding-right:18px; }
td.wrap { min-width:150px; white-space:normal; line-height:1.5; }.subtext { display:block; margin-top:4px; color:#98a2b3; font-size:10px; }
.status.green { background:#eaf8f2; color:#0b8a59; }.status.red { background:#fff0eb; color:#c43219; }.status.gray { background:#f2f4f7; color:#667085; }.status.purple { background:#f2edff; color:#6941c6; }
.progress.wide { width:90px; }.table-select { width:16px; height:16px; accent-color:var(--orange); }
.status-select { height:31px; max-width:125px; padding:0 6px; border:1px solid var(--border); border-radius:7px; background:#fff; color:var(--text); font-size:11px; }
.toast { position:fixed; z-index:20; top:24px; right:30px; max-width:420px; padding:13px 18px; border-radius:10px; background:var(--navy); color:#fff; box-shadow:0 10px 30px rgba(22,50,79,.25); font-size:13px; }
.toast.error-toast { background:#b42318; }
.modal { width:min(720px,calc(100vw - 36px)); padding:0; border:0; border-radius:16px; color:var(--text); box-shadow:0 24px 70px rgba(16,44,72,.28); }.modal::backdrop { background:rgba(11,28,44,.58); }
.modal form { padding:25px; }.modal-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:20px; }.modal-head h3,.modal-head p { margin:0; }.modal-head h3 { color:var(--navy); font-size:21px; }.icon-button { width:32px; height:32px; border:0; border-radius:50%; background:#f2f4f7; color:#667085; cursor:pointer; font-size:22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }.form-grid label,.modal>form>label { color:#344054; font-size:12px; font-weight:600; }.form-grid input,.form-grid textarea,.modal textarea { width:100%; margin-top:7px; padding:10px 11px; border:1px solid var(--border); border-radius:8px; outline:none; color:var(--text); font:inherit; font-weight:400; }.form-grid input { height:42px; }.form-grid textarea,.modal textarea { min-height:76px; resize:vertical; }.form-grid input:focus,.form-grid textarea:focus,.modal textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(240,82,45,.1); }.span-2 { grid-column:span 2; }
.modal-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:22px; }.small-modal { width:min(500px,calc(100vw - 36px)); }.modal-copy { color:var(--muted); font-size:13px; line-height:1.6; }
.empty-cell { padding:45px!important; color:#98a2b3; text-align:center; }
.certification-modal { width:min(980px,calc(100vw - 36px)); }.cert-detail-layout { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr); gap:22px; }.license-panel { padding:13px; border:1px solid var(--border); border-radius:12px; background:#f8fafc; }.license-label { margin-bottom:10px; color:var(--navy); font-size:13px; font-weight:700; }.license-panel img { display:block; width:100%; border:1px solid #e7d7c3; background:#fffaf0; }.license-panel p { margin:10px 2px 0; color:#98a2b3; font-size:11px; line-height:1.5; }.cert-info { display:grid; grid-template-columns:1fr 1fr; align-content:start; gap:0 18px; margin:0; }.cert-info div { padding:10px 0; border-bottom:1px solid #eef0f3; }.cert-info dt { margin-bottom:5px; color:#98a2b3; font-size:11px; }.cert-info dd { margin:0; color:#344054; font-size:13px; font-weight:600; line-height:1.5; word-break:break-all; }.view-confirm-note { margin-top:18px; padding:12px 15px; border-radius:9px; background:#fff6f2; color:#b54708; font-size:12px; line-height:1.6; }.viewed-badge { color:#12a36d; font-size:10px; font-weight:600; }
.group-row td { border-top:2px solid #d8e1ea; background:#eef3f8; color:var(--navy); }.quote-tag { display:inline-block; margin:2px; padding:3px 7px; border-radius:12px; background:#fff0e8; color:#a94720; font-size:10px; }
.aggregation-list { display:grid; gap:16px; }
.aggregation-card { overflow:hidden; border:1px solid rgba(22,50,79,.08); border-radius:14px; background:#fff; box-shadow:0 8px 30px rgba(22,50,79,.055); }
.aggregation-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px 14px; }
.aggregation-head h3,.aggregation-head p { margin:0; }.aggregation-head h3 { margin:4px 0 6px; color:var(--navy); font-size:20px; }.aggregation-head>div>p:last-child { color:var(--muted); font-size:12px; }
.aggregation-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.aggregation-metrics { display:grid; grid-template-columns:repeat(7,minmax(100px,1fr)); gap:1px; border-block:1px solid #edf0f3; background:#edf0f3; }
.aggregation-metrics span { padding:12px 14px; background:#f8fafc; color:var(--muted); font-size:10px; }.aggregation-metrics b { display:block; margin-top:5px; color:var(--navy); font-size:13px; }
.risk-line { min-height:42px; padding:9px 20px; background:#fffaf7; }.risk-tag { display:inline-block; margin:2px 5px 2px 0; padding:4px 8px; border-radius:12px; background:#fff0e8; color:#a94720; font-size:10px; }.risk-tag.safe { background:#eaf8f2; color:#0b8a59; }
.aggregation-card details summary { padding:14px 20px; color:var(--navy); cursor:pointer; font-size:12px; font-weight:700; }.aggregation-card details[open] summary { border-bottom:1px solid #edf0f3; }
.fingerprint { color:#475467; font-size:10px; }.count-good { color:#0b8a59; font-weight:700; }.count-warning { color:#b54708; font-weight:700; }.count-error { color:#b42318; font-weight:700; }
.table-action:active,.primary-small:active,.outline-button:active { transform:translateY(1px); }
.filter-bar,.settings-grid{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:0 0 16px}.filter-bar input,.filter-bar select,.settings-grid input{height:40px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.filter-bar input{min-width:260px}.settings-grid label{display:flex;flex:1;min-width:190px;flex-direction:column;gap:6px;color:#667085;font-size:11px}.complaint-settings{margin-bottom:16px}.complaint-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.complaint-detail article{padding:12px;border-radius:9px;background:#f8fafc}.complaint-detail article.wide{grid-column:span 2}.complaint-detail span{display:block;color:#98a2b3;font-size:11px}.complaint-detail strong{display:block;margin-top:4px;white-space:pre-wrap;word-break:break-word}.evidence-link{display:inline-block;margin:4px 8px 4px 0;color:#f0522d;cursor:pointer}.complaint-history{margin:8px 0;padding-left:18px;color:#667085;font-size:11px}footer nav a{margin:0 8px;color:#667085;text-decoration:none}
@media (max-width:1200px) { .metrics-five { grid-template-columns:repeat(3,1fr); } }
@media (max-width:1350px) { .aggregation-metrics { grid-template-columns:repeat(4,1fr); } }
@media (max-width:860px) { .shell.workspace { display:block; }.shell.workspace .brand-panel { display:block; padding:18px 20px; }.shell.workspace .ownership { display:none; }.shell.workspace .login-panel { min-height:auto; padding:22px 16px; }.admin-nav { display:flex; overflow-x:auto; flex-direction:row; margin:18px 0 0; }.nav-item { flex:none; width:auto; padding:0 14px; }.metrics-five { grid-template-columns:repeat(2,1fr); }.toolbar { align-items:flex-start; }.form-grid,.cert-detail-layout,.cert-info { grid-template-columns:1fr; }.span-2 { grid-column:span 1; } }
