/* Color Harbor: glassy sorting vessels, clear token identities, no color-only cues. */
.harbor-arena{background:radial-gradient(ellipse at 10% 0,#59667e,transparent 65%),radial-gradient(ellipse at 100% 100%,#274c5b,transparent 65%),#293548;padding:22px;position:relative;overflow:hidden;border-color:#cfdedb}
.harbor-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;color:#e7f2f2}
.harbor-board-title{font:700 10px/1.6 Arial,sans-serif;letter-spacing:2px}
.harbor-round-dots{display:flex;gap:6px}.harbor-round-dots i{width:7px;height:7px;background:#81909c;border-radius:50%}.harbor-round-dots i.current{background:#effbff;box-shadow:0 0 0 3px #fff2}.harbor-round-dots i.complete{background:#b6e1d4}
.harbor-legend{display:flex;justify-content:center;gap:10px;margin-bottom:18px}.harbor-key{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:42px;padding:5px 7px;border:1px solid #ffffff35;border-radius:20px;background:#192b3a60;color:var(--token-fill);font:700 10px/1 Arial,sans-serif}.harbor-key svg{width:12px;height:12px;fill:currentColor}
.harbor-color-0{--token-fill:#f6bba0;--token-ink:#51301e;--token-light:#ffe0c4}.harbor-color-1{--token-fill:#c8b7ed;--token-ink:#3b2c5d;--token-light:#eee0ff}.harbor-color-2{--token-fill:#a9d7bc;--token-ink:#204335;--token-light:#ddf3d8}.harbor-color-3{--token-fill:#a6cee6;--token-ink:#213c5b;--token-light:#d6f0ff}
.harbor-grid{display:grid;grid-template-columns:repeat(var(--harbor-count,6),minmax(0,1fr));gap:8px;align-items:start;margin-bottom:8px}
.harbor-tube{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:4px 2px 6px;background:transparent;min-width:44px;min-height:44px;border-radius:16px;color:#e7f2f2;-webkit-tap-highlight-color:transparent;transition:transform .18s}
.harbor-tube:focus-visible{outline:3px solid #fff;outline-offset:2px}.harbor-tube:hover:not(:disabled) .harbor-vessel{background:#ffffff13;border-color:#c5dfdf}.harbor-tube:disabled{opacity:1}.harbor-tube-indicator{display:block;min-height:14px;font:700 8px/1.5 Arial,sans-serif;letter-spacing:.35px;white-space:nowrap;color:#f7f3dc;text-align:center}
.harbor-vessel{display:grid;grid-template-rows:repeat(var(--harbor-capacity),33px);gap:5px;padding:9px 5px 10px;border:1px solid #a9cad859;border-top:3px solid #d4e8ec88;border-radius:4px 4px 22px 22px;background:linear-gradient(90deg,#ffffff13,transparent 40%,#ffffff0b);box-shadow:inset 3px 0 7px #ffffff06,0 7px 9px #14243330;transition:border-color .18s,background .18s,box-shadow .18s;position:relative}
.harbor-vessel:after{content:'';position:absolute;width:3px;height:55%;left:3px;top:12px;background:linear-gradient(#ffffff35,transparent);border-radius:8px;pointer-events:none}
.harbor-token,.harbor-slot{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;border-radius:8px;position:relative}
.harbor-token{background:linear-gradient(145deg,var(--token-light),var(--token-fill));color:var(--token-ink);border:1px solid #ffffff65;box-shadow:0 3px 4px #10212a38;animation:harbor-settle .18s ease-out}
.harbor-token svg{width:18px;height:18px;fill:currentColor;flex-shrink:0}.harbor-token>span:not(.harbor-covered-dot){font:700 11px/1 Arial,sans-serif}.harbor-slot{border:1px dashed #b7d4d91c;background:#0f20261a}
.harbor-tube.is-selected .harbor-vessel{border-color:#fff4c4;background:#f2df9a19;box-shadow:0 0 0 2px #fff4c448,0 8px 18px #10212a3b}.harbor-tube.is-selected .harbor-token:first-of-type{filter:brightness(1.07)}.harbor-tube.is-destination .harbor-vessel{border-color:#c9f4d0;border-style:dashed;background:#c2f6dc12}.harbor-tube.is-destination .harbor-tube-indicator{color:#cfefdb}.harbor-tube.is-complete .harbor-vessel{border-color:#8cbeae;background:#b3e1ca0d}
.harbor-tube-number{display:flex;align-items:center;justify-content:center;gap:4px;min-height:21px;font:700 11px/1 Arial,sans-serif;color:#d0e2e7}.harbor-tube-number .ui-icon{width:13px;height:13px;color:#bdebd2}
.harbor-token.is-covered{background:#90a3b628;border:1px solid #a3c2d134;box-shadow:none}.harbor-covered-dot{width:5px;height:5px;background:#d0e2e7;border-radius:50%}
.harbor-status{color:#e2edf0;min-height:66px;margin-top:18px;font-size:13px;line-height:1.7}.harbor-recovery{margin:12px 0 0;padding:12px 14px;border:1px solid #eed3a466;border-radius:14px;background:#fff2d50c;color:#fff1d8;font-size:12px;line-height:1.6;text-align:center}
.harbor-actions{gap:8px}.harbor-actions button{padding:12px 17px}.harbor-actions #harborPause{flex:1}.harbor-layout .result .actions{margin-top:15px}.harbor-layout #harborNext,.harbor-layout #harborShare{display:inline-flex;align-items:center;justify-content:center;gap:8px}.harbor-layout #harborNext .ui-icon,.harbor-layout #harborShare .ui-icon{width:18px;height:18px}.harbor-layout .metric{min-width:0}.harbor-layout .metric strong{font-size:28px}.harbor-layout .help-box p{margin:10px 0}
@keyframes harbor-settle{from{opacity:.75;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:651px) and (max-width:1000px){.harbor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px}.harbor-tube{max-width:76px;width:100%;justify-self:center}.harbor-vessel{grid-template-rows:repeat(var(--harbor-capacity),27px)}.harbor-board-head{margin-bottom:12px}.harbor-legend{margin-bottom:8px}.harbor-tube-indicator{font-size:8px}.harbor-status{font-size:12px}.harbor-token svg{width:17px;height:17px}}
@media(max-width:650px){.harbor-arena{padding:16px}.harbor-board-head{margin-bottom:11px}.harbor-legend{margin-bottom:10px;gap:7px}.harbor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 18px;max-width:370px;margin:auto}.harbor-tube{width:100%;max-width:82px;justify-self:center;gap:4px}.harbor-vessel{grid-template-rows:repeat(var(--harbor-capacity),25px);gap:4px;padding:7px 6px 9px;border-radius:4px 4px 18px 18px}.harbor-token{border-radius:7px}.harbor-token svg{width:17px;height:17px}.harbor-token>span:not(.harbor-covered-dot){font-size:10px}.harbor-tube-number{min-height:18px;font-size:11px}.harbor-tube-indicator{font-size:8px;min-height:12px}.harbor-status{font-size:12px;min-height:39px;margin-top:12px}.harbor-layout .metric strong{font-size:24px}.harbor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.harbor-actions #harborStart{grid-column:1/-1}.harbor-actions button{min-height:44px;padding:10px 14px}.harbor-actions #harborPause{grid-column:2}.harbor-layout .result .actions{display:flex}.harbor-layout .result .actions button{white-space:normal}.harbor-board-title{font-size:9px}.harbor-layout .result p{font-size:13px}}
@media(max-width:360px){.harbor-arena{padding:12px}.harbor-grid{gap:5px 13px}.harbor-vessel{grid-template-rows:repeat(var(--harbor-capacity),24px)}.harbor-tube{max-width:75px}.harbor-status{font-size:11px}.harbor-actions button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.harbor-token,.harbor-tube,.harbor-vessel{animation:none!important;transition:none!important}}
