:root{color:#45392f;font-synthesis:none;--ink:#45392f;--ink-soft:#71665d;--paper:#f7f4ec;--paper-light:#fdfcf8;--sage:#9eafa9;--sage-dark:#385b5d;--gold:#d8c58f;--line:#dcd5c9;background:#f7f4ec;font-family:Marcellus,serif;line-height:1.6}*{box-sizing:border-box}html{min-width:320px}body{background:var(--paper);min-height:100vh;margin:0}button,input{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400;line-height:1.15}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--sage-dark);outline-offset:4px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.loading-screen{min-height:100vh;color:var(--ink-soft);background:linear-gradient(90deg, transparent 49.9%, #d8c58f40 50%, transparent 50.1%), var(--paper);place-content:center;justify-items:center;display:grid}.brand-seal{border:1px solid var(--gold);width:4.5rem;height:4.5rem;color:var(--sage-dark);background:var(--paper-light);letter-spacing:.16em;place-items:center;margin:0 auto 1.5rem;font-size:1rem;display:grid;transform:rotate(45deg)}.brand-seal-small{width:2.4rem;height:2.4rem;margin:0;font-size:.65rem}.brand-seal,.brand-seal-small{text-indent:.16em}.brand-seal>*{display:block;transform:rotate(-45deg)}.spinner{border:1px solid var(--line);border-top-color:var(--sage-dark);border-radius:50%;width:2rem;height:2rem;margin:.75rem 0 1rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.auth-shell{background:linear-gradient(#f7f4ecf0,#f7f4ecf0),repeating-linear-gradient(90deg,#0000 0 5rem,#d8c58f38 5rem 5.05rem);min-height:100vh;padding:1.25rem;position:relative}.auth-shell:before{border:1px solid var(--line);content:"";pointer-events:none;position:absolute;inset:1.25rem}.auth-container{width:min(100% - 2rem,60rem);margin-inline:auto;padding-block:clamp(3.5rem,8vw,7rem);position:relative}.auth-header{text-align:center;max-width:46rem;margin:0 auto 3rem}.auth-header .brand-seal{margin-bottom:2.25rem}.auth-header h1{color:var(--ink);letter-spacing:-.025em;margin-bottom:1rem;font-size:clamp(2.5rem,7vw,4.75rem)}.auth-intro{max-width:38rem;color:var(--ink-soft);margin-inline:auto;font-size:1.05rem}.eyebrow{color:#765943;letter-spacing:.24em;text-transform:uppercase;margin-bottom:.7rem;font-size:.72rem}.auth-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.auth-grid-single{grid-template-columns:minmax(0,30rem);justify-content:center}.no-access-container{place-items:center;min-height:calc(100vh - 2.5rem);padding-block:2rem;display:grid}.no-access-card{text-align:center;width:min(100%,38rem)}.no-access-card h1{margin-bottom:1rem;font-size:clamp(2.2rem,6vw,4rem)}.no-access-card>p:not(.eyebrow,.status){color:var(--ink-soft)}.no-access-actions,.dashboard-actions{justify-content:center;gap:.75rem;display:flex}.no-access-actions .button,.dashboard-actions .button{margin-top:0}.plan-entry-dialog,.trip-migration-dialog{border:1px solid var(--line);width:min(100% - 2rem,44rem);max-height:min(90vh,48rem);color:var(--ink);background:var(--paper-light);padding:clamp(1.75rem,5vw,3rem);overflow-y:auto;box-shadow:0 2rem 6rem #201a1447}.plan-entry-dialog::backdrop,.trip-migration-dialog::backdrop{background:#201a1494}.plan-entry-dialog h2,.trip-migration-dialog h2{margin-bottom:.75rem;font-size:clamp(2rem,6vw,3.5rem)}.trip-migration-dialog{text-align:center}.trip-migration-dialog .brand-seal{margin:0 auto 1rem}.trip-migration-copy{color:var(--ink-soft)}.trip-migration-actions{justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}.trip-migration-actions .button{margin-top:0}.plan-entry-copy{color:var(--ink-soft)}.plan-entry-close{width:2.5rem;min-height:2.5rem;color:var(--ink);background:0 0;border-color:#0000;margin:0;padding:0;font-size:1.6rem;position:absolute;top:.8rem;right:.8rem}.plan-entry-trip-list{gap:.75rem;margin-top:1.5rem;display:grid}.plan-entry-trip{border:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.plan-entry-trip strong,.plan-entry-trip small{display:block}.plan-entry-trip strong{overflow-wrap:anywhere;font-weight:400}.plan-entry-trip small{color:var(--ink-soft)}.plan-entry-trip .button{flex:none;min-height:2.5rem;margin:0}.plan-entry-dialog .create-trip-form{box-shadow:none;grid-template-columns:1fr;gap:1.25rem;margin:1.5rem 0 0;padding:1.5rem}.plan-entry-dialog>.button-secondary{margin-top:1.5rem}.card{border:1px solid var(--line);background:var(--paper-light);padding:clamp(1.5rem,4vw,2.75rem);position:relative;box-shadow:0 1.5rem 3rem #45392f0f}.card:before{content:"";pointer-events:none;border:1px solid #d8c58f73;position:absolute;inset:.4rem}.card>*{position:relative}.card-number{color:var(--sage-dark);letter-spacing:.2em;margin-bottom:.5rem;font-size:.72rem}.card h2{margin-bottom:1.75rem;font-size:2rem}label{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;margin:1.1rem 0 .35rem;font-size:.72rem;display:block}input{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #a79d90;border-radius:0;padding:.8rem .15rem}input:focus{border-bottom-color:var(--sage-dark)}.hint{color:var(--ink-soft);margin-top:.45rem;font-size:.8rem}button,.button{border:1px solid var(--sage-dark);color:#fff;background:var(--sage-dark);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-radius:0;justify-content:center;align-items:center;min-height:3rem;margin-top:1.75rem;padding:.75rem 1.35rem;font-size:.75rem;transition:color .16s,background .16s;display:inline-flex}button:hover:not(:disabled),.button:hover:not(:disabled){color:var(--sage-dark);background:0 0}button:disabled{cursor:wait;opacity:.6}.status{min-height:1.6rem;color:var(--sage-dark);text-align:center;margin-top:1.25rem}.status.error{color:#8e342d}.dashboard{background:var(--paper);min-height:100vh}.dashboard-bar{border-bottom:1px solid var(--line);background:#fdfcf8eb;justify-content:space-between;align-items:center;min-height:5.5rem;padding:.8rem max(1.25rem,50% - 38rem);display:flex}.brand{color:var(--ink);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:1.1rem;font-size:1rem;text-decoration:none;display:inline-flex}.dashboard-bar .button{min-height:2.6rem;margin-top:0}.button-secondary{color:var(--ink);background:0 0;border-color:#9d9388}.button-secondary:hover:not(:disabled){color:#fff;background:var(--ink)}.welcome-panel{border-bottom:1px solid var(--line);text-align:center;background:radial-gradient(circle at 50% 0, #d8c58f38, transparent 38%), var(--paper-light);place-items:center;min-height:34rem;padding:clamp(4rem,10vw,8rem) 1.5rem;display:grid;position:relative;overflow:hidden}.welcome-panel:before,.welcome-panel:after{content:"";border:1px solid #9eafa973;border-radius:50%;width:min(28vw,20rem);height:min(28vw,20rem);position:absolute}.welcome-panel:before{top:-12rem;left:-6rem}.welcome-panel:after{bottom:-13rem;right:-8rem}.welcome-content{z-index:1;max-width:54rem;position:relative}.welcome-ornament{color:var(--gold);font-size:1.4rem;position:absolute;top:3rem}.welcome-panel h1{letter-spacing:-.035em;margin-bottom:1.1rem;font-size:clamp(3rem,8vw,6.5rem)}.welcome-copy{max-width:38rem;color:var(--ink-soft);margin:0 auto 1rem;font-size:clamp(1rem,2vw,1.2rem)}.account-email{color:var(--ink-soft);overflow-wrap:anywhere;margin-bottom:0}.button-primary{border-color:var(--gold);color:var(--ink);background:#e7d9af;gap:1rem;margin-top:2rem;padding-inline:1.75rem}.button-primary:hover:not(:disabled){border-color:var(--sage);color:var(--ink);background:var(--sage)}.dashboard-content{width:min(100% - 2rem,76rem);margin-inline:auto;padding-block:clamp(3.5rem,8vw,7rem)}.planner-status{margin:-3rem 0 3rem}.create-trip-form{border:1px solid var(--line);background:var(--paper-light);grid-template-columns:minmax(0,.8fr) minmax(16rem,1.2fr) auto;align-items:end;gap:2rem;margin-bottom:clamp(3rem,7vw,5rem);padding:clamp(1.5rem,4vw,2.5rem);display:grid;box-shadow:0 1.5rem 3rem #45392f0f}.create-trip-form h2{margin-bottom:0;font-size:clamp(1.8rem,4vw,2.5rem)}.create-trip-fields label{margin-top:0}.form-actions{gap:.75rem;display:flex}.form-actions .button{white-space:nowrap;margin-top:0}.trips-section{text-align:center}.section-heading{max-width:44rem;margin:0 auto 2.5rem}.section-heading h2{margin-bottom:.8rem;font-size:clamp(2.5rem,6vw,4.25rem)}.section-heading>p:last-child{color:var(--ink-soft)}.trips-loading{color:var(--ink-soft);text-align:center}.trip-list{text-align:left;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;display:grid}.trip-card{border:1px solid var(--line);background:var(--paper-light);flex-direction:column;min-height:17rem;padding:1.75rem;display:flex;position:relative;box-shadow:0 1.25rem 2.5rem #45392f0f}.trip-card:before{content:"";pointer-events:none;border:1px solid #d8c58f73;position:absolute;inset:.45rem}.trip-card>*{position:relative}.trip-card h3{overflow-wrap:anywhere;margin-bottom:1.25rem;font-size:1.75rem}.trip-card-meta{color:var(--ink-soft);flex-direction:column;align-items:flex-start;gap:.65rem;font-size:.85rem;display:flex}.trip-status{border:1px solid var(--sage);color:var(--sage-dark);letter-spacing:.14em;text-transform:uppercase;padding:.2rem .6rem;font-size:.65rem}.trip-card .button{align-self:flex-start;margin-top:auto}.empty-state{border:1px solid var(--line);background:var(--paper-light);padding:clamp(3rem,8vw,6rem) 1.5rem;position:relative;box-shadow:0 2rem 4rem #45392f12}.empty-state:before{content:"";pointer-events:none;border:1px solid #d8c58f73;position:absolute;inset:.55rem}.empty-state>*{position:relative}.empty-state-icon{border:1px solid var(--gold);width:3.75rem;height:3.75rem;color:var(--sage-dark);border-radius:50%;place-items:center;margin:0 auto 1.5rem;font-size:1.35rem;display:grid}.empty-state-label{color:#765943;letter-spacing:.22em;text-transform:uppercase;margin-bottom:.65rem;font-size:.7rem}.empty-state h3{margin-bottom:.8rem;font-size:clamp(2rem,5vw,3.25rem)}.empty-state>p:not(.empty-state-label){max-width:34rem;color:var(--ink-soft);margin:0 auto}.trip-detail{border:1px solid var(--line);background:var(--paper-light);text-align:center;max-width:52rem;margin-inline:auto;padding:clamp(2rem,6vw,4rem);position:relative;box-shadow:0 2rem 4rem #45392f12}.trip-detail:before{content:"";pointer-events:none;border:1px solid #d8c58f73;position:absolute;inset:.55rem}.trip-detail>*{position:relative}.trip-detail h2{overflow-wrap:anywhere;margin-bottom:1rem;font-size:clamp(2.5rem,7vw,4.5rem)}.trip-detail>p:not(.eyebrow){color:var(--ink-soft)}.trip-facts{border-block:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));max-width:38rem;margin:2.5rem auto 0;display:grid}.trip-facts div{min-width:0;padding:1.25rem}.trip-facts div+div{border-left:1px solid var(--line)}.trip-facts dt{color:var(--ink-soft);letter-spacing:.16em;text-transform:uppercase;margin-bottom:.35rem;font-size:.65rem}.trip-facts dd{overflow-wrap:anywhere;margin:0}[hidden]{display:none!important}@media (width<=44rem){.auth-shell{padding:.6rem}.auth-shell:before{inset:.6rem}.auth-container{width:min(100% - 1.5rem,60rem)}.auth-grid{grid-template-columns:1fr}.dashboard-bar{min-height:4.5rem}.dashboard-actions{gap:.4rem}.dashboard-actions .button{padding-inline:.7rem;font-size:.62rem}.no-access-actions,.plan-entry-trip{flex-direction:column;align-items:stretch}.plan-entry-trip .button{width:100%}.trip-migration-actions{flex-direction:column;align-items:stretch}.trip-migration-actions .button{width:100%}.brand>span:last-child{display:none}.welcome-panel{min-height:31rem}.welcome-panel h1{font-size:clamp(2.75rem,14vw,4.5rem)}.button-primary{width:100%}.create-trip-form{grid-template-columns:1fr;gap:1.25rem}.form-actions{flex-direction:column;align-items:stretch}.form-actions .button{width:100%}.trip-facts{grid-template-columns:1fr}.trip-facts div+div{border-top:1px solid var(--line);border-left:0}}.planner-workspace{width:100%;color:var(--ink)}.workspace-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(10rem,.6fr) minmax(16rem,1.6fr) minmax(12rem,.7fr);align-items:center;gap:2rem;padding-bottom:2.5rem;display:grid}.workspace-back{border:0;border-bottom:1px solid var(--sage);min-height:auto;color:var(--sage-dark);background:0 0;justify-self:start;margin:0;padding:.55rem 0}.workspace-back-actions{flex-direction:column;justify-self:start;align-items:flex-start;gap:.8rem;display:flex}.workspace-back:hover:not(:disabled){border-bottom-color:var(--ink);color:var(--ink)}.workspace-title-block{text-align:center;min-width:0}.workspace-title-block h1{overflow-wrap:anywhere;margin:0;font-size:clamp(2.5rem,6vw,4.75rem)}.workspace-save-meta{text-align:right;justify-self:end}.save-status{color:var(--sage-dark);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .25rem;font-size:.72rem}.save-status.saving:before{content:"○ "}.save-status.error{color:#8e342d;letter-spacing:0;text-transform:none;max-width:22rem}.updated-date{color:var(--ink-soft);margin:0;font-size:.8rem}.planner-tabs{border-bottom:1px solid var(--line);scrollbar-width:thin;gap:0;margin:0 0 3rem;display:flex;overflow-x:auto}.planner-tabs button{min-height:4.25rem;color:var(--ink-soft);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:1 0 auto;margin:0;padding:.9rem 1.15rem}.planner-tabs button:hover:not(:disabled),.planner-tabs button[aria-selected=true]{border-bottom-color:var(--gold);color:var(--ink);background:#d8c58f1a}.planner-panel{min-height:24rem}.planner-view-heading{text-align:center;max-width:43rem;margin:0 auto 2.5rem}.planner-view-heading h2{margin-bottom:.75rem;font-size:clamp(2.5rem,6vw,4.25rem)}.planner-view-heading>p:last-child,.route-order>p,.planner-empty-state>p:last-child{color:var(--ink-soft)}.profile-layout{grid-template-columns:minmax(14rem,.7fr) minmax(18rem,1.3fr);gap:1.25rem;display:grid}.planner-card{border:1px solid var(--line);background:var(--paper-light);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 1.25rem 2.5rem #45392f0d}.planner-card h3{margin-bottom:1rem;font-size:1.8rem}.profile-name-card{align-self:start}.profile-choices{gap:2rem;display:grid}.profile-choices fieldset{border:0;min-width:0;margin:0;padding:0}.profile-choices legend{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.8rem;font-size:.72rem}.choice-grid{flex-wrap:wrap;gap:.55rem;display:flex}.choice-chip{border-color:var(--line);min-height:2.5rem;color:var(--ink);background:0 0;margin:0;padding:.55rem .9rem;font-size:.7rem}.choice-chip:hover:not(:disabled),.choice-chip[aria-pressed=true]{border-color:var(--sage-dark);color:#fff;background:var(--sage-dark)}.day-allocation{grid-column:1/-1}.allocation-heading-row{justify-content:space-between;align-items:end;gap:2rem;display:flex}.total-days-field{width:9rem}.total-days-field label{margin-top:0}.total-days-field input{text-align:center;font-size:1.5rem}.allocation-summary{border-block:1px solid var(--line);color:var(--ink-soft);gap:1.5rem;margin:1.75rem 0;padding:1rem 0;display:flex}.allocation-summary strong{color:var(--ink);font-size:1.35rem}.allocation-list,.route-list,.slot-items{margin:0;padding:0;list-style:none}.allocation-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.allocation-card{border:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:1rem;display:flex}.allocation-name,.allocation-count{display:block}.allocation-count{color:var(--ink-soft);font-size:.78rem}.stepper{text-align:center;grid-template-columns:2rem 2rem 2rem;align-items:center;display:grid}.stepper button,.route-controls button{min-height:2rem;color:var(--ink);background:0 0;margin:0;padding:.2rem}.stepper button:hover:not(:disabled),.route-controls button:hover:not(:disabled){color:#fff;background:var(--sage-dark)}.stepper button:disabled,.route-controls button:disabled{cursor:not-allowed}.inline-error,.profile-message{color:#8e342d}.profile-message{text-align:center;min-height:1.6rem;margin-top:1rem}.route-order{max-width:50rem;margin:0 auto 3rem}.route-list{border-top:1px solid var(--line);margin-top:1.5rem}.route-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;display:flex}.route-list small{color:var(--ink-soft);display:block}.route-controls{gap:.4rem;display:flex}.island-timeline{gap:2rem;display:grid}.timeline-island{border:1px solid var(--line);background:var(--paper-light);padding:clamp(1.25rem,3vw,2rem);box-shadow:0 1.25rem 2.5rem #45392f0d}.timeline-island>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding-bottom:1rem;display:flex}.timeline-island>header h3,.timeline-island>header p{margin:0}.timeline-island>header h3{font-size:clamp(2rem,4vw,3rem)}.timeline-island>header p{color:var(--ink-soft)}.hotel-slot{border:1px solid var(--gold);background:#d8c58f17;margin:1rem 0;padding:1rem}.hotel-slot h4,.timeline-day h4,.timeline-slot h5{margin:0 0 .7rem}.hotel-slot h4,.timeline-slot h5{color:var(--ink-soft);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem}.timeline-days{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.8rem;display:grid}.timeline-day{border:1px solid var(--line);min-width:0}.timeline-day>h4{border-bottom:1px solid var(--line);background:#9eafa91f;padding:.85rem 1rem;font-size:1.25rem}.timeline-slot{min-height:5.8rem;padding:.8rem 1rem}.timeline-slot+.timeline-slot{border-top:1px solid var(--line)}.slot-empty{color:#92887e;font-size:.82rem;font-style:italic}.slot-items li+li{margin-top:.5rem}.timeline-item{flex-direction:column;gap:.25rem;font-size:.88rem;display:flex}.timeline-item-missing{color:var(--ink-soft)}.timeline-item code{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.planner-empty-state{border:1px solid var(--line);background:var(--paper-light);text-align:center;max-width:48rem;margin-inline:auto;padding:clamp(3rem,8vw,6rem) 1.5rem}.planner-empty-state h2,.planner-empty-state h3{margin-bottom:.8rem;font-size:clamp(2rem,5vw,3.25rem)}.planner-debug{max-width:44rem;color:var(--ink-soft);margin:4rem auto 0;font-size:.75rem}.planner-debug summary{cursor:pointer}.planner-debug dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.planner-debug dt{text-transform:uppercase}.planner-debug dd{overflow-wrap:anywhere;margin:0}@media (width<=64rem){.allocation-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=44rem){.workspace-header{grid-template-columns:1fr;gap:1.25rem}.workspace-title-block{text-align:left;grid-row:1}.workspace-back{grid-row:2}.workspace-save-meta{text-align:left;grid-row:3;justify-self:start}.profile-layout{grid-template-columns:1fr}.day-allocation{grid-column:auto}.allocation-heading-row{flex-direction:column;align-items:stretch}.allocation-list{grid-template-columns:1fr}.allocation-summary{flex-direction:column;gap:.75rem}.planner-debug dl{grid-template-columns:1fr}}.admin-content{max-width:68rem;margin:0 auto;padding:0 1.5rem 4rem}.admin-panel{background:var(--surface,#fff);border:1px solid #00000014;border-radius:14px;margin-top:1.5rem;padding:1.5rem}.admin-panel h2{margin-top:0}.admin-delivery-notice{border-left:3px solid #c98a00;padding-left:.75rem}.admin-invite-form{gap:.5rem;max-width:32rem;display:grid}.admin-invite-form button{justify-self:start;margin-top:.5rem}.admin-list-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.admin-invite-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.admin-invite-row{border:1px solid #0000001a;border-radius:10px;gap:.35rem;padding:1rem;display:grid}.admin-invite-row.is-highlighted{border-color:#0b5cad;box-shadow:0 0 0 2px #0b5cad26}.admin-invite-row.is-unavailable{opacity:.75;border-style:dashed}.admin-invite-field{gap:.5rem;font-size:.92rem;display:flex}.admin-invite-label{color:#6b6b6b;min-width:8.5rem}.admin-invite-value{word-break:break-word}.admin-invite-row[data-status=pending] .admin-invite-row-status{color:#8a6d00}.admin-invite-row[data-status=redeemed] .admin-invite-row-status{color:#0a6d3a}.admin-invite-actions{gap:.5rem;margin-top:.5rem;display:flex}.activation-card{text-align:left;max-width:30rem}.activation-card h1{font-size:1.35rem}.activation-card form{gap:.4rem;margin-top:.75rem;display:grid}.activation-card form button[type=submit]{justify-self:start;margin-top:.75rem}.activation-card .spinner{margin:1rem 0}#activation-signin-link{margin-top:1rem;font-size:.9rem;display:inline-block}.link-button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;justify-self:start;margin-top:.75rem;padding:0;text-decoration:underline}.buy-card{text-align:left;margin-top:1.5rem}.buy-card h2{margin-top:0;font-size:1.05rem}
