*{box-sizing:border-box}body{margin:0;background:#03060a;color:#e4edf3;font:13px/1.55 "Segoe UI","Microsoft YaHei",sans-serif;overflow:hidden}button,select,input{font:inherit;color:inherit}button,select,input{border:1px solid #ffffff24;background:#0c1720c9;border-radius:5px;padding:9px 12px}button{cursor:pointer}button:hover{background:#224151}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #9fddd4}a{color:inherit}#universe{position:fixed;inset:0;outline:none}#universe canvas{width:100%;height:100%;display:block;touch-action:none}header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 34px;border-bottom:1px solid #ffffff13;background:linear-gradient(#03080ddd,transparent)}.brand{text-decoration:none;font-size:23px;letter-spacing:4px;display:flex;gap:12px;align-items:center}.brand span{font-size:9px;letter-spacing:2px;color:#97aeb9}.badge{font:10px monospace;letter-spacing:2px;color:#a6babf}.badge i{display:inline-block;width:5px;height:5px;background:#aee5b9;border-radius:100%;margin-right:12px}.intro{position:absolute;left:34px;top:105px;pointer-events:none}.eyebrow{font:10px/1.5 monospace;letter-spacing:1.8px;color:#8faebc}h1{font-size:31px;letter-spacing:3px;margin:12px 0 2px;font-weight:450}.intro p{color:#91a7b3;margin-top:6px}.navigator{position:absolute;left:34px;top:224px;width:254px;padding:18px;background:linear-gradient(120deg,#0c1722de,#08111cb0);border:1px solid #ffffff18;border-radius:8px;backdrop-filter:blur(14px)}.destinations{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.destinations button{text-align:left;font:10px monospace;color:#81949f;padding:8px 10px}.destinations b{font:15px "Microsoft YaHei";color:#dbe6ec;margin-left:9px}.destinations span{display:block;font-size:9px;letter-spacing:2px;margin:4px 0 0 23px}.destinations .active{border-color:#b8e7e3;background:#29444966}.field{display:block;color:#8fa6b1;font-size:10px}.field select{display:block;width:100%;margin-top:4px}#destination-note{font-size:11px;color:#8da2ac;min-height:32px;margin:8px 0}.primary{background:#bbdcd7;color:#102629;border:0;width:100%;font-weight:600}.primary:hover{background:#d8f3ed}.primary span{float:right}.wide{width:100%;margin-top:7px;border:0;font-size:11px}#route-status{font-size:10px;color:#bbdcd7;padding-top:12px;min-height:31px}#map{width:100%;height:110px;margin-top:4px}.map-note{font-size:9px;color:#687d8c}.readouts{position:absolute;right:34px;top:132px;width:193px;text-shadow:0 2px 8px #000}.readouts>small{display:block;color:#9bafba;font-size:10px;margin-top:19px}.readouts strong{display:block;font:23px/1.6 monospace}.readouts p{color:#9eb2bd;font-size:11px;margin:0}.readouts hr{border:0;border-top:1px solid #ffffff20;margin:21px 0}.readouts dl{font:10px/1.7 monospace}.readouts dt{color:#98aab8;margin-top:10px}.readouts dd{margin:0;font-size:14px}.readouts .muted{font-size:9px;line-height:1.7;color:#758995}.reticle{position:absolute;left:50%;top:50%;color:#d9eff240;font:28px monospace;pointer-events:none}.timeline{position:absolute;right:34px;bottom:133px;display:flex;align-items:end;gap:8px;font-size:10px;color:#97acb9}.timeline input{display:block;font-size:11px;margin-top:4px}.timeline select{font-size:11px}.help{position:absolute;bottom:116px;left:34px;font-size:10px;letter-spacing:1px;color:#879da9}footer{position:absolute;bottom:0;left:0;right:0;min-height:94px;display:flex;align-items:center;gap:23px;padding:17px 34px;background:#08131de6;border-top:1px solid #ffffff23;backdrop-filter:blur(15px)}footer label{font-size:10px;color:#8fa8b5}footer select{display:block;margin-top:4px;font-size:12px;min-width:170px}.speed{width:180px}.speed small{display:block;color:#93a8b5;font-size:10px}.speed output{font:27px monospace;margin-right:9px}.speed span{color:#7795a7;font-size:11px}.pad{display:flex;gap:3px;margin-left:auto}.pad button{padding:8px 10px}#cruise{border-color:#5d8886;color:#c3e4df}#labels{position:absolute;inset:0;pointer-events:none}#labels span{position:absolute;color:#b6cdd7;font:10px monospace;white-space:nowrap;text-shadow:0 1px 4px black}#loading{position:fixed;inset:0;background:#040b12;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10}#loading span{font-size:50px;color:#bcdcd7}#loading h2{font-weight:400;font-size:19px}#loading p{color:#7892a3}dialog{width:min(700px,90vw);max-height:85vh;overflow:auto;background:#0d1924;color:#c9d9e2;border:1px solid #4c656f;border-radius:12px;padding:30px;font-size:13px;line-height:1.85}dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}#close{float:right}dialog h2{font-size:25px}dialog h3{color:#deedea}dialog a{color:#a0dad0}@media(max-height:780px){.intro{top:88px}.intro h1{font-size:24px}.navigator{top:191px;padding:12px;width:240px}#map{height:65px}.readouts{top:105px}.readouts hr{margin:13px 0}}@media(max-width:1000px){header{padding:18px}.badge{display:none}.intro{left:18px}.navigator{left:18px;width:220px}.readouts{right:18px;width:160px}footer{gap:9px;padding:12px 18px}footer select{min-width:130px;max-width:160px}.pad{display:none}.speed{width:130px}.timeline{right:18px}.help{left:18px}}@media(max-width:650px){.brand span{display:none}.intro{top:76px}.intro h1{font-size:23px}.intro .eyebrow,.intro p{display:none}.navigator{top:129px;width:166px;padding:10px}.destinations b{font-size:12px;margin-left:4px}.destinations button{padding:7px 5px}.destinations span{font-size:8px;margin-left:14px}.navigator .eyebrow{font-size:8px}#destination-note{font-size:9px}#map{height:67px}.readouts{width:124px;top:133px;right:12px}.readouts strong{font-size:18px}.readouts .eyebrow{font-size:8px}.readouts hr{margin:12px 0}.readouts dd{font-size:11px}.timeline{bottom:155px;right:12px;flex-direction:column;gap:4px}.timeline input{width:161px;padding:5px}.timeline select{padding:5px}.help{display:none}footer{flex-wrap:wrap;gap:7px;padding:10px 12px}.speed{width:105px}.speed output{font-size:19px}footer select{font-size:10px;min-width:100px;width:122px}footer label{font-size:9px}.pad{display:flex;margin-left:0}.pad button{padding:6px 9px}#cruise{margin-left:auto;font-size:10px;padding:7px}.map-note{font-size:8px}#route-status{font-size:9px}}

.navigator{top:208px;max-height:calc(100vh - 365px);overflow:auto;scrollbar-width:thin}.field{margin-top:6px}.map-toolbar{display:flex;align-items:center;gap:7px;margin-top:12px}.map-toolbar select{font-size:10px;padding:5px}.map-toolbar span{font-size:9px;color:#94b9c4}#map{height:140px}.map-note{line-height:1.8;display:block}.timeline{flex-wrap:wrap;max-width:650px;justify-content:flex-end;bottom:145px}.timeline select{display:block;margin-top:4px}.dynamics-readout{position:absolute;bottom:110px;right:34px;display:flex;gap:16px;font-size:10px;color:#8fb1bd}.dynamics-readout b{font-weight:400;color:#d9ecec}#portal-flash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle,#eef8ff,#7771b2,transparent);opacity:0;z-index:3}@media(max-height:850px){.intro{top:90px}.navigator{top:180px;max-height:calc(100vh - 310px)}.navigator #destination-note{min-height:0}.destinations{margin:8px 0}}@media(max-width:650px){.navigator{top:129px;max-height:calc(100vh - 390px)}.timeline{bottom:185px;max-width:175px}.dynamics-readout{bottom:140px;left:12px;right:12px;justify-content:space-between;gap:5px;font-size:8px}.map-toolbar{flex-wrap:wrap}.map-toolbar span{font-size:8px}#map{height:100px}}


.map-panel{position:absolute;left:34px;bottom:143px;width:254px;padding:12px 16px;background:#07131ded;border:1px solid #ffffff18;border-radius:8px;backdrop-filter:blur(14px)}.map-panel .map-toolbar{margin-top:0}.map-panel #map{height:125px}.navigator{max-height:calc(100vh - 595px)}@media(max-height:850px){.navigator{max-height:calc(100vh - 515px)}.map-panel{bottom:142px;padding:9px 12px}.map-panel #map{height:85px}}@media(max-width:1000px){.map-panel{left:18px;width:220px}}@media(max-width:650px){.navigator{max-height:calc(100vh - 520px)}.map-panel{left:18px;width:166px;bottom:157px;padding:8px}.map-panel #map{height:90px}.map-panel .map-note{font-size:7px}.map-panel .map-toolbar span{font-size:7px}.map-panel .map-toolbar{gap:3px}.map-panel .map-toolbar select{padding:3px}}

.readouts,.help,.dynamics-readout{pointer-events:none}
.navigator,footer,.map-panel{backdrop-filter:none}
.navigator{padding:12px 16px}.navigator .field select{padding:6px 9px;margin-top:2px}.navigator #destination-note{min-height:0;margin:6px 0;font-size:10px}.navigator #route-status{padding-top:6px;min-height:24px}.navigator #patrol-note{font-size:9px;margin-bottom:3px}.navigator #stop{margin-top:3px}

#patrol{margin:8px 0 5px;width:100%}#patrol:disabled{opacity:.4;cursor:not-allowed}#patrol-note{display:block;color:#91adb8;font-size:10px;line-height:1.5;margin-bottom:8px}.navigator .field select{width:100%}

.view-tools{display:flex;gap:8px;align-items:center}.view-tools select{max-width:180px}
#coordinate-dialog{width:min(640px,90vw);max-height:85vh;overflow:auto}
.coordinate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.coordinate-grid input{width:100%;min-width:0;background:#10232e;border:1px solid #52717c;color:#eff;padding:10px;border-radius:5px;box-sizing:border-box}
#coordinate-error{color:#ffb790;min-height:22px}
#coordinate-dialog button{margin:6px 6px 6px 0}
@media(max-width:900px){header .badge{display:none}.view-tools{gap:4px}.view-tools select{max-width:135px}}


/* v16: larger navigation map and collision-free leader labels */
.map-panel{width:318px;padding:13px 16px}.map-panel #map{height:176px}.navigator{max-height:calc(100vh - 660px)}
#labels span{padding:3px 6px;color:rgba(190,207,215,.55);background:rgba(7,19,29,.12);border:1px solid rgba(174,198,210,.16);border-radius:4px;box-shadow:none;text-shadow:0 1px 3px #0006;z-index:1}
@media(max-height:850px){.map-panel{width:285px}.map-panel #map{height:112px}.navigator{max-height:calc(100vh - 535px)}}
@media(max-width:1000px){.map-panel{width:278px}}
@media(max-width:650px){.map-panel{width:190px}.map-panel #map{height:104px}.navigator{max-height:calc(100vh - 540px)}}

#observation{position:absolute;top:120px;left:50%;transform:translateX(-50%);max-width:480px;padding:10px 16px;background:#071117d9;color:#bdd0d5;border:1px solid #536a7055;border-radius:8px;font-size:12px;z-index:5}#observation[hidden]{display:none}#observation p{margin:7px 0}#observation small{opacity:.65}

/* Full vessel names; help stays with its selector, outside the flight canvas. */
.flight-picker{display:flex;align-items:center;gap:7px;flex-shrink:0}
.view-tools #flight-mode{width:252px;min-width:252px;max-width:none}
#nuclear-open{width:25px;height:25px;padding:0;border-radius:50%;font-size:13px;line-height:23px;color:#a9bdc7;background:#0c172066;flex-shrink:0}
#nuclear-open[hidden]{display:none}
@media(max-width:1200px){header .badge{display:none}}
@media(max-width:900px){header{flex-wrap:wrap;gap:10px}.view-tools{flex-wrap:wrap;justify-content:flex-end}.view-tools #flight-mode{width:252px;min-width:252px;max-width:none}}

#solar-open{width:27px;height:27px;padding:0;border-radius:50%;font-size:17px;color:#afc1ca;background:#0c172066;flex-shrink:0}#solar-open[hidden]{display:none}

/* Share one width so navigation and map edges remain aligned at every breakpoint. */
:root{--flight-panel-width:318px}
.navigator,.map-panel{width:var(--flight-panel-width)}
.destination-fields{display:grid;grid-template-columns:.8fr 1.15fr 1fr;gap:7px;margin:6px 0}
.destination-fields .field{min-width:0;margin:0;white-space:nowrap}
.navigator .destination-fields select{min-width:0;width:100%;font-size:11px;padding:7px 3px}
@media(max-height:850px){:root{--flight-panel-width:285px}}
@media(max-width:1000px){:root{--flight-panel-width:278px}}
@media(max-width:650px){:root{--flight-panel-width:min(318px,calc(100vw - 36px))}.destination-fields{gap:5px}.navigator .destination-fields select{font-size:10px}}

/* One flowing left rail: spacing follows content rather than viewport height. */
.flight-sidebar{position:absolute;left:34px;top:112px;bottom:126px;width:var(--flight-panel-width);display:flex;flex-direction:column;gap:16px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#40545b transparent;padding-bottom:4px}
.flight-sidebar>*{flex-shrink:0}
.flight-sidebar .intro{position:static;padding:0 2px 6px;pointer-events:none}
.flight-sidebar .intro .eyebrow{font-size:9px;letter-spacing:2px;color:#78949f}
.flight-sidebar .intro h1{font-size:29px;line-height:1.35;letter-spacing:1.5px;margin:16px 0 10px}
.flight-sidebar .intro p{font-size:12px;line-height:1.7;margin:0;color:#91a7b3}
.flight-sidebar .navigator,.flight-sidebar .map-panel{position:static;width:100%;max-height:none;overflow:visible;border-radius:10px;background:#08131cde;border-color:#b3d3df20;padding:16px}
.flight-sidebar .navigator>.eyebrow{padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid #b3d3df12;font-size:9px;letter-spacing:1.5px}
.flight-sidebar .destination-fields{gap:8px;margin:0}
.flight-sidebar .field{font-size:10px;line-height:1.5;color:#9cafb8}
.flight-sidebar .field select{height:34px;margin-top:6px;border-color:#b3d3df28;background:#0c1922; border-radius:6px}
.flight-sidebar #destination-note{font-size:10px;line-height:1.6;margin:10px 0 14px;color:#849ea9}
.flight-sidebar #navigate{min-height:38px;border-radius:6px;font-size:12px}
.flight-sidebar #patrol{min-height:33px;margin:9px 0 5px;border:1px solid #b3d3df18;background:#10202b66}
.flight-sidebar #patrol-note{font-size:9px;line-height:1.6;margin:0 0 12px;color:#7f9aa5}
.flight-sidebar #stop{min-height:33px;margin:0;border:1px solid #b3d3df18;background:#10202b66;border-radius:6px}
.flight-sidebar #route-status{font-size:10px;line-height:1.6;min-height:0;margin-top:12px;padding:10px 0 0;border-top:1px solid #b3d3df12;color:#a9ccc7;overflow-wrap:anywhere}
.flight-sidebar .map-toolbar{margin:0;gap:8px;justify-content:space-between}
.flight-sidebar .map-toolbar span{font-size:9px;letter-spacing:0;color:#8fa8b3}
.flight-sidebar .map-panel #map{display:block;height:156px;margin:12px 0}
.flight-sidebar .map-note{padding-top:9px;border-top:1px solid #b3d3df12;font-size:9px;line-height:1.9;color:#7e98a5;font-variant-numeric:tabular-nums}
.flight-sidebar .help{position:static;display:block;margin:0;padding:0 3px;font-size:9px;line-height:1.9;letter-spacing:.2px;color:#78929e}
@media(max-height:850px){.flight-sidebar{top:99px;bottom:119px;gap:12px}.flight-sidebar .intro h1{font-size:25px;margin:10px 0 6px}.flight-sidebar .navigator,.flight-sidebar .map-panel{padding:13px}.flight-sidebar .map-panel #map{height:112px}}
@media(max-width:1000px){.flight-sidebar{left:18px}}
@media(max-width:900px){.flight-sidebar{top:150px}}
@media(max-width:650px){.flight-sidebar{top:185px;bottom:178px}.flight-sidebar .intro .eyebrow{display:block}.flight-sidebar .intro p{display:block}.flight-sidebar .intro h1{font-size:24px}.flight-sidebar .map-toolbar{flex-wrap:nowrap}}

.flight-sidebar .intro{padding-bottom:2px}
.flight-sidebar .intro h1{margin:12px 0 7px}
.flight-sidebar .navigator>.eyebrow{padding-bottom:8px;margin-bottom:10px}
.flight-sidebar .field select{height:32px}
.flight-sidebar #destination-note{margin:8px 0 10px}
.flight-sidebar #navigate{min-height:36px}
.flight-sidebar #patrol{min-height:30px;margin:6px 0 4px}
.flight-sidebar #patrol-note{margin-bottom:8px}
.flight-sidebar #stop{min-height:30px}
.flight-sidebar #route-status{margin-top:8px;padding-top:8px}
.flight-sidebar .map-panel #map{height:128px;margin:8px 0}
@media(max-height:850px){.flight-sidebar .map-panel #map{height:96px}}

#loading{background:radial-gradient(ellipse at 50% 35%,#102430 0%,#040b12 65%)}
.loading-card{width:min(420px,calc(100vw - 48px));text-align:left}
#loading .loading-mark{display:block;font-size:44px;line-height:1;margin-bottom:26px;color:#bbdcd7}
#loading .eyebrow{font-size:10px;letter-spacing:2px}
#loading h2{font-size:23px;margin:12px 0 8px;color:#e4edf3;font-weight:450}
#loading #loading-detail{font-size:12px;color:#91a9b5;min-height:38px;margin:0 0 24px}
#loading .loading-meter{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
#loading .loading-meter span{font-size:11px;color:#91a9b5}
#loading-percent{font:18px monospace;color:#bbdcd7}
#loading-progress{display:block;width:100%;height:5px;border:0;border-radius:6px;overflow:hidden;background:#20323d;accent-color:#bbdcd7}
#loading-progress::-webkit-progress-bar{background:#20323d;border-radius:6px}
#loading-progress::-webkit-progress-value{background:#bbdcd7;border-radius:6px;transition:width .18s linear}
#loading-progress::-moz-progress-bar{background:#bbdcd7}
#loading small{display:block;margin-top:18px;font-size:11px;line-height:1.8;color:#718a98}
/* Separate destination-world controls, with a small footprint over the view. */
#interstellar-panel{position:fixed;top:112px;left:50%;transform:translateX(-50%);max-width:440px;padding:14px 18px;background:#07131ddd;border:1px solid #29414a;border-radius:10px;z-index:6;font-size:12px;color:#c4d5db}
#interstellar-panel p{margin:8px 0}#interstellar-panel small{display:block;color:#839ca7}#interstellar-panel button{margin:10px 8px 0 0;padding:7px 10px;font-size:12px}
#miller-open{width:30px;height:30px;padding:0;border-radius:50%;color:#a5c2cd}
#interstellar-panel #miller-close{float:right;margin:0 0 6px 12px;padding:2px 7px;font-size:17px}
#miller-vehicle{color:#91b7c8}
.timeline #ship-clock,.timeline #clock-model{display:block;font-size:10px;margin-top:4px;color:#98adb5}.timeline #clock-reset{font-size:10px;padding:3px 6px;margin-top:5px}
@media(max-width:800px){#interstellar-panel{left:auto;right:12px;transform:none;top:190px;max-width:260px}}

/* One aligned right column; short windows scroll telemetry, not the controls. */
.flight-right-sidebar{position:absolute;right:34px;top:124px;bottom:112px;width:248px;display:flex;flex-direction:column;gap:24px;pointer-events:none}
.flight-right-sidebar .readouts{position:static;width:100%;min-height:70px;overflow:auto;scrollbar-width:thin;flex:0 1 auto;pointer-events:auto;padding-right:2px}
.flight-right-sidebar .readouts>small{margin-top:10px}.flight-right-sidebar .readouts strong{font-size:22px;line-height:1.35}.flight-right-sidebar .readouts hr{margin:12px 0}.flight-right-sidebar .readouts dl{margin:8px 0}.flight-right-sidebar .readouts dt{margin-top:8px}
.flight-right-sidebar .timeline{position:static;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;justify-content:flex-start;gap:12px;width:100%;max-width:none;margin-top:auto;flex:none;pointer-events:auto}
.time-management{display:flex;flex-direction:column;gap:10px}
.timeline label{display:block;width:100%;font-size:10px;color:#97acb9}
.flight-right-sidebar .timeline input,.flight-right-sidebar .timeline select,.flight-right-sidebar .timeline #clock-reset{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:34px;padding:7px 10px;font-size:11px;margin:5px 0 0}
.flight-right-sidebar .timeline #clock-reset{margin-top:0;text-align:center}
.timeline .clock-summary{padding:0 1px;overflow-wrap:anywhere}
.flight-right-sidebar .timeline #ship-clock,.flight-right-sidebar .timeline #clock-model{display:block;font-size:10px;line-height:1.55;margin:0;color:#7f99a5}
.flight-right-sidebar .timeline #clock-model{margin-top:3px}
.flight-right-sidebar .dynamics-readout{position:static;display:grid;grid-template-columns:1fr;gap:3px;font-size:10px;line-height:1.6;pointer-events:none;padding-top:10px;border-top:1px solid #ffffff13}
.space-management{padding-top:10px;border-top:1px solid #ffffff13}
@media(max-height:850px){.flight-right-sidebar{top:110px;bottom:110px;gap:14px}.time-management{gap:7px}.flight-right-sidebar .timeline{gap:8px}}
@media(max-width:1000px){.flight-right-sidebar{right:18px;width:226px}}
@media(max-width:900px){.flight-right-sidebar{top:155px}}
@media(max-width:650px){.flight-right-sidebar{right:12px;top:185px;bottom:178px;width:200px;overflow:auto;scrollbar-width:thin;pointer-events:auto;gap:16px}.flight-right-sidebar .readouts{flex:none;overflow:visible}.flight-right-sidebar .timeline{margin-top:0}}
footer label[hidden],.dynamics-readout span[hidden]{display:none}
.flight-sidebar .map-projection{display:flex;align-items:center;gap:9px;margin-top:7px;color:#91aab6;font-size:9px}
.flight-sidebar .map-projection[hidden]{display:none}
.flight-sidebar .map-projection select{padding:4px 7px;font-size:10px;min-width:0}
.flight-sidebar .map-projection span{margin-left:auto;color:#69828e}

/* A quiet, persistent registration line below the flight controls. */
footer{padding-bottom:31px;min-height:108px}
.site-registration{position:absolute;bottom:6px;left:12px;right:12px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:10px;line-height:16px;color:#8da2ad}
.site-registration a{text-decoration:none}.site-registration a:hover{text-decoration:underline;color:#c7dddF}
.site-registration button{border:0;background:none;border-radius:2px;padding:0;font:inherit;color:inherit}
.site-registration button:hover{color:#c7dddf;text-decoration:underline}
#privacy-dialog .dialog-close{float:right}#privacy-dialog h2{font-size:22px}
.privacy-choice{display:flex;align-items:center;gap:8px}.privacy-choice input{accent-color:#bbdcd7}
#privacy-status{font-size:12px;color:#abd1c8;min-height:1.8em}
@media(max-width:650px){footer{padding-bottom:31px}.site-registration{font-size:9px}}
