:root{color-scheme:light dark;--navy:#082f49;--blue:#0369a1;--sky:#e0f2fe;--paper:#f6f8fa;--card:#fff;--ink:#10212c;--muted:#61727d;--line:#d9e1e5;--accent:#f59e0b;--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--paper);overflow-x:hidden}body{margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);padding-bottom:calc(92px + var(--safe-bottom));overflow-x:hidden}body:has(dialog[open]){overflow:hidden}
button,input,select,textarea{font:inherit;font-size:16px}button{touch-action:manipulation}.app-header{background:linear-gradient(135deg,var(--navy),#075985);color:#fff;padding:calc(18px + env(safe-area-inset-top,0px)) 18px 19px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.app-header h1{font-size:1.35rem;margin:2px 0 0;line-height:1.2}.eyebrow{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;font-weight:750;opacity:.75;margin:0}.status{font-size:.75rem;padding:6px 9px;border:1px solid #ffffff42;border-radius:99px;white-space:nowrap}.status span{display:inline-block;width:7px;height:7px;background:#4ade80;border-radius:50%;margin-right:5px}.status.offline span{background:#fbbf24}
main{max-width:760px;margin:0 auto;padding:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 16px #0c4a6e0a;margin-bottom:14px}.route{padding:16px;display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.route div>span{display:block;color:var(--muted);font-size:.75rem}.route strong{font-size:1.15rem}.route-line{color:var(--blue);font-size:1.4rem}.sun{grid-column:1/-1;display:flex!important;gap:16px;border-top:1px solid var(--line);padding-top:10px;color:var(--muted);font-size:.82rem}.sun span{display:inline!important}
.checklist-link{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:13px 15px;color:var(--ink);text-decoration:none}.checklist-link-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--sky);color:var(--blue);font-size:1.25rem;font-weight:900}.checklist-link small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:750}.checklist-link strong{display:block;font-size:1rem}.checklist-link-arrow{color:var(--blue);font-size:1.8rem;line-height:1}
.new-trip-link{width:100%;display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:15px;text-align:left;color:var(--ink);cursor:pointer}.new-trip-link-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--blue);color:#fff;font-size:1.65rem;font-weight:800}.new-trip-link small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:750}.new-trip-link strong{display:block;font-size:1.12rem}.new-trip-link-arrow{color:var(--blue);font-size:1.8rem;line-height:1}.new-trip-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.trips{margin-bottom:14px}.trips>.section-heading{padding:0 3px 10px}.empty-trips{margin:0;padding:18px;color:var(--muted);text-align:center}.empty-trips[hidden],[hidden]{display:none!important}.trip-list{display:grid;gap:10px}.trip-card{padding:15px;margin:0;cursor:pointer}.trip-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.trip-card h3{margin:0;color:var(--blue);font-size:1.05rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.trip-area{margin:3px 0 0;color:var(--muted);font-size:.84rem}.trip-dates{display:block;margin-top:11px;color:var(--muted);font-size:.84rem}.trip-status{flex:0 0 auto;border-radius:99px;background:var(--sky);color:var(--blue);padding:4px 9px;font-size:.72rem;font-weight:800}.trip-card:focus-visible,.back-to-trips:focus-visible,.trip-section-list button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.back-to-trips{min-height:48px;margin:0 0 14px;padding:10px 2px;border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.trip-detail-card{padding:18px}.trip-detail-card h2{margin:3px 0 18px;font-size:1.45rem}.trip-detail-data{display:grid;grid-template-columns:minmax(110px,.55fr) 1fr;margin:0}.trip-detail-data div{display:contents}.trip-detail-data dt,.trip-detail-data dd{margin:0;padding:10px 0;border-top:1px solid var(--line)}.trip-detail-data dt{color:var(--muted);font-weight:750}.trip-detail-data dd{font-weight:650}.trip-sections>.section-heading{padding:0 3px 10px}.trip-section-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.trip-section-list button{display:flex;justify-content:space-between;align-items:center;min-height:58px;margin:0;padding:13px 15px;border:1px solid var(--line);color:var(--ink);text-align:left;font-weight:800;cursor:pointer}.trip-section-list button span{color:var(--blue);font-size:1.6rem;line-height:1}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.section-heading h2{font-size:1.15rem;margin:2px 0 0}.source,.section-heading>span{font-size:.75rem;color:var(--muted)}.weather{padding:16px 0 12px}.weather>.section-heading{padding:0 16px}.weather-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding:14px 16px 8px;scrollbar-width:none}.weather-scroll::-webkit-scrollbar{display:none}.weather-slot{position:relative;flex:0 0 132px;scroll-snap-align:start;background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:10px;display:flex;flex-direction:column;gap:4px}.weather-slot time{font-weight:750;color:var(--blue)}.weather-main{font-size:1.45rem}.weather-slot strong{font-size:.9rem}.weather-slot span:not(.weather-main):not(.weather-alert){font-size:.73rem;color:var(--muted);white-space:nowrap}.weather-alert{align-self:flex-start;border-radius:99px;padding:2px 7px;font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.weather-warning{background:#fffbeb;border:2px solid #f59e0b}.weather-warning .weather-alert{background:#f59e0b;color:#261600}.weather-danger{background:#fff1f2;border:2px solid #ef4444}.weather-danger .weather-alert{background:#dc2626;color:#fff}.weather-danger time{color:#b91c1c}.scroll-hint{text-align:center;color:var(--muted);font-size:.7rem;margin:3px 0 0}
.shortcuts{padding:7px 12px 13px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.shortcuts legend{padding:0 7px;color:var(--navy);font-weight:750;font-size:.82rem}.shortcuts button{min-height:48px;border:1px solid #bae6fd;border-radius:11px;background:var(--sky);color:var(--navy);font-weight:700}.shortcuts button span{color:var(--blue);margin-right:5px}
.timeline{padding:5px 2px}.timeline>.section-heading{padding:0 3px 10px}.entry{display:grid;grid-template-columns:54px 1fr;gap:10px;padding:13px 3px;border-top:1px solid var(--line)}.entry time{color:var(--blue);font-weight:750}.entry p{color:var(--muted);font-size:.82rem;margin:3px 0 0}.fab{position:fixed;right:18px;bottom:calc(18px + var(--safe-bottom));height:54px;border:0;border-radius:27px;padding:0 19px;background:var(--accent);color:#261600;font-weight:800;box-shadow:0 7px 22px #0004;z-index:5}.fab span{margin-left:3px}
dialog{border:0;padding:0;width:min(100% - 16px,620px);max-height:calc(100dvh - 16px);border-radius:20px;background:var(--card);color:var(--ink);box-shadow:0 20px 70px #0007}dialog::backdrop{background:#001621a8;backdrop-filter:blur(2px)}dialog form{padding:22px;overflow-y:auto;overflow-x:hidden;max-height:calc(100dvh - 16px);font-size:17px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.dialog-head h2{margin:2px 0;font-size:1.5rem}.icon-button{width:48px;height:48px;border:0;border-radius:50%;background:var(--paper);font-size:1.9rem;line-height:1}.dialog-head+label,label[for]{font-weight:800;font-size:.95rem;color:var(--muted);display:block;margin:14px 0 6px}select,input,textarea{width:100%;min-height:50px;border:2px solid #a9bbc4;border-radius:12px;background:var(--card);color:var(--ink);padding:11px 13px;font-size:17px;line-height:1.3}textarea{resize:vertical;min-height:88px}.entry-meta{display:flex;align-items:center;gap:18px;margin:15px 0 12px;padding:9px 11px;background:var(--paper);border-radius:10px;color:var(--muted);font-size:15px}.entry-meta strong{color:var(--ink);font-size:17px}.entry-meta input[type="hidden"]{display:none}.common-fields label,.form-grid label,.dynamic-grid label{font-size:.94rem;line-height:1.3;color:var(--muted);font-weight:800}.common-fields input,.form-grid input,.dynamic-grid input,.dynamic-grid select{margin-top:6px}.dynamic-group{border-top:2px solid var(--line);margin-top:17px;padding-top:15px}.dynamic-group h3{font-size:1.02rem;margin:0 0 12px;color:var(--navy)}.dynamic-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.dynamic-grid .wide{grid-column:1/-1}.speed-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tap-group{min-width:0}.tap-group h4{font-size:.9rem;line-height:1.25;margin:0 0 8px;color:var(--muted)}.tap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.tap-grid button{min-width:0;min-height:42px;padding:4px 2px;border:1px solid #8ca4af;border-radius:9px;background:var(--paper);color:var(--ink);font-size:.86rem;font-weight:750}.tap-grid button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}.other-value{margin-top:7px!important;min-height:44px!important;padding:8px 9px!important;font-size:16px!important}.wind-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px}.compass-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.compass-grid button:nth-child(1){grid-column:2;grid-row:1}.compass-grid button:nth-child(2){grid-column:3;grid-row:1}.compass-grid button:nth-child(3){grid-column:3;grid-row:2}.compass-grid button:nth-child(4){grid-column:3;grid-row:3}.compass-grid button:nth-child(5){grid-column:2;grid-row:3}.compass-grid button:nth-child(6){grid-column:1;grid-row:3}.compass-grid button:nth-child(7){grid-column:1;grid-row:2}.compass-grid button:nth-child(8){grid-column:1;grid-row:1}.file-field{display:block;margin-top:16px;padding:14px;border:2px dashed #93a7b1;border-radius:12px;color:var(--blue);font-size:1rem;font-weight:800;min-height:52px}.file-field input{position:absolute;opacity:0;width:1px;height:1px}.dialog-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:19px}.dialog-actions button{min-height:54px;border-radius:12px;font-size:1rem;font-weight:800}.secondary{border:2px solid var(--line);background:var(--card);color:var(--ink)}.primary{border:0;background:var(--blue);color:#fff}.toast{position:fixed;left:50%;bottom:calc(82px + var(--safe-bottom));transform:translate(-50%,20px);background:#10212c;color:#fff;border-radius:99px;padding:10px 16px;opacity:0;transition:.2s;pointer-events:none;z-index:20;font-size:.86rem;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
.trip-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.trip-fields label{margin:0;color:var(--muted);font-size:.95rem;font-weight:800}.trip-fields input{margin-top:6px}.trip-fields .wide{grid-column:1/-1}.field-error{display:block;min-height:1.25em;margin-top:4px;color:#b91c1c;font-size:.82rem;font-weight:750}.trip-fields input[aria-invalid="true"]{border-color:#dc2626;background:#fff7f7}.toast{max-width:calc(100% - 24px);white-space:normal;text-align:center}
@media(max-width:480px){main{padding:11px}.weather-slot{flex-basis:126px}.trip-detail-data{grid-template-columns:1fr}.trip-detail-data div{display:block}.trip-detail-data dt{padding-bottom:2px}.trip-detail-data dd{padding-top:0;border-top:0}.trip-section-list{grid-template-columns:1fr}dialog{inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0;box-shadow:none}dialog form{height:100dvh;max-height:none;padding:calc(16px + env(safe-area-inset-top,0px)) 15px calc(22px + env(safe-area-inset-bottom,0px))}.trip-fields{grid-template-columns:1fr}.trip-fields .wide{grid-column:auto}.fab{right:13px}.app-header{padding-left:14px;padding-right:14px}}
@media(prefers-color-scheme:dark){:root{--paper:#071923;--card:#0e2733;--ink:#ecf6fa;--muted:#9eb2bd;--line:#294550;--sky:#10384c}.shortcuts legend,.dynamic-group h3{color:#bae6fd}.shortcuts button{color:#e0f2fe;border-color:#287095}.weather-warning{background:#3b2f09}.weather-danger{background:#3b1117}.tap-grid button{border-color:#49616b}input,select,textarea{border-color:#49616b}.field-error{color:#fca5a5}.trip-fields input[aria-invalid="true"]{border-color:#f87171;background:#35191c}}
