:root{color-scheme:light dark;--page:#f4f7fb;--surface:#fff;--raised:#eaf0f7;--ink:#142334;--ink-2:#4b6075;--muted:#4b6075;--line:#cbd6e2;--hairline:var(--line);--border:var(--line);--soft:var(--raised);--accent:#075dcc;--action:#075dcc;--good:#087b50;--success:var(--good);--critical:#b32936;--critical-soft:#fff0f0;--warning:#825500;--focus:#075dcc;--control-border:#6d8095}@media(prefers-color-scheme:dark){:root{--page:#08131e;--surface:#101f2e;--raised:#172a3d;--ink:#f3f7fc;--ink-2:#a8bbcf;--muted:#a8bbcf;--line:#30445b;--accent:#80b9ff;--action:#0866e8;--good:#2ce5a4;--critical:#ff99a5;--critical-soft:#3b2029;--warning:#ffd08a;--focus:#80b9ff;--control-border:#7a91a9}}*{box-sizing:border-box}html{scroll-padding-bottom:100px}body{margin:0;background:var(--page);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}button,input,select,textarea{font:inherit}button,select,input:not([type=checkbox]):not([type=radio]),textarea{min-height:44px;border-radius:12px}input,select,textarea{color:var(--ink);background:var(--raised);border:1px solid var(--control-border);max-width:100%}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}section[id]{scroll-margin-top:24px}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}.app-icon{width:24px;height:24px;flex-shrink:0;vertical-align:middle}.app-header.app-header{width:min(1600px,100%);padding:calc(16px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left));gap:16px;align-items:center}.app-header__identity{flex-wrap:wrap;gap:4px 10px;flex-shrink:1}.app-header__brand{font-size:23px;color:var(--ink);display:inline-flex;align-items:center;gap:8px}.app-header__brand:before{content:"";display:inline-block;width:28px;height:30px;background:currentColor;-webkit-mask:url(/anchor.svg) center/contain no-repeat;mask:url(/anchor.svg) center/contain no-repeat}.app-header .app-header__identity h1{font-size:14px;color:var(--ink-2);line-height:1.4}.app-header__separator{display:none}.app-header__marina{color:var(--ink-2);font-size:14px}.live-header .status-copy{display:grid;line-height:1.25}.live-header .status-feed-time,.live-header .status-updated{font-size:12px;white-space:nowrap}.app-nav{margin-left:auto;flex-shrink:0}.app-nav__primary{display:flex!important;gap:4px}.app-nav__primary a,.app-nav__more{display:flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:8px 12px;border:0;border-radius:12px;color:var(--ink-2);background:transparent;text-decoration:none;font:600 14px/1.3 system-ui,sans-serif}.app-nav__primary a[aria-current],.app-nav__more.is-current{background:var(--raised);color:var(--accent)}.app-nav__backdrop{position:fixed;inset:0;z-index:3000;background:#0008;display:flex;justify-content:flex-end;align-items:flex-start;padding:80px 24px 24px}.app-nav__menu{position:static;width:min(380px,100%);max-height:calc(100dvh - 104px);overflow:auto;padding:20px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 16px 60px #0005}.app-nav__panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.app-nav__panel-heading h2{margin:0}.app-nav__menu a,.app-nav__menu button{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-decoration:none;font:inherit}.app-nav__menu a:hover,.app-nav__menu button:hover{background:var(--raised)}.app-nav__menu a[aria-current]{color:var(--accent);background:var(--raised)}.app-nav__identity{font-size:14px;color:var(--ink-2);padding:12px;overflow-wrap:anywhere}.app-nav__menu h3{margin:16px 12px 4px;font-size:14px;color:var(--ink-2)}@media(max-width:959px){body:has(.app-nav){padding-bottom:calc(88px + env(safe-area-inset-bottom))}.app-header.app-header{flex-wrap:wrap}.app-header__identity{flex:1}.app-nav{position:fixed;z-index:1100;bottom:0;left:0;right:0;width:100%;margin:0;border-top:1px solid var(--line);background:var(--surface);padding:4px max(8px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.app-nav__primary{width:100%;justify-content:space-around}.app-nav__primary a,.app-nav__more{flex:1;flex-direction:column;gap:3px;min-height:56px;padding:4px;font-size:12px}.app-nav__backdrop{align-items:flex-end;padding:16px 0 0}.app-nav__menu{width:100%;max-height:calc(100dvh - 32px);border-radius:24px 24px 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.live-workspace,.live-metrics{width:min(1600px,100%);margin-inline:auto}.live-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:8px 16px 20px}.live-metrics .metric{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto;grid-template-areas:"icon value" "icon copy";align-items:center;gap:0 12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);min-width:0}.metric-icon{grid-area:icon;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--raised);color:var(--accent)}.metric-icon .app-icon{width:28px;height:28px}.metric-icon.movement-icon{color:var(--good)}.metric-icon.tracked-icon{color:var(--accent)}.live-metrics .metric strong{grid-area:value;font-size:32px;line-height:1.05;font-variant-numeric:tabular-nums}.metric-copy{grid-area:copy;display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:2px 6px}.metric-label{color:var(--ink-2);font-size:14px;font-weight:600;line-height:1.25}.metric-copy small{color:var(--muted);font-size:12px;line-height:1.2}.watch-heading h2{color:var(--ink);font-size:22px;letter-spacing:-.02em;text-transform:none}.row{padding:16px;border-radius:18px;gap:12px;border-color:var(--control-border)}.row .name{font-size:18px;white-space:normal;overflow-wrap:anywhere}.row .meta,.row .eta .in{font-size:14px}.row .eta{flex-shrink:0}.row .eta .t{font-size:20px}.row-kicker{font-size:12px}.row>.app-icon{width:32px;height:32px;color:var(--ink-2)}.vessel-chip{display:inline-block;border-radius:6px;background:var(--raised);padding:2px 6px;margin:4px 4px 2px 0;font-size:13px}.arrival-action{min-height:44px;background:var(--action);border-color:var(--action);color:#fff;font-size:16px;border-radius:12px}.map-action{min-height:44px;border-color:var(--control-border);font-size:14px}.view-settings{border:1px solid var(--line);border-radius:12px;padding:4px 12px;margin-bottom:16px}.view-settings summary{min-height:44px;align-content:center}.empty{font-size:14px;padding:20px;background:var(--surface);border-radius:16px}.sheet,.manual-dialog{border-radius:20px}.sheet button,.manual-dialog button{min-height:44px}.sheet-actions{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:959px){.watch-heading{flex-wrap:wrap}.live-metrics .metric{grid-template-columns:36px minmax(0,1fr);gap:0 8px;padding:10px}.metric-icon{width:36px;height:36px}.metric-icon .app-icon{width:22px;height:22px}.live-metrics .metric strong{font-size:26px}.metric-label{font-size:12px}.metric-copy small{font-size:11px}#map{height:clamp(280px,40dvh,360px)}.app-header .date{display:none}.status{margin-left:auto;max-width:45%;align-items:flex-start;font-size:13px}.status-copy{display:grid;justify-items:end;line-height:1.25;text-align:right}.status-updated{color:var(--muted);font-size:12px;white-space:nowrap}}@media(max-width:359px){.live-metrics{grid-template-columns:1fr}.metric{display:grid;grid-template-columns:1fr auto}.metric small{grid-column:1}.metric strong{grid-row:1 / span 2;grid-column:2}}.live-state-warning{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 16px;padding:14px;border:1px solid var(--warning);border-radius:14px;color:var(--warning);background:var(--surface)}.live-state-warning button{min-height:44px;padding:6px 14px}.stale-copy{color:var(--warning)}body[data-tenant-page=arrivals] main,body[data-tenant-page=planning] main,body[data-tenant-page=audit] main,body[data-tenant-page=tenant-settings] main,body[data-tenant-page=changelog] main{padding-top:16px}body[data-tenant-page=arrivals] section,body[data-tenant-page=planning] section,body[data-tenant-page=tenant-settings] section{border-radius:16px;border-color:var(--line)}body[data-tenant-page=arrivals] button,body[data-tenant-page=planning] button,body[data-tenant-page=tenant-settings] button{min-height:44px;border-radius:10px}body[data-tenant-page=arrivals] input,body[data-tenant-page=planning] input,body[data-tenant-page=tenant-settings] input,body[data-tenant-page=tenant-settings] select{border-radius:10px;border:1px solid var(--control-border)}body[data-tenant-page=tenant-settings] main{display:grid;gap:14px}body[data-tenant-page=tenant-settings] section{margin:0}body[data-tenant-page=tenant-settings] h2{font-size:20px}body[data-tenant-page=audit] .log{display:grid;gap:8px}body[data-tenant-page=audit] .event{display:grid;grid-template-columns:minmax(160px,220px) minmax(120px,180px) minmax(160px,1fr) minmax(120px,1fr);gap:8px 16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow-wrap:anywhere}body[data-tenant-page=audit] .time{color:var(--ink-2);font-variant-numeric:tabular-nums}body[data-tenant-page=audit] .actor{font-weight:650}body[data-tenant-page=audit] .action{font-weight:600}body[data-tenant-page=changelog] .release{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}body[data-tenant-page=changelog] h2{font-size:20px}body[data-tenant-page=changelog] .change{border-top:1px solid var(--line);padding:14px 0}@media(max-width:700px){body[data-tenant-page=audit] .event{grid-template-columns:1fr;gap:4px}body[data-tenant-page=audit] .time{font-size:14px}body[data-tenant-page=tenant-settings] form{grid-template-columns:1fr}.live-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric{padding:10px}.metric strong{font-size:clamp(24px,7vw,32px)}}@media(max-width:359px){.live-metrics{grid-template-columns:1fr}}.live-header .app-header__brand:before{display:none}.live-header .app-header__brand{gap:10px}.live-brand-mark{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:10px;background:var(--action);color:#fff}.live-brand-mark .app-icon{width:26px;height:26px}.live-workspace>.live-lists>.watch-list,.live-workspace>.journal-section{border:1px solid var(--line);border-radius:20px;background:var(--surface)}.live-workspace>.live-lists>.watch-list{padding:16px}.live-workspace>.live-lists>.watch-list .watch-heading{margin:0 0 12px}.live-workspace>.live-lists>.watch-list .watch-heading h2{line-height:1.2}.live-workspace>.live-lists>.watch-list .view-settings{margin:0 0 10px;border-radius:12px}.live-workspace>.live-lists>.watch-list .row{background:var(--page);border-color:var(--line)}.live-workspace>.live-lists>.watch-list .row.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface))}.live-workspace>.journal-section{padding:10px 16px 12px}.live-workspace>.journal-section .collapsible{color:var(--ink);font-size:19px;font-weight:700;text-transform:none;letter-spacing:-.015em}.live-workspace>.journal-section .collapsible .count{color:var(--ink-2)}.live-workspace>.map-section{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:0}.live-workspace>.map-section .map-header{position:absolute;z-index:4;top:16px;left:16px;margin:0}.live-workspace>.map-section .map-actions{gap:2px;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.live-workspace>.map-section .map-action{min-height:40px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font-size:14px}.live-workspace>.map-section .map-action[aria-pressed=true]{background:var(--action);color:#fff}.live-workspace>.map-section #map{height:100%;min-height:280px;border:0;border-radius:inherit}.live-workspace>.map-section .map-title-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:960px){.live-workspace>.map-section{position:sticky;top:12px}.live-workspace>.map-section .map-header{flex-shrink:0}.live-workspace>.map-section #map{flex:1;min-height:0;height:auto}.live-header .status-updated{display:block}}@media(max-width:959px){.live-workspace{display:flex;flex-direction:column;gap:12px}.live-header .live-page-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.live-header .status{align-items:flex-start}.live-header .status-copy{display:grid;justify-items:end;line-height:1.25;text-align:right}.live-header .status-feed-time{color:var(--ink-2);font-size:12px;white-space:nowrap}.live-header .status-updated{color:var(--muted);font-size:12px;white-space:nowrap}.live-workspace>.live-lists>.watch-list{display:flex;flex-direction:column}.live-workspace>.live-lists>.watch-list,.live-workspace>.journal-section,.live-workspace>.map-section{width:calc(100% - 32px);margin-inline:auto}.live-metrics .metric{grid-template-areas:"icon value" "copy copy"}.live-workspace>.live-lists>.watch-list .watch-heading{display:contents}.live-workspace>.live-lists>.watch-list .watch-heading h2{order:0;margin-bottom:12px}.live-workspace>.live-lists>.watch-list .view-settings{order:1}.live-workspace>.live-lists>.watch-list #expected{order:2}.live-workspace>.live-lists>.watch-list .arrival-action{order:3;width:100%;justify-content:center;margin:10px 0 0}.live-workspace>.map-section #map{height:clamp(280px,40dvh,360px)}}.live-workspace>.map-section .maplibregl-ctrl-top-left{top:64px;left:6px}.live-workspace>.map-section .maplibregl-ctrl-top-left .maplibregl-ctrl{margin:10px}@media(min-width:1440px){.live-workspace{grid-template-columns:360px minmax(0,1fr)}.live-workspace.has-selected-vessel{grid-template-columns:360px 340px minmax(0,1fr)}.live-workspace>.live-lists>.watch-list .row{gap:10px;padding:12px;border-radius:14px}.live-workspace>.live-lists>.watch-list .row .name{font-size:17px;line-height:1.2;white-space:normal;overflow-wrap:break-word}.live-workspace>.live-lists>.watch-list .row .meta{line-height:1.35}.live-workspace>.live-lists>.watch-list .row .eta{min-width:72px}.live-workspace>.live-lists>.watch-list .vessel-chip{margin:3px 4px 1px 0;padding:2px 6px;font-size:12px}}@media(max-width:359px){.live-metrics .metric{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"icon value" "icon copy";gap:0 8px;padding:10px}.live-metrics .metric small{grid-column:auto}.live-metrics .metric strong{grid-row:auto;grid-column:auto}}
