/* Shared colour accents, used consistently across pages. */
:root{--blue:#2469cf;--purple:#7941c8;--green:#27866b;--orange:#b96b15;--rose:#bd4f74;--view-accent:var(--blue)}
body{background:radial-gradient(ellipse at 6% 0%,#bce6f6 0%,transparent 45%),radial-gradient(ellipse at 100% 10%,#fff0ce 0%,transparent 43%),linear-gradient(155deg,#f0f7f8 18%,#eaf5db 67%,#dfeeea)}
#app[data-view=home]{--view-accent:var(--blue)}#app[data-view=days]{--view-accent:var(--purple)}#app[data-view=route]{--view-accent:var(--green)}#app[data-view=details]{--view-accent:var(--orange)}#app[data-view=saved]{--view-accent:var(--rose)}
.page-heading>.eyebrow{color:var(--view-accent)}.brand-mark{color:var(--blue);background:#e3f2fe;border-color:#9bcdf366}.section-top h2{color:var(--purple)}
.countdown-card{background:linear-gradient(125deg,#edf0fff5,#f3eafff0);border-color:#d4c5f2;box-shadow:0 8px 28px #7554b411}.countdown-card .eyebrow{color:#7951b7}.countdown strong{color:#7138bd}.countdown-icon{background:#dcccfa;color:#773eca;box-shadow:inset 0 0 0 1px #bd9bed}.countdown-footer{border-color:#d6cbed;color:#72548f}
.day-card[data-tone="0"],.tabs button[data-tone="0"]{--tone:#2469cf;--tint:#eaf3ff;--soft:#d4e7ff;--edge:#acd0ff}
.day-card[data-tone="1"],.tabs button[data-tone="1"]{--tone:#7941c8;--tint:#f3ecff;--soft:#e4d3fb;--edge:#d0b2f4}
.day-card[data-tone="2"],.tabs button[data-tone="2"]{--tone:#23795d;--tint:#f0f8df;--soft:#d6f0ab;--edge:#b9d878}
.day-card[data-tone="3"],.tabs button[data-tone="3"]{--tone:#aa6010;--tint:#fff3e4;--soft:#ffe0b4;--edge:#edc188}
.day-card{background:linear-gradient(105deg,var(--tint),#fffffff0);border-color:var(--edge);box-shadow:0 5px 20px #526e640a}.day-card:hover{background:var(--tint);border-color:var(--tone)}.day-card .date-box{color:var(--tone);background:var(--soft)}.date-box small{color:inherit}.day-card>.icon{color:var(--tone)}.day-card .day-copy strong{color:var(--tone)}
.quick-card{background:linear-gradient(110deg,#e5f4e6,#f5fae8);border-color:#bcdbae}.quick-card .quick-icon{color:#2b875c;background:#d7f0b9}.quick-card strong,.quick-card>.icon{color:#2e7751}
.home-grid aside>.card{background:linear-gradient(130deg,#fff1dd,#fffcf2);border-color:#edcf9c}.home-grid aside>.card h3{color:var(--orange)}.home-grid aside>.card .text-button{color:#a3651c}
.tabs button{color:var(--tone);background:var(--tint);border-color:var(--edge)}.tabs button.active{background:var(--soft);border-color:var(--tone);color:var(--tone);box-shadow:0 5px 16px #51605c0e}
#app[data-day="0"] .timeline{--tone:#2469cf;--tint:#edf4ff;--soft:#dceaff;--edge:#c5dbfa}
#app[data-day="1"] .timeline{--tone:#7941c8;--tint:#f7f2ff;--soft:#e8dcfa;--edge:#ded0f5}
#app[data-day="2"] .timeline{--tone:#23795d;--tint:#f3f9e8;--soft:#dceebc;--edge:#d2e1b7}
#app[data-day="3"] .timeline{--tone:#aa6010;--tint:#fff7ec;--soft:#ffe6c2;--edge:#f0d6b5}
.event-card{border-color:var(--edge);background:linear-gradient(110deg,var(--tint),#fffffff5)}.event-order{color:var(--tone)}.event-title h3{color:var(--tone)}.expand-icon{color:var(--tone);background:var(--soft)}.event:not(:last-child):before{background:var(--edge)}.event .secondary{color:var(--tone);background:var(--soft)}.event .photo-space{background:var(--tint);color:var(--tone)}.event-time{color:var(--tone)}
.map-card,.route-list{border-color:#bddfcd}.map-footer{background:#edf7e9}.map-footer .button,.route-cta{background:#27866b}.route-stop:nth-child(1){--stop:#2469cf;--soft:#dfedff}.route-stop:nth-child(2){--stop:#7941c8;--soft:#eddefb}.route-stop:nth-child(3){--stop:#27866b;--soft:#ddf0e5}.route-stop:nth-child(4){--stop:#b96b15;--soft:#ffebcf}.route-stop .num{color:var(--stop);background:var(--soft)}.route-stop strong,.route-stop>.icon{color:var(--stop)}.route-stop.selected .num{background:var(--stop);color:white}.route-stop.selected{border-bottom-color:var(--stop)}.selected-place{border-color:#b3dcca;background:linear-gradient(130deg,#edf8ee,#fff)}.selected-place>.eyebrow,.selected-place h3{color:var(--green)}.selected-place .secondary{background:#dcefe2;color:#237252}.numbered-pin span{background:#26866b}.route-summary span:nth-of-type(1){color:var(--blue)}.route-summary span:nth-of-type(2){color:var(--purple)}.route-summary span:nth-of-type(3){color:var(--green)}.route-summary span:nth-of-type(4){color:var(--orange)}
.details-grid>section:first-child>.section-label:first-child{color:var(--blue)}.flight-card{background:linear-gradient(120deg,#eaf3ff,#fcfdff);border-color:#bbd6f8}.flight-card .eyebrow,.flight-path strong,.flight-path span{color:#2464bb}.flight-number{background:#d6e6fd;color:#225fae}.flight-line{color:var(--blue)}.flight-line:before{background:#b9d2f4}.flight-line .icon{background:#ecf4ff}.flight-bottom{border-color:#c6daf5}.details-grid>section:first-child>.section-label:not(:first-child){color:var(--rose)}.reminders{background:linear-gradient(130deg,#fff0f0,#fff9f2);border-color:#ecc5c5}.reminders strong{color:#a55260}.reminders>div{border-color:#ebcfcf}.info-note{color:#46709b}
.details-grid>section:nth-child(2)>.section-label{color:var(--orange)}.hotel-card,.details-grid>section:nth-child(2)>.card:nth-child(3){background:linear-gradient(120deg,#fff2df,#fffdf8);border-color:#ecd1a6}.hotel-card h3,.hotel-card .eyebrow{color:#a06520}.hotel-card .secondary{color:#925819;background:#ffe6bd}.details-grid>section:nth-child(2)>.section-label:nth-child(4){color:var(--green)}.details-grid>section:nth-child(2)>.card:nth-child(5){background:linear-gradient(125deg,#e9f8f2,#f9fcfb);border-color:#b5dfcc}.details-grid>section:nth-child(2)>.card:nth-child(5) h3{color:#26775e}.details-grid>section:nth-child(2)>.card:nth-child(5) .secondary{background:#d4eee1;color:#26775e}
#app[data-view=details]>.card{background:#f4eeff;border-color:#d9c8f0}#app[data-view=details]>.card h3{color:var(--purple)}#app[data-view=details]>.sources{background:#ffffffce;border-color:#d7e3db}
.saved-grid>.card:first-child{background:linear-gradient(130deg,#f4eaff,#fefcff);border-color:#d8bdf0}.saved-grid>.card:first-child h2,.saved-grid>.card:first-child .secondary{color:var(--purple)}.saved-grid>.card:first-child .secondary{background:#e8d9f9}.saved-grid>.card:nth-child(2){background:linear-gradient(125deg,#fff1e2,#fffdf5);border-color:#efd3ad}.saved-grid>.card:nth-child(2) h2{color:var(--orange)}.saved-grid>.card:nth-child(2) .secondary{background:#ffe6c4;color:#a3661d}
nav button[data-view=home]{--nav:#2469cf;--nav-soft:#e3efff}nav button[data-view=days]{--nav:#7941c8;--nav-soft:#efe3ff}nav button[data-view=route]{--nav:#23795d;--nav-soft:#e4f3d5}nav button[data-view=details]{--nav:#aa6010;--nav-soft:#fff0d8}nav button[data-view=saved]{--nav:#bd4f74;--nav-soft:#fde7ee}
nav button{color:var(--nav);border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .2s}nav button .icon{stroke-width:1.9}nav button:hover{background:var(--nav-soft)}nav button.active{color:var(--nav);background:var(--nav-soft);border-color:var(--nav);box-shadow:0 3px 12px #3546390a}nav button.active span{font-weight:600}

/* Extend the app background underneath the iPhone status bar. */
html{min-height:100%;background:#bce6f6}body{background:none;isolation:isolate;min-height:100dvh}body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 6% 0%,#bce6f6 0%,transparent 45%),radial-gradient(ellipse at 100% 10%,#fff0ce 0%,transparent 43%),linear-gradient(155deg,#f0f7f8 18%,#eaf5db 67%,#dfeeea)}
header{padding-top:calc(28px + env(safe-area-inset-top));padding-left:max(30px,env(safe-area-inset-left));padding-right:max(30px,env(safe-area-inset-right))}
.route-stop{display:block;padding:0}.route-stop summary{display:flex;gap:13px;align-items:center;padding:20px 0;cursor:pointer;list-style:none;min-height:74px}.route-stop summary::-webkit-details-marker{display:none}.route-stop-copy{flex:1;min-width:0}.route-stop strong{display:block}.route-stop .expand-icon{color:var(--stop);background:var(--soft)}.route-stop[open] .expand-icon .icon{transform:rotate(90deg)}.route-stop-content{padding:0 0 20px 42px;animation:content-in .25s ease-out}.route-stop-content p{margin:0 0 12px;font-size:14px}.flight-card{cursor:default}
@media(max-width:680px){header{padding-top:calc(22px + env(safe-area-inset-top));padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}}
