:root{color:#202637;font-synthesis:none;background:#f4f6fa;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 25% -10%,#eeefff 0,#0000 28%),#f4f6fa;min-width:1000px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.topbar{z-index:20;background:#fff;border-bottom:1px solid #e9edf4;justify-content:space-between;align-items:center;height:74px;padding:0 3.2vw;display:flex;position:sticky;top:0}.brand,.top-actions{align-items:center;gap:12px;display:flex}.brand>span{background:linear-gradient(135deg,#635bff,#918bff);border-radius:13px;place-items:center;width:42px;height:42px;font-size:23px;display:grid}.brand b{font-size:18px}.brand small,.top-actions small{color:#8b94a7;margin-top:3px;display:block}.top-actions{font-size:13px}.top-actions button{background:#f5f6fa;border:0;border-radius:10px;padding:9px 13px}.top-actions button b{color:#fff;background:#ef476f;border-radius:10px;padding:1px 6px}.health{color:#178961;background:#effcf7;border-radius:18px;padding:8px 12px}.health i{background:#12b981;border-radius:50%;width:7px;height:7px;display:inline-block}.avatar{color:#635bff;background:#edeaff;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.page{padding:28px 3.2vw 60px}.page-title{justify-content:space-between;align-items:end;margin-bottom:22px;display:flex}.page-title p,.module-page header p{letter-spacing:2px;color:#635bff;margin:0 0 5px;font-size:11px;font-weight:800}.page-title h1{margin:0;font-size:25px}.page-title>span{color:#9099aa;font-size:12px}.stats{grid-template-columns:repeat(5,1fr);gap:16px;display:grid}.stat-card{background:#fff;border:1px solid #e9edf5;border-radius:16px;justify-content:space-between;min-height:130px;padding:22px;transition:all .2s;display:flex;box-shadow:0 5px 18px #3341550a}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #33415512}.stat-card span,.stat-card small{color:#747f91;display:block}.stat-card strong{margin:7px 0;font-size:30px;display:block}.stat-card b{opacity:.22;font-size:35px}.stat-card.purple strong,.stat-card.purple b{color:#635bff}.stat-card.amber strong,.stat-card.amber b{color:#f5ae00}.stat-card.pink strong,.stat-card.pink b{color:#f53691}.stat-card.rose strong,.stat-card.rose b{color:#fb6581}.stat-card.cyan strong,.stat-card.cyan b{color:#08b8e9}.module-nav{border-bottom:1px solid #e3e7ef;gap:5px;margin:28px 0 18px;display:flex}.module-nav button{color:#687286;background:0 0;border:0;padding:14px 24px;font-size:15px;position:relative}.module-nav button.active{color:#635bff;font-weight:800}.module-nav button.active:after{content:"";background:#635bff;border-radius:4px;height:3px;position:absolute;bottom:-1px;left:20px;right:20px}.workspace{background:#fff;border:1px solid #e8ecf3;border-radius:18px;overflow:hidden;box-shadow:0 5px 22px #3341550a}.filters{border-bottom:1px solid #edf0f5;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.status-tabs{white-space:nowrap;background:#f7f8fb;border-radius:11px;padding:4px;display:flex}.status-tabs button{color:#626d80;background:0 0;border:0;border-radius:8px;padding:9px 13px}.status-tabs button b{background:#e9edf4;border-radius:10px;margin-left:7px;padding:2px 7px}.status-tabs button.active{color:#fff;background:#242535;box-shadow:0 3px 10px #20263722}.status-tabs button.active b{background:#fff2}.tools{align-items:center;gap:8px;display:flex}.search{color:#9aa3b2;background:#fff;border:1px solid #dfe4ec;border-radius:9px;align-items:center;min-width:280px;height:39px;padding:0 10px;display:flex}.search input{background:0 0;border:0;outline:0;width:100%;padding:7px}.search.compact{min-width:260px}.btn{white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:9px 14px}.btn.primary{color:#fff;background:#635bff}.btn.ghost{background:#fff;border-color:#dfe4ec}.btn.success{color:#0b9667;background:#e9fbf4;border-color:#bcefdc}.btn.danger{color:#e23c62;background:#fff0f3;border-color:#ffd2dd}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1050px}th{text-align:left;color:#727d8f;background:#fafbfc;padding:15px 14px;font-size:12px}td{vertical-align:middle;border-top:1px solid #edf0f4;padding:13px 14px;font-size:13px}tbody tr:hover{background:#fafbff}td small{color:#929bad;line-height:1.6;display:block}.work-cell{text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.thumb{background:#f5f8fc;border:1px solid #e4e9f1;border-radius:10px;place-items:center;width:78px;height:64px;display:grid}.work-cell b{margin-bottom:4px;font-size:14px;display:block}.badge{border-radius:13px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.pending{color:#6f47dc;background:#f0ebff}.badge.approved{color:#07966a;background:#e8faf3}.badge.reported{color:#dc8610;background:#fff5df}.badge.rejected,.badge.deleted{color:#df4265;background:#fff0f3}.badge.hidden{color:#667085;background:#edf0f4}.ai-ring{--score:0;background:conic-gradient(#635bff calc(var(--score)*1%),#e8ebf1 0);border-radius:50%;place-items:center;width:38px;height:38px;font-size:11px;display:grid;position:relative}.ai-ring:before{content:"";background:#fff;border-radius:50%;position:absolute;inset:5px}.ai-ring{isolation:isolate}.ai-ring:after{content:attr(data-score)}.ai-ring{color:#697386}.ai-ring>*{z-index:1}.row-actions{gap:10px;display:flex}.row-actions button{color:#0ca874;background:0 0;border:0;font-weight:700}.row-actions button+button,.row-actions .red{color:#ef476f}.empty{text-align:center;color:#9aa3b2;padding:80px}.drawer-mask{z-index:50;background:#17203380;position:fixed;inset:0}.drawer{background:#fff;width:500px;height:100%;padding:28px;position:absolute;top:0;right:0;overflow:auto;box-shadow:-12px 0 40px #17203325}.drawer header,.module-page header{justify-content:space-between;align-items:center;display:flex}.drawer h2,.module-page h2{margin:4px 0}.drawer header small{color:#8c95a5}.icon-btn{background:#f2f4f8;border:0;border-radius:10px;width:38px;height:38px;font-size:24px}.drawer-art{background:linear-gradient(145deg,#f1f7ff,#eef0ff);border-radius:16px;place-items:center;height:275px;margin:24px 0;display:grid}.drawer-status{justify-content:space-between;align-items:center;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;display:grid}.detail-grid div{background:#f7f8fb;border-radius:10px;padding:12px}.detail-grid dt{color:#8a94a6;font-size:11px}.detail-grid dd{word-break:break-all;margin:5px 0 0;font-size:13px}.risk-note{color:#795e15;background:#fff9e9;border-radius:12px;padding:15px}.risk-note p{margin:6px 0 0;font-size:13px}.drawer footer,.settings footer{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.module-page{min-height:480px;padding:25px}.module-page header{margin-bottom:24px}.count-pill,.type-chip{color:#635bff;background:#f0edff;border-radius:16px;padding:7px 12px;font-size:12px}.card-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.entity-card{border:1px solid #e7ebf2;border-radius:15px;padding:20px}.entity-icon{color:#635bff;background:#eeecff;border-radius:12px;place-items:center;width:45px;height:45px;font-size:24px;display:grid}.entity-card h3{margin:12px 0 4px}.entity-card p{color:#8b94a4;font-size:13px}.entity-metrics,.entity-footer{justify-content:space-between;display:flex}.entity-metrics{border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4;padding:15px 0}.entity-metrics span{color:#8b94a4;font-size:12px}.entity-metrics b{color:#293042;font-size:18px}.entity-footer{align-items:center;padding-top:14px}.user-name{align-items:center;gap:9px;display:flex}.user-name i{color:#635bff;background:#eeecff;border-radius:50%;place-items:center;width:30px;height:30px;font-style:normal;display:grid}.risk{border-radius:14px;padding:5px 10px;font-size:12px}.risk-浣巤color:#07966a;background:#e9faf3}.risk-涓瓄color:#c67a0b;background:#fff5df}.risk-楂榹color:#df4265;background:#fff0f3}.feedback-list{gap:12px;display:grid}.feedback-list article{border:1px solid #e8ecf3;border-radius:13px;grid-template-columns:46px 1fr auto;align-items:center;gap:15px;padding:16px;display:grid}.feedback-icon{color:#635bff;background:#eeecff;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.feedback-head{gap:14px;display:flex}.feedback-head small{color:#929bad}.feedback-list p{margin:7px 0 0}.settings-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.settings-grid article{border:1px solid #e7ebf2;border-radius:14px;padding:20px}.settings-grid h3{margin:0 0 7px}.settings-grid p{color:#8993a5;margin:0;font-size:13px}.range-row{align-items:center;gap:20px;margin-top:20px;display:flex}.range-row input{accent-color:#635bff;width:100%}.range-row b{color:#635bff;font-size:24px}.switch-card{justify-content:space-between;align-items:center;display:flex}.switch{background:#cbd1dc;border:0;border-radius:14px;width:48px;height:26px;padding:3px}.switch i{background:#fff;border-radius:50%;width:20px;height:20px;transition:all .2s;display:block}.switch.on{background:#635bff}.switch.on i{transform:translate(22px)}.toast{color:#fff;z-index:80;background:#202637;border-radius:11px;padding:14px 20px;animation:.2s toast-in;position:fixed;bottom:28px;right:28px;box-shadow:0 10px 30px #17203335}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=1180px){.stats{grid-template-columns:repeat(3,1fr)}.filters{flex-direction:column;align-items:stretch}.tools{justify-content:flex-end}.card-grid{grid-template-columns:repeat(2,1fr)}}
.login-page { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at 50% 0, #e6e5ff, #f4f6fa 52%); }
.login-card { width: min(420px, calc(100vw - 40px)); background: #fff; border: 1px solid #e8ecf3; border-radius: 22px; padding: 40px; box-shadow: 0 20px 60px #33415518; text-align: center; }
.login-logo { width: 64px; height: 64px; border-radius: 20px; margin: 0 auto 16px; display: grid; place-items: center; background: linear-gradient(135deg, #635bff, #8e86ff); font-size: 34px; }
.login-card > p { margin: 0; color: #635bff; letter-spacing: 2px; font-weight: 800; font-size: 11px; }
.login-card h1 { margin: 8px 0; font-size: 24px; }
.login-note { display: block; color: #8b94a7; margin-bottom: 28px; }
.login-card form { text-align: left; display: grid; gap: 16px; }
.login-card label { color: #48546a; font-size: 13px; font-weight: 700; }
.login-card input { display: block; width: 100%; margin-top: 7px; border: 1px solid #dfe4ec; border-radius: 10px; padding: 12px 13px; outline: 0; background: #fbfcfe; }
.login-card input:focus { border-color: #635bff; box-shadow: 0 0 0 3px #635b5b18; }
.login-button { width: 100%; margin-top: 4px; padding: 12px; font-size: 15px; }
.login-error, .global-error { color: #c92e51; background: #fff0f3; border: 1px solid #ffd2dd; border-radius: 10px; padding: 10px 12px; font-size: 13px; }
.login-card > small { display: block; color: #9aa3b2; margin-top: 22px; }
.app-loader { color: #635bff; display: flex; gap: 10px; align-items: center; font-weight: 700; }
.app-loader i { width: 16px; height: 16px; border: 2px solid #c9c5ff; border-top-color: #635bff; border-radius: 50%; animation: spin .8s linear infinite; }
.logout-button { color: #df4265 !important; }
.global-error { margin-bottom: 15px; display: flex; gap: 10px; align-items: center; }
.global-error span { display: grid; place-items: center; width: 20px; height: 20px; background: #ef476f; color: #fff; border-radius: 50%; font-weight: 800; }
.global-error button { margin-left: auto; border: 0; background: transparent; font-size: 18px; color: #c92e51; }
.toast { bottom: 28px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* 三端最终版：与 Godot 治愈海洋视觉统一 */
:root { --ocean:#37c9c4; --ocean-dark:#159a9c; --ocean-soft:#e6f8f6; --coral:#ff8a65; --ink:#18333b; --muted:#718b92; --line:#d7e9e8; }
body { color:var(--ink); background:radial-gradient(circle at 20% -10%,#dff8f5 0,#0000 31%),#f8fcfb; }
.topbar { border-color:var(--line); box-shadow:0 5px 24px #155f6510; }
.brand>span { background:linear-gradient(135deg,var(--ocean),var(--ocean-dark)); box-shadow:0 8px 18px #159a9c25; }
.page-title p,.module-page header p { color:var(--ocean-dark); }
.stat-card,.workspace,.entity-card,.feedback-list article,.settings-grid article { border-color:var(--line); }
.stat-card.purple strong,.stat-card.purple b,.stat-card.cyan strong,.stat-card.cyan b { color:var(--ocean-dark); }
.module-nav button.active,.count-pill,.type-chip,.avatar,.search button { color:var(--ocean-dark); }
.module-nav button.active:after,.btn.primary,.switch.on { background:var(--ocean); }
.status-tabs button.active { background:var(--ocean-dark); }
.search:focus-within { border-color:var(--ocean); box-shadow:0 0 0 3px #37c9c422; }
.thumb,.drawer-art { background:linear-gradient(145deg,#effbf9,#e4f6f5); border-color:var(--line); }
.ai-ring { background:conic-gradient(var(--ocean) calc(var(--score)*1%),#e8f1f0 0); }
.health { color:#177c63; background:#e9f8f1; }
.toast { background:var(--ink); }
.fish-preview-empty { background:#f3f9f8; border:1px dashed var(--line); border-radius:10px; }
@media (max-width:999px) {
  body { min-width:0; }
  .topbar { height:auto; min-height:68px; padding:12px 18px; gap:14px; }
  .top-actions .health,.top-actions>div { display:none; }
  .page { padding:20px 16px 44px; }
  .page-title { align-items:flex-start; gap:8px; }
  .page-title>span { text-align:right; max-width:46%; }
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .module-nav { overflow-x:auto; }
  .module-nav button { flex:0 0 auto; padding:13px 16px; }
  .filters,.tools { align-items:stretch; }
  .tools { flex-wrap:wrap; justify-content:flex-start; }
  .search,.search.compact { min-width:100%; }
  .card-grid,.settings-grid { grid-template-columns:1fr; }
  .drawer { width:min(500px,100vw); padding:22px; }
}
.risk-低 { color: #07966a; background: #e9faf3; }
.risk-中 { color: #c67a0b; background: #fff5df; }
.risk-高 { color: #df4265; background: #fff0f3; }
.module-header-actions { display: flex; align-items: center; gap: 10px; }
.search button { border: 0; background: transparent; color: #635bff; font-weight: 700; padding: 6px; }
.fish-preview{display:block;max-width:100%;overflow:visible}.fish-preview-empty{color:#98a2b3;place-items:center;text-align:center;line-height:1.25;font-size:10px;display:grid}.drawer-art .fish-preview-empty{font-size:14px}
