/* Design tokens. mobile25.css declares the same names; this file loads last and is the shell palette. */
:root{
 --navy:#04283c;
 --ink:#0c2233;
 --ocean:#0a6284;
 --teal:#086b74;
 --accent:#0068d6;
 --accent-ink:#ffffff;
 --bg:#e7f3f6;
 --white:#ffffff;
 --line:#7590a0;
 --muted:#3d5568;
 --shadow:0 8px 22px #04283c24;
 --sea:#08344c;
 --sea-deep:#04283c;
 --sea-mid:#0e6e86;
 --sea-glow:#3ad4e0;
 --on-sea:#f4fbff;
 --on-sea-muted:#d5eaf6;
 --icon-bg:#dff6f7;
 --gold:#7a4e00;
 --warn-bg:#fff3cf;
 --warn-ink:#604600;
 --focus:#0068d6;
 --status-current-bg:#d9f8e8;
 --status-current-ink:#0b5c3b;
 --status-upcoming-bg:#d7f4f6;
 --status-upcoming-ink:#0a5560;
 --status-undated-bg:#fff1d6;
 --status-undated-ink:#6b4200;
 --status-completed-bg:#e4eef8;
 --status-completed-ink:#0c3a66;
 --status-archived-bg:#ece8f6;
 --status-archived-ink:#3d2f66
}
:root[data-theme="dark"]{
 --navy:#e7f3fb;
 --ink:#f4f8fb;
 --ocean:#8fd4ff;
 --teal:#7eefe6;
 --accent:#0068d6;
 --accent-ink:#ffffff;
 --bg:#07141f;
 --white:#102433;
 --line:#4e7390;
 --muted:#c5d5e2;
 --shadow:0 10px 28px #00000066;
 --icon-bg:#16384a;
 --gold:#f0c36a;
 --focus:#7ec8ff
}
#app{padding-bottom:calc(120px + env(safe-area-inset-bottom))}
.m25-more-create{margin:0 0 16px;scroll-margin-bottom:140px}
header{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--white);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.brand .tiny{color:var(--teal);font-weight:800}
.m25-head-actions{display:flex;align-items:center;gap:8px}
.m25-iconbtn,.m25-avatar{position:relative;width:44px;height:44px;border:0;border-radius:50%;background:var(--icon-bg);color:var(--navy);display:grid;place-items:center;padding:0}
.m25-avatar{background:var(--accent);color:var(--accent-ink);font-weight:800}
.m25-avatar svg{width:22px;height:22px}
.m25-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#d21f35;box-shadow:0 0 0 2px var(--white)}
.m25-test-pill{display:inline-block;margin:0 0 10px;padding:4px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:11px;font-weight:800}
.m25-banner{background:var(--warn-bg);color:var(--warn-ink)}
.m25-welcome-art{position:relative}
.m25-lang{position:absolute;top:12px;right:12px;display:flex;gap:4px;background:#ffffffee;border-radius:999px;padding:4px}
.m25-lang button{min-width:44px;min-height:36px;border:0;border-radius:999px;background:transparent;color:var(--ocean);font-weight:800}
.m25-lang button.active{background:var(--accent);color:var(--accent-ink)}
.m25-heading h1{font-size:32px;font-weight:800;line-height:1.15;letter-spacing:-.03em;color:var(--navy)}
.m25-heading .muted{font-size:15px;line-height:1.5;color:var(--muted)}
h2{font-size:22px;font-weight:800;letter-spacing:-.02em}
h3{font-size:17px;font-weight:750}
.m25-voyage h2{font-size:26px;font-weight:800;line-height:1.2;color:var(--on-sea)}
.m25-route-strip h2,.m25-map-board h2{font-size:20px;color:var(--on-sea)}
.m25-today h2{font-size:20px;color:var(--ink)}
.btn{background:var(--accent);color:var(--accent-ink);font-weight:800;box-shadow:0 8px 16px #0068d640}
.btn.ghost,.btn.outline,.btn.danger{box-shadow:none}
.card,.m25-tool,.m25-activity,.m25-chat-row,.m25-post,.m25-today,.m25-map-card,.m25-money-stat,.m25-expense,.m25-hourly,.m25-marina,.trip{box-shadow:var(--shadow)}
.m25-status{display:inline-flex;align-items:center;gap:6px;background:var(--status-upcoming-bg);color:var(--status-upcoming-ink)}
.m25-status svg{width:14px;height:14px;flex:none}
.m25-status-current{background:var(--status-current-bg);color:var(--status-current-ink)}
.m25-status-upcoming{background:var(--status-upcoming-bg);color:var(--status-upcoming-ink)}
.m25-status-undated{background:var(--status-undated-bg);color:var(--status-undated-ink)}
.m25-status-completed{background:var(--status-completed-bg);color:var(--status-completed-ink)}
.m25-status-archived{background:var(--status-archived-bg);color:var(--status-archived-ink)}
.m25-wx-sample{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px;color:var(--on-sea);font-size:13px}
.m25-wx-on-light{color:var(--ink)}
.m25-route-strip,.m25-today{margin:0 0 14px;padding:14px;border-radius:18px;background:var(--sea);color:var(--on-sea);box-shadow:var(--shadow)}
.m25-route-strip h2,.m25-today h2{margin:6px 0}
.m25-route-art{display:block;width:100%;height:96px;color:var(--sea-glow)}
.m25-today{background:var(--white);color:var(--ink);border:1px solid var(--line)}
.m25-weather-note{margin:0 0 12px;color:var(--ink);font-size:13px;line-height:1.45}
.m25-map-board,.m25-map-card{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--white);color:var(--ink)}
.m25-map-board{background:var(--sea);color:var(--on-sea)}
.m25-map-board .muted,.m25-map-board p{color:var(--on-sea-muted)}
.m25-map-markers{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.m25-map-marker{min-height:44px;border:0;border-radius:999px;padding:8px 12px;background:var(--icon-bg);color:var(--sea);font-weight:700}
.m25-map-marker.active{background:var(--accent);color:var(--accent-ink)}
.m25-map-actions{display:flex;gap:8px;flex-wrap:wrap}
.m25-map-card .m25-wx-on-light{color:var(--ink)}
.m25-chat-row{display:flex;justify-content:space-between;gap:12px;width:100%;min-height:64px;margin:0 0 8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--white);color:var(--ink);text-align:left}
.m25-chat-row small{display:block;color:var(--muted);margin-top:4px}
.m25-chat-row time{flex-shrink:0;color:var(--muted);font-size:12px}
.m25-chat-new{margin:10px 0}
.m25-post{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--white)}
.m25-photo{display:grid;place-items:center;height:120px;margin:8px 0;border-radius:14px;background:var(--icon-bg);color:var(--ocean);font-weight:800}
.m25-post-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.m25-post-actions button{min-height:44px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);padding:8px 12px}
.m25-comment{display:flex;gap:8px;margin:8px 0}
.m25-comment .field{flex:1;min-width:0}
.m25-comment-line{margin:6px 0;padding:8px 10px;border-radius:12px;background:var(--bg)}
.m25-marina-services,.m25-marina-weather{margin:6px 0 0;font-size:12px;line-height:1.4}
.m25-marina-sample{outline:1px dashed var(--gold)}
.m25-wx-sample .m25-test-pill{margin:0}
.m25-list-controls{display:flex;flex-direction:column;gap:10px}
.m25-new-trip{align-self:flex-end;width:auto;min-height:44px;margin:0}
.m25-activity{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--white);color:var(--ink)}
.m25-activity strong{font-size:13px;font-weight:650}
.bottom{background:var(--white);border-top:1px solid var(--line);box-shadow:0 -8px 24px #04283c1f}
.bottom button{color:var(--muted);font-size:11px;font-weight:750;min-width:0;border-radius:16px}
.bottom button.active{color:var(--accent-ink);background:var(--accent);font-weight:800;box-shadow:0 6px 14px #0068d655}
.bottom button span svg{width:22px;height:22px}
.w241-dashboard .w241-status,.w241-title>span,.w241-info,.w241-empty,.w241-dashboard details:not(.w241-leg)>summary{color:var(--muted)}
.w241-empty{background:var(--bg);border-color:var(--line)}
.tabs button{background:var(--white);color:var(--muted)}
.tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.m25-home-block{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--white);box-shadow:var(--shadow)}
.m25-home-locate{margin:8px 0 12px}
.m25-home-marinas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.m25-home-marina,.m25-home-story,.m25-home-invite{border:1px solid var(--line);border-radius:18px;background:var(--white);box-shadow:var(--shadow);overflow:hidden}
.m25-home-marina h3,.m25-home-story h3{margin:0 0 4px;font-size:16px;line-height:1.25;color:var(--navy)}
.m25-home-marina p,.m25-home-story p{font-size:13px;color:var(--muted)}
.m25-home-marina img,.m25-home-story img,.m25-home-story-plain{width:100%;height:132px;object-fit:cover;display:block}
.m25-home-story{margin:0 0 12px}
.m25-home-story>div,.m25-home-marina>div{padding:10px 12px 12px}
.m25-home-story-plain{background:linear-gradient(160deg,var(--sea-glow),var(--teal) 40%,var(--sea-deep))}
.m25-home-wx{display:flex;align-items:center;gap:6px;color:var(--ink)!important;font-weight:800}
.m25-home-wx svg{width:22px;height:22px;color:var(--teal)}
.m25-home-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.m25-home-invite{padding:16px;margin:0 0 14px}
.m25-home-invite .btn{margin-top:8px}
.m25-home-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.m25-home-head h2{margin:0}
.m25-home-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.m25-home-links button{min-height:44px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--navy);padding:8px 12px;font-weight:800;box-shadow:var(--shadow)}
.m25-home-stats{margin:0 0 16px}
.m25-home-stats h2{margin-bottom:8px}
.m25-home-stats>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.m25-home-stats article{padding:12px 8px;border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:var(--shadow);text-align:center}
.m25-home-stats strong{display:block;font-size:22px;color:var(--navy)}
.m25-home-stats span{display:block;margin-top:4px;color:var(--muted);font-size:12px}
@media(max-width:359px){.m25-heading h1{font-size:28px}.m25-voyage h2{font-size:22px}.m25-home-marinas{grid-template-columns:minmax(0,1fr)}}
@media(min-width:900px){#app{box-shadow:0 0 0 1px var(--line)}}
#navigation button{min-height:52px;padding:8px 2px}
.tabs button,.m25-home-actions .btn,.m25-at-sea,.btn.full{min-height:48px}
.m25-at-sea{margin-top:12px}
