@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;700;900&display=swap');
:root{color-scheme:dark;--ink:#e9eee3;--muted:#91aead;--gold:#e5bb6b;--line:#ffffff18;--panel:#102b32e8;--mint:#80d9c0}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#133f4a;color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px}button{font:inherit;color:inherit;cursor:pointer;transition:background .2s,transform .2s;border:1px solid var(--line);background:#153b43;border-radius:4px}button:hover{background:#27545a;border-color:#a4c9ba80}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}#sea{display:block;width:100vw;height:100vh;cursor:crosshair}header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:25px 32px;pointer-events:none;background:linear-gradient(#08242ba8,transparent)}header>*{pointer-events:auto}.brand{display:flex;gap:14px;align-items:center}.mark{font-size:40px;color:var(--gold)}h1{font-family:"Noto Serif SC",Georgia,serif;font-size:27px;letter-spacing:5px;margin:0}h1 small{font:11px "Segoe UI",sans-serif;letter-spacing:4px;margin-left:8px;color:#b5c7c3}.brand p{font-size:11px;letter-spacing:2px;color:#9dbab9;margin:5px 0 0}.voyage{display:flex;align-items:center;gap:14px;color:#bdd0cc;font-size:12px}.voyage i{width:6px;height:6px;border-radius:50%;background:var(--mint)}.voyage .sep{opacity:.3}.voyage button{padding:8px 11px;background:#0d2e36a8}.panel{background:var(--panel);border:1px solid #a6cfbf26;box-shadow:0 8px 35px #00191c22;border-radius:5px;backdrop-filter:blur(12px)}.ship-panel{position:absolute;left:28px;top:110px;width:232px;padding:21px}.eyebrow{font-size:11px;color:#94b5b1;letter-spacing:1px;display:flex;justify-content:space-between}.eyebrow span{letter-spacing:0;color:#799793}.ship-panel h2{font-family:"Noto Serif SC",Georgia,serif;font-size:24px;margin:12px 0 22px;letter-spacing:2px}.ship-panel h2 small{font:12px Georgia;color:var(--gold);float:right;border:1px solid #dfb97255;padding:5px 9px}.stat-label{display:flex;justify-content:space-between;font-size:12px;color:#b5cac4}.stat-label b{font-weight:400;color:#e9eee3;font-variant-numeric:tabular-nums}.meter{height:4px;background:#0004;margin-top:8px}.meter div{height:100%;background:var(--mint);transition:width .2s}.stats{display:flex;justify-content:space-between;padding:19px 0;border-bottom:1px solid var(--line)}.stats span{display:block;color:#8caaa5;font-size:11px;margin-bottom:6px}.stats b{font-size:19px;font-weight:400}.stats small{font-size:10px;color:#8caaa5}.cargo-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px;font-size:11px;color:#b4cac2}.cargo-title b{font-weight:400;color:#829f98;margin-left:5px}.cargo-title strong{font-size:16px;color:var(--gold);font-weight:500}.cargo-title small{font-size:10px}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.slot{height:29px;border:1px solid #adc6b31a;background:#071e2738;display:grid;place-items:center;font-size:15px;color:var(--gold)}.slot.filled{background:#d5a4471a;border-color:#d5a44740}.cargo-note{font-size:11px;color:#76938e;margin:10px 0 0}.chart{position:absolute;right:28px;top:110px;width:240px;padding:15px}.chart canvas{display:block;width:100%;height:153px;margin-top:8px;background:#0a242c;border:1px solid #ffffff0c}.legend{display:flex;justify-content:space-between;font-size:10px;color:#94aeaa;margin-top:10px}.legend i{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:5px;background:#eee}.legend .gold{background:var(--gold)}.legend .red{background:#e88672}.legend .mint{background:var(--mint)}.wind{display:flex;gap:13px;align-items:center;margin-top:15px;border-top:1px solid var(--line);padding-top:13px;color:#c5d5ce;font-size:12px}.wind>span{font-size:31px;color:var(--gold)}.wind b{display:block;font-size:10px;color:#7f9e99;margin-top:4px;font-weight:400}.objective{position:absolute;left:30px;bottom:114px;display:flex;gap:14px;align-items:center;max-width:350px;padding:13px 18px;background:#0c2932d4;border-left:2px solid var(--gold)}.objective>span{font:23px Georgia;color:var(--gold)}.objective b{font-size:13px;font-weight:500}.objective p{color:#9cb6af;font-size:11px;margin:5px 0 0}footer{position:absolute;bottom:0;left:0;right:0;padding:20px 28px;display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(transparent,#082128e8);pointer-events:none}footer>*{pointer-events:auto}.controls{display:flex;gap:18px;color:#a8bdb8;font-size:11px}kbd{display:inline-block;border:1px solid #bed0c036;background:#12343bcc;border-radius:3px;padding:4px 6px;font:10px "Segoe UI","Microsoft YaHei",sans-serif;color:#e1e8dd;margin-right:5px}.batteries{display:flex;gap:8px}.batteries button{padding:10px 13px;font-size:12px;background:#10303bf2}.batteries b{font-size:10px;font-weight:400;color:var(--gold);margin-left:12px}#toast{position:absolute;top:100px;left:50%;transform:translateX(-50%) translateY(-10px);padding:11px 22px;background:#102d35f2;border:1px solid #e5bb6b55;border-radius:4px;opacity:0;transition:.3s;pointer-events:none;text-align:center;color:#eddab4;font-size:13px;max-width:420px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#context{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);display:none;min-width:215px;text-align:center}#interact{padding:11px 24px;background:#153940ed;color:#efdba9;border-color:#e5bb6b66;width:100%}.progress{height:3px;background:#112b36;margin-top:5px}.progress i{height:100%;width:0;display:block;background:var(--gold)}#targetInfo{position:absolute;left:50%;top:112px;transform:translateX(-50%);text-align:center;font-size:12px;color:#edc3a8;pointer-events:none}.modal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#03151a70;backdrop-filter:blur(5px);z-index:10;padding:24px}.modal.hidden{display:none}.dock{display:flex;width:820px;max-height:94vh;border:1px solid #c2b08055;box-shadow:0 40px 100px #00131799;background:#122e35;overflow:auto}.dock-art{width:38%;flex-shrink:0;padding:32px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 25% 60%,#37787555,transparent 70%),repeating-radial-gradient(ellipse at 10% 100%,transparent 0 43px,#d9c09014 44px 45px,transparent 46px 83px),#163b43;border-right:1px solid #c2b08033;display:flex;flex-direction:column;justify-content:flex-end}.dock-stamp{position:absolute;top:30px;left:30px;right:20px;font-size:9px;color:#bfba92;letter-spacing:2px}.dock-compass{position:absolute;top:14%;left:50%;transform:translateX(-50%);font-size:160px;font-family:Georgia;color:#dfc98c66;font-weight:100}.dock-art h2{font-family:"Noto Serif SC",Georgia,serif;font-size:38px;line-height:1.7;font-weight:500;letter-spacing:4px;color:#eee4c9;margin:0}.dock-art p{font-size:11px;color:#a2b5a5;letter-spacing:2px;margin-bottom:5px}.dock-content{padding:38px;flex:1}.dock-content>h2{font-family:"Noto Serif SC",Georgia,serif;font-size:28px;margin:21px 0 15px;font-weight:500}.dock-content>p{line-height:1.9;color:#a6bcb5;font-size:13px}.mission{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:23px 0}.mission span{display:block;color:var(--gold);font-size:10px;letter-spacing:2px;margin-bottom:7px}.mission b{font-size:14px;font-weight:500}.mission p{font-size:11px;color:#829f97;line-height:1.8;margin:9px 0 0}#upgrades{display:flex;gap:6px;margin-bottom:18px}#upgrades button{flex:1;font-size:11px;padding:11px 4px;background:#14373d}#upgrades b{display:block;font-size:10px;color:var(--gold);font-weight:400;margin-top:5px}.primary{width:100%;background:#d9bb7b;color:#17323a;border:none;padding:14px 20px;font-size:15px;font-weight:600;border-radius:2px}.primary:hover{background:#ebd29c}.primary span{float:right}.dock-content .blackmarket{margin:14px 0;padding:12px;border:1px solid #e8c56a44;border-radius:12px;background:#241f1445;}
.blackmarket .eyebrow{margin-bottom:8px;}#bmHint{color:#9db8a8;font-size:11px;}
.bm-row{display:flex;align-items:center;gap:10px;padding:7px 4px;border-top:1px solid #e8c56a22;}
.bm-name{flex:1;min-width:0;}.bm-name b{font-size:13px;color:#efe6c8;}.bm-name small{display:block;color:#93a895;font-size:11px;}
.bm-price,.bm-total{font-size:14px;color:#f0d191;white-space:nowrap;}.bm-price small,.bm-total small{color:#93a895;font-size:10px;}
.bm-row button{background:#3a2c14;border:1px solid #e8c56a88;color:#f0d191;border-radius:8px;padding:5px 10px;cursor:pointer;font-size:12px;}
.bm-row button:hover{background:#54401c;}
.bm-all{margin-top:8px;width:100%;background:#4a3413;border:1px solid #e8c56a;color:#f5dfa0;border-radius:10px;padding:9px;cursor:pointer;font-size:14px;}
.bm-all:hover{background:#5d4218;}
.warehouse{margin:14px 0;padding:12px;border:1px solid #7fc4e844;border-radius:12px;background:#16222a45;}
.warehouse .eyebrow{margin-bottom:8px;}#whInfo{color:#9db8a8;font-size:11px;}
.warehouse .bm-row{border-top:1px solid #7fc4e822;}
.warehouse .bm-row button{background:#1d2c33;border:1px solid #7fc4e888;color:#bfe3f2;}
.warehouse .bm-row button:hover{background:#28414c;}
.dock-hint{font-size:10px;text-align:center;color:#75938b;margin:13px 0 0;line-height:1.8}.pause-modal{position:absolute;inset:0;background:#071f28c9;z-index:11;display:flex;align-items:center;justify-content:center;flex-direction:column;backdrop-filter:blur(8px)}.pause-modal[hidden]{display:none}.pause-modal h2{font:32px "Noto Serif SC",serif}.pause-modal p{color:#9fb6ad}.pause-modal button{width:220px;margin-top:20px}@media(max-width:1000px){.controls{gap:7px;font-size:10px}.batteries b{margin-left:4px}.ship-panel{width:195px;padding:15px}.chart{width:195px}.chart canvas{height:135px}footer{padding:15px}.objective{bottom:95px}.dock{width:740px}.dock-content{padding:26px}}@media(max-width:700px){header{padding:15px}.brand h1{font-size:22px}.brand small,.brand p,.voyage .sep,#clock,.voyage i{display:none}.voyage{gap:6px;font-size:10px}.ship-panel{top:80px;left:12px;width:145px;padding:11px}.ship-panel h2{font-size:19px;margin:8px 0 12px}.stats{padding:12px 0}.stats b{font-size:15px}.cargo-title{display:block}.cargo-title strong{display:block;margin-top:6px}.slots{gap:3px}.slot{height:22px}.cargo-note{display:none}.chart{top:80px;right:12px;width:150px;padding:9px}.chart canvas{height:100px}.legend{font-size:8px}.wind{margin-top:8px;padding-top:7px}.wind b{font-size:9px}.objective{left:12px;bottom:115px;padding:9px 11px;max-width:270px}.controls{display:none}footer{justify-content:center}.dock-art{display:none}.dock{width:420px}.dock-content{padding:24px}.dock-content>h2{font-size:25px}.mission{margin:15px 0;padding:12px 0}#context{bottom:70px}#targetInfo{top:65px}#toast{top:55px;width:80%}.batteries button{padding:13px}#sound{display:none}}

#upgrades{display:grid;grid-template-columns:1fr 1fr}#upgrades small{display:block;color:#91aaa4;font-size:10px;margin-top:6px}.chart canvas{cursor:pointer}.slots{max-height:130px;overflow:auto}#targetInfo{top:85px;background:#102b32bf;padding:6px 12px;border-radius:3px} .dock-content{padding-top:25px;padding-bottom:25px}
#holdBtn{padding:6px 10px;font-size:11px}.hold-panel{position:absolute;inset:0;background:#071f28c9;z-index:12;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);padding:20px}.hold-panel[hidden]{display:none}.hold-box{width:430px;max-width:94vw;max-height:82vh;overflow:auto;padding:24px}.hold-box .eyebrow{margin-bottom:6px}#holdList{margin:8px 0}.hold-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}.hold-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.hold-name{flex:1;min-width:0}.hold-name b{font-weight:500;font-size:13px}.hold-name small{display:block;color:#8caaa5;font-size:10px;margin-top:3px}.hold-val{color:var(--gold);font-size:13px;text-align:right;white-space:nowrap}.hold-val small{font-size:10px;color:#8caaa5}.hold-row button{padding:7px 9px;font-size:11px;flex-shrink:0}.hold-empty{color:#8caaa5;text-align:center;padding:34px 0;font-size:12px}.hold-hint{font-size:11px;color:#76938e;text-align:center;margin:12px 0 16px}.hold-box .primary{margin-top:4px}
