:root{color-scheme:light;--ink:#173245;--muted:#586c7a;--ocean:#196292;--sky-soft:#dff0fa;--sun:#ffd15c;--sun-soft:#fff3cc;--coral:#e56b4e;--coral-soft:#fdeae4;--leaf:#23704a;--leaf-soft:#dff4e8;--paper:#fcf8f0;--line:#e2dcd0;--field:#738796;--error:#a62639;font-family:ui-rounded,"Avenir Next",Avenir,system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink)}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ocean);outline-offset:2px}

.topbar{min-height:72px;max-width:1200px;margin:auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand,.footer-brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:23px;font-weight:900;letter-spacing:-1.2px;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:var(--sun);font-size:20px}
.top-tools{display:flex;align-items:center;gap:16px}
.home-link{font-size:12px;font-weight:800;text-decoration:none}
.top-tools select{max-width:180px;padding:8px 12px;border:2px solid var(--field);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:12px;font-weight:800}

.intro,.work-area{max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px}
.intro{padding-top:36px;padding-bottom:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.74fr);gap:28px;align-items:center}
.eyebrow{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--sky-soft);color:var(--ocean);font-size:10px;letter-spacing:1.3px;font-weight:900}
.intro h1{font-size:clamp(36px,4.8vw,56px);line-height:1.05;letter-spacing:-2.2px;margin:14px 0 12px;overflow-wrap:anywhere}
.intro-copy>p{max-width:640px;margin:0 0 14px;color:var(--muted);font-size:16px;line-height:1.6}
.intro-copy>.local-note{display:inline-block;margin:0;padding:8px 16px;border-radius:999px;background:var(--sun-soft);color:var(--ink);font-size:13px;font-weight:700;line-height:1.4}
.hero-art{display:grid;place-items:center}
.hero-art img{display:block;width:min(100%,410px);height:auto}

.work-area{padding-top:16px;padding-bottom:58px;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:30px;align-items:start}
.form-panel,.preview-column{min-width:0}
form{display:grid;gap:18px;min-width:0}
.step{min-width:0;padding:22px 22px 24px;border:2px solid var(--ink);border-radius:28px;background:#fff;box-shadow:5px 5px 0 var(--sun)}
.step-two{box-shadow:5px 5px 0 #b8dfc9}
.step-three{box-shadow:5px 5px 0 #b8daee}
.step h2{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:24px;line-height:1.15;letter-spacing:-.6px}
.step-no{display:grid;place-items:center;flex:none;width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;background:var(--sun);font-size:20px;font-weight:900;letter-spacing:0}
.step-two .step-no{background:#b8dfc9}
.step-three .step-no{background:#b8daee}

.group{min-width:0;margin:0 0 16px;padding:0;border:0}
.step>.group:last-child{margin-bottom:0}
.group legend,.field>span{padding:0;margin:0 0 8px;font-size:13px;font-weight:800;line-height:1.35;color:var(--ink)}
.field{display:grid;gap:6px;margin:0;min-width:0}
.field>span{margin:0}
.field input{display:block;width:100%;min-width:0;min-height:48px;border:2px solid var(--field);border-radius:14px;background:#fffdfa;padding:10px 14px;color:var(--ink);font:inherit;font-size:16px;line-height:1.4}
.field input[type="date"]{-webkit-appearance:none;appearance:none}
.field input::placeholder{color:#667a88}
.field input[aria-invalid="true"]{border-color:var(--error)}

.nights-block{margin:0 0 16px}
.nights-field input{max-width:136px;font-size:19px;font-weight:900;font-variant-numeric:tabular-nums}
.note{margin:8px 0 0;padding:8px 12px;border-radius:12px;background:var(--leaf-soft);color:var(--leaf);font-size:13px;font-weight:800;line-height:1.4;overflow-wrap:anywhere}
.note.problem{background:var(--coral-soft);color:var(--error)}

.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pill-card{display:flex;align-items:center;gap:9px;min-width:0;min-height:46px;padding:9px 12px;border:2px solid var(--line);border-radius:14px;background:#fffdfa;cursor:pointer;font-size:14px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}
.pill-card:hover{border-color:var(--ocean)}
.pill-card:has(input:checked){border-color:var(--ink);background:var(--sky-soft)}
.pill-card span{min-width:0}

input[type="radio"],input[type="checkbox"]{-webkit-appearance:none;appearance:none;flex:none;width:20px;height:20px;margin:0;border:2px solid var(--field);background:#fff;cursor:pointer;display:grid;place-content:center}
input[type="radio"]{border-radius:50%}
input[type="radio"]:checked{border-color:var(--ocean);background:var(--ocean);box-shadow:inset 0 0 0 3.5px #fff}
input[type="checkbox"]{border-radius:6px}
input[type="checkbox"]::after{content:"";width:10px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px) scale(0)}
input[type="checkbox"]:checked{border-color:var(--leaf);background:var(--leaf)}
input[type="checkbox"]:checked::after{transform:rotate(-45deg) translate(1px,-1px) scale(1)}

.check-list{display:grid;gap:8px}
.check{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:46px;padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:#fffdfa;cursor:pointer}
.check:hover{border-color:var(--ocean)}
.check:has(input:checked){border-color:var(--ink);background:var(--leaf-soft)}
.check input{margin-top:1px}
.check-text{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.check-text strong{font-size:14px;line-height:1.3}
.check-text small{color:var(--muted);font-size:12px;line-height:1.35}

.chip-grid{display:flex;flex-wrap:wrap;gap:8px}
.chip-check{align-items:center;min-height:44px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:800}
.chip-check input{margin-top:0}
.chip-check span{min-width:0;overflow-wrap:anywhere}

.field-pair{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px;align-items:end}
.form-actions{display:flex;justify-content:flex-end}

.button{min-height:46px;border:2px solid var(--ink);border-radius:999px;padding:10px 18px;font:inherit;font-size:14px;font-weight:850;line-height:1.2;cursor:pointer;background:#fff;color:var(--ink)}
.primary{background:var(--ocean);border-color:var(--ink);color:#fff;box-shadow:3px 3px 0 var(--ink)}
.primary:hover{background:#134e75}
.accent{background:var(--sun);border-color:var(--ink);color:var(--ink);box-shadow:2px 2px 0 var(--ink)}
.accent:hover{background:#f7c339}
.quiet{background:#f1ece2;border-color:var(--field);color:var(--ink)}
.soft{min-height:44px;padding:8px 14px;border:2px dashed var(--ocean);background:var(--sky-soft);color:var(--ink);font-size:13px}

.list-shell{min-width:0;padding:24px 22px 26px;border:2px solid var(--ink);border-radius:28px;background:#fff;box-shadow:6px 6px 0 var(--coral)}
.preview-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.preview-titles{min-width:0}
.preview-head h2{margin:0;font-size:26px;line-height:1.1;letter-spacing:-.7px}
.progress-text{margin:4px 0 0;color:var(--leaf);font-size:14px;font-weight:850;font-variant-numeric:tabular-nums}
.progress-track{height:10px;border-radius:999px;background:#efeae0;border:1.5px solid var(--ink);overflow:hidden;margin-bottom:14px}
.progress-fill{height:100%;width:0%;background:var(--leaf);border-radius:999px}

.rule-banner{margin:0 0 14px;padding:11px 15px;border-radius:16px;background:var(--sun-soft);border:1.5px solid #dfc06b;color:var(--ink);font-size:13.5px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}

.list-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.filter-check{align-items:center;margin:0;padding:8px 12px;min-height:44px;font-size:13px;font-weight:750;background:#fcfaf5}
.filter-check input{margin-top:0}

.custom-bar{margin:0 0 18px;padding:14px;border:2px solid var(--line);border-radius:18px;background:#fcfaf5}
.custom-row{display:grid;grid-template-columns:minmax(0,1fr) 86px auto;gap:10px;align-items:end}
.custom-qty-field input{text-align:center;font-weight:800;padding-left:8px;padding-right:8px;font-variant-numeric:tabular-nums}

.empty-list{margin:12px 0;padding:16px;border-radius:16px;background:var(--sun-soft);font-size:14px;font-weight:750;text-align:center}

.cat-grid{display:grid;gap:14px}
.cat-card{min-width:0;padding:14px 16px;border:2px solid var(--line);border-radius:20px;background:#fff;overflow-wrap:anywhere}
.cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid #f0ebe1}
.cat-head h3{margin:0;font-size:16px;font-weight:900;letter-spacing:-.2px}
.cat-count{flex:none;font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.item-list{list-style:none;margin:0;padding:0}
.item-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;padding:6px 0;border-top:1px solid #f2ede3}
.item-row:first-child{border-top:0;padding-top:2px}
.item-check{flex:1 1 170px;min-width:0;min-height:38px;display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14.5px;line-height:1.35}
.item-qty{flex:none;display:inline-block;min-width:26px;padding:2px 7px;border-radius:999px;background:var(--sky-soft);color:var(--ocean);font-size:12.5px;font-weight:900;text-align:center;font-variant-numeric:tabular-nums}
.item-name{min-width:0;font-weight:650;overflow-wrap:anywhere;word-break:normal}
.item-row.is-packed .item-name{color:var(--muted);text-decoration:line-through}
.item-row.is-packed .item-qty{background:#eef2f5;color:var(--muted)}
.item-actions{display:flex;align-items:center;gap:5px;margin-left:auto}
.step-btn{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1.5px solid var(--field);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:16px;font-weight:900;line-height:1;cursor:pointer}
.step-btn:hover:not(:disabled){border-color:var(--ink);background:var(--sky-soft)}
.step-btn:disabled{opacity:.38;cursor:default}
.remove-btn:hover{border-color:var(--error);background:var(--coral-soft);color:var(--error)}

.explain{max-width:1200px;margin:0 auto;padding:32px 28px 54px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:36px}
.explain h2{margin:0 0 10px;font-size:25px;line-height:1.15;letter-spacing:-.6px}
.explain p{margin:0;color:#425563;font-size:15px;line-height:1.65}
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px;align-content:start}
.faq h3{margin:0 0 5px;font-size:15px;line-height:1.35}
.faq p{font-size:14px}

.document{display:none}
footer{max-width:1200px;margin:auto;padding:18px 28px 25px;border-top:1px solid var(--line);display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:11px}
footer .footer-brand{font-size:16px;color:var(--ink)}
footer span{margin-left:auto}
footer span span{margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:980px){.work-area{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
.topbar{padding:12px 18px}.top-tools{gap:10px}.home-link{font-size:11px}
.top-tools select{min-height:44px;font-size:16px}
.intro,.work-area{padding-left:18px;padding-right:18px}
.intro{padding-top:26px;padding-bottom:12px;grid-template-columns:1fr;gap:8px}
.intro h1{font-size:40px;letter-spacing:-1.7px}
.intro-copy>p{font-size:15px}
.intro-copy>.local-note{border-radius:20px}
.hero-art{order:-1;justify-items:start}
.hero-art img{width:210px}
.work-area{padding-top:10px;padding-bottom:42px;gap:26px}
.step,.list-shell{padding:18px 16px 20px;border-radius:24px}
.field-pair{grid-template-columns:1fr}
.custom-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.custom-text-field{grid-column:1/-1}
.pill-card,.check,.chip-check,.filter-check,.item-check,.button{min-height:44px}
.item-check{flex-basis:150px}
.step-btn{width:44px;height:44px;font-size:18px;border-radius:11px}
footer{padding:17px 18px}.footer-brand{width:100%}footer span{margin:0}
.explain{padding:26px 18px 42px;grid-template-columns:1fr;gap:22px}
.faq{grid-template-columns:1fr}
}
@media(max-width:430px){
.topbar{padding-left:13px;padding-right:13px}.brand{font-size:20px}.brand-mark{width:29px;height:29px}.top-tools{gap:7px}.home-link{display:none}.top-tools select{max-width:150px;padding:7px 8px}
.intro,.work-area{padding-left:14px;padding-right:14px}
.intro h1{font-size:34px;letter-spacing:-1.3px}
.step,.list-shell{padding:16px 13px 18px;box-shadow:3px 3px 0 var(--sun)}
.list-shell{box-shadow:3px 3px 0 var(--coral)}
.step h2,.preview-head h2{font-size:22px}
.trip-grid{grid-template-columns:minmax(0,1fr)}
.preview-head .primary{width:100%}
.cat-card{padding:12px}
}
@media(forced-colors:active){
.button,.step-btn{border:2px solid ButtonText}
input[type="radio"],input[type="checkbox"]{border-color:ButtonText}
input[type="radio"]:checked,input[type="checkbox"]:checked{border-color:Highlight;background:Highlight;forced-color-adjust:none}
input[type="checkbox"]::after{border-color:HighlightText}
}
@media(prefers-reduced-motion:no-preference){.button,.pill-card,.check,.step-btn,.progress-fill{transition:background-color .15s,border-color .15s,width .2s}}

/* A4 portrait with a real 15 mm page margin. Chrome and Safari both repeat it on every page; padding on the document does not. */
@page{size:A4 portrait;margin:15mm}
@media print{
html,body{width:auto!important;min-width:0!important;margin:0!important;padding:0!important;background:#fff!important;color:#112230!important;overflow:visible!important}
*{box-sizing:border-box}
.topbar,.intro,.work-area,.explain,footer{display:none!important}
main{display:block!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}
.document{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0 .6mm!important;border:0!important;background:#fff!important;color:#112230!important;font-size:9.5pt;line-height:1.3;overflow:visible!important;overflow-wrap:anywhere;word-break:normal}
.doc-head{display:flex;align-items:center;justify-content:space-between;gap:6mm;margin:0 0 3mm}
.doc-titles{min-width:0}
.document h3{margin:0;font-size:22pt;line-height:1.1;letter-spacing:-.3pt;break-after:avoid}
.doc-sub{margin:1.2mm 0 0;color:#2b3e4e;font-size:10pt;font-weight:700}
.doc-tag-icon{flex:none;width:13mm;height:13mm;color:#112230}
.doc-rule{margin:0 0 3.5mm;padding:2mm 3.5mm;border:1pt solid #112230;border-radius:3.5mm;background:none;font-size:9pt;font-weight:600;line-height:1.35;break-inside:avoid}
.doc-all-packed{margin:0 0 4mm;padding:3mm 4mm;border:1pt solid #112230;border-radius:3.5mm;font-size:10pt;font-weight:700}
.doc-body{display:block}
.doc-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3.5mm;margin:0 0 3.5mm;break-inside:avoid;align-items:start}
.doc-cat{min-width:0;padding:2.4mm 3.2mm 2.8mm;border:1pt solid #112230;border-radius:3.5mm;break-inside:avoid}
.doc-cat-flow{margin:0 0 3.5mm;break-inside:auto}
.doc-cat h4{margin:0 0 1.4mm;font-size:10.5pt;font-weight:800;line-height:1.2;break-after:avoid}
.doc-list{list-style:none;margin:0;padding:0}
.doc-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2.2mm;align-items:start;padding:1.1mm 0;border-top:.5pt solid #8a99a6;font-size:9.2pt;line-height:1.25;break-inside:avoid}
.doc-item:first-child{border-top:0;padding-top:.4mm}
.doc-tick{width:3.5mm;height:3.5mm;margin-top:.2mm;border:1pt solid #112230;border-radius:.7mm;display:grid;place-items:center;font-size:7.5pt;font-weight:900;line-height:1}
.doc-item-text{min-width:0}
.doc-qty{font-weight:800;margin-right:1mm}
.doc-end{break-inside:avoid;margin-top:1mm}
.doc-notes{padding:2.4mm 3.5mm 3mm;border:1pt solid #112230;border-radius:3.5mm;break-inside:avoid}
.doc-notes h4{margin:0 0 1.5mm;font-size:10pt;font-weight:800}
.note-lines{display:grid;gap:4.8mm;padding-top:3.5mm}
.note-lines span{display:block;border-bottom:.6pt dashed #6e7f8d}
.doc-credit{margin:2.2mm 0 0;color:#2b3e4e;font-size:8pt;line-height:1.3;text-align:left;break-inside:avoid}
.doc-credit a{color:inherit;text-decoration:none}
}
