:root{--paper:#fffefb;--background:#f5f3ed;--ink:#263d32;--muted:#687269;--accent:#b54a31;--line:#dedfd5;--soft:#e9eee4;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button,summary{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c47651;outline-offset:3px}button{min-height:44px}.shell{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100vh}.sidebar{padding:38px 22px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:70px;background:#eeefe6}.brand{font:36px var(--serif);text-decoration:none;letter-spacing:-2px}.brand span{font-style:italic;color:var(--accent)}.brand small{font:9px var(--sans);display:block;letter-spacing:1.5px;margin-top:10px;color:var(--muted)}nav{display:grid;gap:9px}.nav{text-align:left;border:0;padding:12px;border-radius:9px;background:transparent;color:var(--muted);font-size:13px}.nav.active{background:#dde4d6;color:var(--ink)}.sidebar-bottom{margin-top:auto}.sidebar-bottom p{font:19px/1.6 var(--serif)}.sidebar-bottom em{color:var(--accent)}.text-button{display:block;text-align:left;background:none;border:0;color:var(--muted);font-size:12px;padding:8px 0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:48px;font-size:12px;color:var(--muted)}main{padding:30px 48px;max-width:1450px;width:100%;min-width:0}.pill{border:1px solid var(--line);border-radius:30px;padding:7px 12px;font-size:11px;white-space:nowrap}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:center;margin-bottom:42px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:600;margin:0 0 13px}h1{font:46px/1.18 var(--serif);letter-spacing:-1.8px;margin:0 0 22px}h1 em{color:var(--accent);font-weight:400}h2{font:28px/1.3 var(--serif);letter-spacing:-.7px;margin:0}h3{font:23px/1.3 var(--serif);margin:0 0 16px}.lead{font-size:13px;color:var(--muted);line-height:1.9}.hero-photo{width:100%;height:280px;object-fit:cover;border-radius:130px 130px 15px 15px;box-shadow:10px 10px 0 #e5e5d8}.hero-notes{display:flex;flex-wrap:wrap;gap:18px;margin-top:27px;font-size:10px;color:var(--muted)}.planner-panel{padding:29px;background:var(--paper);border-radius:22px;border:1px solid var(--line)}.panel-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:27px}.panel-heading>span{font-size:11px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:2fr 1.3fr .8fr .8fr;gap:14px}label{display:block;font-size:12px;color:var(--muted)}input,select,textarea{display:block;width:100%;min-width:0;background:#f9f8f4;border:1px solid var(--line);border-radius:9px;padding:12px;margin-top:7px;color:var(--ink);min-height:46px}textarea{resize:vertical}input[type=checkbox]{display:inline-block;width:16px;min-height:16px;height:16px;accent-color:var(--accent);margin:0 7px 0 0;vertical-align:middle}.category-row{display:flex;gap:9px;flex-wrap:wrap;margin:23px 0}.category-row label{padding:8px 11px;background:#f3f4ec;border-radius:25px;color:var(--ink);cursor:pointer;min-height:40px;display:flex;align-items:center;font-size:11px}.category-row label:has(:checked){background:#e0e7d9}.preferences{border-top:1px solid var(--line);padding-top:17px}summary{min-height:38px;color:var(--ink);font-size:13px}.extras{grid-template-columns:repeat(2,minmax(0,1fr));margin:15px 0}.notes-label{margin-top:17px}.taste-search{display:flex;gap:12px;align-items:end;margin-top:15px}.taste-search label{flex:1}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chips button{padding:7px 12px;background:var(--soft);border:0;border-radius:20px;font-size:12px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}.form-footer p{font-size:10px;color:var(--muted);margin:0}.primary,.secondary{border:1px solid var(--line);padding:12px 19px;border-radius:10px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:20px}.primary{background:var(--accent);border-color:var(--accent);color:#fffaf3}.secondary{background:var(--paper);color:var(--ink)}.flight-panel{border:1px solid var(--line);border-radius:17px;padding:19px 24px;margin:20px 0 34px}.flight-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:13px}.flight-panel button{margin-top:12px}.muted{color:var(--muted);font-size:12px;line-height:1.7}.route-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:45px 0 20px}.notice{padding:14px 17px;border-radius:12px;background:#ebeade;color:#64674d;font-size:12px;line-height:1.8;white-space:pre-line}.day-nav{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.day-nav button{border:1px solid var(--line);padding:10px 18px;border-radius:10px;background:var(--paper);color:var(--ink)}.day-nav button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.stop{display:grid;grid-template-columns:50px minmax(0,1fr);gap:14px;margin-bottom:22px}.stop-number{text-align:center;position:relative;font:22px var(--serif);color:var(--muted);padding-top:24px}.stop-number:after{content:'';position:absolute;top:62px;bottom:-22px;width:1px;background:var(--line);left:50%}.place-card{background:var(--paper);border:1px solid var(--line);border-radius:19px;overflow:hidden;display:grid;grid-template-columns:160px minmax(0,1fr)}.place-photo{width:100%;height:100%;min-height:210px;object-fit:cover;background:var(--soft)}.place-fallback{display:flex;align-items:center;justify-content:center;background:var(--soft);padding:20px;color:var(--muted);font-size:12px}.place-body{padding:21px;min-width:0}.place-body .eyebrow{margin-bottom:6px;font-size:9px}.place-body h3{margin-bottom:10px;font-size:25px}.address{font-size:11px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.card-actions a,.card-actions button{font-size:11px;padding:9px 11px;gap:8px}.stop-note{margin-top:12px;background:#ebeede;border-radius:10px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.stop-note p{font-size:11px;color:var(--muted);margin:0}.stop-note button{white-space:nowrap;border:0;border-bottom:1px solid var(--ink);background:transparent;font-size:12px;color:var(--ink)}.revision-panel{background:#e5eadf;border-radius:20px;padding:25px;margin:35px 0}.revision-panel button{margin-top:14px}.page-footer{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;margin-top:40px;border-top:1px solid var(--line);padding-top:18px}dialog{border:1px solid var(--line);border-radius:23px;background:var(--paper);color:var(--ink);max-width:650px;width:calc(100% - 28px);padding:26px;max-height:85vh;overflow:auto}dialog::backdrop{background:#1c2e2666;backdrop-filter:blur(5px)}dialog label{margin:14px 0}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.close-dialog{border:0;background:var(--soft);color:var(--ink);border-radius:50%;width:44px;flex:none}.dialog-top h2{font-size:26px}.register-label{display:flex;align-items:center;min-height:44px}#auth-error{font-size:13px;color:#a63e2b}.media-controls{display:flex;align-items:end;gap:14px}.media-controls label{flex:1;margin:0}.media-card,.saved-card,.flight-card{padding:19px;background:var(--paper);border:1px solid var(--line);border-radius:15px;margin:14px 0}.media-card{display:flex;gap:18px}.media-card img{width:80px;height:105px;object-fit:cover;border-radius:7px}.media-card h3{font-size:21px}.saved-card{display:flex;justify-content:space-between;gap:15px;align-items:center}.result-button{display:block;width:100%;text-align:left;padding:11px;border:1px solid var(--line);background:var(--paper);border-radius:9px;margin-top:8px;color:var(--ink)}#message{position:fixed;bottom:20px;right:20px;max-width:min(520px,calc(100% - 40px));background:var(--ink);color:var(--paper);box-shadow:0 8px 35px #0003;padding:16px 22px;border-radius:13px;z-index:10;font-size:13px}.flight-card{font-size:13px}.loading{color:var(--muted);padding:22px}.error-inline{color:#9d362a;font-size:13px;line-height:1.7}[hidden]{display:none!important}
@media(min-width:1500px){main{padding:35px 65px}.hero{grid-template-columns:1.4fr .6fr}h1{font-size:58px}}
@media(max-width:1100px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:30px 15px}main{padding:25px}.hero{gap:20px}h1{font-size:37px}.hero-photo{height:240px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.place-card{grid-template-columns:125px minmax(0,1fr)}}
@media(max-width:750px){.shell{display:block}.sidebar{padding:16px 20px;gap:18px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between}.brand{font-size:29px}.brand small{display:none}nav{display:flex;gap:3px}.nav{padding:8px;font-size:11px}.sidebar-bottom{display:none}main{padding:22px 18px}.topbar{margin-bottom:30px;font-size:10px}.pill{font-size:9px;padding:5px 8px}.hero{grid-template-columns:1fr .5fr;gap:15px}.hero-photo{height:200px;box-shadow:5px 5px 0 #e5e5d8}h1{font-size:32px;letter-spacing:-1px}.lead{font-size:11px}.hero-notes{gap:9px;font-size:9px}.eyebrow{font-size:9px;letter-spacing:1.5px}.planner-panel{padding:20px}.panel-heading{align-items:start}.panel-heading>span{font-size:10px;max-width:75px;text-align:right}h2{font-size:25px}.place-card{grid-template-columns:110px minmax(0,1fr)}.place-body{padding:15px}.place-body h3{font-size:23px}.stop{grid-template-columns:25px minmax(0,1fr);gap:8px}.stop-note{align-items:start}.route-heading{align-items:start}.route-heading>button{font-size:12px}.page-footer{flex-direction:column}.primary{gap:9px;padding:12px 15px}.saved-card{align-items:start}}
@media(max-width:480px){.hero{grid-template-columns:1fr}.hero-photo{height:160px;border-radius:15px;box-shadow:none}.hero h1{font-size:38px}.hero .lead br{display:none}.hero-notes{display:none}.hero{margin-bottom:25px}.hero-photo{object-position:50% 65%}.form-grid{gap:11px}.form-grid .destination{grid-column:1/-1}input,select,textarea{font-size:16px;padding:10px}.category-row{gap:6px}.form-footer{flex-direction:column;align-items:stretch}.form-footer p{order:2}.place-card{display:block}.place-photo{height:170px;min-height:0}.place-fallback{min-height:80px}.stop-note{flex-wrap:wrap}.media-controls{flex-direction:column;align-items:stretch}.media-card{gap:12px}.media-card img{width:60px;height:85px}.taste-search{align-items:stretch;flex-direction:column}.topbar{align-items:start}.route-heading{flex-direction:column}.saved-card{flex-wrap:wrap}.extras{grid-template-columns:1fr}.sidebar .nav{font-size:10px}.sidebar{padding:13px}.brand{font-size:26px}.panel-heading>span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:750px){.sidebar{flex-wrap:wrap}.sidebar-bottom{display:flex;gap:16px;width:100%;margin:0;border-top:1px solid var(--line);padding-top:5px}.sidebar-bottom p{display:none}.sidebar-bottom .text-button{font-size:10px}}
@media(max-width:360px){.form-grid,.flight-panel .form-grid{grid-template-columns:minmax(0,1fr)}}
.taste-onboarding{padding:20px;background:var(--soft);border-radius:15px;margin:18px 0}.taste-onboarding h3{font-size:24px;margin-bottom:8px}.taste-onboarding .taste-search{margin-top:12px}.taste-onboarding .chips:empty{display:none}
/* Preference onboarding follows the existing warm travel palette. */
.taste-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 26px;padding:26px 30px;background:linear-gradient(125deg,#e3eadb,#f0e5d3);border:1px solid #d9ddcd;border-radius:22px;position:relative;overflow:hidden}.taste-banner h2{font-size:29px}.taste-banner p:not(.eyebrow){max-width:540px;color:var(--muted);margin-bottom:0}.taste-banner-actions{flex-shrink:0;display:grid;justify-items:center;gap:6px}#taste-dialog{max-width:960px;padding:30px}.taste-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:30px}.taste-summary{padding:26px;background:linear-gradient(145deg,#dfe7d5,#f0e4d0);border-radius:90px 90px 16px 16px;align-self:start;position:sticky;top:0;overflow-wrap:anywhere}.taste-orbit{font:70px Georgia;text-align:center;color:#b54a31;margin:0 0 18px}.taste-summary h3{font-size:26px}.taste-summary p{font-size:12px}.taste-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.taste-tile{border:1px solid var(--line);padding:14px;border-radius:14px;display:flex;align-items:center;gap:9px;margin:0!important;background:#f7f6ef;color:var(--ink);min-height:64px;transition:background .18s,transform .18s}.taste-tile:has(:checked){background:#dce6d2;border-color:#718967;transform:translateY(-1px)}.taste-tile-icon{font-size:24px;color:var(--accent)}#taste-form fieldset{border:0;padding:0;margin:22px 0}#taste-form legend{font-size:13px;font-weight:600;margin-bottom:10px}.taste-footer{display:flex;justify-content:space-between;gap:14px;margin:20px 0}.taste-subtitle{font-size:19px;margin:20px 0 8px}.taste-import-row{display:flex;gap:12px;padding:16px;background:var(--soft);border-radius:12px}.taste-import-row small{display:block;overflow-wrap:anywhere}.taste-import-row input{flex-shrink:0;margin-top:5px}.taste-summary p:empty{display:none}#taste-live-summary{min-height:80px}
@media(max-width:750px){.taste-banner{align-items:stretch;flex-direction:column;padding:22px}.taste-banner-actions{justify-items:stretch}.taste-layout{grid-template-columns:minmax(0,1fr)}.taste-summary{position:static;border-radius:16px;padding:18px}.taste-summary .taste-orbit,.taste-summary h3{display:none}#taste-dialog{padding:20px}.taste-tiles{gap:8px}.taste-tile{padding:11px;font-size:12px}.sidebar nav{flex-wrap:wrap}.taste-banner h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.taste-tile{transition:none;transform:none!important}}
#reservation-dialog{max-width:820px}#reservation-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#reservation-dialog input[type=checkbox]{flex-shrink:0}.reservation-transcript{max-height:360px;overflow:auto;margin:20px 0;border-radius:16px;background:#f1f1e9;padding:14px}.reservation-message{background:var(--paper);padding:13px 16px;border-radius:13px;margin:10px 0;border-left:3px solid #819b77}.reservation-message.assistant{border-left-color:var(--accent);margin-left:22px}.reservation-message strong{font-size:11px;text-transform:uppercase;letter-spacing:1px}.reservation-message p{margin:8px 0;overflow-wrap:anywhere}.reservation-message small{font-size:10px;color:var(--muted)}#reservation-live-terms{white-space:pre-line}#reservation-result-review{margin-top:24px;padding:20px;background:var(--soft);border-radius:14px}#reservation-result-review h3{font-size:21px}#reservation-evidence{max-width:100%}#reservation-summary{margin-bottom:14px}#reservation-list .saved-card p{font-size:12px}#reservation-retry{margin-top:18px}
@media(max-width:480px){#reservation-dialog .form-grid{grid-template-columns:minmax(0,1fr)}.reservation-message.assistant{margin-left:8px}}
.reservation-badge{display:inline-block;background:#e1e9d9;color:var(--ink);border-radius:8px;padding:6px 10px;font-size:11px}
