/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.start\!{inset-inline-start:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-justify{text-align:justify}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#203238;--paper:#f3eddf;--navy:#123d47;--navy-deep:#082a32;--gold:#c58a2a;--red:#a54e39;--sea-glass:#d9ebe7;--line:#cfc4af;--hud-bg:#08242beb;--hud-border:#f3eddf40;--shadow:0 14px 45px #00101557}*{box-sizing:border-box}html{background:var(--navy-deep);min-width:320px;min-height:100%}body{min-height:100%;color:var(--ink);background:var(--navy-deep);margin:0;font-family:Yu Mincho,Hiragino Mincho ProN,Georgia,serif}button,a{font:inherit}button{touch-action:manipulation}button:focus-visible{outline-offset:3px;outline:3px solid #ffd067}a:focus-visible{outline-offset:3px;outline:3px solid #ffd067}[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #ffd067}button:disabled{cursor:not-allowed;opacity:.46}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-shell{color:#f8f0df;background:#bcd5cf;min-width:320px;min-height:100dvh;position:fixed;inset:0;overflow:hidden}.game-underlay,.map-stage{position:absolute;inset:0}.map-stage{z-index:0;background:#bcd5cf;overflow:hidden}.game-underlay[inert]{-webkit-user-select:none;user-select:none}.compact-hud{z-index:20;top:max(12px, env(safe-area-inset-top));color:#f8f0df;border:1px solid var(--hud-border);background:var(--hud-bg);min-height:60px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;border-radius:4px;justify-content:space-between;align-items:center;gap:14px;padding:7px 12px 7px 14px;display:flex;position:fixed;left:16px;right:16px}.brand-lockup{letter-spacing:.14em;flex-shrink:0;min-width:104px;line-height:1;display:grid}.brand-lockup span{color:#d7b66c;font:700 8px system-ui,sans-serif}.brand-lockup strong{margin-top:3px;font-size:15px;font-weight:600}.state-chip{border-left:3px solid #73b58c;flex-shrink:0;align-content:center;min-width:0;padding-left:12px;display:grid}.state-chip.underway{border-left-color:#d7b66c}.state-chip span{color:#b9c9c6;letter-spacing:.13em;font:700 9px system-ui,sans-serif}.state-chip strong{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:clamp(13px,1.5vw,17px);overflow:hidden}.hud-facts{flex-shrink:0;grid-template-columns:minmax(130px,auto) repeat(2,minmax(70px,auto));gap:4px;margin:0;display:grid}.hud-facts div{border-left:1px solid #ffffff29;min-width:0;padding:0 10px}.hud-facts dt{color:#aebfbd;letter-spacing:.08em;font:600 8px system-ui,sans-serif}.hud-facts dd{color:#fff;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;margin:2px 0 0;font:700 12px system-ui,sans-serif;display:flex;overflow:hidden}.hud-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.season-badge{letter-spacing:.05em;border-radius:3px;justify-content:center;align-items:center;padding:2px 7px;font:800 10px system-ui,sans-serif;display:inline-flex}.season-badge.spring{color:#fff;background:linear-gradient(135deg,#a83b54,#d66580);border:1px solid #ffb2c4}.season-badge.summer{color:#fff;background:linear-gradient(135deg,#1f6e43,#48995e);border:1px solid #8be0a5}.season-badge.autumn{color:#fff;background:linear-gradient(135deg,#913a14,#be5f26);border:1px solid #ffa366}.season-badge.winter{color:#eaf4ff;background:linear-gradient(135deg,#1d4368,#3b74a3);border:1px solid #8ec5f5}.season-name{font-weight:800}.weather-badge{letter-spacing:.04em;border-radius:3px;justify-content:center;align-items:center;padding:2px 7px;font:800 10px system-ui,sans-serif;display:inline-flex}.weather-badge.fair{color:#fff;background:linear-gradient(135deg,#a0630d,#d69824);border:1px solid #ffd875}.weather-badge.clear{color:#fff;background:linear-gradient(135deg,#2b6d80,#4b9bb0);border:1px solid #88d4e8}.weather-badge.cloudy{color:#fff;background:linear-gradient(135deg,#48545e,#6e7e8a);border:1px solid #9bb0bf}.weather-badge.rain{color:#dbeefc;background:linear-gradient(135deg,#1b3a59,#38648c);border:1px solid #66a1d4}.weather-badge.fog{color:#f5f8fa;background:linear-gradient(135deg,#4e585c,#7f8e94);border:1px solid #b4c5cb}.weather-badge.gale{color:#e6f9fc;background:linear-gradient(135deg,#224952,#417f8c);border:1px solid #68cad9}.weather-badge.storm{color:#f5db71;background:linear-gradient(135deg,#181926,#362f47);border:1px solid #8f74b8}.weather-badge.calm{color:#fff;background:linear-gradient(135deg,#2b5f66,#4e929b);border:1px solid #7fe0ec}.weather-name{font-weight:800}.time-phase-badge{letter-spacing:.04em;border-radius:3px;justify-content:center;align-items:center;padding:2px 7px;font:800 10px system-ui,sans-serif;display:inline-flex}.time-phase-badge.dawn{color:#fff;background:linear-gradient(135deg,#a84232,#ea8a46);border:1px solid #ffb27a}.time-phase-badge.morning{color:#fff;background:linear-gradient(135deg,#2a7285,#d2a445);border:1px solid #ffe285}.time-phase-badge.noon{color:#fff;background:linear-gradient(135deg,#b07d12,#db9f2e);border:1px solid #ffe280}.time-phase-badge.afternoon{color:#fff;background:linear-gradient(135deg,#a35b18,#cf8b2b);border:1px solid #ffc966}.time-phase-badge.sunset{color:#fff;background:linear-gradient(135deg,#8c2621,#e05e32);border:1px solid #ffa372}.time-phase-badge.dusk{color:#ffdcd0;background:linear-gradient(135deg,#2b1f47,#7c3b52);border:1px solid #a8627b}.time-phase-badge.night{color:#e4f0ff;background:linear-gradient(135deg,#0f2142,#244b7d);border:1px solid #6698d4}.time-phase-badge.midnight{color:#d0e4ff;background:linear-gradient(135deg,#050d1d,#142038);border:1px solid #4a689b}.time-phase-name{font-weight:800}.wind-badge{letter-spacing:.04em;color:#d4faf2;background:linear-gradient(135deg,#1c4b4a,#2e7a78);border:1px solid #62d6be;border-radius:3px;justify-content:center;align-items:center;gap:3px;padding:2px 7px;font:800 10px system-ui,sans-serif;display:inline-flex}.current-badge{letter-spacing:.04em;color:#d8eeff;background:linear-gradient(135deg,#133454,#21517a);border:1px solid #5aa9e8;border-radius:3px;justify-content:center;align-items:center;gap:3px;padding:2px 7px;font:800 10px system-ui,sans-serif;display:inline-flex}.sailing-efficiency-badge{letter-spacing:.03em;border-radius:3px;justify-content:center;align-items:center;padding:2px 6px;font:800 9px system-ui,sans-serif;display:inline-flex}.sailing-efficiency-badge.quarter,.sailing-efficiency-badge.reach,.sailing-efficiency-badge.run{color:#fff;background:linear-gradient(135deg,#7c5812,#a8791c);border:1px solid #ffd875}.sailing-efficiency-badge.close_hauled,.sailing-efficiency-badge.head_wind{color:#ffe6e0;background:linear-gradient(135deg,#59251e,#80372c);border:1px solid #e88676}.sailing-efficiency-badge.calm{color:#eaf0f2;background:linear-gradient(135deg,#3d464a,#5c686e);border:1px solid #9aa9b0}.time-digital{color:#f5f0e3;font-size:11px;font-weight:700}.mini-map-vector-bar{color:#badbd4;background:#071820e6;border-top:1px solid #d7b66c33;justify-content:space-between;align-items:center;padding:3px 6px;font:700 9px system-ui,sans-serif;display:flex}.mini-map-vector-bar .vector-wind{color:#72e5c8}.mini-map-vector-bar .vector-current{color:#6db6ff}.autosave-indicator{color:#bad5c0;white-space:nowrap;align-items:center;gap:5px;font:600 9px system-ui,sans-serif;display:inline-flex}.autosave-indicator i{background:#73b58c;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #73b58c26}.hud-button{color:#fff;cursor:pointer;letter-spacing:.03em;background:#ffffff14;border:1px solid #ffffff57;min-width:54px;min-height:44px;padding:6px 11px;font:700 11px system-ui,sans-serif}.hud-button:hover{background:#ffffff26}.menu-button{color:#fff6df;border-color:#d7b66ca6;min-width:72px}.status-toast{z-index:17;top:max(82px, calc(env(safe-area-inset-top) + 74px));color:#f8eddb;border-left:3px solid var(--gold);pointer-events:none;background:#082a32d6;max-width:min(430px,100vw - 36px);min-height:34px;margin:0;padding:8px 11px;font:600 11px/1.5 system-ui,sans-serif;position:fixed;left:18px;box-shadow:0 5px 18px #0012173d}.debug-toolbar{z-index:21;top:max(126px, calc(env(safe-area-inset-top) + 118px));color:#f8eddb;background:#082a32eb;border:1px solid #d7b66c;align-items:center;gap:10px;min-height:38px;padding:6px 10px;font:700 10px system-ui,sans-serif;display:flex;position:fixed;left:18px;box-shadow:0 5px 18px #0012173d}.debug-toolbar strong{color:#e3bd72;letter-spacing:.12em}.debug-toolbar label{cursor:pointer;align-items:center;gap:6px;display:flex}.debug-toolbar input{accent-color:#d7b66c;width:18px;height:18px}.voyage-ribbon{z-index:17;top:max(82px, calc(env(safe-area-inset-top) + 74px));color:#fff;pointer-events:none;background:#082a32d6;border-right:3px solid #d7b66c;grid-template-columns:auto auto;gap:2px 12px;min-width:230px;padding:8px 12px;display:grid;position:fixed;right:18px;box-shadow:0 5px 18px #0012173d}.voyage-ribbon span{color:#c9d5d2;letter-spacing:.1em;font:700 9px system-ui,sans-serif}.voyage-ribbon strong{font-size:13px}.voyage-ribbon em{color:#f0d69d;grid-column:1/-1;font:700 11px system-ui,sans-serif}.context-bar{z-index:18;right:50%;bottom:max(14px, env(safe-area-inset-bottom));color:#f8f0df;border:1px solid var(--hud-border);background:var(--hud-bg);width:min(630px,100vw - 36px);min-height:70px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:4px solid #73b58c;border-radius:3px;justify-content:space-between;align-items:center;gap:18px;padding:10px 11px 10px 16px;transition:opacity .16s,transform .16s;display:flex;position:fixed;transform:translate(50%)}.context-bar.underway{border-left-color:#d7b66c}.context-bar>div:first-child{min-width:0;display:grid}.context-bar span{color:#aebfbd;letter-spacing:.12em;font:700 8px system-ui,sans-serif}.context-bar strong{text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:17px;overflow:hidden}.context-bar small{color:#d9e0dc;margin-top:2px;font:600 10px system-ui,sans-serif}.context-actions{flex:none;align-items:center;gap:7px;display:flex}.context-bar button,.panel-primary{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff61;min-height:46px;padding:8px 15px;font:700 12px system-ui,sans-serif}.context-bar .primary-action,.panel-primary{color:#102f37;background:#e3bd72;border-color:#e3bd72}.context-bar .secondary-action{color:#e2ebe8}.panel-open .context-bar{opacity:0;pointer-events:none;transform:translate(50%)translateY(10px)}.route-planner{z-index:19;right:50%;bottom:max(14px, env(safe-area-inset-bottom));color:#f8f0df;border:1px solid var(--hud-border);background:var(--hud-bg);width:min(760px,100vw - 36px);min-height:74px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-left:4px solid #e3bd72;border-radius:3px;align-items:center;gap:8px;padding:10px 12px 10px 16px;display:flex;position:fixed;transform:translate(50%)}.route-planner>div{min-width:0;margin-right:auto;display:grid}.route-planner span{color:#e3bd72;letter-spacing:.12em;font:800 9px system-ui,sans-serif}.route-planner strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.route-planner small{font:700 10px system-ui,sans-serif}.route-planner small.safe{color:#91d3a7}.route-planner small.blocked{color:#ff9b88}.route-planner button{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff61;min-height:44px;padding:7px 12px;font:700 11px system-ui,sans-serif}.route-planner button.primary-action{color:#102f37;background:#e3bd72;border-color:#e3bd72}.route-planner button:disabled{opacity:.46;cursor:not-allowed}.hud-panel{z-index:40;top:max(84px, calc(env(safe-area-inset-top) + 76px));right:16px;bottom:max(98px, calc(env(safe-area-inset-bottom) + 86px));width:min(400px,36vw);min-width:350px;color:var(--ink);background:var(--paper);border:1px solid #ffffff80;grid-template-rows:auto minmax(0,1fr);animation:.16s ease-out panel-enter;display:grid;position:fixed;box-shadow:0 20px 65px #0011167a}.panel-heading{color:#f8f0df;background:var(--navy);border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:12px 14px 11px 18px;display:flex}.panel-heading p{color:#d7b66c;letter-spacing:.14em;margin:0 0 2px;font:700 8px system-ui,sans-serif}.panel-heading h2{outline:none;margin:0;font-size:21px;font-weight:600}.panel-heading h2:focus-visible{outline-offset:4px;outline:3px solid #ffd067}.panel-close{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff6b;min-width:58px;min-height:44px;font:700 11px system-ui,sans-serif}.panel-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y;min-height:0;overflow:auto}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:14px;display:grid}.menu-grid>button{min-height:78px;color:var(--navy);text-align:left;cursor:pointer;background:#faf5e9;border:1px solid #b8aa92;align-content:center;gap:3px;padding:10px 12px;display:grid}.menu-grid>button span{font-size:16px;font-weight:700}.menu-grid>button small{color:#687477;font:600 10px system-ui,sans-serif}.menu-grid>button:hover{background:#fffaf0;border-color:#8f754d}.menu-grid .danger-menu{color:#8f3f32}.admin-menu-link{color:#f8f0df;background:var(--navy);border:1px solid #6f8e91;align-content:center;gap:3px;min-height:68px;padding:10px 12px;text-decoration:none;display:grid}.admin-menu-link span{font-size:15px;font-weight:700}.admin-menu-link small{color:#c7d7d4;font:600 10px system-ui,sans-serif}.menu-help,.legal-links,.map-credit{grid-column:1/-1}.menu-help{border-left:3px solid var(--gold);background:#e9e0cf;padding:13px 14px}.menu-help h3{margin:0 0 6px;font-size:15px}.menu-help p{color:#586468;margin:0;font:12px/1.7 system-ui,sans-serif}.legal-links{justify-content:center;gap:18px;padding-top:5px;display:flex}.legal-links a{color:#255d69;text-underline-offset:3px;align-items:center;min-height:44px;font:700 11px system-ui,sans-serif;display:inline-flex}.map-credit{color:#737d7f;text-align:center;margin:0;font:9px/1.6 system-ui,sans-serif}.ports-panel{padding:14px}.port-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.port-list button{min-height:62px;color:var(--navy);text-align:left;cursor:pointer;background:#fbf6ea;border:1px solid #b9ad98;align-content:center;padding:8px 11px;display:grid}.port-list button[aria-pressed=true]{border-color:#b87a1e;box-shadow:inset 0 0 0 2px #d9a64e}.port-list button span{color:#7a6c57;letter-spacing:.1em;font:700 8px system-ui,sans-serif}.port-list button strong{margin-top:2px;font-size:15px}.port-summary{background:#e9e0cf;border:1px solid #cdbfa9;margin-top:12px;padding:16px}.port-summary>p:first-child{color:var(--red);letter-spacing:.13em;margin:0;font:700 8px system-ui,sans-serif}.port-summary h3{margin:3px 0 9px;font-size:25px}.port-summary>p{color:#576469;font:13px/1.65 system-ui,sans-serif}.port-summary dl{grid-template-columns:repeat(2,1fr);gap:7px;margin:13px 0;display:grid}.port-summary dl div{background:#ffffff73;padding:9px}.port-summary dt{color:#6c7779;font:700 9px system-ui,sans-serif}.port-summary dd{margin:3px 0 0;font-size:14px;font-weight:700}.panel-primary{width:100%;min-height:48px}.panel-intro{border-bottom:1px solid var(--line);padding:12px 14px}.panel-intro p{color:#5f696c;margin:7px 0 0;font:11px/1.5 system-ui,sans-serif}.availability{color:#245c45;background:#e1ecdd;border:1px solid #659579;padding:4px 7px;font:700 9px system-ui,sans-serif;display:inline-flex}.table{padding:5px 12px}.row{border-bottom:1px solid #d7ccba;grid-template-columns:1fr .82fr .32fr 1.12fr;align-items:center;min-height:77px;font:12px system-ui,sans-serif;display:grid}.row.head{color:#6d777a;letter-spacing:.07em;min-height:30px;font-size:9px;font-weight:700}.good{font-family:Yu Mincho,serif;font-size:15px;font-weight:600}.good small{color:#6b7679;font-size:10px}.hud-panel .actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.hud-panel .actions button{min-width:0;min-height:44px;color:var(--navy);cursor:pointer;background:0 0;border:1px solid #6c898b;padding:4px 2px;font-size:10px}.hud-panel .actions .trade-sell{color:var(--red);border-color:#a97c71}.hud-panel .actions .bulk{background:#e9e0cf;font-weight:700}.market-price{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.market-price strong{white-space:nowrap}.market-price small{white-space:nowrap;font-size:9px;font-weight:700}.market-price .up{color:#9a3f31}.market-price .down{color:#24617a}.market-price .flat{color:#657277}.provision-market{background:#eee4d2;border:1px solid #c8b898;margin:0 12px 8px}.provision-market header{color:#f5ecdc;background:var(--navy);justify-content:space-between;gap:8px;padding:9px 10px;display:flex}.provision-market header strong{font:700 13px Yu Mincho,serif}.provision-market header small{color:#c8d5d2;text-align:right;font:600 9px/1.4 system-ui,sans-serif}.provision-market>div{border-top:1px solid #d4c7b1;grid-template-columns:1fr auto auto 48px 48px;align-items:center;gap:7px;min-height:54px;padding:6px 9px;display:grid}.provision-market>div>span{font:700 14px Yu Mincho,serif}.provision-market>div>strong{font:800 15px system-ui,sans-serif}.provision-market>div>small{color:#667275;font:700 9px system-ui,sans-serif}.provision-market button{min-height:40px;color:var(--navy);cursor:pointer;background:#f8f1e5;border:1px solid #6c898b;font:800 10px system-ui,sans-serif}.provision-market button:disabled{opacity:.45;cursor:not-allowed}.exploration-market{background:#f8f1e5;border:1px solid #b9ad98;margin:0 12px 8px}.exploration-market header{color:#f5ecdc;background:#31545b;justify-content:space-between;gap:8px;padding:9px 10px;display:flex}.exploration-market header strong{font:700 13px Yu Mincho,serif}.exploration-market header small{color:#cfdbd9;text-align:right;font:600 9px/1.4 system-ui,sans-serif}.exploration-market>div{border-top:1px solid #d7ccba;grid-template-columns:1fr auto 64px;align-items:center;gap:9px;min-height:62px;padding:7px 9px;display:grid}.exploration-market>div>span{gap:2px;display:grid}.exploration-market>div>span strong{font:700 14px Yu Mincho,serif}.exploration-market>div>span small{color:#647174;font:600 9px/1.4 system-ui,sans-serif}.exploration-market>div>b{white-space:nowrap;font:800 12px system-ui,sans-serif}.exploration-market button{min-height:44px;color:var(--navy);cursor:pointer;background:#fffaf0;border:1px solid #6c898b;font:800 10px system-ui,sans-serif}.exploration-market button:disabled{opacity:.48;cursor:not-allowed}.valuation{background:#e4dac7;justify-content:space-between;align-items:center;margin:8px 12px 14px;padding:12px;display:flex}.valuation span{color:#627073;font:700 10px system-ui,sans-serif}.valuation strong{font:700 16px system-ui,sans-serif}.cargo-panel{padding:14px}.cargo-summary{color:#fff;background:var(--navy);grid-template-columns:1fr auto;gap:3px 10px;padding:14px;display:grid}.cargo-summary span{color:#c3d0ce;letter-spacing:.1em;font:700 9px system-ui,sans-serif}.cargo-summary strong{grid-area:1/2/3;align-self:center;font-size:25px}.cargo-summary small{color:#e4d6b8;font:600 10px system-ui,sans-serif}.cargo-panel ul{margin:10px 0 0;padding:0;list-style:none}.cargo-panel li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:50px;padding:8px 10px;display:flex}.cargo-panel li strong{font:700 13px system-ui,sans-serif}.saved-routes-panel ul{gap:8px;margin:0;padding:12px;list-style:none;display:grid}.saved-routes-panel li{background:#f8f1e5;border:1px solid #c9bda8;grid-template-columns:minmax(0,1fr) 58px 48px;align-items:center;gap:6px;min-height:72px;padding:9px;display:grid}.saved-routes-panel li>div{gap:4px;min-width:0;display:grid}.saved-routes-panel input{min-width:0;height:34px;color:var(--navy);background:0 0;border:1px solid #0000;padding:4px 7px;font:700 14px Yu Mincho,serif}.saved-routes-panel input:focus{background:#fff;border-color:#7b9698;outline:2px solid #3469712e}.saved-routes-panel small{color:#657174;text-overflow:ellipsis;white-space:nowrap;font:600 9px system-ui,sans-serif;overflow:hidden}.saved-routes-panel button{min-height:44px;color:var(--navy);cursor:pointer;background:#fffaf0;border:1px solid #6c898b;font:800 10px system-ui,sans-serif}.saved-routes-panel .route-delete{color:#8b3b32;border-color:#b88b83}.saved-routes-panel button:disabled{opacity:.45;cursor:not-allowed}.empty-routes{color:#647174;text-align:center;border:1px dashed #b9ad98;margin:12px;padding:20px 12px;font:11px/1.6 system-ui,sans-serif}.log-panel{padding:12px 17px 20px}.log-panel ol{margin:0;padding-left:24px}.log-panel li{color:#4f5c60;border-bottom:1px solid var(--line);padding:10px 3px;font:12px/1.6 system-ui,sans-serif}.maplibre-map-shell,.maplibre-map-canvas{width:100%;height:100%;position:absolute;inset:0}.maplibre-map-shell{background:#bcd5cf}.maplibre-map-canvas{z-index:0}.map-time-tint{z-index:2;pointer-events:none;transition:background 1.2s ease-in-out;position:absolute;inset:0}.maplibre-map-shell .maplibregl-ctrl-top-right{top:var(--map-ui-top,76px);right:var(--map-ui-right,18px)}.maplibre-map-shell .maplibregl-ctrl-bottom-right{right:var(--map-ui-right,18px);bottom:var(--map-ui-bottom,92px)}.maplibre-map-shell .maplibregl-ctrl-bottom-left{bottom:var(--map-ui-bottom,92px);left:var(--map-ui-left,18px);max-width:calc(100% - var(--map-ui-left,18px) - var(--map-ui-right,18px))}.maplibre-map-shell .maplibregl-ctrl-attrib{color:#203238;background:#ffffffe0}.map-loading{z-index:8;color:#fff;background:#123d47eb;margin:0;padding:10px 14px;font:700 12px system-ui,sans-serif;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-error{z-index:8;color:#fff;text-align:center;background:#0d2635;justify-content:center;align-items:center;padding:24px;font:700 13px/1.6 system-ui,sans-serif;display:flex;position:absolute;inset:0}.map-port{cursor:pointer;background:0 0;border:0;min-width:58px;padding:0;display:block}.map-port i{background:var(--navy);width:14px;height:14px;box-shadow:0 0 0 2px var(--navy);border:3px solid #f5ecda;border-radius:50%;margin:auto;display:block}.map-port b{color:#fff;white-space:nowrap;background:#123d47eb;margin-top:6px;padding:4px 8px;font:700 12px Yu Mincho,serif;display:block;box-shadow:0 2px 7px #00121857}.map-port.current i{background:var(--red);box-shadow:0 0 0 2px var(--red)}.map-port.selected i{outline-offset:4px;outline:3px solid #d69a32}.map-port:disabled{cursor:default;opacity:.78}.route-waypoint-marker{color:#17353d;cursor:grab;background:#efbf59;border:3px solid #fff8df;border-radius:50%;width:30px;height:30px;padding:0;font:800 11px system-ui,sans-serif;box-shadow:0 3px 10px #051e2480}.route-waypoint-marker:active{cursor:grabbing}.maplibre-ship-anchor{pointer-events:none}.ship-marker{z-index:4;filter:drop-shadow(0 3px 2px #092c3473);pointer-events:none;width:38px;height:38px;transition:left 1s linear,top 1s linear;position:absolute;transform:translate(-50%,-50%)}.map-ship-marker{position:relative;top:auto;left:auto;transform:none}.ship-marker.docked:after{content:"";background:#efbf59;border:2px solid #092c34;border-radius:50%;width:8px;height:8px;position:absolute;bottom:-2px;right:-2px;box-shadow:0 0 4px #00000080}.ship-vessel{transition:transform .25s linear;display:block;position:absolute;inset:0}.ship-vessel .mast{background:#5c4028;width:2px;height:20px;position:absolute;top:6px;left:18px}.ship-vessel .sail{clip-path:polygon(100% 0,100% 100%,0 82%);background:#f7edda;width:10px;height:16px;position:absolute;top:5px;left:8px}.ship-vessel .hull{clip-path:polygon(0 0,100% 0,77% 100%,20% 100%);background:#8d4935;width:29px;height:9px;position:absolute;top:23px;left:5px}.ship-marker.underway .sail{animation:1s ease-in-out infinite sail-breathe}.legal-shell{width:min(760px,100% - 28px);min-height:100vh;margin:auto;padding:38px 0 60px}.legal-card{background:var(--paper);padding:clamp(24px,5vw,52px);box-shadow:0 12px 35px #00000040}.legal-card h1{margin:0 0 24px;font-size:clamp(30px,5vw,46px)}.legal-card h2{margin:30px 0 8px;font-size:20px}.legal-card p,.legal-card li{line-height:1.8}.legal-card a{color:#145c6b}.legal-back{color:#f8f0df;text-underline-offset:3px;min-height:44px;margin-bottom:18px;display:inline-block}@keyframes sail-breathe{50%{transform:skew(-4deg)}}@keyframes panel-enter{0%{opacity:0;transform:translate(12px)}}@media (max-width:1100px){.brand-lockup,.autosave-indicator{display:none}.hud-panel{width:min(400px,39vw)}}@media (max-width:767px){.compact-hud{height:calc(72px + env(safe-area-inset-top));min-height:72px;padding:calc(5px + env(safe-area-inset-top)) 7px 5px;border-width:0 0 1px;border-radius:0;grid-template-columns:minmax(100px,1fr) auto;grid-template-areas:"state actions""facts facts";gap:3px 6px;display:grid;top:0;left:0;right:0}.state-chip{grid-area:state;height:34px;padding-left:8px}.state-chip span{font-size:7px}.state-chip strong{margin-top:0;font-size:12px}.hud-facts{grid-area:facts;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%}.hud-facts div{padding:0 7px}.hud-facts dt{float:left;margin-right:5px;font-size:7px}.hud-facts dd{margin:0;font-size:10px}.hud-actions{grid-area:actions;gap:4px}.hud-actions .hud-button{min-width:42px;min-height:34px;padding:4px 6px;font-size:10px}.ports-button{min-width:38px}.menu-button{min-width:52px}.status-toast{top:calc(78px + env(safe-area-inset-top));max-width:calc(100vw - 16px);min-height:30px;padding:6px 9px;font-size:9px;left:8px}.debug-toolbar{top:calc(114px + env(safe-area-inset-top));min-height:34px;padding:4px 8px;left:8px}.voyage-ribbon{top:calc(112px + env(safe-area-inset-top));min-width:190px;padding:6px 9px;right:8px}.voyage-ribbon strong{font-size:11px}.context-bar{right:8px;bottom:max(7px, env(safe-area-inset-bottom));gap:7px;width:auto;min-height:58px;padding:6px 7px 6px 10px;left:8px;transform:none}.context-bar strong{font-size:13px}.context-bar small{font-size:8px}.context-actions{gap:4px}.context-bar button{min-height:44px;padding:5px 8px;font-size:10px}.context-bar .secondary-action{min-width:54px}.panel-open .context-bar{transform:translateY(10px)}.route-planner{right:8px;bottom:max(7px, env(safe-area-inset-bottom));flex-wrap:wrap;gap:4px;width:auto;min-height:68px;padding:7px;left:8px;transform:none}.route-planner>div{flex:1 0 100%}.route-planner strong{max-width:120px;font-size:12px}.route-planner small{max-width:140px;font-size:8px}.route-planner button{flex:1;min-width:0;min-height:44px;padding:5px 7px;font-size:9px}.hud-panel{width:100%;min-width:0;height:min(62dvh,560px);padding-bottom:env(safe-area-inset-bottom);border-width:1px 0 0;border-radius:16px 16px 0 0;animation-name:sheet-enter;inset:auto 0 0}.panel-heading{border-radius:15px 15px 0 0;min-height:62px;padding:10px 12px 8px 16px}.panel-heading:before{content:"";background:#ffffff6b;border-radius:4px;width:42px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.panel-heading h2{font-size:19px}.panel-heading p{margin-top:5px}.panel-scroll{-webkit-overflow-scrolling:touch}.menu-grid{padding:10px}.menu-grid>button{min-height:68px}.ports-panel{padding:10px}.port-summary{padding:13px}.table{padding:4px 9px}.row{min-height:74px}.map-port b{padding:3px 6px;font-size:11px}}@media (max-width:767px) and (max-height:600px){.hud-panel{height:min(38dvh,200px)}.panel-heading{min-height:56px;padding-block:7px 5px}.panel-heading p{display:none}}@media (max-width:480px){.status-toast{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100vw - 16px);overflow:hidden}.context-bar>div:first-child{max-width:112px}.context-bar .secondary-action,.row.head{display:none}.row{grid-template-columns:minmax(90px,1fr) auto auto;gap:4px 8px;padding:8px 0}.row .actions{grid-column:1/-1}.hud-panel .actions button{min-height:44px}.market-price{align-items:flex-end}.menu-grid{grid-template-columns:1fr 1fr;gap:7px}.menu-grid>button{padding:8px}.port-list{gap:6px}.port-list button{min-height:58px;padding:7px}}@media (max-width:350px){.compact-hud{grid-template-columns:minmax(82px,1fr) 44px 66px}.hud-button{font-size:9px}.hud-facts div{padding:0 4px}.hud-facts dt{display:none}.context-bar>div:first-child{max-width:94px}.context-bar button{padding-inline:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (prefers-contrast:more){.compact-hud,.context-bar,.hud-panel,.hud-button,.context-bar button,.panel-close,.menu-grid>button,.port-list button{border-width:2px}.status-toast,.voyage-ribbon{background:#082a32}}@keyframes sheet-enter{0%{opacity:0;transform:translateY(22px)}}.fleet-panel{padding:12px}.fleet-tabs{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;display:grid}.fleet-tab-btn{min-height:42px;color:var(--navy);cursor:pointer;background:#faf5e9;border:1px solid #b8aa92;padding:6px 4px;font:700 11px system-ui,sans-serif}.fleet-tab-btn.active{color:#fff;border-color:var(--navy);background:var(--navy)}.fleet-summary-bar{background:#e9e0cf;border:1px solid #cdbfa9;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:11px;display:flex}.fleet-summary-bar strong{color:var(--navy);font-size:14px}.ship-list{flex-direction:column;gap:10px;display:flex}.ship-card{background:#faf5e9;border:1px solid #cdbfa9;padding:12px;box-shadow:0 2px 6px #0000000f}.ship-card-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.ship-card-header h4{color:var(--navy);margin:0;font-size:16px;font-weight:700}.ship-card-badge{border-radius:2px;padding:3px 7px;font:700 9px system-ui,sans-serif}.ship-card-badge.flagship{color:#102f37;background:#d7b66c}.ship-card-badge.fleet{color:#082a32;background:#73b58c}.ship-card-badge.auto_trade{color:#fff;background:#5a8bb0}.ship-card-badge.docked{color:#333;background:#b0a89a}.ship-specs-grid{background:#ffffff80;border:1px solid #ded4c1;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0;padding:8px;font-size:11px;display:grid}.ship-specs-grid div{flex-direction:column;gap:2px;display:flex}.ship-specs-grid dt{color:#6b777a;font-size:9px;font-weight:600}.ship-specs-grid dd{color:var(--navy);margin:0;font-weight:700}.ship-lore{color:#5a6669;margin:6px 0;font-size:11px;line-height:1.5}.ship-card-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ship-card-actions button{min-height:38px;color:var(--navy);cursor:pointer;background:#fff;border:1px solid #6c898b;padding:6px 12px;font:700 11px system-ui,sans-serif}.ship-card-actions button.primary{color:#102f37;background:#d7b66c;border-color:#c58a2a}.ship-card-actions button.danger{color:var(--red);border-color:#a97c71}.ship-rename-input{min-width:120px;min-height:38px;font:inherit;border:1px solid #b8aa92;flex:1;padding:4px 8px;font-size:12px}.autotrade-create-box{background:#fdfbf7;border:1px solid #d7b66c;margin-bottom:14px;padding:12px}.autotrade-create-box h4{color:var(--navy);margin:0 0 8px;font-size:14px}.autotrade-form-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.autotrade-form-group{flex-direction:column;gap:3px;display:flex}.autotrade-form-group label{color:#6b777a;font-size:10px;font-weight:700}.autotrade-form-group select,.autotrade-form-group input{background:#fff;border:1px solid #b8aa92;min-height:38px;padding:6px;font-family:inherit;font-size:12px}.autotrade-hint{color:#667275;margin:6px 0;font-size:10px}.autotrade-route-card{background:#faf5e9;border:1px solid #b8aa92;margin-bottom:10px;padding:12px}.autotrade-route-header{justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.autotrade-route-header strong{color:var(--navy);font-size:14px}.autotrade-status-tag{border-radius:2px;padding:2px 6px;font:700 9px system-ui,sans-serif}.autotrade-status-tag.active{color:#082a32;background:#73b58c}.autotrade-status-tag.paused{color:#333;background:#b0a89a}.autotrade-stats{background:#ffffff80;border:1px solid #ded4c1;grid-template-columns:repeat(2,1fr);gap:6px;margin:8px 0;padding:8px;font-size:11px;display:grid}.autotrade-stats div{flex-direction:column;display:flex}.autotrade-stats dt{color:#6b777a;font-size:9px}.autotrade-stats dd{margin:0;font-weight:700}.autotrade-stats dd.profit{color:#245c45}.autotrade-actions{gap:6px;margin-top:8px;display:flex}.autotrade-actions button{cursor:pointer;background:#fff;border:1px solid #6c898b;flex:1;min-height:38px;padding:6px;font:700 11px system-ui,sans-serif}.autotrade-actions button.danger{color:var(--red);border-color:#a97c71}.supply-tag{color:#fff;vertical-align:middle;background:linear-gradient(135deg,#2b6d80,#4b9bb0);border-radius:2px;margin-left:8px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-block}.availability.supply-only{color:#dbeefc;background:linear-gradient(135deg,#1b3a59,#38648c);border-color:#66a1d4}.supply-notice{background:#f0f7fa;border:1px solid #7ea3b5;border-radius:3px;margin:12px 0;padding:16px}.supply-notice p{color:#1e3a47;margin:0 0 12px;font-size:12px;line-height:1.6}.mini-map-frame{z-index:17;top:max(84px, calc(env(safe-area-inset-top) + 76px));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#082a32eb;border:1px solid #d7b66cbf;border-radius:4px;width:242px;transition:all .2s ease-in-out;position:fixed;left:18px;overflow:hidden;box-shadow:0 8px 24px #00121773}.mini-map-frame.collapsed{width:auto;min-width:120px}.mini-map-header{background:#0e1924d9;border-bottom:1px solid #d7b66c4d;justify-content:space-between;align-items:center;padding:5px 8px;display:flex}.mini-map-title{color:#e3bd72;letter-spacing:.06em;white-space:nowrap;font:700 10px system-ui,sans-serif}.mini-map-toggle{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:2px;min-height:22px;padding:2px 7px;font:700 9px system-ui,sans-serif}.mini-map-toggle:hover{background:#fff3}.mini-map-body{flex-direction:column;align-items:center;padding:4px;display:flex}.mini-map-canvas{cursor:crosshair;background:#0a1926;border:1px solid #648ca559;border-radius:2px;width:232px;height:154px;display:block}.mini-map-legend{color:#cad5d2;justify-content:space-around;width:100%;padding-top:4px;font:600 8px system-ui,sans-serif;display:flex}.mini-map-legend span{align-items:center;gap:3px;display:inline-flex}.mini-map-legend .dot{border-radius:50%;width:6px;height:6px;display:inline-block}.mini-map-legend .ship-dot{background:#e5c158;box-shadow:0 0 4px #e5c158}.mini-map-legend .current-dot{background:#73b58c}.mini-map-legend .port-dot{background:#d7b66c}.mini-map-legend .supply-dot{background:#5cb8d6;border-radius:0;width:5px;height:5px;transform:rotate(45deg)}.event-console-container{z-index:18;right:50%;bottom:max(90px, calc(env(safe-area-inset-bottom) + 84px));pointer-events:auto;width:min(630px,100vw - 36px);transition:bottom .2s;position:fixed;transform:translate(50%)}.panel-open .event-console-container{opacity:0;pointer-events:none}.event-message-bar{color:#f8f0df;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#082a32f0;border:1px solid #d7b66c99;border-left:4px solid #e3bd72;border-radius:3px;justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;transition:border-color .3s,background .3s;display:flex;box-shadow:0 4px 16px #00121759}.event-message-bar.pulse{background:#0e3742f5;border-left-color:#ffd875;box-shadow:0 0 14px #e3bd7259}.event-message-main{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.event-category-badge{letter-spacing:.05em;white-space:nowrap;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 7px;font:800 9px system-ui,sans-serif;display:inline-flex}.event-category-badge.voyage{color:#fff;background:linear-gradient(135deg,#a0630d,#d69824);border:1px solid #ffd875}.event-category-badge.dock{color:#fff;background:linear-gradient(135deg,#1f6e43,#48995e);border:1px solid #8be0a5}.event-category-badge.weather{color:#fff;background:linear-gradient(135deg,#2b6d80,#4b9bb0);border:1px solid #88d4e8}.event-category-badge.season{color:#fff;background:linear-gradient(135deg,#913a14,#be5f26);border:1px solid #ffa366}.event-category-badge.trade{color:#fff;background:linear-gradient(135deg,#326d40,#5c9948);border:1px solid #99e08b}.event-category-badge.autotrade{color:#fff;background:linear-gradient(135deg,#2a5a80,#4684b0);border:1px solid #84c0e8}.event-category-badge.discovery{color:#fff;background:linear-gradient(135deg,#5b307d,#894bb5);border:1px solid #cb96f5}.event-category-badge.alert{color:#fff;background:linear-gradient(135deg,#8a2020,#bd3535);border:1px solid #ff7a7a}.event-category-badge.system{color:#fff;background:linear-gradient(135deg,#48545e,#6e7e8a);border:1px solid #9bb0bf}.event-message-text{color:#f5eedb;text-overflow:ellipsis;white-space:nowrap;font:600 11px/1.4 system-ui,sans-serif;overflow:hidden}.event-log-toggle{color:#e5c158;cursor:pointer;white-space:nowrap;background:#ffffff0f;border:1px solid #d7b66c66;border-radius:2px;flex-shrink:0;min-height:28px;padding:4px 10px;font:700 10px system-ui,sans-serif}.event-log-toggle:hover{background:#d7b66c26;border-color:#d7b66c}.event-log-drawer{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08242cf5;border:1px solid #d7b66c99;border-radius:3px;flex-direction:column;max-height:220px;animation:.16s ease-out panel-enter;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 10px 30px #000f1480}.event-log-drawer-header{color:#e3bd72;background:#0e1924e6;border-bottom:1px solid #d7b66c4d;justify-content:space-between;align-items:center;padding:7px 12px;font:700 10px system-ui,sans-serif;display:flex}.event-log-drawer-header span{color:#aebfbd;font-size:9px}.event-log-list{overscroll-behavior:contain;flex-direction:column;gap:4px;margin:0;padding:6px 10px;list-style:none;display:flex;overflow-y:auto}.event-log-empty{color:#8fa09d;text-align:center;padding:12px 0;font:600 10px system-ui,sans-serif}.event-log-entry{border-bottom:1px solid #ffffff0d;align-items:center;gap:8px;padding:4px 6px;font-size:10px;display:flex}.event-entry-badge{white-space:nowrap;border-radius:2px;padding:1px 5px;font:700 8px system-ui,sans-serif}.event-entry-badge.voyage{color:#fff;background:#a0630d}.event-entry-badge.dock{color:#fff;background:#1f6e43}.event-entry-badge.weather{color:#fff;background:#2b6d80}.event-entry-badge.season{color:#fff;background:#913a14}.event-entry-badge.trade{color:#fff;background:#326d40}.event-entry-badge.autotrade{color:#fff;background:#2a5a80}.event-entry-badge.discovery{color:#fff;background:#5b307d}.event-entry-badge.alert{color:#fff;background:#8a2020}.event-entry-badge.system{color:#fff;background:#48545e}.event-entry-text{color:#e5edea;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.event-entry-time{color:#8fa09d;white-space:nowrap;font:600 8px system-ui,sans-serif}.tavern-panel{flex-direction:column;gap:16px;padding:4px 0 20px;display:flex}.tavern-fame-card{background:linear-gradient(135deg,#1a2639f2,#0f1724f2);border:1px solid #d4af3766;border-radius:8px;padding:14px 16px;box-shadow:0 4px 16px #0006,inset 0 1px #ffffff1a}.tavern-fame-card .fame-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tavern-fame-card .fame-label{color:#9cb0a8;text-transform:uppercase;letter-spacing:.5px;font-size:11px}.tavern-fame-card .fame-title{color:#f7d358;text-shadow:0 0 12px #f7d35866;font-size:15px;font-weight:700}.tavern-fame-card .fame-stats{background:#00000040;border-radius:6px;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px;padding:8px 10px;display:grid}.tavern-fame-card .fame-stats div{text-align:center;flex-direction:column;align-items:center;display:flex}.tavern-fame-card .fame-stats span{color:#8fa09d;font-size:10px}.tavern-fame-card .fame-stats strong{color:#e5edea;font-size:12px}.tavern-fame-card .fame-perk{color:#a8d5c8;margin:0;font-size:11px;line-height:1.4}.tavern-section{flex-direction:column;gap:10px;display:flex}.tavern-section .section-title-wrap{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding-bottom:4px;display:flex}.tavern-section h4{color:#d1dfdb;margin:0;font-size:13px;font-weight:700}.empty-quests{text-align:center;color:#8fa09d;background:#0003;border:1px dashed #ffffff26;border-radius:6px;margin:0;padding:16px;font-size:11px}.quest-list{flex-direction:column;gap:10px;display:flex}.quest-card{background:#121c28d9;border:1px solid #ffffff1f;border-radius:6px;flex-direction:column;gap:8px;padding:12px;transition:all .2s;display:flex}.quest-card:hover{background:#182636e6;border-color:#ffffff40}.quest-card.ready-to-complete{background:linear-gradient(135deg,#1e2a23e6,#121c28e6);border-color:#f7d358;box-shadow:0 0 14px #f7d35840}.quest-header{align-items:center;gap:8px;display:flex}.quest-badge{white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.quest-badge.delivery{color:#fff;background:#a0630d}.quest-badge.transport{color:#fff;background:#1f6e43}.quest-badge.survey{color:#fff;background:#2a5a80}.quest-header h5{color:#e5edea;margin:0;font-size:12px;font-weight:700}.quest-desc{color:#b0c2bc;margin:0;font-size:11px;line-height:1.4}.quest-details{background:#0003;border-radius:4px;grid-template-columns:repeat(2,1fr);gap:4px 8px;padding:6px 8px;font-size:10px;display:grid}.quest-details div{align-items:center;gap:4px;display:flex}.quest-details span{color:#8fa09d}.quest-details strong{color:#e5edea}.quest-details .reward-gold{color:#f7d358}.quest-details .reward-fame{color:#6ee7b7}.quest-details .expired{color:#ef4444}.quest-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.quest-status-hint{color:#fcd34d;margin-right:auto;font-size:10px}.quest-accept-btn,.quest-complete-btn,.quest-abandon-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;padding:6px 12px;font-family:inherit;font-size:11px;font-weight:600;transition:all .15s}.quest-accept-btn{color:#fff;background:#2b6d80;border-color:#3b889d}.quest-accept-btn:hover:not(:disabled){background:#358399}.quest-accept-btn:disabled{color:#6b7c77;cursor:not-allowed;background:#ffffff14}.quest-complete-btn{color:#fff;background:linear-gradient(135deg,#d97706,#b45309);border-color:#f59e0b;animation:2s infinite pulse-glow;box-shadow:0 2px 8px #d9770666}.quest-complete-btn:hover{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px #f59e0b66}50%{box-shadow:0 0 16px #f59e0bcc}}.quest-abandon-btn{color:#b0c2bc;background:#ffffff0f;border-color:#ffffff1a}.quest-abandon-btn:hover{color:#fca5a5;background:#ef444433;border-color:#ef444466}.voyage-event-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1200;background:#050c14d9;justify-content:center;align-items:center;padding:16px;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.voyage-event-modal-window{background:linear-gradient(145deg,#162436,#0d1724);border:1px solid #d4af3780;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:480px;padding:24px;display:flex;box-shadow:0 12px 36px #000000b3,0 0 20px #d4af3726}.voyage-event-header{align-items:center;gap:10px;display:flex}.voyage-event-title{color:#f7d358;margin:0;font-size:17px;font-weight:700}.voyage-event-desc{color:#d1dfdb;margin:0;font-size:13px;line-height:1.5}.voyage-event-options{flex-direction:column;gap:10px;margin-top:8px;display:flex}.voyage-event-option-btn{cursor:pointer;text-align:left;background:#ffffff0d;border:1px solid #ffffff26;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;font-family:inherit;transition:all .2s;display:flex}.voyage-event-option-btn:hover{background:#2b6d8059;border-color:#3b889d;transform:translateY(-1px)}.voyage-event-option-btn strong{color:#e5edea;font-size:13px}.voyage-event-option-btn small{color:#9cb0a8;font-size:11px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.market-modal-overlay{z-index:55;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#05141ac7;justify-content:center;align-items:center;animation:.2s cubic-bezier(.16,1,.3,1) marketFadeIn;display:flex;position:fixed;inset:0}@keyframes marketFadeIn{0%{opacity:0}to{opacity:1}}@keyframes marketPopIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.market-modal-window{background:var(--paper,#f3eddf);width:min(1380px,96vw);height:min(88vh,880px);color:var(--ink,#203238);border:1px solid #fff9;border-radius:6px;flex-direction:column;animation:.22s cubic-bezier(.16,1,.3,1) marketPopIn;display:flex;overflow:hidden;box-shadow:0 25px 80px #000a0f99,inset 0 0 0 1px #dfd4bf}.market-header{color:#f8f0df;background:linear-gradient(135deg,#0f353e,#184c58);border-bottom:2px solid #c58a2a;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:10px 18px;display:flex}.market-header-brand{flex-direction:column;gap:2px;display:flex}.market-header-sub{color:#d7b66c;letter-spacing:.14em;font:700 9px system-ui,sans-serif}.market-header-title{align-items:center;gap:8px;margin:0;font-size:20px;font-weight:700;display:flex}.market-header-badge{border-radius:3px;padding:2px 7px;font-family:system-ui,sans-serif;font-size:10px;font-weight:700}.market-header-badge.tradeable{color:#fff;background:#1f6e43;border:1px solid #8be0a5}.market-header-badge.supply-only{color:#fff;background:#a0630d;border:1px solid #ffd875}.market-header-stats{background:#00000047;border:1px solid #ffffff24;border-radius:4px;align-items:center;gap:14px;padding:6px 14px;display:flex}.market-stat-item{flex-direction:column;gap:1px;display:flex}.market-stat-item.divider{background:#ffffff2e;width:1px;height:24px;margin:0 4px}.market-stat-label{color:#badbd4;letter-spacing:.06em;font:700 9px system-ui,sans-serif}.market-stat-value{color:#fff;font:800 14px system-ui,sans-serif}.market-stat-value.gold{color:#ffd77a}.market-stat-value.cargo{color:#a7f3d0}.market-stat-value.valuation{color:#e2e8f0}.market-header-close{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff6b;border-radius:4px;justify-content:center;align-items:center;gap:4px;min-width:76px;min-height:38px;font:700 12px system-ui,sans-serif;transition:all .15s;display:inline-flex}.market-header-close:hover{background:#ffffff3d;border-color:#ffffffb3}.market-utility-bar{background:#e9e0cf;border-bottom:1px solid #d4c7b1;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.market-provisions-strip{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.market-provisions-title{color:#123d47;border-right:1px solid #cfc0a8;align-items:center;gap:4px;padding-right:6px;font:700 11px system-ui,sans-serif;display:flex}.market-provision-box{background:#fdfaf3;border:1px solid #d2c5b0;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;display:flex}.market-provision-label{color:#203238;font:700 12px Yu Mincho,serif}.market-provision-count{color:#123d47;min-width:32px;font:800 13px system-ui,sans-serif}.market-provision-btns{gap:3px;display:flex}.market-provision-btns button{color:#123d47;cursor:pointer;background:#f1e7d5;border:1px solid #b8aa92;border-radius:3px;min-height:26px;padding:2px 7px;font:800 10px system-ui,sans-serif}.market-provision-btns button:hover:not(:disabled){background:#e2d4bc;border-color:#9c896d}.market-exploration-strip{border-left:1px solid #cfc0a8;align-items:center;gap:6px;padding-left:8px;display:flex}.market-exploration-item{background:#fdfaf3;border:1px solid #d2c5b0;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.market-exploration-item button{color:#102f37;cursor:pointer;background:#e3bd72;border:1px solid #c58a2a;border-radius:3px;padding:2px 8px;font:700 10px system-ui,sans-serif}.market-exploration-item button:hover:not(:disabled){background:#f0cc7d}.market-controls-strip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.market-filter-tabs{background:#ded2be;border:1px solid #cbbeaa;border-radius:4px;padding:2px;display:flex}.market-filter-tab{color:#4b585c;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 10px;font:700 11px system-ui,sans-serif;transition:all .12s}.market-filter-tab.active{color:#fff;background:#123d47;box-shadow:0 1px 3px #00000026}.market-search-input{color:#203238;background:#fdfaf3;border:1px solid #b8aa92;border-radius:3px;width:110px;height:28px;padding:2px 8px;font:11px system-ui,sans-serif}.market-sort-select{color:#123d47;background:#fdfaf3;border:1px solid #b8aa92;border-radius:3px;height:28px;padding:2px 6px;font:700 11px system-ui,sans-serif}.market-show-all-label{color:#3f4e52;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font:700 11px system-ui,sans-serif;display:inline-flex}.market-show-all-label input{accent-color:#123d47;width:14px;height:14px}.market-scroll-area{overscroll-behavior:contain;background:#f7f2e7;flex:auto;min-height:0;padding:14px 16px;overflow-y:auto}.market-goods-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:1200px){.market-goods-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.market-goods-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:540px){.market-goods-grid{grid-template-columns:1fr}}.market-card{background:#fdfbf7;border:1px solid #dcd1be;border-radius:5px;flex-direction:column;justify-content:space-between;padding:10px 12px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative;box-shadow:0 2px 6px #000f140d}.market-card:hover{border-color:#bfae93;transform:translateY(-1px);box-shadow:0 5px 14px #000f141a}.market-card.is-specialty{background:linear-gradient(#f7fbfd 0%,#fdfbf7 25%);border-left:3px solid #24617a}.market-card.has-cargo{border-right:3px solid #b87a1e}.market-card-head{border-bottom:1px solid #ebd9c0;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:8px;padding-bottom:6px;display:flex}.market-card-title-group{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.market-card-name{color:#123d47;margin:0;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:16px;font-weight:700}.market-card-unit{color:#6e7a7c;font-family:system-ui,sans-serif;font-size:10px}.market-card-tags{flex-shrink:0;gap:4px;display:flex}.market-tag{letter-spacing:.02em;border-radius:2px;padding:1px 5px;font:800 9px system-ui,sans-serif}.market-tag.specialty{color:#195267;background:#e2f0f7;border:1px solid #8ec1d4}.market-tag.cargo{color:#8c571a;background:#faefe0;border:1px solid #dfb987}.market-card-metrics{background:#f4ecdf;border-radius:4px;grid-template-columns:1.1fr .9fr;gap:6px;margin-bottom:8px;padding:6px 8px;display:grid}.market-metric-box{flex-direction:column;display:flex}.market-metric-box dt{color:#6f7c7e;margin:0;font:700 9px system-ui,sans-serif}.market-metric-box dd{align-items:baseline;gap:4px;margin:1px 0 0;display:flex}.market-price-text{color:#123d47;font:800 15px system-ui,sans-serif}.market-price-text .currency{color:#c58a2a;font-size:11px;font-weight:700}.market-rate-badge{font:700 10px system-ui,sans-serif}.market-rate-badge.up{color:#a83b2e}.market-rate-badge.down{color:#1a6480}.market-rate-badge.flat{color:#627073}.market-cargo-text{color:#123d47;font:800 13px system-ui,sans-serif}.market-capacity-text{color:#607073;font:600 10px system-ui,sans-serif}.market-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.market-card-actions button{cursor:pointer;white-space:nowrap;border-radius:3px;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:32px;padding:3px 2px;font:700 11px system-ui,sans-serif;transition:all .1s;display:inline-flex}.market-card-actions button:disabled{opacity:.38;cursor:not-allowed;color:#8c9799!important;background:#e5ded0!important;border-color:#cfc4af!important}.market-card-actions .btn-buy{color:#123d47;background:#fbf6ea;border:1px solid #7c9c9d}.market-card-actions .btn-buy:hover:not(:disabled){background:#eef7f4;border-color:#24617a}.market-card-actions .btn-buy-max{color:#123d47;background:#e8ded0;border:1px solid #a69477;font-weight:800}.market-card-actions .btn-buy-max:hover:not(:disabled){background:#d8c9b3;border-color:#7b6a4f}.market-card-actions .btn-sell{color:#9c3f31;background:#fdf4f2;border:1px solid #c99388}.market-card-actions .btn-sell:hover:not(:disabled){background:#f9e2de;border-color:#a84232}.market-card-actions .btn-sell-max{color:#9c3f31;background:#fae8e5;border:1px solid #c78d82;font-weight:800}.market-card-actions .btn-sell-max:hover:not(:disabled){background:#f0cfc8;border-color:#8c2b1d}.market-empty-state{text-align:center;color:#6d7b7e;background:#f4ecde;border:1px dashed #cfc2ad;border-radius:6px;grid-column:1/-1;padding:40px 20px;font-size:13px}.market-supply-notice{text-align:center;background:#ede3d2;border:1px solid #cdbfa9;border-radius:6px;margin:20px;padding:30px 20px}.market-supply-notice h3{color:#123d47;margin:0 0 10px;font-size:18px}.market-supply-notice p{color:#556265;max-width:500px;margin:0 auto 16px;font-size:13px;line-height:1.6}
