@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/karla-latin-ext-400-normal.865ff6ef.woff2) format("woff2"),url(/_next/static/media/karla-latin-ext-400-normal.f1e1a062.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/karla-latin-400-normal.f33e74df.woff2) format("woff2"),url(/_next/static/media/karla-latin-400-normal.e94f67c4.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/karla-latin-ext-700-normal.a60cbd76.woff2) format("woff2"),url(/_next/static/media/karla-latin-ext-700-normal.62abca0f.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Karla;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/karla-latin-700-normal.65ef2fc4.woff2) format("woff2"),url(/_next/static/media/karla-latin-700-normal.df4c8ee4.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fraunces-vietnamese-500-normal.47ec7a1a.woff2) format("woff2"),url(/_next/static/media/fraunces-vietnamese-500-normal.33525264.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fraunces-latin-ext-500-normal.ed2540b3.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-ext-500-normal.c790db55.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/fraunces-latin-500-normal.55a5a3b9.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-500-normal.8480e918.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/_next/static/media/fraunces-vietnamese-600-italic.43e8540c.woff2) format("woff2"),url(/_next/static/media/fraunces-vietnamese-600-italic.d3b28fb8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/_next/static/media/fraunces-latin-ext-600-italic.6436000f.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-ext-600-italic.25daa472.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(/_next/static/media/fraunces-latin-600-italic.0e7efe95.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-600-italic.33673605.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--color-bg:#ede6da;--color-bg-card:#f6f2e9;--color-ink:#2b2b26;--color-ink-muted:#6b6558;--color-green:#3f5443;--color-green-soft:#7a8b6f;--color-terracotta:#b8664a;--color-border:#d8cfbc;--font-display:"Fraunces",Georgia,serif;--font-body:"Karla",-apple-system,BlinkMacSystemFont,sans-serif;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:40px;--radius-card:18px;--radius-chip:999px;--max-narrow:500px;--max-width:720px;--nav-height:64px}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--color-green);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-3)}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.app-topbar__inner{max-width:var(--max-width);margin:0 auto;padding:14px var(--space-3);display:flex;align-items:center}.app-topbar__brand{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:19px;color:var(--color-green)}.app-shell__content{flex:1 1 auto;padding-top:var(--space-2);padding-bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom))}.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--color-bg-card);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom)}.app-nav__list{max-width:var(--max-width);margin:0 auto;list-style:none;padding:0;display:flex}.app-nav__list li{flex:1 1;display:flex}.app-nav__button,.app-nav__link{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--nav-height);padding:6px 4px;text-decoration:none;color:var(--color-ink-muted);background:none;border:none;font-family:var(--font-body);font-size:11px;font-weight:700}.app-nav__button svg,.app-nav__link svg{width:22px;height:22px}.app-nav__link.is-active{color:var(--color-green)}.app-nav__button:disabled{color:var(--color-border);cursor:default}.app-nav__soon{font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-border)}.home-household{margin:var(--space-2) 0 0;color:var(--color-ink-muted);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.home-title{font-family:var(--font-display);font-weight:500;font-size:clamp(22px,5vw,27px);margin:2px 0 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-3) 0 var(--space-2)}.section-heading__title{font-family:var(--font-display);font-weight:500;font-size:20px;margin:0}.new-entry>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border-radius:var(--radius-chip);background:var(--color-green);color:#f6f2e9;font-family:var(--font-body);font-weight:700;font-size:14px}.new-entry>summary::-webkit-details-marker{display:none}.new-entry>summary::marker{content:""}.new-entry>summary:hover{background:var(--color-green-soft)}.new-entry>summary:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.new-entry__plus{display:inline-block;font-size:18px;line-height:1;transition:transform .15s ease}.new-entry[open]>summary{background:var(--color-green-soft)}.new-entry[open]>summary .new-entry__plus{transform:rotate(45deg)}.new-entry__panel{margin-top:var(--space-2)}.trip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.trip-card{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-card);background:var(--color-bg-card);border:1px solid var(--color-border);text-decoration:none;color:var(--color-ink);transition:border-color .15s ease}.trip-card:hover{border-color:var(--color-green-soft)}.trip-card__row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.trip-card__chevron{color:var(--color-ink-muted);font-size:16px}.trip-card__title{font-family:var(--font-display);font-size:19px;font-weight:500;margin:0 0 2px}.trip-card__dates{margin:0;color:var(--color-ink-muted);font-size:14px}.tag--in-progress{background:var(--color-green);color:#f6f2e9}.tag--completed{opacity:.6}.trip-header{padding-top:var(--space-1)}.trip-header__back{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:var(--color-ink-muted);text-decoration:none;margin-bottom:var(--space-2)}.trip-header__back:hover{color:var(--color-ink)}.trip-header__title{font-family:var(--font-display);font-weight:500;font-size:clamp(24px,6vw,32px);margin:0 0 8px}.trip-header__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.trip-header__dates{color:var(--color-ink-muted);font-size:14px}.trip-header__notes{color:var(--color-ink-muted);font-size:15px;margin:var(--space-1) 0 0}.trip-sections{display:flex;gap:8px;overflow-x:auto;margin:var(--space-3) 0 var(--space-2);padding-bottom:2px;scrollbar-width:none}.trip-sections::-webkit-scrollbar{display:none}.trip-sections__item{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:8px 14px;border-radius:var(--radius-chip);font-size:13px;font-weight:700;font-family:var(--font-body);border:1.5px solid var(--color-border);background:none;color:var(--color-ink-muted);text-decoration:none;white-space:nowrap}.trip-sections__item.is-active{background:var(--color-green);border-color:var(--color-green);color:#f6f2e9}.trip-sections__item:disabled{opacity:.55;cursor:default}a.trip-sections__item:hover{border-color:var(--color-green-soft);color:var(--color-ink)}.trip-sections__soon{font-size:9px;text-transform:uppercase;letter-spacing:.02em;opacity:.85}.day-group{padding-top:var(--space-2);border-top:1px solid var(--color-border)}.day-group:first-child{padding-top:0;border-top:none}.day-group__heading{margin:0 0 var(--space-1);font-size:13px;font-weight:700;color:var(--color-green);text-transform:uppercase;letter-spacing:.03em}.day-group__date{color:var(--color-ink-muted)}.plan-subgroup{margin-bottom:var(--space-2)}.plan-subgroup:last-child{margin-bottom:0}.plan-subgroup__daypart{margin:0 0 2px;font-size:12px;font-weight:700;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.03em}.plan-items{list-style:none;margin:0;padding:0}.plan-item{padding:8px 0;border-bottom:1px solid var(--color-border)}.plan-item:last-child{border-bottom:none;padding-bottom:0}.plan-item__title{margin:0;font-weight:700;font-size:16px;line-height:1.3;color:var(--color-ink)}.plan-item__kind,.plan-item__note{margin:2px 0 0;font-size:13px;line-height:1.35;color:var(--color-ink-muted)}.plan-item__kind{font-weight:700}.plan-add{margin-top:var(--space-3)}.plan-add>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--radius-chip);background:var(--color-bg-card);border:1.5px solid var(--color-border);color:var(--color-ink);font-family:var(--font-body);font-weight:700;font-size:14px}.plan-add>summary::-webkit-details-marker{display:none}.plan-add>summary::marker{content:""}.plan-add>summary:hover{border-color:var(--color-green-soft);color:var(--color-green)}.plan-add>summary:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.plan-add[open]>summary{border-color:var(--color-green);color:var(--color-green)}.plan-add__plus{font-size:16px;line-height:1}.plan-add__closed,.plan-add__open{display:inline-flex;align-items:center;gap:6px}.plan-add__open{display:none}.plan-add[open] .plan-add__open{display:inline-flex}.plan-add[open] .plan-add__closed{display:none}.plan-add__panel{margin-top:var(--space-2)}.lodging-list{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.lodging-card{padding:var(--space-2) var(--space-3);border-radius:var(--radius-card);background:var(--color-bg-card);border:1px solid var(--color-border)}.lodging-card__dates{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--color-green);text-transform:uppercase;letter-spacing:.03em}.lodging-card__name{margin:0;font-family:var(--font-display);font-weight:500;font-size:19px;color:var(--color-ink)}.lodging-card__note{margin:6px 0 0;font-size:14px;line-height:1.4;color:var(--color-ink-muted)}.lodging-card__booking{margin:var(--space-1) 0 0;display:flex;flex-direction:column;gap:2px}.lodging-card__booking-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-muted)}.lodging-card__booking-value{font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--color-ink)}.tag{font-size:12px;padding:4px 10px;border-radius:var(--radius-chip);background:var(--color-bg)}.empty-state,.tag{color:var(--color-ink-muted)}.empty-state{padding:var(--space-3);border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-bg-card);text-align:center;font-family:var(--font-display);font-style:italic;font-weight:600;font-size:17px;line-height:1.5}.page-header{padding-top:var(--space-3);text-align:center}.page-header__title{font-family:var(--font-display);font-weight:500;font-size:clamp(28px,5vw,36px);margin:0 0 var(--space-1)}.page-intro{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:19px;color:var(--color-ink);max-width:520px;margin:0 auto var(--space-2)}.section-label{display:block;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-muted);margin:var(--space-3) 0 var(--space-1)}.auth-page{max-width:var(--max-narrow);padding-top:var(--space-4)}.auth-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-3)}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-2)}.auth-field label{font-size:14px;font-weight:700}.auth-field input{min-height:44px}.auth-field input,.auth-field textarea{font-family:var(--font-body);font-size:17px;padding:12px 14px;border-radius:10px;border:1.5px solid var(--color-border);background:#fff;color:var(--color-ink)}.auth-field textarea{resize:vertical}.auth-field input:focus-visible,.auth-field textarea:focus-visible{outline:3px solid var(--color-green);outline-offset:1px;border-color:var(--color-green)}.auth-submit{display:block;width:100%;min-height:44px;border:none;border-radius:var(--radius-card);background:var(--color-green);color:#f6f2e9;font-family:var(--font-body);font-weight:700;font-size:16px;text-align:center;text-decoration:none;cursor:pointer}.auth-submit:hover:not(:disabled){background:var(--color-green-soft)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--color-terracotta);font-size:14px;font-weight:600;margin:0 0 var(--space-2)}.auth-sent-to{margin:0 0 var(--space-2);color:var(--color-ink-muted)}.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.auth-links button{background:none;border:none;padding:0;font-family:var(--font-body);font-size:14px;color:var(--color-ink-muted);text-decoration:underline;cursor:pointer}.auth-links button:hover:not(:disabled){color:var(--color-ink)}.auth-links button:disabled{opacity:.6;cursor:not-allowed;text-decoration:none}.auth-signed-in-actions{display:flex;flex-direction:column;gap:var(--space-2)}.auth-signed-in-actions button{background:none;border:1.5px solid var(--color-border);border-radius:var(--radius-card);min-height:44px;font-family:var(--font-body);font-weight:700;font-size:16px;color:var(--color-ink);cursor:pointer}.auth-signed-in-actions button:hover{border-color:var(--color-green-soft)}.auth-password-field{display:flex;gap:8px}.auth-password-field input{flex:1 1}.auth-password-toggle{flex-shrink:0;border:1.5px solid var(--color-border);border-radius:10px;background:var(--color-bg-card);color:var(--color-ink-muted);font-family:var(--font-body);font-size:14px;padding:0 var(--space-2);cursor:pointer}.auth-password-toggle:hover{border-color:var(--color-green-soft);color:var(--color-ink)}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;color:var(--color-ink-muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.auth-otp-alt{display:block;width:100%;min-height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-card);background:none;color:var(--color-ink);font-family:var(--font-body);font-weight:700;font-size:16px;cursor:pointer}.auth-otp-alt:hover:not(:disabled){border-color:var(--color-green-soft)}.auth-otp-alt:disabled{opacity:.6;cursor:not-allowed}.auth-success{color:var(--color-green);font-size:14px;font-weight:600;margin:0 0 var(--space-2)}