.gh{--bg:#151515;--ink:#f0f0ed;--muted:#959898;--line:#343737;--surface:#1c1e1e;--accent:#c7d4cd;--bad:#e39884;--good:#abd1b8;position:relative;isolation:isolate;color:var(--ink);background:var(--bg);font:14px/1.5 Arial,Helvetica,sans-serif;min-height:720px;height:calc(100svh - var(--gh-header,0px));overflow:hidden}
.gh[data-theme=light]{--bg:#f7f7f7;--ink:#1b1d1e;--muted:#6a7274;--line:#d6dbdc;--surface:#fff;--accent:#465b50;--bad:#a9442e;--good:#346e48}
.gh *{box-sizing:border-box}.gh :is(h1,h2,p,dl,dd){margin:0}.gh button,.gh input,.gh select{font:inherit}.gh button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}.gh button:disabled{cursor:default;opacity:.4}.gh :is(button,input,select,a):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.gh a{color:inherit;text-decoration:none}.gh [hidden]{display:none!important}.gh button{border:0;background:none}.gh .gh-mono{font:11px/1.4 'Courier New',monospace;letter-spacing:.065em;text-transform:uppercase}.gh .gh-muted{color:var(--muted)}
.gh-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:26px 32px;z-index:5;background:linear-gradient(var(--bg) 50%,transparent);gap:14px}.gh-brand{font-size:17px;font-weight:850;letter-spacing:-.055em;display:flex;gap:11px;align-items:center}.gh-mark{display:grid;place-items:center;width:27px;height:27px;border:2px solid currentColor;font-size:20px;line-height:1}.gh-nav{display:flex;gap:20px;align-items:center;font-size:12px}.gh-theme{border:1px solid var(--line)!important;border-radius:30px;padding:7px 13px!important}.gh-heading{position:absolute;left:32px;top:104px;z-index:3;pointer-events:none}.gh-heading h1{font-size:clamp(32px,3.5vw,53px);font-weight:400;line-height:1.12;letter-spacing:-.055em;margin:8px 0 11px}.gh-heading p:last-child{font-size:13px;color:var(--muted)}
.gh-viewport{position:absolute;left:0;top:80px;bottom:120px;right:360px;touch-action:none;outline:none}.gh-viewport canvas{display:block;width:100%;height:100%}.gh-view-tools{position:absolute;left:32px;bottom:130px;z-index:3;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gh-view-tools button{font-size:11px;border:1px solid var(--line);border-radius:24px;padding:7px 12px;background:var(--bg)}.gh-view-tools button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.gh-view-tools label{font-size:11px;display:flex;align-items:center;gap:6px;padding:7px}.gh input[type=checkbox]{accent-color:var(--accent)}
.gh-sidebar{position:absolute;right:32px;top:112px;bottom:128px;width:292px;z-index:4;overflow:auto;scrollbar-width:thin;padding:0 2px 14px}.gh-sidebar .gh-mono{color:var(--muted)}.gh-select{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border-bottom:1px solid var(--line)!important;padding:9px 0 17px;font-size:29px!important;line-height:1.1;letter-spacing:-.04em}.gh-select>span:first-child{max-width:250px}.gh-select>span:last-child{font-size:20px;letter-spacing:0;margin-left:10px}.gh-maker{font-size:12px;color:var(--muted);margin:12px 0 4px!important}.gh-dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:19px 0 24px!important}.gh-dimensions dt{font-size:11px;color:var(--muted)}.gh-dimensions dd{font-size:22px;letter-spacing:-.04em}.gh-dimensions small{font-size:11px;margin-left:2px}.gh-status{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:6px 0 20px}.gh-status-title{display:flex;align-items:center;gap:8px;font-size:18px}.gh-dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex-shrink:0}.gh-status[data-state=clear] .gh-dot{background:var(--good)}.gh-status[data-state=blocked] .gh-dot{background:var(--bad)}.gh-status p{font-size:12px;color:var(--muted);line-height:1.65;margin-top:8px}.gh-retry{padding:5px 0!important;text-decoration:underline;font-size:12px!important}.gh-align summary{cursor:pointer;font-size:12px;list-style:none;display:flex;justify-content:space-between}.gh-align summary:after{content:'+';font-size:16px}.gh-align[open] summary:after{content:'−'}.gh-align-content{padding-top:14px}.gh-align label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:9px 0 2px}.gh-align output{color:var(--ink)}.gh-align input{width:100%;accent-color:var(--accent);height:20px}.gh-align-reset{border-bottom:1px solid var(--muted)!important;font-size:11px!important;padding:0 0 2px!important;margin-top:10px}.gh-note{color:var(--muted);font-size:11px;line-height:1.65;margin-top:24px!important}.gh-source{border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)!important;display:inline-block;margin-top:8px}
.gh-transport{position:absolute;bottom:29px;left:32px;right:32px;z-index:5;display:grid;grid-template-columns:42px 1fr 54px;align-items:center;gap:19px;border-top:1px solid var(--line);padding-top:23px}.gh-play{border:1px solid var(--line)!important;border-radius:50%;height:40px;width:40px;font-size:16px!important}.gh-reset{font-size:11px!important;border-bottom:1px solid var(--muted)!important;padding:0 0 3px!important}.gh-slider-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:5px}.gh-slider-label output{font-variant-numeric:tabular-nums;color:var(--muted)}.gh-track{position:relative;height:25px}.gh-track input{position:absolute;inset:0;width:100%;margin:0;height:25px;appearance:none;-webkit-appearance:none;background:none;cursor:ew-resize;z-index:2}.gh-track input::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,var(--accent) 0 var(--gh-progress,0%),var(--line) var(--gh-progress,0%) var(--gh-stop,100%),color-mix(in srgb,var(--bad) 35%,var(--line)) var(--gh-stop,100%) 100%)}.gh-track input::-webkit-slider-thumb{appearance:none;margin-top:-5px;width:13px;height:13px;border-radius:50%;background:var(--ink);border:2px solid var(--bg)}.gh-track input::-moz-range-track{height:3px;background:var(--line)}.gh-track input::-moz-range-thumb{width:11px;height:11px;background:var(--ink);border:2px solid var(--bg);border-radius:50%}.gh-stop-marker{position:absolute;top:6px;height:13px;width:2px;background:var(--bad);left:var(--gh-stop,100%);pointer-events:none;z-index:3}.gh-endpoints{display:flex;justify-content:space-between;font:9px/1.4 'Courier New',monospace;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.gh-ruler{position:absolute;left:32px;bottom:189px;display:flex;gap:9px;align-items:center;color:var(--muted);font-size:10px;pointer-events:none;z-index:3}.gh-ruler-line{height:7px;border-bottom:1px solid var(--muted);position:relative;width:65px}.gh-ruler-line:before,.gh-ruler-line:after{content:'';position:absolute;bottom:-3px;height:7px;border-left:1px solid var(--muted)}.gh-ruler-line:after{right:0}.gh-orbit-note{position:absolute;left:32px;bottom:213px;font-size:10px;color:var(--muted);z-index:2;pointer-events:none}
.gh-loading{position:absolute;left:calc((100% - 360px)/2);top:48%;transform:translate(-50%,-50%);z-index:7;background:var(--bg);border:1px solid var(--line);padding:12px 16px;font-size:12px;display:flex;align-items:center;gap:10px;white-space:nowrap;max-width:90%}.gh-loading:before{content:'';width:12px;height:12px;border:1px solid var(--muted);border-top-color:var(--ink);border-radius:50%;animation:gh-spin 1s linear infinite;flex-shrink:0}@keyframes gh-spin{to{transform:rotate(360deg)}}
.gh-picker{position:absolute;inset:80px 24px 24px;z-index:20;background:var(--bg);border:1px solid var(--line);padding:28px;max-width:630px;margin:auto;box-shadow:0 15px 80px #0005;display:flex;flex-direction:column}.gh-picker-head{display:flex;justify-content:space-between;align-items:center}.gh-picker h2{font-size:26px;font-weight:400;letter-spacing:-.04em}.gh-picker-close{font-size:28px!important;padding:0 4px!important}.gh-search{margin:20px 0 14px;padding:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);width:100%;border-radius:4px}.gh-picker-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:12px;gap:10px}.gh-picker-meta label{display:flex;align-items:center;gap:6px}.gh-ship-list{overflow:auto;flex:1;min-height:0;scrollbar-width:thin}.gh-ship-list button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:14px 6px;border-top:1px solid var(--line);gap:16px}.gh-ship-list button:hover,.gh-ship-list button[aria-current=true]{background:var(--surface)}.gh-ship-list small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.gh-ship-list .gh-length{font-size:12px;color:var(--muted);white-space:nowrap}.gh-empty{padding:28px 0;color:var(--muted);font-size:13px}.gh-boot{min-height:600px;display:grid;align-content:center;justify-content:center;gap:16px}.gh-boot h2{font-size:40px;letter-spacing:-.05em;font-weight:400}
@media(min-width:1600px){.gh-top{padding:30px 48px}.gh-heading{left:48px}.gh-sidebar{right:48px;width:310px}.gh-viewport{right:410px}.gh-view-tools,.gh-ruler,.gh-orbit-note{left:48px}.gh-transport{left:48px;right:48px}}
@media(max-width:900px) and (min-width:601px){.gh-sidebar{right:24px;width:245px}.gh-viewport{right:290px}.gh-heading{left:24px}.gh-heading h1{font-size:36px}.gh-select{font-size:25px!important}.gh-loading{left:calc((100% - 290px)/2)}.gh-view-tools{left:24px;max-width:calc(100% - 300px)}.gh-nav{gap:10px}.gh-top{padding:24px}}
@media(max-width:600px){.gh{height:auto;min-height:960px;overflow:visible;padding:0 20px 24px}.gh-top{padding:20px;gap:10px}.gh-brand{font-size:14px;gap:8px}.gh-mark{width:23px;height:23px;font-size:17px}.gh-nav{font-size:10px;gap:12px}.gh-theme{padding:6px 10px!important}.gh-heading{top:86px;left:20px}.gh-heading h1{font-size:34px;margin:6px 0}.gh-heading p:last-child{font-size:12px}.gh-viewport{top:157px;left:0;right:0;bottom:auto;height:300px}.gh-view-tools{top:447px;bottom:auto;left:20px;right:20px;justify-content:center;gap:5px}.gh-view-tools button{font-size:10px;padding:6px 9px}.gh-view-tools label{font-size:10px;padding:4px}.gh-sidebar{position:relative;top:auto;right:auto;bottom:auto;width:auto;overflow:visible;padding-top:612px;padding-bottom:0}.gh-select{font-size:26px!important;padding-bottom:12px}.gh-maker{margin-top:9px!important;font-size:11px}.gh-dimensions{margin:12px 0 16px!important}.gh-dimensions dd{font-size:20px}.gh-status{padding:15px 0;margin-bottom:16px}.gh-status-title{font-size:16px}.gh-status p{margin-top:6px;font-size:11px}.gh-note{margin-top:16px!important;font-size:10px}.gh-transport{position:absolute;top:504px;bottom:auto;left:20px;right:20px;margin-top:0;padding-top:17px;gap:12px;grid-template-columns:36px 1fr 40px}.gh-play{width:34px;height:34px;font-size:12px!important}.gh-slider-label{font-size:10px}.gh-reset{font-size:10px!important}.gh-ruler{top:423px;bottom:auto;left:20px;font-size:9px}.gh-ruler-line{width:45px}.gh-orbit-note{display:none}.gh-loading{left:50%;top:305px;font-size:11px}.gh-picker{position:fixed;inset:16px;max-height:calc(100dvh - 32px);padding:20px}.gh-picker h2{font-size:24px}.gh-picker-meta{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gh *{animation:none!important;scroll-behavior:auto!important}}
/* Keep the primary control beside the ship, above the result and approach options. */
@media(min-width:601px){
 .gh-sidebar .gh-transport{position:relative;top:auto;bottom:auto;left:auto;right:auto;margin:0 0 20px;padding:16px 0 0;grid-template-columns:34px minmax(0,1fr) 40px;column-gap:10px;row-gap:5px}
 .gh-sidebar .gh-transport>div{display:contents}
 .gh-sidebar .gh-slider-label{grid-column:1/-1;grid-row:1;margin:0 0 3px;font-size:12px;text-transform:none;letter-spacing:normal;gap:8px}
 .gh-sidebar .gh-slider-label output{flex-shrink:0;white-space:nowrap}
 .gh-sidebar .gh-track{grid-column:2;grid-row:2;height:34px;min-width:0}
 .gh-sidebar .gh-track input{height:34px}
 .gh-sidebar .gh-track input::-webkit-slider-runnable-track{height:4px}
 .gh-sidebar .gh-track input::-webkit-slider-thumb{width:17px;height:17px;margin-top:-6.5px}
 .gh-sidebar .gh-track input::-moz-range-track{height:4px}
 .gh-sidebar .gh-track input::-moz-range-thumb{width:13px;height:13px}
 .gh-sidebar .gh-stop-marker{top:10px}
 .gh-sidebar .gh-endpoints{grid-column:2;grid-row:3;font-size:8px;letter-spacing:0;gap:4px}
 .gh-sidebar .gh-play{grid-column:1;grid-row:2;width:32px;height:32px;font-size:13px!important;padding:0}
 .gh-sidebar .gh-reset{grid-column:3;grid-row:2}
}
@media(max-width:600px){.gh-sidebar .gh-transport{left:0;right:0}}
