:root{color-scheme:light dark;--bg: #f3f1ec;--bg-tint: #e7eeed;--card: #fff;--fill: #e6e3da;--fill-strong: #d9dedc;--text: #11202b;--text-2: #56696f;--text-3: #84949a;--separator: rgba(20, 40, 50, .16);--accent: #0e5f74;--accent-soft: rgba(14, 95, 116, .1);--on-accent: #fff;--good: #1f6b52;--late: #a8501e;--early: #2d6ea8;--warn: #86560f;--warn-bg: #fdf7ec;--warn-border: #ecd9b3;--shadow: 0 1px 3px rgba(30, 60, 70, .1), 0 6px 18px rgba(30, 60, 70, .05);--radius: 16px;--radius-lg: 22px;--tap: 44px;--gutter: 18px}@media(prefers-color-scheme:dark){:root{--bg: #0c1417;--bg-tint: #0f1c20;--card: #172227;--fill: #1f2c31;--fill-strong: #2a383e;--text: #eaf1f2;--text-2: #a0b2b8;--text-3: #74868c;--separator: rgba(255, 255, 255, .13);--accent: #4ec3dc;--accent-soft: rgba(78, 195, 220, .14);--on-accent: #04222b;--good: #6fd3a8;--late: #f0a06a;--early: #86baf2;--warn: #edc383;--warn-bg: #211a0f;--warn-border: #3f331c;--shadow: 0 1px 3px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:1.0625rem;line-height:1.45;color:var(--text);background:var(--bg);background-image:linear-gradient(180deg,var(--bg-tint) 0,var(--bg) 320px);background-attachment:fixed;font-synthesis:none;overscroll-behavior-y:none}button,a,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-soft)}.app-shell{max-width:680px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) calc(var(--gutter) + env(safe-area-inset-right)) calc(112px + env(safe-area-inset-bottom)) calc(var(--gutter) + env(safe-area-inset-left))}.access-gate{display:grid;align-content:center;min-height:70vh;text-align:center}.access-gate h1{margin:6px 0 12px;letter-spacing:-.03em}.access-gate p:not(.eyebrow){color:var(--text-2);margin:0}.app-header{padding:6px 2px 20px}.app-header h1{margin:0;font-size:clamp(2rem,9vw,2.9rem);line-height:1.05;letter-spacing:-.035em}.app-header>p:not(.eyebrow){margin:8px 0 0;color:var(--text-2)}.screen{padding:0 0 8px}.screen-heading{padding:2px 2px 14px}.screen-heading h2{margin:0;font-size:1.6rem;letter-spacing:-.03em}.screen-subtitle{margin:6px 0 0;color:var(--text-2);font-size:.95rem}.eyebrow,.overline{margin:0 0 6px;color:var(--text-2);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.address{color:var(--text-2)}.source,.source-tag{color:var(--text-3);font-size:.82rem;font-weight:500}.source a{color:var(--accent)}.note{color:var(--warn)}.description{color:var(--text)}.distance{margin:2px 0 6px;color:var(--accent);font-weight:700;font-size:.92rem}.empty-state{margin:24px 4px;color:var(--text-2);text-align:center}.group{margin:0 0 26px}.group-heading{display:flex;align-items:baseline;gap:8px;margin:0 4px 10px;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}.group-heading span{color:var(--text-3);font-weight:700;letter-spacing:0}.timeline-content,.list-row,.weather-card,.live-status,.switch-row,.suggested-stop{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.list-row{padding:15px 17px;margin:0 0 12px}.list-row h3{margin:0 0 2px;font-size:1.08rem;letter-spacing:-.02em}.list-row p{margin:5px 0}.hours{margin:10px 0;padding:10px 12px;border-radius:11px;background:var(--fill);font-size:.93rem}.hours p{margin:2px 0;white-space:pre-line}.detail-list,.tag-list{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.detail-list{flex-direction:column;gap:4px;color:var(--text-2);font-size:.92rem}.tag-list li{padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:700}.row-actions{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 0}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:11px 20px;min-height:var(--tap);background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none;transition:transform .12s ease,opacity .12s ease}.button:active{transform:scale(.97);opacity:.85}.button.secondary{background:var(--card);color:var(--accent);border:1px solid var(--separator)}.link-button{border:0;background:none;padding:10px 0;min-height:var(--tap);color:var(--accent);font-weight:700}.location-toggle{margin-top:14px;border:1px solid var(--separator);border-radius:999px;background:var(--card);color:var(--accent);font-weight:700;padding:11px 16px;min-height:var(--tap)}.disclosure{display:block;margin:18px 0 0;border:0;background:none;padding:10px 0;min-height:var(--tap);color:var(--text-3);font-size:.85rem;text-decoration:underline}.segmented{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--fill);margin:0 0 12px}.segmented button{flex:1;border:0;border-radius:10px;background:transparent;color:var(--text-2);min-height:var(--tap);padding:10px 8px;font-weight:700;transition:background .15s ease,color .15s ease}.segmented button.selected{background:var(--card);color:var(--text);box-shadow:0 1px 3px #1e3c4629}.segmented.secondary{background:transparent;padding:0 0 0 2px;gap:8px;margin:0 0 16px}.segmented.secondary button{flex:0 1 auto;border:1px solid var(--separator);border-radius:999px;background:var(--card);font-size:.9rem;min-height:40px;padding:8px 15px}.segmented.secondary button.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:none}.chip-row{display:flex;gap:8px;overflow-x:auto;margin:0 0 18px;padding:2px 2px 8px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;border:1px solid var(--separator);border-radius:999px;background:var(--card);color:var(--text-2);font-weight:700;font-size:.9rem;min-height:40px;padding:8px 15px}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}input[type=checkbox][role=switch]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;margin:0;width:51px;height:31px;border-radius:999px;background:var(--fill-strong);position:relative;transition:background .2s ease}input[type=checkbox][role=switch]:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s ease}input[type=checkbox][role=switch]:checked{background:var(--accent)}input[type=checkbox][role=switch]:checked:after{transform:translate(20px)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 17px;min-height:56px;margin:0 0 18px}.switch-row>span{font-weight:600}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:20px;top:22px;bottom:24px;width:2px;background:var(--separator)}.timeline-row,.toll-marker{display:grid;grid-template-columns:42px 1fr;gap:11px;position:relative;padding:0 0 14px}.timeline-dot,.toll-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;z-index:1;margin-left:3px}.timeline-dot{background:var(--accent);color:var(--on-accent)}.timeline-row.current .timeline-dot{background:var(--good);box-shadow:0 0 0 4px color-mix(in srgb,var(--good) 25%,transparent)}.timeline-row.done .timeline-dot{background:var(--fill-strong);color:var(--text-2)}.timeline-content{padding:14px 16px}.timeline-content h3{margin:0 0 2px;font-size:1.06rem;letter-spacing:-.02em}.timeline-content p{margin:5px 0}.feature-list{color:var(--text-2);font-size:.9rem}.next-leg{color:var(--text-2);font-size:.9rem;font-variant-numeric:tabular-nums}.extra-stop{color:var(--warn);font-weight:700}.moment{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 10px}.moment-done{margin:0;color:var(--good);font-weight:700;font-variant-numeric:tabular-nums}.moment-correction{flex-basis:100%;display:flex;align-items:center;gap:12px}.moment-correction label{display:flex;flex-direction:column;gap:4px;color:var(--text-2);font-size:.85rem}.moment-correction input,.sheet-body input,.sheet-body select{border:1px solid var(--separator);border-radius:11px;padding:10px 12px;min-height:var(--tap);background:var(--card);color:var(--text);font-size:1rem}.suggested-stop{margin:0 0 14px 53px;padding:13px 16px;border:1px dashed var(--separator);box-shadow:none}.suggested-stop.planned{border:1px solid var(--accent);background:var(--accent-soft)}.suggested-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.suggested-head h4{margin:0;font-size:1rem;letter-spacing:-.015em}.suggested-head .eyebrow{margin:0 0 3px}.suggested-stop p{margin:6px 0;font-size:.92rem}.suggested-stop .button{margin-top:8px}.toll-dot{background:#e8c37a;color:#4a3410}.toll-marker.gepasseerd .toll-dot{background:var(--fill-strong);color:var(--text-2)}.toll-content{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);padding:13px 15px}.toll-marker.nu .toll-content{border-color:var(--warn)}.toll-marker.gepasseerd .toll-content{background:var(--fill);border-color:var(--separator);color:var(--text-2)}.toll-content h4{margin:0 0 6px;font-size:1.02rem;letter-spacing:-.015em}.toll-content p{margin:5px 0;font-size:.92rem}.badge-test{color:var(--late);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.toll-price{font-weight:700;font-variant-numeric:tabular-nums}.toll-note{color:var(--text-2)}.toll-confirmed{color:var(--good);font-weight:700}.toll-actions{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0 4px}.toll-actions .button{padding:10px 16px}.live-status{padding:16px 18px;margin:0 0 18px;border-left:5px solid var(--good)}.live-status.late{border-left-color:var(--late)}.live-status.early{border-left-color:var(--early)}.live-status h3{margin:0 0 8px;font-size:1.2rem;letter-spacing:-.02em}.live-status p{margin:6px 0}.live-eta{font-variant-numeric:tabular-nums}.live-distance{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.live-toll{color:var(--warn);font-weight:700}.sync-status{margin:12px 0 0;color:var(--good);font-size:.85rem;font-weight:700}.sync-status.pending{color:var(--warn)}.sync-status.offline{color:var(--late)}.notice{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);padding:14px 16px;margin:4px 0 16px}.notice h3{margin:0 0 8px;font-size:1rem}.notice ul{margin:0;padding-left:18px}.notice li{margin:6px 0;font-size:.9rem}.arrival-prompt{position:sticky;top:calc(8px + env(safe-area-inset-top));z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:13px 16px;margin:0 0 16px;box-shadow:var(--shadow)}.arrival-prompt p{margin:0;flex-basis:100%;font-weight:700}.arrival-prompt .button{background:var(--on-accent);color:var(--accent)}.arrival-prompt .link-button{color:var(--on-accent);opacity:.8}.weather-card{padding:14px 16px;margin:16px 0}.weather-days{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(84px,1fr);gap:10px;overflow-x:auto;padding:2px 0 6px;scroll-snap-type:x mandatory;scrollbar-width:none}.weather-days::-webkit-scrollbar{display:none}.weather-day{scroll-snap-align:start;background:var(--fill);border-radius:12px;padding:10px 8px;text-align:center}.weather-day.today{background:var(--accent-soft);outline:1px solid var(--accent)}.weather-day p{margin:3px 0}.weather-date{color:var(--text-2);font-size:.76rem;font-weight:800;text-transform:capitalize}.weather-temp{font-size:1.12rem;font-weight:800;font-variant-numeric:tabular-nums}.weather-temp span{font-size:.85rem;font-weight:600;color:var(--text-3)}.weather-code{font-size:.8rem;color:var(--text-2)}.weather-rain{font-size:.78rem;color:var(--early);font-weight:700}.check-row{display:flex;align-items:center;gap:14px;min-height:54px;padding:8px 17px;margin:0 0 8px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;-webkit-tap-highlight-color:transparent}.check-row input{flex:0 0 auto;width:26px;height:26px;accent-color:var(--accent)}.check-row input:checked+span{color:var(--text-3);text-decoration:line-through}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:end;background:#08161c73;animation:fade .2s ease}.sheet-body{background:var(--card);border-radius:20px 20px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));max-width:680px;width:100%;margin:0 auto;animation:rise .28s cubic-bezier(.32,.72,0,1)}.sheet-body:before{content:"";display:block;width:36px;height:5px;margin:0 auto 16px;border-radius:999px;background:var(--fill-strong)}.sheet-body h3{margin:0 0 6px;letter-spacing:-.02em}.sheet-body p{margin:0 0 14px;color:var(--text-2)}.sheet-body label{display:flex;flex-direction:column;gap:5px;margin:0 0 14px;color:var(--text-2);font-size:.85rem;font-weight:700}.sheet-actions{display:flex;gap:10px}.sheet-actions .button{flex:1;min-height:50px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}.bottom-tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;justify-content:center;gap:2px;padding:6px max(10px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--separator)}.bottom-tabs button{flex:1 1 0;max-width:132px;border:0;background:none;border-radius:10px;min-height:var(--tap);padding:6px 2px;color:var(--text-3);font-size:.72rem;font-weight:700;transition:color .15s ease}.bottom-tabs button[aria-selected=true]{color:var(--accent)}.bottom-tabs button:active{background:var(--accent-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
