:root[data-theme=starry]{--bg:#0b1020;--bg-deep:#05070f;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #818cf81f, transparent 60%);--surface:#121628e0;--surface-2:#181d34eb;--surface-3:#1f2542f2;--border:#232b52;--border-strong:#323d6e;--text:#e5e7f5;--text-dim:#a0a7cc;--text-mute:#6b7298;--accent:#818cf8;--accent-2:#38bdf8;--accent-soft:#818cf826;--gold:#fbbf24;--gold-soft:#fbbf241f;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--info:#818cf8;--quality-1:#a0a7cc;--quality-2:#22d3ee;--quality-3:#4ade80;--quality-4:#c084fc;--quality-5:#fde047;--quality-6:#f87171;--shadow:0 8px 28px #00000073;--glow:0 0 18px #818cf84d;--radius:12px}:root[data-theme=dawn]{--bg:#f8f4ec;--bg-deep:#efe7d8;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #0e9f8a1a, transparent 60%);--surface:#ffffffeb;--surface-2:#fff;--surface-3:#fdfdf9;--border:#d6d0c2;--border-strong:#bdb3a0;--text:#334155;--text-dim:#64748b;--text-mute:#94a3b8;--accent:#0e9f8a;--accent-2:#f59e0b;--accent-soft:#0e9f8a1a;--gold:#d97706;--gold-soft:#d977061a;--success:#059669;--warning:#d97706;--danger:#dc2626;--info:#0284c7;--quality-1:#64748b;--quality-2:#0e9f8a;--quality-3:#16a34a;--quality-4:#9333ea;--quality-5:#ca8a04;--quality-6:#dc2626;--shadow:0 6px 22px #78643c29;--glow:0 0 14px #0e9f8a2e;--radius:10px}:root[data-theme=polar]{--bg:#0a0e1a;--bg-deep:#050810;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #67e8f91a, transparent 60%);--surface:#101827db;--surface-2:#162134eb;--surface-3:#1c293ff2;--border:#23334a;--border-strong:#33486b;--text:#e6edf7;--text-dim:#9fb0c8;--text-mute:#6b7c96;--accent:#67e8f9;--accent-2:#a5f3fc;--accent-soft:#67e8f921;--gold:#fcd34d;--gold-soft:#fcd34d1a;--success:#6ee7b7;--warning:#fcd34d;--danger:#fb7185;--info:#67e8f9;--quality-1:#9fb0c8;--quality-2:#67e8f9;--quality-3:#86efac;--quality-4:#d8b4fe;--quality-5:#fde68a;--quality-6:#fda4af;--shadow:0 8px 30px #0000008c;--glow:0 0 16px #67e8f947;--radius:10px}:root[data-theme=emerald]{--bg:#ecf7f1;--bg-deep:#ddeee4;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #0d8a5f21, transparent 60%);--surface:#ffffffeb;--surface-2:#fff;--surface-3:#f0faf5;--border:#c3dccd;--border-strong:#9fc3b1;--text:#1f3d33;--text-dim:#4f7a6a;--text-mute:#7fa393;--accent:#0d8a5f;--accent-2:#34d399;--accent-soft:#0d8a5f1f;--gold:#ca8a04;--gold-soft:#ca8a041a;--success:#059669;--warning:#d97706;--danger:#dc2626;--info:#0ea5e9;--quality-1:#6b9b8a;--quality-2:#0d8a5f;--quality-3:#16a34a;--quality-4:#7c3aed;--quality-5:#ca8a04;--quality-6:#dc2626;--shadow:0 6px 22px #14503c29;--glow:0 0 14px #0d8a5f33;--radius:10px}:root[data-theme=brass]{--bg:#171310;--bg-deep:#0e0b09;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #d977061c, transparent 60%);--surface:#261e16e6;--surface-2:#30261cf0;--surface-3:#3a2e22f5;--border:#3d3126;--border-strong:#5a4a38;--text:#efe6d8;--text-dim:#b8a794;--text-mute:#82715c;--accent:#d97706;--accent-2:#f59e0b;--accent-soft:#d9770626;--gold:#fbbf24;--gold-soft:#fbbf241f;--success:#a3e635;--warning:#fbbf24;--danger:#f87171;--info:#d97706;--quality-1:#b8a794;--quality-2:#38bdf8;--quality-3:#a3e635;--quality-4:#c084fc;--quality-5:#fde047;--quality-6:#f87171;--shadow:0 8px 28px #00000080;--glow:0 0 16px #d9770640;--radius:10px}:root[data-theme=storm]{--bg:#151024;--bg-deep:#0b0814;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #a855f726, transparent 60%);--surface:#1c162ce6;--surface-2:#241c38f0;--surface-3:#2d2344f5;--border:#3a2f55;--border-strong:#4f3f73;--text:#ece6f8;--text-dim:#b3a6cf;--text-mute:#7d7199;--accent:#a855f7;--accent-2:#22d3ee;--accent-soft:#a855f726;--gold:#fde047;--gold-soft:#fde0471f;--success:#a3e635;--warning:#fde047;--danger:#fb7185;--info:#a855f7;--quality-1:#b3a6cf;--quality-2:#22d3ee;--quality-3:#a3e635;--quality-4:#e879f9;--quality-5:#fde047;--quality-6:#fb7185;--shadow:0 8px 30px #00000080;--glow:0 0 16px #a855f747;--radius:10px}:root[data-theme=coral]{--bg:#fdf4ef;--bg-deep:#f7e6da;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #f973161a, transparent 60%);--surface:#fffaf7eb;--surface-2:#fffdfb;--surface-3:#fdf1e8;--border:#eed5c6;--border-strong:#dcb49c;--text:#4a2f24;--text-dim:#8a6a58;--text-mute:#b09482;--accent:#f97316;--accent-2:#fb7185;--accent-soft:#f973161c;--gold:#d97706;--gold-soft:#d977061a;--success:#10b981;--warning:#d97706;--danger:#e11d48;--info:#0ea5e9;--quality-1:#8a6a58;--quality-2:#0e9f8a;--quality-3:#16a34a;--quality-4:#9333ea;--quality-5:#ca8a04;--quality-6:#e11d48;--shadow:0 6px 22px #783c2829;--glow:0 0 14px #f973162e;--radius:10px}:root[data-theme=ink]{--bg:#f4f4f2;--bg-deep:#e6e4dd;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #0f766e14, transparent 60%);--surface:#ffffffe6;--surface-2:#fdfdfc;--surface-3:#f2f1ec;--border:#d8d5cb;--border-strong:#bab5a6;--text:#29241d;--text-dim:#6b6356;--text-mute:#a39b8b;--accent:#0f766e;--accent-2:#b91c1c;--accent-soft:#0f766e1a;--gold:#a16207;--gold-soft:#a162071a;--success:#0f766e;--warning:#a16207;--danger:#b91c1c;--info:#0369a1;--quality-1:#6b6356;--quality-2:#0f766e;--quality-3:#15803d;--quality-4:#6d28d9;--quality-5:#a16207;--quality-6:#b91c1c;--shadow:0 4px 16px #3c321e1a;--glow:0 0 12px #0f766e24;--radius:6px}:root[data-theme=void]{--bg:#000;--bg-deep:#000;--bg-glow:radial-gradient(1200px 600px at 70% -10%, #93c5fd17, transparent 60%);--surface:#0c0e12eb;--surface-2:#12141af2;--surface-3:#181a22f7;--border:#23252e;--border-strong:#343743;--text:#f2f3f5;--text-dim:#a6aab4;--text-mute:#6b6f7a;--accent:#93c5fd;--accent-2:#e2e8f0;--accent-soft:#93c5fd1f;--gold:#fbbf24;--gold-soft:#fbbf241a;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--info:#93c5fd;--quality-1:#a6aab4;--quality-2:#67e8f9;--quality-3:#4ade80;--quality-4:#c084fc;--quality-5:#fde047;--quality-6:#f87171;--shadow:0 8px 28px #0009;--glow:0 0 14px #93c5fd38;--radius:8px}*{box-sizing:border-box;margin:0}body{background:var(--bg-deep);color:var(--text);min-height:100vh;font-family:PingFang SC,Microsoft YaHei,sans-serif;transition:background .3s,color .3s}.app{min-height:100vh;display:flex}aside{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:200px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow:hidden}aside .logo{align-items:center;gap:10px;padding:4px 8px 16px;display:flex}aside .logo img{object-fit:contain;width:40px;height:40px}aside .logo-title{letter-spacing:1px;color:var(--gold);font-weight:700}aside .logo-toggle{cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:background .2s;display:inline-flex}aside .logo-toggle:hover{background:var(--surface-2)}aside .logo-toggle img{object-fit:contain;width:40px;height:40px}aside.collapsed{width:68px;padding:18px 8px}aside.collapsed .logo{justify-content:center;padding:4px 0 16px}aside.collapsed .logo-title{display:none}aside.collapsed nav a{justify-content:center;padding:8px 0}aside.collapsed nav a .nav-label,aside.collapsed nav a .nav-badge{display:none}aside nav{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex;overflow-y:auto}aside nav a{color:var(--text-dim);border-radius:8px;padding:8px 12px;font-size:14px;text-decoration:none;display:block}aside nav a:hover{background:var(--accent-soft);color:var(--accent)}aside .sidebar-version{color:var(--text-mute);border-top:1px dashed var(--border);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;margin-top:auto;padding:10px 12px 2px;font-size:11px;overflow:hidden}aside.collapsed .sidebar-version{border-top:none;padding:10px 0 2px}main{background:var(--bg);background-image:var(--bg-glow);flex:1;padding:22px min(2vw,32px) 56px;overflow-x:auto}main>*,.page{max-width:1100px;margin-left:auto;margin-right:auto}h1{margin-bottom:4px;font-size:20px}.sub{color:var(--text-mute);margin-bottom:18px;font-size:13px}.grid{gap:14px;display:grid}.g-player{grid-template-columns:1fr 1.6fr}.g-boats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g-sections{grid-template-columns:repeat(4,1fr)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card h3{color:var(--text-dim);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.card h3 .tag{color:var(--accent);font-size:11px}.stat-row{border-bottom:1px dashed var(--border);justify-content:space-between;padding:5px 0;font-size:13px;display:flex}.stat-row:last-child{border-bottom:none}.stat-row .k{color:var(--text-dim)}.stat-row .v{color:var(--text);font-weight:600}.stat-row .v.gold{color:var(--gold)}.q{font-size:12px;font-weight:800;display:inline-block}.q1{color:var(--quality-1)}.q2{color:var(--quality-2)}.q3{color:var(--quality-3)}.q4{color:var(--quality-4)}.q5{color:var(--quality-5)}.q6{color:var(--quality-6)}@supports ((-webkit-background-clip:text) or (background-clip:text)){.q1{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-1) 60%, #fff), var(--quality-1));color:#0000;-webkit-background-clip:text;background-clip:text}.q2{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-2) 60%, #fff), var(--quality-2));color:#0000;-webkit-background-clip:text;background-clip:text}.q3{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-3) 60%, #fff), var(--quality-3));color:#0000;-webkit-background-clip:text;background-clip:text}.q4{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-4) 60%, #fff), var(--quality-4));color:#0000;-webkit-background-clip:text;background-clip:text}.q5{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-5) 60%, #fff), var(--quality-5));color:#0000;-webkit-background-clip:text;background-clip:text}.q6{background:linear-gradient(180deg, color-mix(in srgb, var(--quality-6) 60%, #fff), var(--quality-6));color:#0000;-webkit-background-clip:text;background-clip:text}}.vtrip{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden}.vtrip-head{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.vtrip-map{color:var(--text);font-size:14px;font-weight:700}.vtrip-meta{color:var(--text-mute);font-size:11px}.vtrip-when{color:var(--text-mute);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.vtrip .badge{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:999px;padding:2px 8px;font-size:11px}.vtrip .badge.reason{color:var(--success);border-color:color-mix(in srgb, var(--success) 40%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent)}.vtrip .badge.reason.forced{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:color-mix(in srgb, var(--danger) 10%, transparent)}.vtrip-body{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:10px 14px;display:grid}.vtrip .block h4{color:var(--text-mute);letter-spacing:.06em;margin-bottom:6px;font-size:11px}.vtrip .stat-row{color:var(--text-dim);justify-content:space-between;gap:8px;padding:3px 0;font-size:12px;display:flex}.vtrip .stat-row .v{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.vtrip .stat-row .v.gold{color:var(--gold)}.vtrip .eq-chips{flex-wrap:wrap;gap:6px;display:flex}.vtrip .eq-chip{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:6px;padding:3px 10px;font-size:11px}.vtrip .eq-chip.net{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.vtrip .q-bar{background:var(--surface-3);border-radius:999px;height:8px;margin:2px 0 8px;display:flex;overflow:hidden}.vtrip .q-bar i{display:block}.vtrip .q-chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.vtrip .q-chips .q{padding:1px 8px;font-size:11px}.vtrip .catch-list{flex-direction:column;gap:2px;display:flex}.vtrip .catch-row{color:var(--text-dim);border-bottom:1px dashed var(--border);align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.vtrip .catch-row .n{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}@media (max-width:700px){.vtrip-body{grid-template-columns:1fr}}.voyage-fish .total-block{border-bottom:1px dashed var(--border);margin-bottom:12px;padding-bottom:12px}.voyage-fish .total-label{color:var(--text-mute);letter-spacing:.06em;margin-bottom:6px;font-size:11px}.voyage-fish .q-bar{background:var(--surface-3);border-radius:999px;height:10px;margin-bottom:8px;display:flex;overflow:hidden}.voyage-fish .q-bar i{display:block}.voyage-fish .q-chips{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.voyage-fish .q-chips .q{padding:1px 8px;font-size:11px}.voyage-fish .net-group{background:var(--surface-3);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:7px 10px}.voyage-fish .ng-head{color:var(--text-mute);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px;font-size:11px;display:flex}.voyage-fish .ng-time{font-variant-numeric:tabular-nums;color:var(--text-dim)}.voyage-fish .ng-count{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;padding:1px 7px;font-size:10px}.voyage-fish .species-list{flex-direction:column;gap:5px;display:flex}.voyage-fish .fish-row{align-items:center;gap:8px;font-size:12px;display:flex}.voyage-fish .fish-row img{width:20px;height:20px;image-rendering:pixelated;flex-shrink:0}.voyage-fish .fish-main{flex:1;min-width:0}.voyage-fish .fish-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.voyage-fish .fish-top .name{color:var(--text);font-weight:600}.voyage-fish .fish-top .n{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.voyage-fish .fish-bar{background:var(--bg-deep);border-radius:999px;height:5px;margin-top:3px;overflow:hidden}.voyage-fish .fish-bar i{border-radius:999px;height:100%;display:block}.voyage-fish .pager{justify-content:center;align-items:center;gap:10px;margin-top:12px;display:flex}.voyage-fish .pg-btn{border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text-dim);cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:4px 12px;font-size:12px;display:inline-flex}.voyage-fish .pg-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.voyage-fish .pg-btn:disabled{opacity:.35;cursor:not-allowed}.voyage-fish .pg-info{color:var(--text-mute);font-variant-numeric:tabular-nums;font-size:12px}.catch-row{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:8px;display:flex}.catch-row img{width:44px;height:44px;image-rendering:pixelated}.catch-row .name{flex:1;font-size:13px}.catch-row .name small{color:var(--text-mute);font-size:11px;display:block}.catch-row .price{color:var(--gold);font-size:13px;font-weight:700}.boat-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);padding:12px}.boat-card .boat-img{object-fit:contain;filter:drop-shadow(0 2px 8px #00000059);width:96px;height:96px;margin:4px auto 8px;display:block}.boat-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.boat-head b{font-size:14px}.status{border-radius:999px;padding:2px 8px;font-size:11px}.status.docked{color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent)}.status.out{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.status.repairing{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent)}.status.damaged,.status.destroyed{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.attr{gap:6px;margin-top:8px;display:flex}.attr span{text-align:center;color:var(--text-dim);background:var(--surface-3);border-radius:6px;flex:1;padding:4px 0;font-size:11px}.attr span b{color:var(--text);font-size:13px;display:block}.bar{background:var(--surface-3);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.bar>i{background:var(--accent-2);border-radius:999px;height:100%;display:block}.bar.danger>i{background:var(--danger)}button{font-family:inherit}.btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:13px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg-deep);font-weight:700}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-row{gap:8px;margin-top:12px;display:flex}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--text-mute);border-bottom:1px solid var(--border-strong);padding:7px 8px;font-weight:600}td{border-bottom:1px solid var(--border);padding:7px 8px}tr:hover td{background:var(--accent-soft)}.theme-bar{background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;padding:10px 22px;display:flex}.switcher{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.switcher button{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:13px}.switcher button.active{border-color:var(--accent);color:var(--accent);box-shadow:var(--glow)}.switcher button .dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.weather{flex-wrap:wrap;gap:10px;display:flex}.w{text-align:center;border:1px solid var(--border);background:var(--surface-2);min-width:90px;color:var(--text-dim);border-radius:8px;flex:1;padding:10px 6px;font-size:12px}.w b{margin-bottom:4px;font-size:20px;display:block}.w .w-ico{color:inherit;justify-content:center;margin-bottom:4px;display:flex}.w.active{border-color:var(--accent);color:var(--accent);box-shadow:var(--glow)}.w.typhoon{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--danger) 30%, transparent)}.voyage{border:1px solid var(--border);border-radius:var(--radius);position:relative;overflow:hidden}.voyage img{opacity:.92;width:100%;display:block}.ship{text-shadow:0 0 10px var(--gold);font-size:22px;position:absolute}.route{border:1px dashed var(--accent);opacity:.6;pointer-events:none;position:absolute;inset:0}.bubble{background:var(--surface);border:1px solid var(--accent);color:var(--accent);box-shadow:var(--glow);border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:12px;right:12px}.foot{color:var(--text-mute);text-align:center;margin-top:20px;font-size:12px}aside nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-foot{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:auto;padding-top:10px;display:flex}aside .switcher{justify-content:flex-start}.account{justify-content:space-between;align-items:center;gap:8px;display:flex}.account-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.account .logout{padding:4px 10px;font-size:12px}.splash{min-height:100vh;color:var(--text-mute);background:var(--bg-deep);background-image:var(--bg-glow);justify-content:center;align-items:center;font-size:14px;display:flex}.auth-screen{background:var(--bg-deep);background-image:var(--bg-glow);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.admin-shell{background:var(--bg);background-image:var(--bg-glow);min-height:100vh;display:flex}.admin-nav{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;gap:2px;width:200px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-nav .nav-title{letter-spacing:1px;color:var(--text);align-items:center;gap:8px;padding:0 10px 12px;font-size:16px;font-weight:800;display:flex}.admin-nav .nav-group{color:var(--text-mute);letter-spacing:1px;padding:10px 10px 4px;font-size:11px}.admin-nav .nav-item{width:100%;color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.admin-nav .nav-item:hover{background:var(--accent-soft);color:var(--accent)}.admin-nav .nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.admin-main{flex:1;min-width:0;padding:22px min(2vw,32px) 56px;overflow-x:auto}.admin-main .page{max-width:1100px;margin-left:auto;margin-right:auto}.admin-shell h1{margin-bottom:4px}@media (max-width:767px){.admin-shell{flex-direction:column}.admin-nav{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:6px;width:100%;height:auto;padding:10px 12px;position:static;overflow-x:auto}.admin-nav .nav-title,.admin-nav .nav-group{display:none}.admin-nav .nav-item{white-space:nowrap;flex:none;padding:6px 10px;font-size:13px}.admin-main{padding:14px 16px 48px}}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:24px}.auth-logo{flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;display:flex}.auth-logo img{box-shadow:var(--glow);border-radius:18px}.auth-logo-title{letter-spacing:4px;color:var(--text);font-size:20px;font-weight:800}.auth-logo-sub{color:var(--text-mute);letter-spacing:1px;font-size:12px}.auth-tabs{gap:8px;margin-bottom:18px;display:flex}.auth-tabs button{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer;border-radius:8px;flex:1;padding:8px;font-size:14px}.auth-tabs button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.field{margin-bottom:12px}.field label{color:var(--text-dim);margin-bottom:5px;font-size:12px;display:block}.field select,.field input{border:1px solid var(--border-strong);background:var(--surface-2);width:100%;color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.field select:focus,.field input:focus{border-color:var(--accent);box-shadow:var(--glow);outline:none}.field input.invalid{border-color:var(--danger)}.field input.invalid:focus{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 25%, transparent)}.field-error{color:var(--danger);margin-top:4px;font-size:12px;display:block}.auth-error{color:var(--danger);margin:10px 0;font-size:13px}.auth-card .submit{width:100%;margin-top:4px;padding:10px}.settings-card{margin-bottom:16px}.settings-card h3{margin-bottom:12px}.settings-card .switcher{justify-content:flex-start}.notice{border:1px solid var(--border);border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.notice.ok{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.notice.err{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.boat-card.selected{border-color:var(--accent);box-shadow:var(--glow)}.slot-groups{flex-direction:column;gap:14px;margin-top:12px;display:flex}.slot-group-label{color:var(--text-mute);letter-spacing:.08em;font-size:10px}.slot{text-align:center;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:56px;height:56px;padding:4px 6px;font-size:10px;line-height:1.15;display:flex}.slot.filled{color:var(--accent);border:1px solid var(--accent);background:var(--accent-soft)}.slot.empty{color:var(--text-mute);border:1px dashed var(--border-strong);background:0 0}.slot .slot-name{text-overflow:ellipsis;white-space:nowrap;max-width:58px;font-weight:600;overflow:hidden}.slot .slot-durab{background:var(--surface-3);border-radius:999px;width:100%;height:3px;display:block;overflow:hidden}.slot .slot-durab i{border-radius:999px;height:100%;display:block}.shop-boat{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:5px;min-height:176px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.shop-boat:hover{border-color:var(--accent);box-shadow:var(--glow)}.shop-boat .shop-boat-img{object-fit:contain;filter:drop-shadow(0 2px 6px #00000059);width:64px;height:64px;margin:0 auto 6px;display:block}.shop-boat .nm{font-size:13px;font-weight:700}.shop-boat .meta{color:var(--text-dim);font-size:11px}.shop-boat .price{color:var(--gold);margin-top:auto;padding-top:4px;font-size:14px;font-weight:700}.shop-boat .btn{width:100%}.shop-boat .btn-row{align-items:center;gap:8px;margin-top:6px;display:flex}.shop-boat .btn-row .btn{flex:1;width:auto}.owned-tag{color:var(--success);align-items:center;gap:4px;font-size:11px;display:inline-flex}.slot-grid{grid-template-columns:repeat(auto-fill,56px);gap:20px;display:grid}.slot-chip{color:var(--text-dim);background:var(--surface-3);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;width:56px;padding:2px 4px;font-size:10px;overflow:hidden}.slot-chip.empty{color:var(--text-mute);opacity:.6}.equip-item{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:5px;min-height:176px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.equip-item:hover{border-color:var(--accent);box-shadow:var(--glow)}.equip-item .meta{flex:1;min-width:0}.equip-item .meta b{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.equip-item .meta .eq-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.equip-item .meta .cat{color:var(--text-mute);border:1px solid var(--border);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:11px;font-weight:400}.equip-item .meta small{color:var(--text-mute);margin-top:2px;font-size:11px;display:block}.equip-item .equip-effect{color:var(--text-dim);margin-top:6px;font-size:11px;line-height:1.7}.equip-item .equip-effect div{gap:6px;display:flex}.equip-item .equip-effect div:before{content:"◆";color:var(--accent);flex-shrink:0;font-size:9px;transform:translateY(2px)}.equip-item .meta .need{color:var(--danger);margin-left:4px;font-style:normal;font-weight:600}.equip-item .meta .have{color:var(--success);margin-left:6px;font-style:normal}.equip-item .price{color:var(--gold);margin-top:auto;padding-top:4px;font-size:14px;font-weight:700}.equip-item .bar{width:100%;margin-top:3px}.equip-item .btn{flex-shrink:0;width:100%}.equip-item .ok{border:1px solid color-mix(in srgb, var(--success) 55%, transparent);width:100%;color:var(--success);border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:8px 0;font-size:12px;font-weight:600;display:flex}.btn.insufficient{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger);opacity:.8;cursor:not-allowed}.btn.insufficient:hover{border-color:var(--danger);color:var(--danger)}.g-shop{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}.g-equip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.equip-item{min-width:0}.app-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 22px;display:flex;position:sticky;top:0}.topbar-inner{align-items:center;gap:12px;width:100%;max-width:1100px;margin:0 auto;display:flex}.topbar .topbar-menu,.topbar-brand{display:none}.topbar-stats{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-stats .ss-coins{color:var(--gold);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.topbar-stats .ss-level{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.topbar-stats .ss-voyage{color:var(--success);background:color-mix(in srgb, var(--success) 14%, transparent);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.topbar-msg{min-width:0;color:var(--text-mute);white-space:nowrap;flex:1;align-items:center;gap:8px;font-size:12px;transition:color .3s;display:flex;overflow:hidden}.topbar-msg .txt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-msg.alert{color:var(--gold)}.topbar-msg.alert .ico{animation:1.1s infinite t-msg-pulse}@keyframes t-msg-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.topbar-msg.scroll .txt{text-overflow:clip;animation:10s linear infinite t-msg-marquee;display:inline-block}@keyframes t-msg-marquee{0%,6%{transform:translate(0)}88%,96%{transform:translateX(var(--dist,-50%))}to{transform:translate(0)}}.drawer-backdrop{display:none}@media (max-width:767px){aside{z-index:60;width:min(240px,78vw);transition:transform .24s cubic-bezier(.23,1,.32,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}aside.open{box-shadow:var(--shadow);transform:translate(0)}aside.collapsed{width:68px;box-shadow:var(--shadow);padding:18px 8px;transform:translate(0)}aside.collapsed .logo{justify-content:center;padding:4px 0 16px}aside.collapsed .logo-title{display:none}aside.collapsed nav a{justify-content:center;padding:8px 0}aside.collapsed nav a .nav-label,aside.collapsed nav a .nav-badge{display:none}aside.collapsed+.app-col{margin-left:68px;transition:margin-left .24s cubic-bezier(.23,1,.32,1)}.topbar{padding:8px 16px}.topbar .topbar-menu{border:1px solid var(--border);background:var(--surface-2);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:20px;display:inline-flex}.topbar-brand{letter-spacing:1px;color:var(--gold);font-size:15px;font-weight:700;display:block}.topbar-stats .ss-name{display:none}.drawer-backdrop{z-index:55;background:#0006;display:block;position:fixed;inset:0}main{padding:16px}.g-player,.g-boats,.g-sections,.g-shop,.g-equip,.g-port{grid-template-columns:1fr}.card{padding:14px}h1{font-size:18px}.sub{margin-bottom:14px;font-size:12px}table{font-size:12px}.btn{padding:10px 14px}}.voyage-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:14px;display:grid}.voyage-map{width:100%;max-width:1024px;margin:0 auto}.voyage-side{flex-direction:column;gap:14px;min-width:0;display:flex}.voyage-meter-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:8px;display:grid}.voyage-meter-row .card{margin:0;padding:8px 10px}.voyage-meter-row h3{margin-bottom:4px;font-size:12px}.voyage-meter-row h3 svg{width:13px;height:13px}.voyage-meter-row [role=progressbar]{border:1px solid var(--border-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--surface-3) 60%, transparent);height:5px!important}.voyage-meter-row [role=progressbar] i{height:100%}.voyage-meter-row span[style*=tabular-nums]{font-size:12px}.voyage-frame{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.voyage-frame-bar{color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:7px 12px;font-size:12px;display:flex}.voyage-tension{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text-dim);align-items:center;gap:12px;margin-top:10px;padding:8px 12px;font-size:12px;display:flex}@media (max-width:899px){.voyage-layout{grid-template-columns:1fr}}.chart-card{transition:border-color .15s,box-shadow .15s,transform .15s}.chart-card:hover{border-color:var(--accent);box-shadow:var(--glow)}.chart-card:active{transform:scale(.99)}.market-row{transition:transform .1s,background .1s}.market-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.market-row:active{transform:scale(.99)}.dsh-pop{animation:.16s ease-out dsh-pop}@keyframes dsh-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tick-ring-arc{animation:4s linear infinite tick-countdown}@keyframes tick-countdown{0%{stroke-dashoffset:var(--tick-circ,40.84)}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.tick-ring-arc{stroke-dashoffset:0;animation:none}}.caught-badge{white-space:nowrap;background:var(--surface-3);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:2px 8px;font-size:11px;display:inline-flex}.caught-badge .t{font-variant-numeric:tabular-nums;font-weight:600}.caught-badge.age-fresh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, transparent);background:color-mix(in srgb, var(--success) 10%, transparent)}.caught-badge.age-warm{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 45%, transparent);background:color-mix(in srgb, var(--warning) 10%, transparent)}.caught-badge.age-old{color:#fb923c;background:#fb923c1a;border-color:#fb923c73}.caught-badge.age-dead{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, transparent);background:color-mix(in srgb, var(--danger) 10%, transparent)}.eq-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:6px;display:grid}.eq-stats span{color:var(--text-dim);background:var(--surface-3);text-align:center;white-space:normal;border-radius:5px;padding:3px 6px;font-size:10px;line-height:1.4;overflow:visible}.g-port{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}.port-lv{vertical-align:3px;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft);border-radius:999px;margin-left:10px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.wh-bar{height:8px;margin:-4px 0 12px}.wh-bar>i{background:var(--accent-2)}.wh-bar.warn>i{background:var(--warning)}.wh-bar.full>i{background:var(--danger)}.wh-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.wh-filter-label{color:var(--text-mute);letter-spacing:.06em;margin-right:2px;font-size:11px;font-weight:600}.filter-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.filter-chip:hover{border-color:var(--accent);color:var(--accent)}.filter-chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);box-shadow:var(--glow)}.wh-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:10px;display:grid}.wh-cell{border:1.5px solid var(--border-strong);background:var(--surface-3);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 5px;transition:border-color .15s,box-shadow .15s,transform .15s,opacity .15s;display:flex;position:relative}.wh-cell:hover{transform:translateY(-1px)}.wh-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wh-cell.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--glow)}.wh-cell.rotten{border-style:dashed}.wh-cell-top{justify-content:space-between;align-items:center;width:100%;min-height:18px;display:flex}.wh-cell-fig{justify-content:center;width:100%;display:flex}.wh-cell .qty{background:var(--bg-deep);min-width:20px;height:20px;color:var(--text);border:1px solid var(--border-strong);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:flex}.wh-cell .check{background:var(--accent);width:18px;height:18px;color:var(--bg-deep);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-4px;left:0}.wh-cell-info{flex-direction:column;gap:1px;width:100%;display:flex}.wh-cell-row{justify-content:space-between;align-items:center;gap:4px;width:100%;min-height:14px;display:flex}.wh-cell-name{min-width:0;color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;font-size:11px;font-weight:600;overflow:hidden}.wh-cell-price{color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:2px;font-size:11px;font-weight:700;display:inline-flex}.wh-cell-time{color:var(--warning);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:2px;font-size:10px;font-weight:600;display:inline-flex}.wh-cell-time.danger{color:var(--danger)}.wh-detail{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:center;gap:12px;min-height:56px;margin-bottom:4px;padding:8px 12px;font-size:13px;display:flex}.wh-detail .wh-detail-main{flex:1;min-width:0}.wh-detail .wh-detail-main>b{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.wh-detail .wh-price{text-align:right;flex-shrink:0}.wh-detail .wh-price small{color:var(--text-mute);font-variant-numeric:tabular-nums;font-size:11px;display:block}.wh-detail .wh-price b{color:var(--gold);font-variant-numeric:tabular-nums;font-size:15px;display:block}.wh-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;display:flex}.wh-meta .q{padding:1px 7px;font-size:10px}.wh-fresh{align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.wh-fresh .f-ico{display:inline-flex}.wh-fresh.f-fresh{color:var(--success)}.wh-fresh.f-iced{color:var(--info)}.wh-fresh.f-stale{color:var(--warning)}.wh-fresh.f-rotten{color:var(--danger)}.wh-cd{color:var(--warning);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px;display:block}.wh-cd.danger{color:var(--danger);font-weight:600}.upgrade-prev .v{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.chip{border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.chip.on{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border:1px solid color-mix(in srgb, var(--success) 40%, transparent)}.chip.off{color:var(--text-mute);border:1px dashed var(--border-strong);background:0 0}.ice-bar{height:8px;margin:2px 0 4px}.ice-bar>i{background:var(--success)}@media (max-width:767px){.g-port{grid-template-columns:1fr}}.wh-empty{color:var(--text-mute);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px 0;font-size:13px;display:flex}.wh-total{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:700}.inv-grid{grid-template-columns:repeat(auto-fill,64px);gap:6px;display:grid}.inv-cell{border:1px solid var(--border);background:var(--surface-2);width:64px;height:64px;color:var(--text-dim);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.inv-cell:hover{border-color:var(--accent);box-shadow:var(--glow)}.inv-cell.on-self{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.inv-cell.on-other{opacity:.45;cursor:not-allowed}.inv-cell:disabled{cursor:not-allowed}.inv-cell .inv-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-mute);padding:0 3px;font-size:10px;line-height:1.2;overflow:hidden}.inv-cell.on-self .inv-name{color:var(--accent)}.inv-cell .inv-dur{background:var(--accent-2);height:3px;position:absolute;bottom:0;left:0}.profile-head{align-items:flex-start;gap:14px;display:flex}.profile-avatar{width:56px;height:56px;color:var(--bg);background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:26px;font-weight:700;display:flex}.profile-id{flex:1;min-width:0}.profile-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-name{font-size:20px}.profile-username{color:var(--text-mute);font-size:12px}.profile-level-row{align-items:center;gap:8px;margin-top:6px;display:flex}.profile-level{font-size:13px;font-weight:600}.profile-level-row .bar{flex:1}.profile-xp{color:var(--text-mute);white-space:nowrap;font-size:12px}.profile-created{color:var(--text-mute);margin-top:4px;font-size:12px;display:block}.stats-grid{grid-template-columns:1fr 1fr;gap:2px 18px;display:grid}.honor-row{flex-wrap:wrap;gap:10px;display:flex}.honor-badge{border:1px solid var(--surface-3);background:var(--surface-2);border-radius:10px;flex-direction:column;flex:90px;align-items:center;gap:2px;max-width:130px;padding:10px 8px;display:flex}.honor-badge.lit{border-color:var(--accent-2)}.honor-num{font-size:15px;font-weight:700}.honor-label{color:var(--text-mute);font-size:11px}.catch-timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.catch-timeline li{border-bottom:1px solid var(--surface-2);align-items:center;gap:10px;padding:8px 0;display:flex}.catch-timeline li:last-child{border-bottom:none}.ct-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ct-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.ct-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ct-qty,.ct-map{color:var(--text-mute);font-size:12px}.ct-time{color:var(--text-mute);white-space:nowrap;font-size:12px}.profile-name-row .tag{color:var(--accent);border:1px solid var(--accent-2);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:999px;padding:1px 8px;font-size:11px}.topbar-stats .ss-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:13px;font-weight:600;overflow:hidden}.wh-sellbar{border:1px solid var(--surface-3);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 12px;padding:8px 10px;display:flex}.wh-sellbar .btn.sm{padding:5px 12px;font-size:12px}.wh-sel-sum{color:var(--text-dim);flex:1;min-width:0;font-size:12px}.wh-sellbar .btn.primary{margin-left:auto}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border-strong);background:var(--surface-1);width:100%;max-width:380px;max-height:85vh;box-shadow:var(--shadow);border-radius:14px;padding:18px;position:relative;overflow-y:auto}.modal-close{border:1px solid var(--border);background:var(--surface-2);width:30px;height:30px;color:var(--text-mute);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:10px;right:10px}.modal-close:hover{color:var(--text)}.modal-body{align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.modal-info{flex:1;min-width:0}.modal-name{margin-bottom:4px;font-size:17px;display:block}.modal-rows{margin-top:8px}.modal-rows .stat-row{font-size:13px}.wh-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:10px}.wh-cell{padding:6px}.wh-cell-name,.wh-cell-price{font-size:11px}.wh-cell-time{font-size:9px}.wh-detail-btn{border:1px solid var(--border-strong);background:var(--bg-deep);width:16px;height:16px;color:var(--text-mute);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:-4px;right:20px}.wh-detail-btn:hover{color:var(--accent);border-color:var(--accent)}.port-wh-card{position:relative}.modal{background:var(--surface)}.wh-select-btn{border:1.5px solid var(--border-strong);background:var(--bg-deep);width:18px;height:18px;color:var(--bg-deep);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:border-color .15s,background .15s;display:flex}.wh-select-btn:hover{border-color:var(--accent)}.wh-select-btn.on{background:var(--accent);border-color:var(--accent);color:var(--bg-deep)}.wh-sel-total{color:var(--gold);font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-size:13px;font-weight:700;display:inline-flex}.wh-cell-rank{letter-spacing:.5px;white-space:nowrap;opacity:.9;flex-shrink:0;font-size:9px;font-weight:700}.wh-pager{border-top:1px solid var(--surface-2);justify-content:center;align-items:center;gap:12px;margin-top:8px;padding-top:8px;display:flex}.wh-pager .btn.sm{padding:4px 12px;font-size:12px}.wh-pager-info{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.wh-net-groups{flex-direction:column;gap:14px;display:flex}.wh-net-group{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:8px}.wh-net-head{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.wh-net-time{align-items:center;gap:4px;display:inline-flex}
