:root{--ui-unit: 1px;font-family:Avenir Next,Segoe UI,system-ui,sans-serif;color:#153544;background:#0c2836;font-synthesis:none;--navy: #102e3c;--cream: #fff9ed;--muted: #64787e;--teal: #15796f;--yellow: #f6ce75}.dropdown{position:relative;min-width:0;width:100%}.language-compact .dropdown{width:max(160px,calc(160 * var(--ui-unit)));max-width:100%}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:max(48px,var(--ui-target, 44px));padding:10px 12px;border:1px solid #cbd7cc;border-radius:8px;background:#fffdf6;color:var(--navy);font-size:max(16px,calc(16 * var(--ui-unit)));font-weight:500;text-align:left;touch-action:manipulation}.dropdown-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-choice{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.dropdown-flag{display:block;width:24px;height:16px;flex:0 0 24px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px #102e3c20;pointer-events:none}.dropdown-chevron,.dropdown-check{width:20px;height:20px;flex:0 0 20px;pointer-events:none}.dropdown-trigger[aria-expanded=true] .dropdown-chevron{transform:rotate(180deg)}.dropdown-list{position:absolute;z-index:110;top:calc(100% + 6px);padding:4px;border:1px solid #a5bdb4;border-radius:10px;background:var(--cream);color:var(--navy);box-shadow:0 6px 20px #102e3c33;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;font-size:max(16px,calc(16 * var(--ui-unit)))}.dropdown-list[data-side=above]{top:auto;bottom:calc(100% + 6px)}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;width:100%;padding:8px 12px;border:0;border-radius:6px;font-weight:500;font-size:inherit;color:inherit;background:transparent;text-align:left;touch-action:pan-y;cursor:pointer}.dropdown-option span{min-width:0;overflow-wrap:anywhere}.dropdown-option:hover,.dropdown-option.is-active{background:#e0ede4}.dropdown-option[aria-selected=true]{color:#105f58;font-weight:700}.dropdown-option[aria-selected=false] .dropdown-check{visibility:hidden}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #df9f2d;outline-offset:calc(4 * var(--ui-unit))}button:focus-visible{z-index:4}[hidden]{display:none!important}p{line-height:1.6}h1,h2,h3,p{margin-top:0}h2{font-family:Georgia,Times New Roman,serif;font-weight:500;font-size:max(22px,calc(35 * var(--ui-unit)));line-height:1.17;letter-spacing:-.8px;margin-bottom:calc(20 * var(--ui-unit))}h3{font-size:max(14px,calc(17 * var(--ui-unit)))}.harbour-app{display:flex;flex-direction:column;height:100dvh;margin:0 auto;overflow:hidden}.topbar{min-height:calc(56 * var(--ui-unit));padding:0 calc(16 * var(--ui-unit));display:flex;align-items:center;justify-content:space-between;gap:calc(12 * var(--ui-unit));background:var(--cream);border-bottom:1px solid #d8d5c8;z-index:2}.brand{display:flex;align-items:center;gap:calc(13 * var(--ui-unit));flex-shrink:0}.brand-mark{color:var(--teal);font-size:max(22px,calc(32 * var(--ui-unit)));width:calc(42 * var(--ui-unit))}.brand h1{font-size:max(16px,calc(20 * var(--ui-unit)));font-weight:750;letter-spacing:-.6px;margin:0}.eyebrow{font-size:max(10px,calc(10 * var(--ui-unit)));font-weight:750;letter-spacing:1.8px;line-height:1.5;text-transform:uppercase;margin-bottom:3px}.brand .eyebrow{color:#7a8176}.mission-heading{text-align:center;display:grid;gap:3px}.mission-heading .eyebrow{color:#7a8176}.mission-heading strong{font-size:max(12px,calc(15 * var(--ui-unit)));font-weight:600}.top-actions,.bottom-actions{display:flex;align-items:center;gap:calc(8 * var(--ui-unit))}.button{border:1px solid #d7ded8;background:transparent;color:var(--navy);border-radius:calc(9 * var(--ui-unit));padding:calc(10 * var(--ui-unit)) calc(15 * var(--ui-unit));min-height:calc(44 * var(--ui-unit));font-weight:600;font-size:max(12px,calc(12 * var(--ui-unit)));transition:background .15s,transform .15s}.button:hover:not(:disabled){background:#e9f0e8;transform:translateY(-1px)}.button.primary{background:var(--teal);color:#fff;border-color:var(--teal);box-shadow:0 3px calc(8 * var(--ui-unit)) #12483820}.button.primary:hover:not(:disabled){background:#105f58}.world{position:relative;flex:1;min-height:0;background:#0b6974;overflow:hidden}#harbour-canvas{position:absolute;inset:0}#harbour-canvas:focus{outline:none}#harbour-canvas:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}#harbour-canvas canvas{display:block}.boot{position:absolute;left:45%;top:45%;background:#103c48;color:#fff;padding:calc(10 * var(--ui-unit));border-radius:calc(8 * var(--ui-unit))}.shipment-chip{position:relative;background:#102e3cea;color:var(--cream);border:1px solid #aacbcc44;border-radius:calc(12 * var(--ui-unit));padding:calc(6 * var(--ui-unit)) calc(10 * var(--ui-unit));min-width:0;pointer-events:none}.shipment-chip>span{font-size:max(10px,calc(11 * var(--ui-unit)));color:#c5dfd8;display:block;margin-bottom:2px}.shipment-chip strong{font-size:max(14px,calc(18 * var(--ui-unit)));font-variant-numeric:tabular-nums}.progress-track{height:3px;background:#adcbb333;margin-top:calc(6 * var(--ui-unit));border-radius:calc(5 * var(--ui-unit));overflow:hidden}.progress-track i{display:block;height:3px;background:#f6ce75;transition:width .3s}.clock-card{display:grid;grid-template-columns:calc(126 * var(--ui-unit)) calc(164 * var(--ui-unit)) minmax(calc(160 * var(--ui-unit)),1fr);align-items:center;gap:calc(12 * var(--ui-unit));padding:calc(6 * var(--ui-unit)) calc(12 * var(--ui-unit));border:1px solid #abcfc755;background:#102e3cee;color:#edf7ef;border-radius:calc(14 * var(--ui-unit))}.clock-top{display:flex;align-items:center;gap:calc(6 * var(--ui-unit))}.clock-top strong{font-size:max(16px,calc(24 * var(--ui-unit)));font-variant-numeric:tabular-nums;color:var(--yellow)}.clock-control{position:relative;display:inline-flex;flex-shrink:0;margin-left:auto}.clock-purpose-hint{position:absolute;top:calc(100% + max(28px,calc(30 * var(--ui-unit))));right:0;z-index:2;width:max-content;max-width:min(calc(160 * var(--ui-unit)),40vw);padding:max(4px,calc(4 * var(--ui-unit))) max(8px,calc(8 * var(--ui-unit)));border:1px solid #df9f2d;border-radius:calc(8 * var(--ui-unit));background:#102e3cf5;color:#fff4d6;font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.3;text-align:center;pointer-events:none}.text-button{margin-left:auto;background:transparent;color:#d9f3e6;border:0;font-size:max(10px,calc(11 * var(--ui-unit)));text-align:right;min-height:calc(44 * var(--ui-unit));padding:calc(5 * var(--ui-unit))}.crane-row{display:flex;justify-content:space-between;align-items:center;gap:calc(8 * var(--ui-unit));font-size:max(10px,calc(11 * var(--ui-unit)));padding:3px 0}.crane-row:first-of-type{color:#8fdbd0}.reservation-pill{color:var(--yellow);background:#ffffff08;font-size:max(10px,calc(10 * var(--ui-unit)));padding:calc(5 * var(--ui-unit)) calc(8 * var(--ui-unit));border-radius:calc(6 * var(--ui-unit));margin:0 0 calc(8 * var(--ui-unit))}.dock-counts{display:flex;justify-content:space-between;gap:calc(10 * var(--ui-unit));color:#cce2d9;font-size:max(10px,calc(11 * var(--ui-unit)))}.dock-counts b{color:#fff;margin-left:calc(4 * var(--ui-unit))}.radio-card{min-width:0;padding:calc(8 * var(--ui-unit)) calc(12 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));color:#ecf5ed;background:#102e3cd9;border:1px solid #abcfc733;pointer-events:none}.radio-card .eyebrow{color:#dfc586;font-size:max(10px,calc(9 * var(--ui-unit)))}.radio-card p{font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.5;margin:3px 0 0}.harbour-status{display:grid;grid-template-columns:calc(126 * var(--ui-unit)) minmax(0,1fr) calc(510 * var(--ui-unit));gap:calc(10 * var(--ui-unit));padding:calc(6 * var(--ui-unit)) calc(12 * var(--ui-unit));background:#143e49;flex-shrink:0;align-items:stretch}.bottombar{height:calc(96 * var(--ui-unit));min-height:calc(96 * var(--ui-unit));flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:calc(12 * var(--ui-unit));padding:calc(8 * var(--ui-unit)) calc(16 * var(--ui-unit));background:var(--cream);z-index:2}.action-cluster{display:flex;align-items:center;gap:calc(12 * var(--ui-unit));flex-shrink:0}.control-button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;border-radius:50%;border:2px solid #a4beb3;font-size:max(12px,calc(12 * var(--ui-unit)));font-weight:750;line-height:1.2;user-select:none;-webkit-user-select:none;touch-action:manipulation}.cargo-control{width:calc(76 * var(--ui-unit));height:calc(76 * var(--ui-unit));background:var(--teal);border-color:#0d665e;color:#fff;box-shadow:0 3px #0c514b}.cargo-control:disabled{opacity:1;color:#5d7471;background:#e0e9e1;border-color:#b9c9bd;box-shadow:none}.cargo-control:not(:disabled):active{background:#105f58;box-shadow:none}.cargo-icon{width:calc(30 * var(--ui-unit));height:calc(30 * var(--ui-unit));pointer-events:none}.cargo-icon g{display:none}.cargo-control[data-mode=attach] .icon-link,.cargo-control[data-mode=idle] .icon-link,.cargo-control[data-mode=detach] .icon-unlink,.cargo-control[data-mode=unload] .icon-unload,.cargo-control[data-mode=pack] .icon-pack{display:initial}.brake-control{width:calc(64 * var(--ui-unit));height:calc(64 * var(--ui-unit));color:var(--navy);background:#f0ede0}.brake-icon{width:calc(19 * var(--ui-unit));height:calc(19 * var(--ui-unit));pointer-events:none}.step-slot{margin-left:auto}.step-slot .button{padding:calc(8 * var(--ui-unit));font-size:max(10px,calc(11 * var(--ui-unit)));white-space:nowrap}.touch-action{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.navigation-tools{margin-top:calc(24 * var(--ui-unit));padding-top:calc(20 * var(--ui-unit));border-top:1px solid #d7ded8}.control-legend{display:flex;gap:calc(7 * var(--ui-unit));align-items:center;font-size:max(10px,calc(10 * var(--ui-unit)));color:#6a7c79}kbd{display:inline-block;background:#f1eee3;padding:calc(5 * var(--ui-unit)) calc(7 * var(--ui-unit));border:1px solid #d4d7cb;border-bottom-width:2px;border-radius:calc(5 * var(--ui-unit));font:calc(10 * var(--ui-unit)) system-ui}.save-indicator{padding-left:calc(10 * var(--ui-unit));font-size:max(10px,calc(9 * var(--ui-unit)))}.save-indicator:before{content:"";width:calc(5 * var(--ui-unit));height:calc(5 * var(--ui-unit));display:inline-block;background:#579776;border-radius:50%;margin-right:calc(5 * var(--ui-unit))}.joystick-area{display:none;align-items:center;gap:calc(12 * var(--ui-unit));flex-shrink:0}.joystick-area>span{width:calc(66 * var(--ui-unit));font-size:max(10px,calc(11 * var(--ui-unit)));line-height:1.4;color:var(--muted)}.joystick{--stick-x: 0px;--stick-y: 0px;position:relative;width:calc(80 * var(--ui-unit));height:calc(80 * var(--ui-unit));flex-shrink:0;border:2px solid #90b1a6;border-radius:50%;background:radial-gradient(circle,#ecf1e8 32%,#dbe7dd 34% 36%,#f0f3e9 38%);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.joystick-knob{position:absolute;top:calc(50% - calc(22 * var(--ui-unit)));left:calc(50% - calc(22 * var(--ui-unit)));width:calc(44 * var(--ui-unit));height:calc(44 * var(--ui-unit));border-radius:50%;background:var(--teal);border:3px solid #fbf4d7;box-shadow:0 3px calc(10 * var(--ui-unit)) #102e3c40;transform:translate(var(--stick-x),var(--stick-y));pointer-events:none}.joystick.active{border-color:var(--teal);cursor:grabbing}[data-control]{touch-action:none}.held{background:#d5bc72;color:#142f3e}.modal-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(30 * var(--ui-unit));background:#0828318c;-webkit-backdrop-filter:blur(calc(6 * var(--ui-unit)));backdrop-filter:blur(calc(6 * var(--ui-unit)))}.dialog{background:var(--cream);position:relative;max-height:calc(100dvh - calc(60 * var(--ui-unit)));overflow:auto;border-radius:calc(21 * var(--ui-unit));width:min(calc(700 * var(--ui-unit)),100%);padding:calc(36 * var(--ui-unit)) calc(40 * var(--ui-unit));border:1px solid #fff8e7;box-shadow:0 calc(30 * var(--ui-unit)) calc(100 * var(--ui-unit)) #021f3555}.dialog>.eyebrow{color:var(--teal);margin-bottom:calc(12 * var(--ui-unit))}.dialog>p{font-size:max(12px,calc(14 * var(--ui-unit)))}.dialog-close{position:absolute;right:calc(17 * var(--ui-unit));top:calc(16 * var(--ui-unit));height:calc(40 * var(--ui-unit));width:calc(40 * var(--ui-unit));font-size:max(16px,calc(27 * var(--ui-unit)));line-height:1;color:#6f7c74;background:#eef0e6;border:none;border-radius:50%}.dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:calc(8 * var(--ui-unit));margin-top:calc(20 * var(--ui-unit))}.dialog-actions .button{font-size:max(12px,calc(12 * var(--ui-unit)))}.wide-dialog{width:min(calc(930 * var(--ui-unit)),100%)}.welcome-dialog{width:min(calc(900 * var(--ui-unit)),100%);display:grid;grid-template-columns:.95fr 1.2fr;padding:0;overflow:hidden}.welcome-art{position:relative;min-height:calc(475 * var(--ui-unit));background-color:#176c74;background-image:var(--water-texture);background-size:calc(640 * var(--ui-unit));overflow:hidden}.welcome-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#125a6266,#72c7bb22);pointer-events:none}.asset{display:inline-block;background-size:203.125% 101.5625%;background-position:.78% 50%;background-repeat:no-repeat;width:calc(84 * var(--ui-unit));height:calc(84 * var(--ui-unit));vertical-align:middle}.hero-tug{position:absolute;width:calc(225 * var(--ui-unit));height:calc(225 * var(--ui-unit));top:calc(70 * var(--ui-unit));left:calc(80 * var(--ui-unit));transform:rotate(35deg);z-index:2;filter:drop-shadow(0 calc(12 * var(--ui-unit)) calc(5 * var(--ui-unit)) #18394944)}.hero-pod{position:absolute;width:calc(87 * var(--ui-unit));height:calc(87 * var(--ui-unit));z-index:2;transform:rotate(25deg);left:calc(85 * var(--ui-unit));top:calc(290 * var(--ui-unit))}.hero-pod.second{top:calc(370 * var(--ui-unit));left:calc(33 * var(--ui-unit))}.art-orbit{width:calc(280 * var(--ui-unit));height:calc(280 * var(--ui-unit));position:absolute;left:calc(40 * var(--ui-unit));top:calc(80 * var(--ui-unit));border:1px solid #deefda65;border-radius:50%;box-shadow:0 0 0 calc(28 * var(--ui-unit)) #fff8e308,0 0 0 calc(62 * var(--ui-unit)) #fff8e305}.welcome-copy{padding:calc(42 * var(--ui-unit)) calc(38 * var(--ui-unit))}.welcome-copy .eyebrow{color:var(--teal);margin-bottom:calc(16 * var(--ui-unit))}.welcome-copy h2{font-size:max(22px,calc(44 * var(--ui-unit)));margin-bottom:calc(19 * var(--ui-unit))}.welcome-copy p{font-size:max(12px,calc(14 * var(--ui-unit)))}.welcome-copy .duration{font-size:max(10px,calc(11 * var(--ui-unit)));font-weight:700;margin-top:calc(20 * var(--ui-unit))}.fine,.welcome-copy p.fine{font-size:max(10px,calc(11 * var(--ui-unit)))}.muted{color:var(--muted)}.language-compact{display:flex;flex-wrap:wrap;gap:calc(15 * var(--ui-unit));align-items:center;font-size:max(10px,calc(10 * var(--ui-unit)));color:#617774;margin-top:calc(20 * var(--ui-unit))}.lead{font-size:max(14px,calc(16 * var(--ui-unit)))!important;color:#476166}.brief-art{padding:calc(10 * var(--ui-unit));background:#e9eee2;border-radius:calc(12 * var(--ui-unit));display:flex;justify-content:center;gap:calc(26 * var(--ui-unit))}.stock-grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(12 * var(--ui-unit));margin-bottom:calc(22 * var(--ui-unit))}.stock-grid>div{display:grid;grid-template-columns:calc(60 * var(--ui-unit)) auto;grid-template-rows:calc(25 * var(--ui-unit)) auto;background:#eeeedf;padding:calc(12 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));align-items:center;gap:3px calc(12 * var(--ui-unit))}.stock-grid .asset{grid-row:1 / 3;height:calc(59 * var(--ui-unit));width:calc(59 * var(--ui-unit))}.stock-grid span:not(.asset){font-size:max(10px,calc(11 * var(--ui-unit)));color:#526866}.stock-grid strong{font-size:max(16px,calc(22 * var(--ui-unit)));font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:calc(8 * var(--ui-unit));font-size:max(12px,calc(12 * var(--ui-unit)));font-weight:600;margin-bottom:calc(18 * var(--ui-unit))}.field input,.field select,.field textarea{width:100%;min-height:calc(46 * var(--ui-unit));padding:calc(10 * var(--ui-unit)) calc(13 * var(--ui-unit));border:1px solid #cbd7cc;border-radius:calc(8 * var(--ui-unit));background:#fffdf6;color:var(--navy);font-weight:500;font-variant-numeric:tabular-nums}.field textarea{resize:vertical}.field input[type=number]{font-size:max(16px,calc(21 * var(--ui-unit)))}.fill-stepper{display:grid;grid-template-columns:calc(52 * var(--ui-unit)) minmax(0,1fr) calc(52 * var(--ui-unit));align-items:center;gap:calc(8 * var(--ui-unit));padding:calc(6 * var(--ui-unit));border:1px solid #cbd7cc;border-radius:calc(14 * var(--ui-unit));background:#fffdf6}.fill-stepper:focus-within{border-color:var(--teal)}.fill-stepper input[type=number]{min-width:0;min-height:calc(52 * var(--ui-unit));border:0;text-align:center;font-size:max(16px,calc(26 * var(--ui-unit)));font-weight:750;appearance:textfield;-moz-appearance:textfield}.fill-stepper input[readonly]{pointer-events:none;caret-color:transparent;-webkit-user-select:none;user-select:none}.fill-stepper input::-webkit-inner-spin-button,.fill-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.fill-step-button{display:grid;place-items:center;width:calc(52 * var(--ui-unit));height:calc(52 * var(--ui-unit));padding:0;border:1px solid #10645c;border-radius:calc(10 * var(--ui-unit));background:var(--teal);color:var(--cream);box-shadow:0 3px #105b54;font-size:max(22px,calc(30 * var(--ui-unit)));font-weight:700;line-height:1;touch-action:manipulation}.fill-step-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #105b54}.fill-step-button:disabled{border-color:#d4dccf;background:#e9eee3;color:#7a8880;box-shadow:none;opacity:1}.preview-box{background:#edf2e7;padding:calc(20 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));min-height:calc(100 * var(--ui-unit))}.preview-box p{font-size:max(12px,calc(12 * var(--ui-unit)));margin:calc(10 * var(--ui-unit)) 0 0}.preview-box .preview-total{font-size:max(14px,calc(18 * var(--ui-unit)));font-weight:600}.remainder-trays{display:flex;gap:calc(10 * var(--ui-unit));margin-top:calc(12 * var(--ui-unit))}.remainder-trays span{min-width:calc(95 * var(--ui-unit));padding:calc(8 * var(--ui-unit)) calc(12 * var(--ui-unit));border:1px dashed #a8b89b;border-radius:calc(7 * var(--ui-unit));font-size:max(10px,calc(10 * var(--ui-unit)))}.remainder-trays b{font-size:max(14px,calc(16 * var(--ui-unit)));margin:0 calc(4 * var(--ui-unit))}.packing-committed .pod-preview .asset{animation:pack-commit .5s ease-in-out}@keyframes pack-commit{50%{transform:translateY(calc(9 * var(--ui-unit)));filter:brightness(1.15)}}.status-tag{background:#d6e8d5;color:#22674f;border-radius:calc(5 * var(--ui-unit));padding:calc(5 * var(--ui-unit)) calc(8 * var(--ui-unit));font-size:max(10px,calc(10 * var(--ui-unit)));display:inline-block;font-weight:700}.status-tag.warning{background:#f3dfb7;color:#80521d}.warning-text{color:#9b5d1a}.pod-preview{display:flex;flex-wrap:wrap;align-items:center;gap:calc(4 * var(--ui-unit));margin-top:calc(15 * var(--ui-unit))}.pod-preview .asset{width:calc(38 * var(--ui-unit));height:calc(38 * var(--ui-unit))}.pod-preview .asset{animation:pack-in .4s ease-out both}.pod-preview .asset:nth-child(2n){animation-delay:.06s}.pod-preview .asset:nth-child(3n){animation-delay:.12s}@keyframes pack-in{0%{opacity:0;transform:translateY(calc(-14 * var(--ui-unit))) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.pod-preview b{font-size:max(12px,calc(12 * var(--ui-unit)))}.hint-box{border-top:1px solid #d8decf;margin-top:calc(22 * var(--ui-unit));padding-top:calc(15 * var(--ui-unit));color:#607168}.hint-box p{font-size:max(12px,calc(12 * var(--ui-unit)));margin:calc(10 * var(--ui-unit)) 0 0}.timeline{display:flex;gap:calc(5 * var(--ui-unit));background:#143d46;padding:calc(15 * var(--ui-unit)) calc(12 * var(--ui-unit));border-radius:calc(11 * var(--ui-unit));overflow-x:auto;color:#eff8ee}.timeline-labels{display:grid;grid-template-rows:repeat(3,calc(29 * var(--ui-unit)));font-size:max(10px,calc(9 * var(--ui-unit)));width:calc(84 * var(--ui-unit));flex-shrink:0;align-items:center;position:sticky;left:0;z-index:1;background:#143d46}.timeline-grid{display:flex;gap:calc(4 * var(--ui-unit));flex:1;min-width:calc(430 * var(--ui-unit))}.tick-cell{border:1px solid #c2e9de45;border-radius:calc(6 * var(--ui-unit));color:#ecf5e5;background:#ffffff0b;cursor:pointer;touch-action:pan-x pan-y;display:grid;grid-template-rows:repeat(3,calc(29 * var(--ui-unit)));align-items:center;justify-items:center;min-width:calc(13 * var(--ui-unit));flex:1;padding:0;font-size:max(10px,calc(8 * var(--ui-unit)));min-height:calc(88 * var(--ui-unit))}.tick-cell:not(:disabled):hover,.tick-cell.selected{background:#fff9db22;outline:1px solid #f6ce7599;border-radius:3px}.tick-cell:active{background:#ffffff35}.tick-cell.selected.is-together{background:#237565;border-color:#b7e8cf}.timeline-instruction{font-weight:700;margin-bottom:calc(8 * var(--ui-unit))}.timeline-result{margin:calc(8 * var(--ui-unit)) 0;padding:calc(10 * var(--ui-unit));border:1px solid #cbd7cc;border-left:calc(4 * var(--ui-unit)) solid #a97625;border-radius:calc(8 * var(--ui-unit));background:#f6eee0;overflow-wrap:anywhere}.timeline-result.is-together{border-left-color:#15796f;background:#e3f0e8}.timeline-result p{margin:calc(5 * var(--ui-unit)) 0}.schedule-now{display:inline-block;margin:calc(6 * var(--ui-unit)) 0 0;padding:calc(4 * var(--ui-unit)) calc(8 * var(--ui-unit));border-radius:calc(6 * var(--ui-unit));background:#e3f0e8;font-size:max(14px,calc(15 * var(--ui-unit)));font-weight:700;font-variant-numeric:tabular-nums}.tick-cell.past{opacity:.42}.tick-cell i{width:calc(5 * var(--ui-unit));height:calc(5 * var(--ui-unit));border-radius:50%;background:#c2e9de15}.tick-cell i.mark-a{background:#86dac8;width:calc(7 * var(--ui-unit));height:calc(7 * var(--ui-unit))}.tick-cell i.mark-b{background:#f4b071;width:calc(7 * var(--ui-unit));height:calc(7 * var(--ui-unit));border-radius:1px;transform:rotate(45deg)}.tick-cell.reserved-cell{color:#f6ce75}.prediction-row{display:flex;gap:calc(10 * var(--ui-unit));align-items:end}.prediction-row .field{flex:1;min-width:0;margin-bottom:0}.prediction-row{margin-bottom:calc(18 * var(--ui-unit))}.prediction-row .button{height:calc(66 * var(--ui-unit));flex-shrink:0}.feedback{min-height:calc(15 * var(--ui-unit));font-size:max(12px,calc(12 * var(--ui-unit)));color:#22674f;margin-bottom:calc(15 * var(--ui-unit));line-height:1.5}.plan-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:calc(28 * var(--ui-unit))}.manifest{font-size:max(12px,calc(12 * var(--ui-unit)));width:100%;border-collapse:collapse}.manifest th{text-align:left;font-weight:500;color:#5c726a}.manifest td{text-align:right}.manifest th,.manifest td{padding:calc(12 * var(--ui-unit)) calc(5 * var(--ui-unit));border-bottom:1px solid #dde0d3}.route-choice{display:flex;gap:calc(12 * var(--ui-unit));padding:calc(16 * var(--ui-unit));margin-bottom:calc(10 * var(--ui-unit));border:1px solid #d3ddcf;border-radius:calc(11 * var(--ui-unit));align-items:center;cursor:pointer}.route-choice strong{font-size:max(12px,calc(12 * var(--ui-unit)));display:block}.route-choice small{display:block;font-size:max(10px,calc(10 * var(--ui-unit)));margin-top:calc(7 * var(--ui-unit));color:#61766e;line-height:1.5}input[type=checkbox],input[type=radio]{accent-color:var(--teal);width:calc(19 * var(--ui-unit));height:calc(19 * var(--ui-unit));flex-shrink:0}.switch{display:flex;gap:calc(13 * var(--ui-unit));align-items:center;padding:calc(13 * var(--ui-unit)) 0;font-size:max(12px,calc(13 * var(--ui-unit)));cursor:pointer}.hint-count{font-size:max(10px,calc(11 * var(--ui-unit)))!important;color:#6b7c71;margin:calc(20 * var(--ui-unit)) 0 0}.mission-list{display:grid;gap:calc(9 * var(--ui-unit))}.mission-select{border:1px solid #d3ddcf;background:#faf8ef;border-radius:calc(11 * var(--ui-unit));padding:calc(15 * var(--ui-unit));display:flex;gap:calc(16 * var(--ui-unit));text-align:left;align-items:center;color:var(--navy)}.mission-select.current{background:#edf2e6;border-color:#89b69e}.mission-select>span:nth-child(2){flex:1}.mission-select strong{display:block;font-size:max(12px,calc(13 * var(--ui-unit)))}.mission-select small{display:block;font-size:max(10px,calc(10 * var(--ui-unit)));line-height:1.5;margin-top:calc(7 * var(--ui-unit));color:#60766c}.mission-number{font-family:Georgia,serif;font-size:max(16px,calc(26 * var(--ui-unit)));color:#7d9583}.result-badge{color:#28795c;font-size:max(12px,calc(15 * var(--ui-unit)));font-weight:700;margin-bottom:calc(10 * var(--ui-unit))}.result-box{background:#eef2e7;border-radius:calc(13 * var(--ui-unit));padding:calc(20 * var(--ui-unit));margin:calc(20 * var(--ui-unit)) 0}.result-box h3{margin-bottom:calc(10 * var(--ui-unit))}.result-box p{font-size:max(12px,calc(12 * var(--ui-unit)))}.toast{position:fixed;z-index:200;bottom:calc(85 * var(--ui-unit));left:50%;transform:translate(-50%) translateY(calc(10 * var(--ui-unit)));padding:calc(13 * var(--ui-unit)) calc(20 * var(--ui-unit));border-radius:calc(9 * var(--ui-unit));color:#fff;background:#173d45;border:1px solid #d2e8d633;max-width:calc(550 * var(--ui-unit));font-size:max(12px,calc(12 * var(--ui-unit)));opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.reduced-motion *,.reduced-motion *:after{transition:none!important;animation:none!important}.touch-help{display:none}.radio-card{position:relative;height:calc(96 * var(--ui-unit));padding-right:calc(42 * var(--ui-unit))}.radio-card p{font-size:max(10px,calc(11 * var(--ui-unit)));line-height:1.35}.guide-dismiss,.guide-off-button{width:calc(44 * var(--ui-unit));height:calc(44 * var(--ui-unit));min-width:calc(44 * var(--ui-unit));border:0;background:transparent;font-size:max(16px,calc(24 * var(--ui-unit)));color:inherit;pointer-events:auto}.guide-dismiss{position:absolute;right:0;top:0;color:var(--yellow)}.guide-panel{display:flex;align-items:center;gap:calc(10 * var(--ui-unit));padding:calc(8 * var(--ui-unit)) calc(12 * var(--ui-unit));margin:calc(14 * var(--ui-unit)) 0;border:1px solid #b7ccaa;border-left:calc(4 * var(--ui-unit)) solid var(--teal);background:#edf2e7;border-radius:calc(9 * var(--ui-unit))}.guide-panel p{margin:0;font-size:max(12px,calc(12 * var(--ui-unit)));flex:1}.guide-target{outline:3px solid #df9f2d;outline-offset:calc(4 * var(--ui-unit));box-shadow:0 0 0 calc(7 * var(--ui-unit)) #f6ce7526}#guide-pointer{position:fixed;z-index:120;pointer-events:none;font-size:max(16px,calc(26 * var(--ui-unit)));font-weight:800;line-height:calc(26 * var(--ui-unit));width:calc(24 * var(--ui-unit));margin-left:calc(-12 * var(--ui-unit));text-align:center;color:#aa6b0a;text-shadow:0 1px 2px var(--cream);animation:guide-nudge .8s ease-in-out 2}@keyframes guide-nudge{50%{transform:translateY(3px)}}.guide-summary{counter-reset:guide-sequence;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(8 * var(--ui-unit));padding:0;margin:calc(16 * var(--ui-unit)) 0;list-style:none}.guide-summary li{position:relative;min-width:0;padding:calc(8 * var(--ui-unit));background:#edf2e7;border-radius:calc(9 * var(--ui-unit));text-align:center}.guide-summary li:before{counter-increment:guide-sequence;content:counter(guide-sequence);position:absolute;top:calc(5 * var(--ui-unit));left:calc(7 * var(--ui-unit));color:var(--teal);font-size:max(10px,calc(10 * var(--ui-unit)));font-weight:750}.guide-summary li:not(:last-child):after{content:"→";position:absolute;right:calc(-9 * var(--ui-unit));top:calc(18 * var(--ui-unit));z-index:1;color:var(--teal)}.guide-summary .asset{width:calc(44 * var(--ui-unit));height:calc(44 * var(--ui-unit))}.guide-summary strong{display:block;font-size:max(10px,calc(11 * var(--ui-unit)))}.guide-summary small{display:block;font-size:max(10px,calc(10 * var(--ui-unit)));line-height:1.35;margin-top:calc(5 * var(--ui-unit))}.welcome-dialog{overflow-y:auto}.welcome-copy{padding:calc(30 * var(--ui-unit))}.welcome-copy h2{font-size:max(22px,calc(36 * var(--ui-unit)))}.intro-dialog .intro-heading{margin-bottom:12px}.intro-dialog .intro-progress{margin:0}.intro-content{display:contents}.intro-footer{grid-column:1 / -1}.intro-stage{display:flex;align-items:center;justify-content:center;gap:max(12px,calc(20 * var(--ui-unit)));min-height:max(104px,calc(170 * var(--ui-unit)));padding:12px;margin-bottom:16px;border-radius:16px;background:#dcebe2;overflow:hidden}.intro-stage .asset{width:max(64px,calc(88 * var(--ui-unit)));height:max(64px,calc(88 * var(--ui-unit)));flex-shrink:0}.intro-stage .intro-station{width:max(88px,calc(120 * var(--ui-unit)));height:max(88px,calc(120 * var(--ui-unit)))}.intro-pod-group,.intro-convoy{display:flex;align-items:center;gap:8px}.intro-pod-group{padding:8px;border:2px dashed #15796f;border-radius:12px}.intro-convoy{animation:intro-tow 4s ease-in-out infinite alternate}.intro-convoy .asset:last-child{transform:rotate(90deg)}.intro-crane{display:grid;justify-items:center;gap:8px}.intro-cycle-dots{display:flex;gap:10px}.intro-cycle-dots i{width:10px;height:10px;border-radius:50%;background:#15796f}.intro-crane-a .intro-cycle-dots{animation:intro-cycle-a 4s linear infinite}.intro-crane-b .intro-cycle-dots{animation:intro-cycle-b 4s linear infinite}.intro-transfer-pod{animation:intro-transfer 3s ease-in-out infinite}.intro-dialog .intro-body{font-size:max(16px,calc(17 * var(--ui-unit)));line-height:1.5}.intro-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px}.intro-navigation .dialog-actions{margin:0;padding:0;border:0}.intro-dots{display:flex;gap:6px}.intro-dots i{width:8px;height:8px;border-radius:50%;background:#64787e}.intro-dots .current{background:#15796f;box-shadow:0 0 0 3px #15796f20}.intro-secondary{margin-top:8px}.intro-secondary .button{background:transparent;border-color:transparent;padding-inline:0}.learning-panel{margin:12px 0;padding:12px;border-left:4px solid #15796f;border-radius:10px;background:#edf2e7;font-size:max(14px,calc(14 * var(--ui-unit)))}.math-explanation{margin-block:calc(12 * var(--ui-unit));padding:max(8px,calc(12 * var(--ui-unit)));border:1px solid #c9d7ce;border-radius:calc(10 * var(--ui-unit));background:#edf2e7;min-width:0;overflow-wrap:anywhere}.math-explanation>summary{min-height:48px;padding-block:10px;cursor:pointer;font-weight:800}.math-explanation p{margin-block:8px}.math-example{margin:10px 0;padding:max(8px,calc(10 * var(--ui-unit)));background:#fffaf0;border-radius:8px}.math-example figcaption,.math-example small{font-size:max(13px,calc(13 * var(--ui-unit)))}.math-example-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);align-items:center;gap:8px;margin-top:8px}.math-example-row>strong{font-size:max(14px,calc(14 * var(--ui-unit)))}.math-numbers,.math-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.math-number{padding:4px 8px;border:1px solid #c9d7ce;border-radius:6px;font-weight:700;background:#fff}.math-number.is-common{border-color:#15796f;color:#0d6058;background:#d6eade}.math-example-result{font-weight:700}.math-actions{margin-top:10px}.narration-repeat.math-repeat{display:inline-flex;gap:8px;align-items:center;width:auto;height:auto;flex:0 1 auto;max-width:100%;min-height:48px;padding:8px 12px;color:#153d48;background:#fffaf0}.math-repeat span{min-width:0}.math-repeat svg{flex-shrink:0}.decision-purpose{min-width:0;margin:calc(10 * var(--ui-unit)) 0;padding:calc(10 * var(--ui-unit));border-left:calc(3 * var(--ui-unit)) solid #15796f;border-radius:calc(8 * var(--ui-unit));background:#e8efe3;overflow-wrap:anywhere}.decision-purpose h3,.decision-purpose p{margin:0 0 calc(6 * var(--ui-unit))}.decision-actions{display:flex;flex-wrap:wrap;align-items:center;gap:calc(8 * var(--ui-unit))}.decision-actions>*{min-width:0;max-width:100%;white-space:normal}.decision-feedback{min-width:0;overflow-wrap:anywhere}.decision-feedback p{margin:calc(8 * var(--ui-unit)) 0}.decision-comparison{font-weight:700}.decision-feedback ul,.real-transfer ul{padding-left:calc(20 * var(--ui-unit));margin:calc(8 * var(--ui-unit)) 0}.decision-feedback li+li,.real-transfer li+li{margin-top:calc(4 * var(--ui-unit))}@media(max-width:500px){.math-example-row{grid-template-columns:minmax(0,1fr);gap:4px}}.learning-panel p{margin-bottom:8px}.lesson-checklist{display:flex;flex-wrap:wrap;gap:8px 16px;padding:0;margin:0;list-style:none;font-size:13px}.lesson-checklist li{display:flex;align-items:center;gap:6px}.lesson-checklist [data-observed=true]{color:#176b51;font-weight:700}.reservation-section{margin-top:16px;padding-top:12px;border-top:1px solid #c9d7ce}.reservation-section>summary{padding:12px 0;min-height:48px;cursor:pointer;font-weight:700}.clock-next-step{margin-top:calc(10 * var(--ui-unit));padding:calc(12 * var(--ui-unit));border-left:calc(4 * var(--ui-unit)) solid #15796f;border-radius:calc(10 * var(--ui-unit));background:#e0eee8}.clock-next-step h3{margin:0 0 calc(6 * var(--ui-unit))}.clock-next-step p{margin-bottom:calc(10 * var(--ui-unit))}.reservation-now{font-weight:700}.reservation-steps{padding-left:calc(22 * var(--ui-unit));margin:calc(8 * var(--ui-unit)) 0 calc(12 * var(--ui-unit))}.reservation-steps li+li{margin-top:calc(6 * var(--ui-unit))}@keyframes intro-tow{0%{transform:translate(-12px)}to{transform:translate(12px)}}@keyframes intro-transfer{0%,15%{transform:translate(-24px)}75%,to{transform:translate(24px)}}@keyframes intro-cycle-a{0%,20%,70%,to{opacity:1}25%,65%{opacity:.25}}@keyframes intro-cycle-b{0%,35%{opacity:.25}40%,to{opacity:1}}@media(orientation:landscape)and (max-height:540px){.intro-dialog{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);column-gap:16px}.intro-dialog .intro-heading,.intro-dialog .intro-navigation{grid-column:1 / -1}.intro-stage{gap:8px;min-width:0;min-height:104px;padding:8px}.intro-stage .asset{width:52px;height:52px}.intro-pod-group{padding:4px;gap:4px}.intro-pack{flex-direction:column}.intro-pack .asset{width:40px;height:40px}.intro-dialog .intro-body,.intro-dialog .language-compact{align-self:center}}.packing-trials{margin-top:calc(20 * var(--ui-unit))}.packing-trials h3{margin-bottom:calc(10 * var(--ui-unit))}.trial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(8 * var(--ui-unit))}.trial-card{border:1px solid #b8c9ad;border-radius:calc(9 * var(--ui-unit));padding:calc(10 * var(--ui-unit));background:#f8faf0}.trial-card.leftover{border-color:#c68c3d;background:#fff1d6}.trial-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trial-comparison-grid .trial-card p{font-size:max(12px,calc(12 * var(--ui-unit)))}.packing-comparison{margin-bottom:calc(10 * var(--ui-unit))}.packing-comparison .trial-comparison{margin-top:0}.trial-comparison-label{display:block;color:#216a51;font-size:max(12px,calc(12 * var(--ui-unit)));font-weight:750;margin-bottom:calc(6 * var(--ui-unit))}.trial-card>strong{font-size:max(12px,calc(13 * var(--ui-unit)));display:block;margin-bottom:calc(8 * var(--ui-unit))}.trial-card p{font-size:max(10px,calc(11 * var(--ui-unit)));margin:calc(8 * var(--ui-unit)) 0 0}.trial-pods{display:flex;flex-wrap:wrap;align-items:center;margin-top:calc(6 * var(--ui-unit))}.trial-pods .asset{width:calc(28 * var(--ui-unit));height:calc(28 * var(--ui-unit))}.trial-pods>span:not(.asset){font-size:max(10px,calc(11 * var(--ui-unit)))}.trial-comparison,.concept-discovery{padding:calc(12 * var(--ui-unit));border-radius:calc(9 * var(--ui-unit));background:#e4efda;font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.5}.remainder-trays>.has-leftover{border:2px solid #b77a2c;background:#ffe1a5}.remainder-trays .unit-dots{display:flex;flex-wrap:wrap;gap:calc(4 * var(--ui-unit));min-width:0;padding:calc(4 * var(--ui-unit)) 0 0;border:0}.unit-dots i{display:block;width:calc(10 * var(--ui-unit));height:calc(10 * var(--ui-unit));border-radius:50%;background:#aa6818}.crane-observation,.real-transfer{padding:calc(12 * var(--ui-unit));border:1px solid #b7ccaa;background:#f0f4e8;border-radius:calc(10 * var(--ui-unit));margin:calc(12 * var(--ui-unit)) 0}.crane-observation>strong,.real-transfer>strong{font-size:max(12px,calc(12 * var(--ui-unit)))}.crane-observation p,.real-transfer p{font-size:max(12px,calc(12 * var(--ui-unit)));margin:calc(8 * var(--ui-unit)) 0}.crane-observation small{font-size:max(10px,calc(10 * var(--ui-unit)));color:var(--muted)}.crane-observation .preview-tag{display:table;margin-bottom:calc(8 * var(--ui-unit));background:#e0e9ea;color:#244e5c}.crane-test-grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(8 * var(--ui-unit));margin-top:calc(10 * var(--ui-unit))}.crane-test{display:flex;align-items:center;gap:calc(8 * var(--ui-unit));padding:calc(8 * var(--ui-unit));border:2px solid #baa98a;border-radius:calc(8 * var(--ui-unit));background:#eee9dc}.crane-test.is-ready{border-color:#257e60;background:#d6ebd1}.crane-test .asset{width:calc(52 * var(--ui-unit));height:calc(52 * var(--ui-unit));flex-shrink:0}.crane-test strong,.crane-test span:not(.asset){display:block;font-size:max(12px,calc(12 * var(--ui-unit)))}.crane-test span:not(.asset){margin-top:calc(4 * var(--ui-unit))}.real-transfer[data-success=false]{border-color:#b77a2c;background:#fff1d6}.reservation-heading{border-top:1px solid #cbd7cc;padding-top:calc(18 * var(--ui-unit));margin-top:calc(22 * var(--ui-unit))}@media(max-width:520px){.guide-summary{grid-template-columns:1fr 1fr}.guide-summary li:after{display:none}.trial-grid{grid-template-columns:1fr 1fr}.crane-test{flex-direction:column;text-align:center}}@media(prefers-reduced-motion:reduce){#guide-pointer{animation:none}}@media(any-pointer:coarse),(max-width:1024px){.desktop-actions{display:none}.touch-action{display:inline-flex}.joystick-area{display:flex}.control-legend,.keyboard-help{display:none}.touch-help{display:block}}@media(max-width:1024px){.save-indicator{display:none}}@media(max-width:900px){.clock-card{grid-column:1 / -1}.bottom-actions{flex-wrap:wrap;justify-content:flex-end}.joystick-area>span{display:none}}@media(max-width:800px){.keyboard-help{display:none}.touch-help{display:block}.brand .eyebrow,.mission-heading,.control-legend{display:none}.bottom-actions{flex-wrap:wrap}.joystick-area{display:flex}.welcome-dialog{display:block;overflow-y:auto;padding:0}.welcome-art{display:none}.plan-grid{grid-template-columns:1fr}.prediction-row{flex-wrap:wrap}.prediction-row .field{flex-basis:100%;width:100%;min-width:0}.prediction-row .button{width:100%}}@media(max-width:520px){.cargo-status{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.reservation-pill{margin:0}}.harbour-app{position:relative;display:block;width:100%;height:100dvh;isolation:isolate}.world{position:absolute;inset:0;padding:0}.topbar{position:absolute;top:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-top,0px));right:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-right,0px));min-height:0;padding:0;background:none;border:0;z-index:20;pointer-events:none}.top-actions{gap:calc(6 * var(--ui-unit))}.topbar .mission-heading{display:block}.icon-button,.top-actions .icon-button{display:inline-grid;place-items:center;width:calc(44 * var(--ui-unit));height:calc(44 * var(--ui-unit));min-height:calc(44 * var(--ui-unit));flex-shrink:0;padding:calc(10 * var(--ui-unit));border:1px solid #b7e0d278;border-radius:calc(12 * var(--ui-unit));color:#f4f8ed;background:#102e3ce8;box-shadow:0 3px calc(10 * var(--ui-unit)) #08242e40;pointer-events:auto;touch-action:manipulation}.icon-button svg{width:calc(24 * var(--ui-unit));height:calc(24 * var(--ui-unit));pointer-events:none}.icon-button:hover:not(:disabled){background:#1b514eea;transform:none}.icon-button:active:not(:disabled){background:#246c60}.harbour-status{position:absolute;top:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-top,0px));left:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-left,0px));right:calc(calc(168 * var(--ui-unit)) + env(safe-area-inset-right,0px));display:flex;align-items:start;gap:calc(8 * var(--ui-unit));padding:0;background:none;z-index:15;pointer-events:none}.shipment-chip{flex:0 0 calc(96 * var(--ui-unit));height:calc(58 * var(--ui-unit));padding:calc(6 * var(--ui-unit)) calc(10 * var(--ui-unit));box-shadow:0 3px calc(10 * var(--ui-unit)) #08242e30}.clock-card{flex:0 0 calc(274 * var(--ui-unit));height:calc(58 * var(--ui-unit));display:grid;grid-template-columns:calc(122 * var(--ui-unit)) minmax(0,1fr);grid-column:auto;gap:calc(6 * var(--ui-unit));padding:calc(6 * var(--ui-unit)) calc(8 * var(--ui-unit));border-radius:calc(12 * var(--ui-unit));box-shadow:0 3px calc(10 * var(--ui-unit)) #08242e30}.clock-top{min-width:0;gap:calc(4 * var(--ui-unit))}.clock-top .eyebrow{font-size:max(10px,calc(9 * var(--ui-unit)));letter-spacing:.8px}.clock-top strong{font-size:max(16px,calc(22 * var(--ui-unit)))}.clock-top .text-button{margin-left:auto;border:0;padding:calc(10 * var(--ui-unit));background:#ffffff0e;box-shadow:none}.clock-card .cargo-status{display:grid;grid-column:auto;gap:3px;min-width:0}.clock-card .reservation-pill{margin:0;padding:0;font-size:max(10px,calc(10 * var(--ui-unit)));background:none;white-space:nowrap}.clock-card .dock-counts{gap:calc(6 * var(--ui-unit));font-size:max(10px,calc(10 * var(--ui-unit)));white-space:nowrap}.radio-card{position:fixed;top:calc(calc(82 * var(--ui-unit)) + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);width:min(calc(360 * var(--ui-unit)),calc(100% - calc(24 * var(--ui-unit))));height:calc(88 * var(--ui-unit));min-height:calc(88 * var(--ui-unit));padding:calc(9 * var(--ui-unit)) calc(52 * var(--ui-unit)) calc(9 * var(--ui-unit)) calc(12 * var(--ui-unit));box-shadow:0 3px calc(12 * var(--ui-unit)) #08242e30}.radio-card p{font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.4}.bottombar{position:absolute;left:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-left,0px));right:calc(calc(12 * var(--ui-unit)) + env(safe-area-inset-right,0px));bottom:calc(calc(8 * var(--ui-unit)) + env(safe-area-inset-bottom,0px));height:calc(96 * var(--ui-unit));min-height:calc(96 * var(--ui-unit));padding:0;background:none;border:0;gap:calc(12 * var(--ui-unit));z-index:20;pointer-events:none}.bottombar .desktop-actions,.bottombar .control-legend,.joystick-area>span{display:none}.joystick-area{display:flex}.harbour-app.keyboard-controls .joystick-area{display:none}.harbour-app.touch-controls .joystick-area{display:flex}.harbour-app.keyboard-controls .control-legend{display:flex;gap:calc(6 * var(--ui-unit));padding:calc(8 * var(--ui-unit));border:1px solid #b7e0d256;border-radius:calc(12 * var(--ui-unit));background:#102e3ce0;color:var(--cream)}.control-legend .key-hint{display:grid;justify-items:center;gap:calc(4 * var(--ui-unit))}.control-legend .key-hint kbd{padding:calc(4 * var(--ui-unit)) calc(6 * var(--ui-unit));color:var(--navy);font-size:max(12px,calc(12 * var(--ui-unit)));font-weight:700;line-height:1.25}.control-legend .key-hint small{font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.2}.control-keycap{display:none}.keyboard-controls .control-button{position:relative}.keyboard-controls .control-keycap{display:block;position:absolute;top:calc(-5 * var(--ui-unit));right:-2px;padding:3px calc(5 * var(--ui-unit));border-radius:calc(6 * var(--ui-unit));font-size:max(10px,calc(10 * var(--ui-unit)));color:var(--navy);pointer-events:none}.joystick{width:calc(80 * var(--ui-unit));height:calc(80 * var(--ui-unit));background:radial-gradient(circle,#f4f8edcc 32%,#94bbae88 34% 36%,#d8eadeb8 38%);border-color:#d3f0ddcc;box-shadow:0 calc(4 * var(--ui-unit)) calc(14 * var(--ui-unit)) #092c3840;pointer-events:auto}.joystick.active{border-color:var(--yellow)}.action-cluster{margin-left:auto;gap:calc(10 * var(--ui-unit))}.control-button,.step-slot .button{pointer-events:auto}.touch-action{display:inline-flex}.brake-control{background:#edf4e2e6;border-color:#c8e4d4;box-shadow:0 3px calc(10 * var(--ui-unit)) #092c3840}.cargo-control{width:calc(76 * var(--ui-unit));height:calc(76 * var(--ui-unit));box-shadow:0 3px #0c514b,0 calc(5 * var(--ui-unit)) calc(14 * var(--ui-unit)) #092c3840}.step-slot{position:absolute;left:50%;bottom:calc(8 * var(--ui-unit));transform:translate(-50%);margin:0}.step-slot .button{min-width:calc(64 * var(--ui-unit));min-height:calc(44 * var(--ui-unit));background:#102e3ce8;color:var(--cream);border-color:#b7e0d278}@media(max-width:600px){.clock-card{grid-template-columns:1fr}.clock-top .eyebrow{display:none}.clock-card .cargo-status{position:absolute;left:0;display:flex;align-items:center;border:1px solid #abcfc744;background:#102e3ce8}}html,body,#app{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}#harbour-canvas{touch-action:none}.harbour-app{height:100vh;height:100dvh}.harbour-app .keyboard-help{display:block}.harbour-app .touch-help,.harbour-app.touch-controls .keyboard-help{display:none}.harbour-app.touch-controls .touch-help{display:block}.orientation-gate{position:absolute;inset:0;z-index:90;display:grid;place-items:center;padding:max(calc(24 * var(--ui-unit)),env(safe-area-inset-top,0px)) max(calc(20 * var(--ui-unit)),env(safe-area-inset-right,0px)) max(calc(24 * var(--ui-unit)),env(safe-area-inset-bottom,0px)) max(calc(20 * var(--ui-unit)),env(safe-area-inset-left,0px));background:#0c2836f5;color:var(--cream);overflow:auto;text-align:center}.orientation-card{width:min(calc(420 * var(--ui-unit)),100%)}.orientation-card svg{width:calc(96 * var(--ui-unit));height:calc(96 * var(--ui-unit));color:var(--yellow);margin-bottom:calc(20 * var(--ui-unit))}.orientation-card h2{font-size:clamp(calc(25 * var(--ui-unit)),6vw,calc(32 * var(--ui-unit)))}.orientation-card p{font-size:max(12px,calc(15 * var(--ui-unit)))}.orientation-pause{color:#b5d8cc;font-size:max(12px,calc(13 * var(--ui-unit)))!important}.modal-backdrop{top:var(--dialog-offset-top, 0px);bottom:auto;height:var(--dialog-viewport-height, 100dvh);padding:max(calc(10 * var(--ui-unit)),env(safe-area-inset-top,0px)) max(calc(12 * var(--ui-unit)),env(safe-area-inset-right,0px)) max(calc(10 * var(--ui-unit)),env(safe-area-inset-bottom,0px)) max(calc(12 * var(--ui-unit)),env(safe-area-inset-left,0px))}.dialog{--dialog-pad-x: calc(32 * var(--ui-unit));--dialog-pad-y: calc(28 * var(--ui-unit));padding:var(--dialog-pad-y) var(--dialog-pad-x);max-height:100%;min-width:0;overscroll-behavior:contain;scroll-padding:calc(60 * var(--ui-unit)) 0 calc(24 * var(--ui-unit))}.dialog-close{width:calc(44 * var(--ui-unit));height:calc(44 * var(--ui-unit))}.dialog-close,.dialog-close:focus-visible{position:absolute;top:var(--dialog-pad-y);right:var(--dialog-pad-x)}.dialog-heading{position:sticky;top:calc(-1 * var(--dialog-pad-y));z-index:5;margin:calc(-1 * var(--dialog-pad-y)) calc(-1 * var(--dialog-pad-x)) calc(18 * var(--ui-unit));padding:var(--dialog-pad-y) calc(var(--dialog-pad-x) + calc(60 * var(--ui-unit))) calc(12 * var(--ui-unit)) var(--dialog-pad-x);background:var(--cream);border-bottom:1px solid #d7ded8}.dialog-heading .eyebrow{color:var(--teal);margin-bottom:calc(6 * var(--ui-unit))}.dialog-heading h2{margin-bottom:0}.dialog h2[data-dialog-initial-focus]:focus{outline:none}.audio-toggle[aria-pressed=false]{color:#d3dfda}.welcome-dialog{padding:0;overflow-y:auto}.settings-fields,.settings-options{display:grid;min-width:0}.dialog input,.dialog select,.language-compact select{font-size:max(14px,calc(16 * var(--ui-unit)))}.dialog .field,.dialog .stock-grid>div,.dialog .plan-grid>section,.dialog .prediction-row,.dialog .crane-test{min-width:0}@media(max-height:540px){.welcome-dialog{display:block}.welcome-art{display:none}.plan-grid{grid-template-columns:1fr}}@media(orientation:landscape)and (max-height:540px)and (min-width:480px){.settings-fields,.settings-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.manifest{width:100%;table-layout:fixed}.manifest th,.manifest td{overflow-wrap:anywhere}}.harbour-app{--ui-target: max(44px, calc(44 * var(--ui-unit)));--ui-gap: max(4px, calc(8 * var(--ui-unit)));--ui-edge: max(6px, calc(12 * var(--ui-unit)));--ui-bottom: max(4px, calc(8 * var(--ui-unit)));--ui-stick: max(56px, calc(80 * var(--ui-unit)));--ui-knob: max(28px, calc(44 * var(--ui-unit)));--ui-cargo: max(44px, calc(76 * var(--ui-unit)));--ui-brake: max(44px, calc(64 * var(--ui-unit)));--ui-footer: calc( max(var(--ui-stick), var(--ui-cargo), var(--ui-brake)) + 16 * var(--ui-unit) );--ui-clock-height: max(58px, calc(58 * var(--ui-unit)));font-size:max(12px,calc(14 * var(--ui-unit)))}.harbour-app .topbar{top:calc(var(--ui-edge) + env(safe-area-inset-top,0px));right:calc(var(--ui-edge) + env(safe-area-inset-right,0px))}.harbour-app .top-actions{gap:var(--ui-gap)}.harbour-app .icon-button,.harbour-app .clock-top .icon-button{width:var(--ui-target);height:var(--ui-target);min-width:var(--ui-target);min-height:var(--ui-target);padding:max(6px,calc(10 * var(--ui-unit)));border-radius:calc(12 * var(--ui-unit))}.harbour-app .icon-button svg{width:max(16px,calc(24 * var(--ui-unit)));height:max(16px,calc(24 * var(--ui-unit)))}.harbour-app .harbour-status{top:calc(var(--ui-edge) + env(safe-area-inset-top,0px));left:calc(var(--ui-edge) + env(safe-area-inset-left,0px));right:calc(4 * var(--ui-target) + 3 * var(--ui-gap) + 2 * var(--ui-edge) + env(safe-area-inset-right,0px));gap:var(--ui-gap)}.harbour-app .shipment-chip{flex-basis:max(60px,calc(96 * var(--ui-unit)));height:var(--ui-clock-height);padding:max(4px,calc(6 * var(--ui-unit))) max(4px,calc(10 * var(--ui-unit)))}.harbour-app .shipment-chip strong,.harbour-app .clock-top strong{font-size:max(16px,calc(22 * var(--ui-unit)));white-space:nowrap;font-variant-numeric:tabular-nums}.harbour-app .shipment-chip{min-width:max-content;height:auto;min-height:var(--ui-clock-height);display:grid;grid-template-rows:auto auto 2px;align-content:center;gap:2px}.harbour-app .shipment-chip>span{margin-bottom:0;line-height:1.2}.harbour-app .shipment-chip strong{line-height:1.2}.harbour-app .shipment-chip .progress-track{margin-top:0;width:100%}.dock-count-icon{display:none}.harbour-app .clock-card{flex-basis:max(185px,calc(274 * var(--ui-unit)));height:var(--ui-clock-height);grid-template-columns:max(84px,calc(122 * var(--ui-unit))) minmax(0,1fr);gap:max(4px,calc(6 * var(--ui-unit)));padding:max(4px,calc(6 * var(--ui-unit))) max(4px,calc(8 * var(--ui-unit)))}.harbour-app .clock-top{gap:max(2px,calc(4 * var(--ui-unit)))}.harbour-app .clock-card .cargo-status{position:static;display:grid;grid-column:auto;gap:3px;padding:0;border:0;background:none}.harbour-app .clock-card .dock-counts,.harbour-app .clock-card .reservation-pill{font-size:max(10px,calc(10 * var(--ui-unit)))}.harbour-app .radio-card{top:calc(var(--ui-edge) + var(--ui-clock-height) + var(--ui-gap) + env(safe-area-inset-top,0px));left:50%;bottom:auto;transform:translate(-50%);display:grid;grid-template-rows:auto minmax(0,1fr);width:min(max(180px,calc(360 * var(--ui-unit))),calc(100% - 2 * var(--ui-edge)));height:max(60px,calc(88 * var(--ui-unit)));min-height:0;padding:max(4px,calc(9 * var(--ui-unit))) calc(var(--ui-target) + var(--ui-gap)) max(4px,calc(9 * var(--ui-unit))) max(6px,calc(12 * var(--ui-unit)))}.harbour-app .radio-card p{font-size:max(11px,calc(12 * var(--ui-unit)));line-height:1.35;margin:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto}.harbour-app .guide-dismiss,.harbour-app .guide-off-button{width:var(--ui-target);height:var(--ui-target);min-width:var(--ui-target);flex-shrink:0;font-size:max(20px,calc(24 * var(--ui-unit)))}.harbour-app .bottombar{left:calc(var(--ui-edge) + env(safe-area-inset-left,0px));right:calc(var(--ui-edge) + env(safe-area-inset-right,0px));bottom:calc(var(--ui-bottom) + env(safe-area-inset-bottom,0px));height:var(--ui-footer);min-height:var(--ui-footer);gap:var(--ui-gap)}.harbour-app .joystick{width:var(--ui-stick);height:var(--ui-stick)}.harbour-app .joystick-knob{width:var(--ui-knob);height:var(--ui-knob);top:calc(50% - var(--ui-knob) / 2);left:calc(50% - var(--ui-knob) / 2)}.harbour-app .cargo-control{width:var(--ui-cargo);height:var(--ui-cargo);min-width:var(--ui-cargo);min-height:var(--ui-cargo)}.harbour-app .brake-control{width:var(--ui-brake);height:var(--ui-brake);min-width:var(--ui-brake);min-height:var(--ui-brake)}.harbour-app .control-button{gap:max(2px,calc(3 * var(--ui-unit)));padding:max(2px,calc(3 * var(--ui-unit)));font-size:max(10px,calc(12 * var(--ui-unit)))}.harbour-app .cargo-icon{width:max(16px,calc(30 * var(--ui-unit)));height:max(16px,calc(30 * var(--ui-unit)))}.harbour-app .brake-icon{width:max(14px,calc(19 * var(--ui-unit)));height:max(14px,calc(19 * var(--ui-unit)))}.harbour-app .action-cluster{position:absolute;left:auto;right:0;bottom:0;gap:var(--ui-gap);margin-left:0}.harbour-app .step-slot .button{width:auto;min-width:var(--ui-target);min-height:var(--ui-target);padding:max(4px,calc(8 * var(--ui-unit)));font-size:max(10px,calc(11 * var(--ui-unit)))}.harbour-app.compact-landscape .clock-top .eyebrow,.harbour-app.compact-landscape .radio-card .eyebrow,.harbour-app.small-landscape .reservation-pill,.harbour-app.compact-landscape.keyboard-controls .key-hint:not(:first-child){display:none}.harbour-app.compact-landscape .dock-counts{display:grid;gap:2px}.harbour-app.compact-landscape .radio-card{top:auto;left:calc(50% + (env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))/2);bottom:calc(var(--ui-bottom) + env(safe-area-inset-bottom,0px));height:var(--ui-target);grid-template-rows:minmax(0,1fr);width:min(max(180px,calc(360 * var(--ui-unit))),calc(100% - var(--ui-stick) - var(--ui-cargo) - var(--ui-brake) - 2 * var(--ui-edge) - 5 * var(--ui-gap) - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));padding-top:4px;padding-bottom:4px}.harbour-app.compact-landscape .step-slot{left:0;bottom:calc(var(--ui-footer) + var(--ui-gap));transform:none}.harbour-app.compact-landscape .control-legend{max-width:max(90px,calc(110 * var(--ui-unit)))}.modal-backdrop{--ui-unit: var(--panel-ui-unit, 1px);--ui-target: max(44px, calc(44 * var(--ui-unit)));--ui-gap: max(4px, calc(8 * var(--ui-unit)));padding:max(8px,calc(12 * var(--ui-unit)),env(safe-area-inset-top,0px)) max(8px,calc(12 * var(--ui-unit)),env(safe-area-inset-right,0px)) max(8px,calc(12 * var(--ui-unit)),env(safe-area-inset-bottom,0px)) max(8px,calc(12 * var(--ui-unit)),env(safe-area-inset-left,0px))}.harbour-app .dialog{--dialog-pad-x: max(10px, calc(32 * var(--ui-unit)));--dialog-pad-y: max(8px, calc(28 * var(--ui-unit)));width:min(max(480px,calc(700 * var(--ui-unit))),100%);padding:var(--dialog-pad-y) var(--dialog-pad-x);border-radius:calc(21 * var(--ui-unit))}.harbour-app .wide-dialog{width:min(max(580px,calc(930 * var(--ui-unit))),100%)}.harbour-app .welcome-dialog{width:min(max(480px,calc(900 * var(--ui-unit))),100%);padding:0}.harbour-app.compact-landscape .dialog{width:100%}.harbour-app .dialog-heading{min-height:calc(var(--ui-target) + 2 * var(--dialog-pad-y));padding-right:calc(var(--dialog-pad-x) + var(--ui-target) + var(--ui-gap))}.harbour-app .dialog h2{font-size:max(22px,calc(35 * var(--ui-unit)))}.harbour-app .welcome-copy h2{font-size:max(24px,calc(36 * var(--ui-unit)))}.harbour-app .dialog-close{width:var(--ui-target);height:var(--ui-target);font-size:max(22px,calc(27 * var(--ui-unit)))}.harbour-app .dialog .button{min-height:var(--ui-target);min-width:var(--ui-target);font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .dialog .field{gap:max(4px,calc(8 * var(--ui-unit)));font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .settings-fields,.harbour-app .settings-options{gap:0 calc(16 * var(--ui-unit))}.harbour-app .dialog input:not([type=checkbox]):not([type=radio]),.harbour-app .dialog select,.harbour-app .language-compact select{min-height:var(--ui-target);font-size:max(16px,calc(16 * var(--ui-unit)))}.harbour-app .fill-stepper{--step-target: max(var(--ui-target), calc(52 * var(--ui-unit)));grid-template-columns:var(--step-target) minmax(0,1fr) var(--step-target);gap:var(--ui-gap)}.harbour-app .fill-step-button{width:var(--step-target);height:var(--step-target);font-size:max(24px,calc(30 * var(--ui-unit)))}.harbour-app .fill-stepper input[type=number]{min-height:var(--step-target);font-size:max(18px,calc(26 * var(--ui-unit)))}.harbour-app .dialog .switch,.harbour-app .route-choice{min-height:var(--ui-target)}.harbour-app .tick-cell{min-width:var(--ui-target);min-height:var(--ui-target)}.harbour-app .dialog input[type=checkbox],.harbour-app .dialog input[type=radio]{width:max(18px,calc(19 * var(--ui-unit)));height:max(18px,calc(19 * var(--ui-unit)))}#guide-pointer{font-size:max(18px,calc(26 * var(--ui-unit)));line-height:max(18px,calc(26 * var(--ui-unit)))}.harbour-app kbd,.harbour-app .control-keycap{font-size:max(10px,calc(10 * var(--ui-unit)))}.harbour-app.touch-controls{--control-safe-top: env(safe-area-inset-top, 0px);--control-safe-left: env(safe-area-inset-left, 0px);--control-safe-right: env(safe-area-inset-right, 0px);--control-safe-bottom: env(safe-area-inset-bottom, 0px);--touch-radio-clearance: calc( var(--ui-edge) + max(var(--control-safe-left), var(--control-safe-right)) + max(var(--ui-stick), var(--ui-cargo), var(--ui-brake)) + max(12px, calc(20 * var(--ui-unit))) + var(--ui-gap) );--ui-target: max(48px, calc(44 * var(--ui-unit)));--ui-menu: clamp(48px, calc(48 * var(--ui-unit)), 56px);--ui-gap: max(8px, calc(8 * var(--ui-unit)));--ui-stick: clamp(84px, calc(112 * var(--ui-unit)), 128px);--ui-knob: clamp(38px, calc(52 * var(--ui-unit)), 64px);--ui-cargo: clamp(56px, calc(76 * var(--ui-unit)), 96px);--ui-brake: clamp(52px, calc(64 * var(--ui-unit)), 84px)}.harbour-app.touch-controls .modal-backdrop{--ui-target: max(48px, calc(44 * var(--ui-unit)));--ui-gap: max(8px, calc(8 * var(--ui-unit)))}.harbour-app .icon-button svg{width:max(20px,calc(24 * var(--ui-unit)));height:max(20px,calc(24 * var(--ui-unit)))}.harbour-app.touch-controls .icon-button{width:var(--ui-menu);height:var(--ui-menu);min-width:var(--ui-menu);min-height:var(--ui-menu);border-radius:max(10px,calc(12 * var(--ui-unit)))}.harbour-app.touch-controls .icon-button svg{width:clamp(24px,calc(24 * var(--ui-unit)),28px);height:clamp(24px,calc(24 * var(--ui-unit)),28px)}.harbour-app.touch-controls .harbour-status{right:calc(4 * var(--ui-menu) + 3 * var(--ui-gap) + 2 * var(--ui-edge) + env(safe-area-inset-right,0px))}.harbour-app.touch-controls.compact-landscape{--ui-clock-height: 52px;--ui-stick: clamp(108px, calc(144 * var(--ui-unit)), 124px);--ui-knob: clamp(52px, calc(68 * var(--ui-unit)), 64px)}.harbour-app.touch-controls.compact-landscape .joystick-area{margin-left:max(12px,calc(20 * var(--ui-unit)))}.harbour-app.touch-controls .joystick-area.floating-joystick{position:fixed;left:var(--joystick-left);top:var(--joystick-top);margin:0;transform:translate(-50%,-50%)}.harbour-app.touch-controls.compact-landscape .topbar{right:var( --menu-right, calc(var(--ui-edge) + env(safe-area-inset-right, 0px)) )}.harbour-app.touch-controls.compact-landscape .harbour-status{left:var(--hud-left, calc(var(--ui-edge) + env(safe-area-inset-left, 0px)));top:var(--hud-top, calc(var(--ui-edge) + env(safe-area-inset-top, 0px)));right:auto;width:max-content}.harbour-app.touch-controls.compact-landscape .shipment-chip{flex-basis:max(74px,calc(84 * var(--ui-unit)));width:max(74px,calc(84 * var(--ui-unit)));padding:4px 6px}.harbour-app.touch-controls.compact-landscape .shipment-chip>span{font-size:11px;line-height:1.15}.harbour-app.touch-controls.compact-landscape .shipment-chip strong{font-size:18px;line-height:1.2}.harbour-app.touch-controls.compact-landscape .progress-track{height:2px;margin-top:0}.harbour-app.touch-controls.compact-landscape .clock-card{flex-basis:max(146px,calc(220 * var(--ui-unit)));width:max(146px,calc(220 * var(--ui-unit)));grid-template-columns:max(90px,calc(108 * var(--ui-unit))) minmax(0,1fr);padding:2px 5px;gap:4px}.harbour-app.touch-controls.compact-landscape .clock-top{gap:2px}.harbour-app.touch-controls.compact-landscape .dock-counts>span{display:flex;align-items:center;gap:3px}.harbour-app.touch-controls.compact-landscape .dock-counts b{margin-left:0}.harbour-app.touch-controls.compact-landscape .dock-count-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.harbour-app.touch-controls.compact-landscape .dock-count-icon{display:block;width:14px;height:14px;flex-shrink:0}.harbour-app.touch-controls.compact-landscape.narrow-top-hud .harbour-status{gap:4px}.harbour-app.touch-controls.compact-landscape.narrow-top-hud .shipment-chip{width:64px;flex-basis:64px;padding-inline:4px}.harbour-app.touch-controls.compact-landscape.narrow-top-hud .shipment-chip strong,.harbour-app.touch-controls.compact-landscape.narrow-top-hud .clock-top strong{font-size:16px}.harbour-app.touch-controls.compact-landscape.narrow-top-hud .clock-card{width:128px;flex-basis:128px;grid-template-columns:78px minmax(0,1fr);padding-inline:4px}.harbour-app .clock-card{grid-template-columns:max(100px,calc(122 * var(--ui-unit))) minmax(0,1fr)}.harbour-app .clock-card .dock-counts,.harbour-app .clock-card .reservation-pill{font-size:max(11px,calc(11 * var(--ui-unit)))}.harbour-app.compact-landscape .reservation-pill{display:none}.harbour-app:not(.compact-landscape) .clock-card{height:auto;min-height:var(--ui-clock-height);min-width:0;grid-template-columns:max-content minmax(0,1fr)}.harbour-app:not(.compact-landscape) .clock-top{display:grid;grid-template-columns:max-content auto;row-gap:0}.harbour-app:not(.compact-landscape) .clock-top .eyebrow{grid-column:1;grid-row:1;margin:0}.harbour-app:not(.compact-landscape) .clock-top strong{grid-column:1;grid-row:2}.harbour-app:not(.compact-landscape) .clock-control{grid-column:2;grid-row:1 / 3}.harbour-app:not(.compact-landscape) .clock-card .reservation-pill{white-space:normal;overflow-wrap:anywhere}.harbour-app:not(.compact-landscape) .clock-card .dock-counts{display:grid;gap:2px;white-space:normal}.harbour-app:not(.compact-landscape) .dock-counts>span{display:flex;flex-wrap:wrap;align-items:baseline;min-width:0}.harbour-app:not(.compact-landscape) .dock-count-label{min-width:0;overflow-wrap:anywhere}.harbour-app:not(.compact-landscape) .dock-counts b{flex-shrink:0;white-space:nowrap}.harbour-app .control-button{font-size:max(12px,calc(12 * var(--ui-unit)));border:1px solid #b7e0d278;color:#f4f8ed;background:#102e3ce8;box-shadow:0 3px max(10px,calc(10 * var(--ui-unit))) #08242e40,inset 0 1px #ffffff0c;font-weight:650;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.harbour-app .cargo-control:not(:disabled){background:linear-gradient(155deg,#1c585dee,#102e3cf2);border-color:#8edacba0}.harbour-app .cargo-control:disabled{opacity:1;color:#94b5b6;background:#102e3cda;border-color:#88b7b54d;box-shadow:0 3px max(10px,calc(10 * var(--ui-unit))) #08242e30}.harbour-app .control-button:not(:disabled):hover{background:#1b514eea}.harbour-app .control-button:not(:disabled):active,.harbour-app .brake-control.held{color:#fff9ed;background:#246c60;border-color:#f6ce75;box-shadow:0 0 0 2px #f6ce7526,inset 0 2px 4px #061b2e40}.harbour-app .cargo-icon,.harbour-app .brake-icon{width:clamp(24px,calc(24 * var(--ui-unit)),28px);height:clamp(24px,calc(24 * var(--ui-unit)),28px);display:block;flex-shrink:0}.harbour-app .action-cluster{right:var(--action-right, 0px)}.harbour-app.stacked-actions .action-cluster,.harbour-app.touch-controls .action-cluster{flex-direction:column;align-items:center}.harbour-app.touch-controls .action-cluster{right:0}.harbour-app.touch-controls .bottombar{left:calc(var(--ui-edge) + var(--control-safe-left));right:calc(var(--ui-edge) + var(--control-safe-right));bottom:calc(var(--ui-bottom) + var(--control-safe-bottom))}.harbour-app .radio-card,.harbour-app.compact-landscape .radio-card{height:auto;min-height:var(--ui-target);grid-template-rows:auto;padding-top:8px;padding-bottom:8px;background:#102e3cf2}.harbour-app .radio-card p{font-size:max(14px,calc(14 * var(--ui-unit)));line-height:1.45;max-height:none;overflow:visible}.harbour-app.compact-landscape .radio-card{left:var(--guide-left, 50%);width:var(--guide-width, 240px);transform:none}.harbour-app.keyboard-controls .radio-card{top:var(--guide-top, calc(var(--ui-edge) + env(safe-area-inset-top, 0px)));left:var(--guide-left, 50%);width:var( --guide-width, min(max(180px, calc(360 * var(--ui-unit))), calc(100% - 2 * var(--ui-edge))) );transform:none;bottom:auto;max-height:35dvh}.harbour-app.keyboard-controls #radio-details{min-height:0;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto}.harbour-app.keyboard-controls .harbour-status{top:var(--hud-top, calc(var(--ui-edge) + env(safe-area-inset-top, 0px)));right:auto;max-width:calc(100% - 2 * var(--ui-edge))}.harbour-app.touch-controls .radio-card{top:auto;left:50%;bottom:calc(var(--ui-bottom) + var(--control-safe-bottom));transform:translate(-50%);width:min(360px,max(48px,calc(100% - 2 * var(--touch-radio-clearance))));border-radius:max(10px,calc(12 * var(--ui-unit)))}.harbour-app.touch-controls .radio-card .eyebrow{display:none}.harbour-app.touch-controls .radio-card[data-guide-step=""]{padding-right:max(10px,calc(12 * var(--ui-unit)))}.harbour-app.radio-compact .radio-card,.harbour-app.radio-compact .radio-card[data-guide-step=""]{display:flex;flex-direction:column;bottom:0;width:min(260px,max(48px,calc(100% - 2 * var(--touch-radio-clearance))));height:auto;min-height:48px;padding:0;border:0;box-shadow:inset 0 0 0 1px #abcfc733,0 3px 12px #08242e30;overflow:hidden}.radio-toggle{display:flex;align-items:center;gap:8px;width:100%;height:48px;min-height:48px;min-width:0;flex-shrink:0;padding:0 10px;border:0;border-radius:inherit;background:transparent;color:#ecf5ed;text-align:left;pointer-events:auto;touch-action:manipulation}.radio-toggle:hover,.radio-toggle:active{background:#1b514e80}.radio-toggle:focus-visible{outline-offset:-4px}.harbour-app.radio-compact #radio-toggle{padding-right:58px;padding-bottom:min(var(--control-safe-bottom),20px)}.radio-hide,.radio-restore{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;padding:0 0 min(var(--control-safe-bottom),20px);border:0;color:var(--yellow);pointer-events:auto;touch-action:manipulation}.radio-hide{position:absolute;right:0;bottom:0;background:transparent}.radio-close-icon{width:18px;height:18px}.radio-restore{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:2;background:#102e3cf2;border-radius:12px;box-shadow:inset 0 0 0 1px #abcfc733}.radio-hide:hover,.radio-hide:active,.radio-restore:hover,.radio-restore:active{background:#1b514e}.radio-hide:focus-visible,.radio-restore:focus-visible{outline-offset:-4px}#radio-summary{flex:1;min-width:0;font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radio-symbol,.radio-chevron{width:18px;height:18px;flex-shrink:0;pointer-events:none}.radio-chevron{color:var(--yellow)}.radio-narrow .radio-symbol{display:none}.radio-narrow .radio-toggle{gap:6px;padding-inline:8px}.radio-expanded .radio-chevron{transform:rotate(180deg)}.harbour-app.radio-compact #radio-details{order:-1;max-height:min(180px,35dvh);overflow-y:auto;overscroll-behavior:contain;padding:10px 12px;border-bottom:1px solid #b7e0d233;pointer-events:auto}.harbour-app.radio-compact #radio-message{margin:0;font-size:14px;line-height:1.45}.narration-repeat{pointer-events:auto;position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;padding:10px;border:1px solid #8cacaa;border-radius:12px;color:var(--teal);background:transparent;cursor:pointer;touch-action:manipulation}.narration-repeat svg{width:24px;height:24px}.narration-repeat:disabled{opacity:.45;cursor:default}#radio-repeat{margin-top:6px;color:var(--cream);border-color:#b7e0d255}.narration-repeat[hidden]{display:none}.narration-muted-mark{position:absolute;right:2px;bottom:2px;padding:2px;border-radius:5px;background:#102e3c;color:var(--yellow);pointer-events:none}.narration-muted-mark svg{display:block;width:14px;height:14px}.radio-sound-prompt{margin-top:calc(8 * var(--ui-unit));padding-top:calc(8 * var(--ui-unit));border-top:1px solid #b7e0d255;pointer-events:auto}.harbour-app .dialog{--dialog-pad-x: max(16px, calc(28 * var(--ui-unit)));--dialog-pad-y: max(10px, calc(20 * var(--ui-unit)));width:min(max(560px,calc(700 * var(--ui-unit))),100%);font-size:max(14px,calc(14 * var(--ui-unit)));box-shadow:0 16px 48px #021f3540}.harbour-app.compact-landscape .dialog{width:min(max(560px,calc(700 * var(--ui-unit))),100%)}.harbour-app .wide-dialog,.harbour-app.compact-landscape .wide-dialog{width:min(max(640px,calc(860 * var(--ui-unit))),100%)}.harbour-app .welcome-dialog,.harbour-app.compact-landscape .welcome-dialog{width:min(max(560px,calc(900 * var(--ui-unit))),100%);padding:0}.harbour-app .dialog h2,.harbour-app .welcome-copy h2{font-family:inherit;font-weight:750;font-size:max(24px,calc(32 * var(--ui-unit)));letter-spacing:-.4px;line-height:1.2}.harbour-app .dialog p,.harbour-app .dialog .field{font-size:max(14px,calc(14 * var(--ui-unit)));line-height:1.5}.harbour-app .dialog .fine,.harbour-app .dialog p.fine{font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .dialog small,.harbour-app .dialog .stock-grid span:not(.asset),.harbour-app .dialog .trial-pods>span:not(.asset),.harbour-app .dialog .guide-summary strong,.harbour-app .dialog .status-tag{font-size:max(12px,calc(12 * var(--ui-unit)));line-height:1.5}.harbour-app .dialog .hint-count{font-size:max(12px,calc(12 * var(--ui-unit)))!important}.harbour-app .stock-grid>div{grid-template-columns:max(40px,calc(60 * var(--ui-unit))) minmax(0,1fr);grid-template-rows:auto auto;padding:max(8px,calc(12 * var(--ui-unit)));gap:3px max(8px,calc(12 * var(--ui-unit)))}.harbour-app .stock-grid .asset{width:max(40px,calc(59 * var(--ui-unit)));height:max(40px,calc(59 * var(--ui-unit)))}.harbour-app .stock-grid strong{font-size:max(18px,calc(22 * var(--ui-unit)))}.harbour-app .timeline-labels,.harbour-app .tick-cell{grid-template-rows:repeat(3,max(24px,calc(29 * var(--ui-unit))));font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .timeline-labels{width:max(72px,calc(84 * var(--ui-unit)))}.harbour-app .tick-cell{min-height:max(72px,calc(88 * var(--ui-unit)))}.harbour-app .welcome-copy{--welcome-copy-pad: max(16px, calc(28 * var(--ui-unit)));padding:var(--welcome-copy-pad)}.harbour-app .opening-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.harbour-app .opening-heading-copy{min-width:0}.harbour-app .intro-heading.opening-heading{padding-right:var(--dialog-pad-x)}.harbour-app .welcome-copy .opening-heading{position:sticky;top:0;z-index:5;margin:calc(-1 * var(--welcome-copy-pad)) calc(-1 * var(--welcome-copy-pad)) 16px;padding:var(--welcome-copy-pad);background:var(--cream);border-bottom:1px solid #d7ded8}.harbour-app .welcome-copy .opening-heading h2{margin-bottom:0}.harbour-app .opening-heading .language-compact{margin:0;align-self:start;justify-self:end;flex-wrap:nowrap}.harbour-app .opening-heading .dropdown-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:480px){.harbour-app .opening-heading .opening-heading-copy{grid-column:1 / -1;grid-row:2}.harbour-app .opening-heading .language-compact{grid-column:2;grid-row:1}}.harbour-app .guide-summary .asset{width:max(32px,calc(44 * var(--ui-unit)));height:max(32px,calc(44 * var(--ui-unit)))}.harbour-app .trial-card{padding:max(8px,calc(10 * var(--ui-unit)))}.harbour-app .trial-pods .asset{width:max(22px,calc(28 * var(--ui-unit)));height:max(22px,calc(28 * var(--ui-unit)))}.harbour-app .dialog .button{font-size:max(14px,calc(14 * var(--ui-unit)));padding:max(8px,calc(10 * var(--ui-unit))) max(12px,calc(16 * var(--ui-unit)))}.harbour-app .guide-panel{padding:8px 12px;margin:12px 0;gap:8px}.harbour-app .result-box{padding:max(12px,calc(16 * var(--ui-unit)));margin:12px 0}.harbour-app .result-box h3{font-size:max(16px,calc(18 * var(--ui-unit)));margin-bottom:8px}.harbour-app .result-box h3:last-child{margin-bottom:0}.harbour-app .completion-summary{display:flex;align-items:center;gap:max(12px,calc(18 * var(--ui-unit)));margin:12px 0}.harbour-app .completion-art{display:grid;place-items:center;flex-shrink:0;width:max(64px,calc(80 * var(--ui-unit)));height:max(64px,calc(80 * var(--ui-unit)));border-radius:50%;background:#e6eee2}.harbour-app .completion-art .asset{width:max(48px,calc(64 * var(--ui-unit)));height:max(48px,calc(64 * var(--ui-unit)))}.harbour-app .completion-summary p{margin:6px 0 0}.harbour-app .completion-skill+.completion-skill{border-top:1px solid #bdcdbd;margin-top:12px;padding-top:12px}.harbour-app .completion-skill p{margin:6px 0}.harbour-app .completion-detail{color:#365c56}.harbour-app .completion-stats{display:flex;flex-wrap:wrap;gap:max(12px,calc(24 * var(--ui-unit)));margin:12px 0 0;border-top:1px solid #bdcdbd;padding-top:10px}.harbour-app .completion-stats>div{display:flex;align-items:baseline;gap:8px}.harbour-app .completion-stats dt{font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .completion-stats dd{margin:0;font-weight:800;font-size:max(18px,calc(22 * var(--ui-unit)))}.harbour-app .next-mission,.harbour-app .mission-first-task{border-left:4px solid var(--teal);padding:10px 14px;background:#efefe2;border-radius:8px}.harbour-app .next-mission h3,.harbour-app .mission-first-task h3{margin:4px 0 6px;font-size:max(16px,calc(18 * var(--ui-unit)))}.harbour-app .next-mission p,.harbour-app .mission-first-task p{margin:6px 0 0}.harbour-app .controls-details{margin-top:12px}.harbour-app .help-guide-status{padding:10px 12px;border-left:4px solid var(--teal);border-radius:8px;background:#e6eee2;color:#20483e}.harbour-app .help-guide-status[data-enabled=false]{border-left-color:#647776;background:#eeeee4;color:#334f52}.harbour-app .controls-details summary{display:list-item;min-height:var(--ui-target);align-content:center;cursor:pointer;color:var(--teal);font-weight:700;padding:8px}.harbour-app .controls-details summary:focus-visible{outline:3px solid #dea020;outline-offset:2px}.harbour-app .support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(200px,calc(240 * var(--ui-unit)))),1fr));gap:max(10px,calc(14 * var(--ui-unit)))}.harbour-app .support-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:max(10px,calc(14 * var(--ui-unit)));border:1px solid #cedacf;border-radius:12px;background:#edf1e6}.harbour-app .support-icon{width:28px;height:28px;color:var(--teal)}.harbour-app .support-card p{margin:0}.harbour-app .support-card small{display:block;color:#49655f;margin-top:6px;font-size:max(12px,calc(12 * var(--ui-unit)))}.harbour-app .support-card .button{margin-top:auto}.harbour-app .restart-choice{margin-top:16px;border-top:1px solid #d7ded8;padding-top:10px}.harbour-app .dialog-actions:last-child{position:sticky;bottom:calc(-1 * var(--dialog-pad-y));z-index:3;margin-bottom:calc(-1 * var(--dialog-pad-y));padding:10px 0;background:var(--cream);border-top:1px solid #d7ded8}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.harbour-app.touch-controls .modal-backdrop{--ui-target: max(48px, calc(44 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog{--dialog-pad-x: max(12px, calc(20 * var(--ui-unit)));--dialog-pad-y: max(10px, calc(16 * var(--ui-unit)));border-radius:max(12px,calc(18 * var(--ui-unit)));scroll-padding-block:80px 72px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog-heading{margin-bottom:10px;padding-bottom:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog h2,.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .welcome-copy h2{font-size:max(22px,calc(28 * var(--ui-unit)));line-height:1.15}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog h3{margin-block:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog p{margin-bottom:8px;line-height:1.45}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog .eyebrow{margin-bottom:3px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog .field{margin-bottom:10px;gap:4px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog .button{padding:8px max(12px,calc(14 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog-actions{gap:6px;margin-top:10px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog-actions:last-child{padding-block:6px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .welcome-copy{--welcome-copy-pad: max(12px, calc(20 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .welcome-copy .opening-heading{margin-bottom:10px;padding-bottom:10px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .opening-heading{gap:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog .dropdown-trigger{padding:8px 10px;gap:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .language-compact .dropdown{width:max(152px,calc(152 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-stage{min-height:max(96px,calc(128 * var(--ui-unit)));margin-bottom:10px;padding:8px;gap:8px;border-radius:12px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-stage .asset{width:max(48px,calc(72 * var(--ui-unit)));height:max(48px,calc(72 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-stage .intro-station{width:max(60px,calc(88 * var(--ui-unit)));height:max(60px,calc(88 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-navigation .dialog-actions{position:static;margin:0;padding:0;border:0}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-heading .intro-progress{margin:3px 0 0}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .dialog :is(.guide-panel,.learning-panel,.preview-box,.result-box,.trial-comparison,.concept-discovery,.support-card,.next-mission,.mission-first-task,.help-guide-status){padding:max(8px,calc(12 * var(--ui-unit)));margin-block:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .stock-grid{gap:8px;margin-bottom:10px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .packing-trials{margin-top:10px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .brief-art{gap:16px;padding:6px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .brief-art .asset{width:max(40px,calc(56 * var(--ui-unit)));height:max(40px,calc(56 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .completion-summary{gap:10px;margin-block:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .completion-art{width:max(48px,calc(64 * var(--ui-unit)));height:max(48px,calc(64 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .completion-art .asset{width:max(36px,calc(48 * var(--ui-unit)));height:max(36px,calc(48 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .completion-skill+.completion-skill{margin-top:8px;padding-top:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .completion-stats{margin-top:8px;padding-top:6px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .restart-choice{margin-top:10px;padding-top:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .mission-select{min-height:var(--ui-target);padding:max(8px,calc(10 * var(--ui-unit)));gap:10px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .support-grid{gap:8px}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .support-icon{width:24px;height:24px}.harbour-app.compact-panels .dialog{--dialog-pad-y: 8px;width:min(100%,max(720px,calc(860 * var(--ui-unit))))}.harbour-app.compact-panels .dialog h2{font-size:max(20px,calc(26 * var(--ui-unit)))}.harbour-app.compact-panels .welcome-dialog{padding:0;display:block}.harbour-app.compact-panels .welcome-art{display:none}.harbour-app.compact-panels .welcome-copy{--welcome-copy-pad: 12px}.harbour-app.compact-panels .intro-dialog{display:flex;flex-direction:column;height:min(100%,max(320px,calc(480 * var(--ui-unit))))}.harbour-app.compact-panels .intro-heading{flex:0 0 auto;margin-bottom:0}.harbour-app.compact-panels .intro-content{display:grid;flex:1 1 auto;min-height:0;min-width:0;gap:10px;padding-block:10px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.harbour-app.compact-panels.landscape-panels .intro-content{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center}.harbour-app.compact-panels .intro-stage{margin:0;min-width:0;min-height:96px;flex-wrap:wrap}.harbour-app.compact-panels .intro-pack{flex-direction:row}.harbour-app.compact-panels .intro-pack .asset{width:max(36px,calc(48 * var(--ui-unit)));height:max(36px,calc(48 * var(--ui-unit)))}.harbour-app.compact-panels .intro-pod-group{gap:4px;padding:4px}.harbour-app.compact-panels .intro-body{margin:0;min-width:0;font-size:max(14px,calc(16 * var(--ui-unit)))}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-footer{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;padding-top:6px;border-top:1px solid #d7ded8;background:var(--cream)}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-navigation{display:contents}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-dots{order:1;flex-shrink:0}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-secondary{order:2;margin:0}.harbour-app:is(.touch-controls,.keyboard-controls:where(.compact-panels)) .intro-navigation .dialog-actions{order:3;flex-wrap:nowrap}.harbour-app.compact-panels.landscape-panels .plan-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.harbour-app.compact-panels .prediction-row{gap:8px}.harbour-app.compact-panels .prediction-row .button{height:auto;min-height:var(--ui-target)}.harbour-app.compact-panels.landscape-panels .prediction-row{flex-wrap:nowrap}.harbour-app.compact-panels.landscape-panels .prediction-row .field{flex-basis:auto}.harbour-app.keyboard-controls .dialog,.harbour-app.keyboard-controls.compact-landscape .dialog{width:min(100%,max(320px,calc(700 * var(--ui-unit))))}.harbour-app.keyboard-controls .wide-dialog,.harbour-app.keyboard-controls .welcome-dialog,.harbour-app.keyboard-controls.compact-panels .dialog{width:min(100%,max(320px,calc(860 * var(--ui-unit))))}.harbour-app.keyboard-controls.compact-landscape{--ui-clock-height: max(48px, calc(58 * var(--ui-unit)))}.harbour-app.keyboard-controls.compact-landscape .clock-card{flex-basis:max(156px,calc(220 * var(--ui-unit)));grid-template-columns:max(84px,calc(108 * var(--ui-unit))) minmax(0,1fr)}.harbour-app.keyboard-controls.compact-landscape .dock-counts>span{display:flex;align-items:center;gap:3px}.harbour-app.keyboard-controls.compact-landscape .dock-counts b{margin-left:0}.harbour-app.keyboard-controls.compact-landscape .dock-count-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.harbour-app.keyboard-controls.compact-landscape .dock-count-icon{display:block;width:14px;height:14px;flex-shrink:0}.harbour-app.keyboard-controls.compact-panels .language-compact .dropdown{width:max(136px,calc(152 * var(--ui-unit)))}
