:root{color-scheme:light;--ink:#381d19;--muted:#6e5650;--terracotta:#b83d27;--coral-soft:#fde9d4;--citrus:#ffcf56;--citrus-soft:#fff3c4;--herb:#286c45;--herb-soft:#dff2e4;--paper:#fff9f1;--line:#eadcd2;--field:#8c736d;--error:#a31d2f;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(--terracotta);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;min-height:44px;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(--citrus);font-size:20px}
.top-tools{display:flex;align-items:center;gap:16px}
.home-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;font-weight:800;text-decoration:none}
.top-tools select{min-height:44px;max-width:185px;padding:8px 14px;border:2px solid var(--field);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:16px;font-weight:800;cursor:pointer}

.intro,.work-area{max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px}
.intro{padding-top:36px;padding-bottom:20px;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(--herb-soft);color:var(--herb);font-size:11px;letter-spacing:1.3px;font-weight:900}
.intro h1{font-size:clamp(36px,4.8vw,56px);line-height:1.05;letter-spacing:-2.1px;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(--citrus-soft);border:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:750;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,.9fr) minmax(0,1.1fr);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(--citrus)}
.step-two{box-shadow:5px 5px 0 #b8dfc4}
.step-three{box-shadow:5px 5px 0 #f4c7ad}
.step h2{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:24px;line-height:1.15;letter-spacing:-.6px;overflow-wrap:anywhere}
.step-no{display:grid;place-items:center;flex:none;width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;background:var(--citrus);font-size:20px;font-weight:900;letter-spacing:0}
.step-two .step-no{background:var(--herb-soft)}
.step-three .step-no{background:var(--coral-soft)}

.guest-grid,.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.field{display:grid;gap:6px;margin:0;min-width:0}
.field>span,.group legend{font-size:14px;font-weight:800;line-height:1.35;color:var(--ink)}
.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="number"]{font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}
.field input[type="date"]{-webkit-appearance:none;appearance:none}
.field input::placeholder{color:var(--muted);opacity:.85}
.field input[aria-invalid="true"]{border-color:var(--error);background:#fff6f7}
.note{margin:8px 0 0;padding:8px 12px;border-radius:12px;background:var(--herb-soft);color:var(--herb);font-size:13px;font-weight:800;line-height:1.4;overflow-wrap:anywhere}
.note.problem{background:#fdecef;color:var(--error)}
.hint{margin:8px 0 0;color:var(--muted);font-size:13px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}

.group{min-width:0;margin:16px 0 0;padding:0;border:0}
.group legend{padding:0;margin:0 0 8px}
.event-grid{display:grid;gap:8px}
.pill-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.seg-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.drink-checks{display:flex;flex-wrap:wrap;gap:8px}

.choice{position:relative;display:flex;align-items:center;min-height:46px;min-width:0;max-width:100%;padding:10px 13px;cursor:pointer}
.choice>input{position:absolute;inset:0;width:100%;height:100%;margin:0;border:2px solid var(--field);border-radius:14px;background:#fff;font-size:16px;cursor:pointer;-webkit-appearance:none;appearance:none}
.choice>input:hover:not(:disabled){border-color:var(--ink)}
.choice-body{position:relative;z-index:1;min-width:0;pointer-events:none;font-size:14px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}

.event-card{padding:11px 14px}
.event-card .choice-body{display:grid;gap:2px;padding-left:26px}
.event-card .choice-body::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border:2px solid var(--field);border-radius:50%;background:#fff}
.event-card>input:checked{border-color:var(--terracotta);background:var(--coral-soft)}
.event-card>input:checked+.choice-body::before{border-color:var(--terracotta);background:var(--terracotta);box-shadow:inset 0 0 0 3px #fff}
.event-card strong{font-size:14.5px;line-height:1.25}
.event-card small,.warm-card small{color:var(--muted);font-size:12.5px;font-weight:600;line-height:1.35}

.pill,.seg{justify-content:center;text-align:center;padding:10px 8px}
.pill>input,.seg>input{border-radius:999px}
.pill>input:checked,.seg>input:checked{border-color:var(--terracotta);background:var(--terracotta)}
.pill>input:checked+.choice-body,.seg>input:checked+.choice-body{color:#fff}

.chip{padding:9px 13px}
.chip .choice-body,.warm-card .choice-body,.slim-check .choice-body{padding-left:26px}
.chip .choice-body::before,.warm-card .choice-body::before,.slim-check .choice-body::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:18px;height:18px;border:2px solid var(--field);border-radius:5px;background:#fff;display:grid;place-items:center;font-size:12px;font-weight:900;line-height:1}
.chip>input:checked,.slim-check>input:checked{border-color:var(--herb);background:var(--herb-soft)}
.chip>input:checked+.choice-body::before,.slim-check>input:checked+.choice-body::before{content:"✓";border-color:var(--herb);background:var(--herb);color:#fff}
.chip:has(input:disabled){cursor:not-allowed;opacity:.62}
.chip>input:disabled{cursor:not-allowed;background:#f5efe9}

.warm-card{margin-top:16px;padding:11px 14px}
.warm-card .choice-body{display:grid;gap:2px}
.warm-card .choice-body::before{top:2px;transform:none}
.warm-card>input:checked{border-color:var(--terracotta);background:var(--citrus-soft)}
.warm-card>input:checked+.choice-body::before{content:"✓";border-color:var(--terracotta);background:var(--terracotta);color:#fff}

.button{min-height:46px;border:2px solid var(--ink);border-radius:999px;padding:10px 20px;font:inherit;font-size:14px;font-weight:850;line-height:1.2;cursor:pointer}
.primary{background:var(--terracotta);border-color:var(--ink);color:#fff;box-shadow:3px 3px 0 var(--ink)}
.primary:hover{background:#9b301d}
.secondary{background:var(--citrus);color:var(--ink);box-shadow:2px 2px 0 var(--ink)}
.secondary:hover{background:#f5c038}
.quiet{background:#f3e7dc;border-color:var(--field);color:var(--ink)}
.soft-btn{min-height:44px;padding:8px 14px;border:2px solid var(--field);background:#fff;color:var(--ink);font-size:13px;font-weight:800}
.soft-btn:hover{border-color:var(--ink);background:var(--citrus-soft)}
.form-actions{display:flex;justify-content:flex-end}

.notepad{position:relative;min-width:0;padding:24px 22px 22px;border:2px solid var(--ink);border-radius:28px;background:#fff;box-shadow:6px 6px 0 var(--coral-soft)}
.notepad::before{content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:76px;height:20px;border:2px solid var(--ink);border-radius:999px;background:var(--terracotta)}
.preview-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:14px;border-bottom:2px dashed var(--line)}
.preview-titles{min-width:0}
.preview-head h2{margin:0;font-size:26px;line-height:1.12;letter-spacing:-.7px}
.list-summary{margin:5px 0 0;color:var(--muted);font-size:14px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}

.empty-status{margin:18px 0 6px;padding:16px 18px;border:2px solid var(--error);border-radius:18px;background:#fdecef;color:var(--error);font-size:15px;font-weight:800;line-height:1.45}
.list-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:14px 0 6px}
.slim-check{padding:9px 13px}
.edit-actions{display:flex;flex-wrap:wrap;gap:8px}

.shopping-categories{display:grid;gap:18px;margin-top:12px}
.shop-cat{min-width:0;padding:14px 16px 8px;border:2px solid var(--line);border-radius:20px;background:#fffdfa}
.shop-cat h3{margin:0 0 8px;font-size:15px;font-weight:900;letter-spacing:.2px;color:var(--terracotta);text-transform:uppercase}
.shop-list{list-style:none;margin:0;padding:0}
.shop-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto 44px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);min-width:0}
.shop-item:first-child{border-top:0}
.item-check{width:44px;height:44px;margin:0;border:2px solid var(--field);border-radius:12px;background:#fff;font-size:16px;cursor:pointer;-webkit-appearance:none;appearance:none;display:grid;place-items:center}
.item-check:hover{border-color:var(--ink)}
.item-check:checked{border-color:var(--herb);background:var(--herb);color:#fff}
.item-check:checked::after{content:"✓";font-size:20px;font-weight:900;line-height:1}
.item-info{min-width:0;overflow-wrap:anywhere}
.item-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.item-name{font-size:15px;font-weight:800;line-height:1.3;min-width:0}
.shop-item.is-checked .item-name{text-decoration:line-through;color:var(--muted)}
.edited-tag{display:inline-block;padding:2px 7px;border-radius:999px;background:var(--citrus-soft);border:1px solid var(--field);font-size:11px;font-weight:800;color:var(--ink)}
.item-hint{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;line-height:1.35}
.item-amount-wrap{display:flex;align-items:center;gap:6px;min-width:0}
.item-qty{width:86px;min-height:44px;padding:6px 10px;border:2px solid var(--field);border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-size:16px;font-weight:850;text-align:right;font-variant-numeric:tabular-nums}
.shop-item.is-edited .item-qty{border-color:var(--terracotta);background:var(--citrus-soft)}
.item-unit{font-size:13px;font-weight:800;color:var(--muted);max-width:84px;overflow-wrap:anywhere}
.custom-amount{font-size:14px;font-weight:800;color:var(--ink);max-width:140px;overflow-wrap:anywhere}
.item-remove{width:44px;height:44px;padding:0;border:2px solid var(--field);border-radius:12px;background:#fff;color:var(--muted);font:inherit;font-size:20px;font-weight:800;line-height:1;cursor:pointer;display:grid;place-items:center}
.item-remove:hover{border-color:var(--error);color:var(--error);background:#fff5f6}

.custom-box{margin-top:18px;padding:16px;border:2px dashed var(--field);border-radius:20px;background:var(--paper)}
.custom-heading{margin:0 0 10px;font-size:16px;font-weight:850}
.custom-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) auto;gap:10px;align-items:end}

.assumptions-card{margin-top:18px;padding:16px 18px;border:2px solid var(--ink);border-radius:20px;background:var(--citrus-soft)}
.assumptions-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.approx-badge{display:inline-block;padding:3px 9px;border-radius:999px;background:#fff;border:1.5px solid var(--ink);font-size:10px;font-weight:900;letter-spacing:.9px}
.assumptions-card h3{margin:0;font-size:17px;font-weight:900;line-height:1.25}
.assumptions-lead{margin:0 0 10px;color:var(--ink);font-size:13.5px;font-weight:750;line-height:1.45}
.assumptions-list{margin:0;padding-left:18px;display:grid;gap:5px;color:var(--ink);font-size:13px;line-height:1.45;overflow-wrap:anywhere}

.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;overflow-wrap:anywhere}
.explain p{margin:0;color:var(--muted);font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.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;color:var(--ink);overflow-wrap:anywhere}
.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:12px}
footer .footer-brand{font-size:16px;color:var(--ink)}
footer a{min-height:44px;display:inline-flex;align-items:center}
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}
  .intro,.work-area{padding-left:18px;padding-right:18px}
  .intro{padding-top:26px;padding-bottom:12px;grid-template-columns:minmax(0,1fr);gap:8px}
  .intro h1{font-size:38px;letter-spacing:-1.6px}
  .intro-copy>p{font-size:15px}
  .intro-copy>.local-note{border-radius:18px}
  .hero-art{order:-1;justify-items:start}
  .hero-art img{width:210px}
  .work-area{padding-top:10px;padding-bottom:42px;gap:28px}
  .step,.notepad{padding:20px 16px;border-radius:24px}
  .field-pair,.custom-fields{grid-template-columns:minmax(0,1fr)}
  .custom-fields .button{width:100%}
  .explain{padding:26px 18px 42px;grid-template-columns:minmax(0,1fr);gap:22px}
  .faq{grid-template-columns:minmax(0,1fr)}
  footer{padding:17px 18px}.footer-brand{width:100%}footer span{margin:0}
}
@media(max-width:560px){
  .seg-row{grid-template-columns:minmax(0,1fr)}
  .pill-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .shop-item{grid-template-columns:44px minmax(0,1fr) 44px;row-gap:8px;align-items:start}
  .item-amount-wrap{grid-column:2/-1;flex-wrap:wrap}
  .custom-amount{max-width:100%}
}
@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:154px;padding:7px 10px}
  .intro,.work-area{padding-left:14px;padding-right:14px}
  .intro h1{font-size:33px;letter-spacing:-1.3px}
  .guest-grid{grid-template-columns:minmax(0,1fr)}
  .step{padding:16px 14px 18px;box-shadow:3px 3px 0 var(--citrus)}
  .step-two{box-shadow:3px 3px 0 #b8dfc4}
  .step-three{box-shadow:3px 3px 0 #f4c7ad}
  .notepad{padding:22px 13px 16px;box-shadow:3px 3px 0 var(--coral-soft)}
  .shop-cat{padding:12px 11px 6px}
  .preview-head .button,.edit-actions,.edit-actions .button{width:100%}
}
@media(forced-colors:active){
  .button{border:2px solid ButtonText}
  .choice>input,.item-check,.item-remove{border-color:ButtonText}
  .choice>input:checked,.item-check:checked{border-color:Highlight;background:Highlight;forced-color-adjust:none}
  .choice>input:checked+.choice-body,.choice>input:checked+.choice-body small,.item-check:checked{color:HighlightText;forced-color-adjust:none}
}
@media(prefers-reduced-motion:no-preference){.button,.choice>input,.item-check{transition:background-color .14s,border-color .14s}}

/* 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:#20100d!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}
  /* Inset 0.6 mm on both sides so WebKit right-edge clipping never trims a table or card border. */
  .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:#20100d!important;font-size:9.2pt;line-height:1.3;overflow-wrap:anywhere;word-break:normal}
  .doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:5mm;margin:0 0 3.5mm;padding-bottom:2.5mm;border-bottom:1.2pt solid #20100d;break-after:avoid}
  .doc-titles{min-width:0}
  .document h3{margin:0;font-size:20pt;line-height:1.12;letter-spacing:-.3pt}
  .doc-meta{margin:1.2mm 0 0;font-size:9.5pt;font-weight:650;color:#20100d}
  .doc-icon{flex:none;width:12mm;height:12mm;color:#20100d}
  .doc-empty{margin:3mm 0 4mm;padding:3mm 4mm;border:1pt solid #20100d;border-radius:2.5mm;font-size:10pt;font-weight:700}
  .doc-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5mm;align-items:start}
  .doc-categories.single-col{grid-template-columns:minmax(0,1fr)}
  .doc-cat{min-width:0;padding:2.4mm 3.2mm;border:1pt solid #20100d;border-radius:2.8mm}
  .doc-cat.compact-cat{break-inside:avoid}
  .doc-cat h4{margin:0 0 1.4mm;font-size:9.5pt;font-weight:850;text-transform:uppercase;letter-spacing:.3pt;break-after:avoid}
  .doc-list{list-style:none;margin:0;padding:0}
  .doc-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:2.2mm;align-items:baseline;padding:1.2mm 0;border-top:.5pt solid #a69893;break-inside:avoid}
  .doc-row:first-child{border-top:0}
  .doc-box{display:inline-grid;place-items:center;width:3.6mm;height:3.6mm;border:1pt solid #20100d;border-radius:.7mm;font-size:7.5pt;font-weight:900;line-height:1;transform:translateY(.4mm)}
  .doc-item-main{min-width:0}
  .doc-item-name{font-weight:750}
  .doc-row.is-checked .doc-item-name{text-decoration:line-through}
  .doc-item-hint{display:block;font-size:7.8pt;color:#4a3935;line-height:1.22}
  .doc-item-qty{font-weight:850;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
  .doc-item-qty.wrap-qty{white-space:normal;max-width:42mm;overflow-wrap:anywhere}
  .doc-end{margin-top:3.5mm;break-inside:avoid}
  .doc-assumptions{padding:2.4mm 3.4mm;border:1pt solid #20100d;border-radius:2.8mm;font-size:8pt;line-height:1.28}
  .doc-assumptions h4,.doc-notes h4{margin:0 0 .8mm;font-size:8.8pt;font-weight:850}
  .doc-disclaimer{margin:0 0 1.2mm;font-weight:700}
  .doc-assumptions-list{margin:0;padding-left:4mm;display:grid;gap:.5mm}
  .doc-notes{margin-top:2.8mm}
  .notes-lines span{display:block;height:5.5mm;border-bottom:.6pt dashed #7c6b66}
  .doc-credit{margin:2.4mm 0 0;color:#4a3935;font-size:7.8pt;line-height:1.25;text-align:right}
  .doc-credit a{color:inherit;text-decoration:none}
}
