@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-caslon-text-latin-400-normal-CfldDPV-.woff2)format("woff2"),url(/assets/libre-caslon-text-latin-400-normal-WtjoQ5sB.woff)format("woff")}@font-face{font-family:Libre Caslon Text;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/libre-caslon-text-latin-400-italic-snTzlHlN.woff2)format("woff2"),url(/assets/libre-caslon-text-latin-400-italic-C1OAqZ6C.woff)format("woff")}@font-face{font-family:Libre Caslon Text;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/libre-caslon-text-latin-700-normal-D1WVYPaO.woff2)format("woff2"),url(/assets/libre-caslon-text-latin-700-normal-B3n-DWsl.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2)format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2)format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff)format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2)format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff)format("woff")}:root{--bg:#fdf9f1;--surface:#fffdf9;--surface-muted:#f7eee0;--border:#f0dfc8;--border-strong:#e6c9a5;--text:#3b2514;--text-muted:#8a6a52;--primary:#e8650a;--primary-hover:#c95407;--primary-soft:#fde6d0;--danger:#b42318;--danger-soft:#fdecea;--success:#2e7d4f;--success-soft:#e6f4ea;--warn:#9a6700;--warn-soft:#fff4d6;--map-ocean:#fffdf9;--map-land:#f3ebdf;--map-land-stroke:#fffdf9;--map-active:#f7c9a1;--map-active-hover:#f2b583;--map-route:#e8650a;--map-pin:#e8650a;--radius-sm:14px;--radius:22px;--radius-lg:30px;--shadow-sm:0 1px 2px #7846140f;--shadow:0 6px 24px #7846141a;--shadow-lg:0 16px 48px #7846142e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font:"Figtree", "Segoe UI", system-ui, sans-serif;--font-display:"Libre Caslon Text", "Caslon", Georgia, serif;--band:#fbe6d0;--brown:#6b4630;--band-text:#3b2514;--tap:44px;--content-width:1180px;--nav-height:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45;overflow-x:hidden}body.scroll-locked{overflow:hidden}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app{min-height:100dvh}.page{width:100%;max-width:var(--content-width);padding:var(--space-4) var(--space-4) calc(var(--space-6) + var(--safe-bottom));margin:0 auto}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.page-title{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1.75rem;font-weight:700;line-height:1.2}.page-subtitle,.muted,.hint-text{color:var(--text-muted)}.hint-text{margin:var(--space-3) 0;font-size:.875rem}.travel-meta{gap:2px var(--space-3);margin-top:var(--space-1);color:var(--text-muted);flex-wrap:wrap;font-size:.9rem;display:flex}.travel-meta span+span:before{content:"·";margin-right:var(--space-3)}.page-actions{gap:var(--space-2);display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding-top:var(--safe-top);position:sticky;top:0}.topbar-inner{max-width:var(--content-width);min-height:56px;padding:0 var(--space-4);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.brand{letter-spacing:-.01em;font-weight:700}.back-link{min-height:var(--tap);color:var(--primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;max-width:70vw;font-weight:600;display:inline-flex;overflow:hidden}.stack{gap:var(--space-4);flex-direction:column;display:flex}.form-stack{gap:var(--space-5);margin-top:var(--space-4);flex-direction:column;display:flex}.list-plain{margin:0;padding:0;list-style:none}.skeleton{background:linear-gradient(90deg, var(--surface-muted), #ebe6de, var(--surface-muted));border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s linear infinite shimmer;display:block}.skeleton-stack{gap:var(--space-3);flex-direction:column;display:flex}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=768px){.page{padding:var(--space-5) var(--space-5) var(--space-6)}.topbar-inner{padding:0 var(--space-5)}.page-title{font-size:2rem}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn .btn-label{align-items:center;gap:6px;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface)}.btn-ghost{background:0 0;border-color:#0000}.btn-danger:hover:not(:disabled){background:#8f1c12}.btn-sm{min-height:38px;padding:0 var(--space-3);font-size:.9rem}.btn-block{width:100%}.btn.is-loading .btn-label{opacity:.7}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:var(--tap);height:var(--tap);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn-secondary{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-muted);font-size:.85rem;font-weight:600}.field-hint{color:var(--text-muted);font-size:.82rem}.field-error,.form-error{color:var(--danger);font-size:.85rem}.input{width:100%;min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:10px 14px;font-size:16px}.textarea{resize:vertical;min-height:80px}.select-wrap{display:block;position:relative}.select-wrap .select{appearance:none;padding-right:40px}.select-wrap svg{pointer-events:none;color:var(--text-muted);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.form-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.check{align-items:center;gap:var(--space-2);min-height:var(--tap);display:flex}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.dialog .form-section{background:0 0;border:0;padding:0}.dialog .form-section-collapsible{border-top:1px solid var(--border);padding-top:var(--space-3)}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-3);font-size:.8rem}.form-section-body{gap:var(--space-4);flex-direction:column;display:flex}.form-section-collapsible summary{min-height:var(--tap);cursor:pointer;justify-content:space-between;align-items:center;font-weight:600;list-style:none;display:flex}.form-section-collapsible summary::-webkit-details-marker{display:none}.form-section-collapsible[open] summary svg{transform:rotate(180deg)}.form-section-collapsible .form-section-body{margin-top:var(--space-3)}.search-field{position:relative}.search-field>svg{color:var(--text-muted);position:absolute;top:14px;left:14px}.search-field .input{padding-left:42px}.dialog-backdrop{z-index:100;background:#141c1a73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92dvh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.dialog-header{padding:var(--space-3) var(--space-3) var(--space-2) var(--space-4);justify-content:space-between;align-items:center;display:flex}.dialog-title{font-size:1.2rem}.dialog-body{padding:var(--space-2) var(--space-4) var(--space-4);overscroll-behavior:contain;flex:1;overflow-y:auto}.dialog-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-3) + var(--safe-bottom));border-top:1px solid var(--border);display:flex}.confirm-message{color:var(--text-muted);line-height:1.5}.menu{flex:none;position:relative}.menu-popover{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:210px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 4px)}.menu-end{right:0}.menu-start{left:0}.menu-item{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--surface-muted)}.menu-item:disabled{opacity:.45;cursor:not-allowed}.menu-item.is-danger{color:var(--danger)}.menu-heading{padding:var(--space-2) var(--space-3);color:var(--text-muted);font-size:.85rem}.tabs{background:var(--surface-muted);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.tab{min-height:40px;padding:0 var(--space-5);color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;font-weight:600}.tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.badge-neutral{background:var(--surface-muted);color:var(--text)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-muted{border:1px solid var(--border-strong);color:var(--text-muted);background:0 0}.badge-row{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.empty-state{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);flex-direction:column;display:flex}.empty-state h3{color:var(--text);font-size:1.05rem}.empty-icon{color:var(--primary)}.error-state{border-style:solid;border-color:var(--danger-soft)}.toast-region{left:0;right:0;bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);z-index:200;align-items:center;gap:var(--space-2);pointer-events:none;padding:0 var(--space-4);flex-direction:column;display:flex;position:fixed}.toast{border-radius:var(--radius);background:var(--text);color:#fff;box-shadow:var(--shadow);padding:10px 16px;font-size:.92rem}.toast-error{background:var(--danger)}.avatar{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.avatar-text{font-size:.85rem;font-weight:700}.user-menu{position:relative}.offline-banner{justify-content:center;align-items:center;gap:var(--space-2);padding:8px var(--space-4);background:var(--warn-soft);color:var(--warn);text-align:center;font-size:.88rem;display:flex}.update-prompt{left:var(--space-4);right:var(--space-4);bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);z-index:150;justify-content:space-between;align-items:center;gap:var(--space-3);max-width:480px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;margin:0 auto;display:flex;position:fixed}.update-actions{gap:var(--space-2);display:flex}.fatal{max-width:420px;padding:var(--space-4);text-align:center;margin:20vh auto}.login{min-height:100dvh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:400px;padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:var(--space-4);flex-direction:column;display:flex}.login-brand{color:var(--primary);text-align:center;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:700}.login-title{text-align:center;font-size:1.6rem}.login-sub{text-align:center;color:var(--text-muted);margin-top:-8px}@media (width>=640px){.dialog-backdrop{padding:var(--space-5);align-items:center}.dialog{border-radius:var(--radius-lg);max-width:560px;max-height:88dvh}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.toast-region,.update-prompt{bottom:24px}}.action-row{gap:var(--space-2);margin:var(--space-4) 0 var(--space-5);flex-wrap:wrap;display:flex}.card-list{gap:var(--space-3);display:grid}.travel-card{padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform .1s,box-shadow .15s;display:block}.travel-card:hover{box-shadow:var(--shadow)}.travel-card:active{transform:scale(.99)}.travel-card-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.card-title{overflow-wrap:anywhere;font-size:1.15rem}.travel-card-period{margin-top:4px}.travel-card-meta{color:var(--text-muted);margin-top:2px;font-size:.9rem}@media (width>=768px){.card-list.travel-grid,.page>.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.itinerary .card-list,.budget .card-list,.bookings .card-list{grid-template-columns:minmax(0,1fr)}}.row-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex}.row-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:0;display:flex}.row-title{overflow-wrap:anywhere;font-weight:600}.row-sub{color:var(--text-muted);overflow-wrap:anywhere;font-size:.9rem}.row-end{flex:none;align-items:center;display:flex}.row-index{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;font-weight:700;display:inline-flex}.country-row .row-end .icon-btn{width:38px;height:38px}.member-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.member-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.member-name{font-weight:600}.secondary{color:var(--text-muted);font-size:.88rem}.section-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.overview,.budget,.bookings{gap:var(--space-5);flex-direction:column;display:flex}.budget{gap:var(--space-3)}.budget>section:last-of-type{margin-top:var(--space-3)}.summary-cards{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.summary-card{padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;min-width:0;display:flex}.summary-label{color:var(--text-muted);font-size:.8rem}.summary-value{overflow-wrap:anywhere;font-size:1.15rem;font-weight:700}.summary-value.is-negative{color:var(--danger)}@media (width>=768px){.summary-cards{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr))}.summary-value{font-size:1.35rem}}.travel-nav{z-index:30;height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.navtab{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:600;display:flex}.travel-page{padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-5))}@media (width>=768px){.travel-nav{gap:var(--space-5);height:auto;margin-bottom:var(--space-5);-webkit-backdrop-filter:none;backdrop-filter:none;border-top:0;border-bottom:1px solid var(--border);background:0 0;padding:0;display:flex;position:static}.navtab{gap:var(--space-2);min-height:var(--tap);border-bottom:2px solid #0000;flex-direction:row;margin-bottom:-1px;padding:0 2px;font-size:.95rem}.navtab.is-active{border-bottom-color:var(--primary)}.travel-page{padding-bottom:var(--space-6)}}.country-results{flex-direction:column;max-height:50dvh;display:flex;overflow-y:auto}.country-result{align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);padding:0 var(--space-2);border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;display:flex}.country-result .muted{margin-left:auto;font-size:.8rem}.country-result:hover{background:var(--surface-muted)}.expense-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.expense-row{gap:var(--space-3)}.expense-date{width:52px;color:var(--text-muted);flex:none;font-size:.85rem}.expense-amount{white-space:nowrap;flex:none;font-weight:700}.booking-card{align-items:flex-start}.booking-card.is-cancelled .booking-main{opacity:.6}.booking-type{color:var(--text-muted);font-size:.82rem;font-weight:600}.booking-side{flex-direction:column;flex:none;align-items:flex-end;display:flex}@media (width<=480px){.expense-row{flex-wrap:wrap}.expense-row .row-main{flex-basis:calc(100% - 140px)}.expense-date{flex-basis:100%;width:auto;margin-bottom:-6px}}.save-state{min-height:1.2em;color:var(--text-muted);white-space:nowrap;padding-top:8px;font-size:.85rem}.save-error{color:var(--danger);font-weight:600}.map{background:var(--map-ocean);border:1px solid var(--border);border-radius:var(--radius-lg);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:56vw;min-height:280px;max-height:560px;position:relative;overflow:hidden}.map.is-expanded{z-index:90;border:0;border-radius:0;height:auto;max-height:none;position:fixed;inset:0}.map-svg{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.map-svg:active{cursor:grabbing}.map-ocean{fill:var(--map-ocean)}.map-land{fill:var(--map-land);stroke:var(--map-land-stroke);stroke-width:.5px}.map-land.is-active{fill:var(--map-active);cursor:pointer}.map-land.is-active:hover{fill:var(--map-active-hover)}.map-route path{stroke:var(--map-route);stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 5;pointer-events:none}.map-marker{cursor:pointer;outline:none}.map-marker circle{fill:var(--map-pin);stroke:#fff;stroke-width:2px}.map-marker text{fill:var(--map-route);pointer-events:none;font-size:11px;font-weight:700}.map-marker:focus-visible circle,.map-marker.is-selected circle{stroke:var(--text)}.map-status{color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.map-controls{right:var(--space-3);top:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.map.is-expanded .map-controls{top:calc(var(--space-3) + var(--safe-top))}.map-popup{z-index:5;min-width:170px;padding:var(--space-3);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);touch-action:manipulation;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 20px))}.map-popup.is-below{transform:translate(-50%,20px)}.map-popup-title{font-weight:700}.map-popup-dates{color:var(--text-muted);font-size:.88rem}@media (width>=768px){.map{height:46vw;min-height:380px}}.map-land.is-own{fill:var(--map-active)}.route-map.is-adding .map-svg,.route-map.is-adding .map-svg:active{cursor:crosshair}.map-marker .map-marker-label{fill:var(--text);stroke:var(--surface);stroke-width:4px;paint-order:stroke;font-size:12px;font-weight:600}.country-route{gap:var(--space-4);flex-direction:column;display:flex}.country-route .section-head{margin-bottom:0}.route-summary{margin:2px 0 0;font-size:.9rem}.route-hint{padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border);color:var(--text-muted);margin:0;font-size:.9rem}.place-row .input{flex:1;min-width:0}.place-row.is-selected{border-color:var(--map-route)}.place-row .row-end .icon-btn{width:38px;height:38px}.route-stage{position:relative}.route-map{background:var(--map-ocean)}.route-map .map-land{fill:#f3ebdf;stroke:#fffdf9;stroke-width:1px}.route-map .map-land.is-own{fill:#f7d5b4}.rm-legs path{stroke:var(--primary);stroke-width:1.1px;stroke-dasharray:3 3;stroke-linecap:round;opacity:.85;pointer-events:none}.rm-stop,.rm-poi{cursor:pointer;outline:none}.rm-stop circle{fill:var(--primary);stroke:#fff;stroke-width:1.5px}.rm-stop.is-selected circle,.rm-stop:focus-visible circle{fill:var(--primary-hover);stroke:var(--text);stroke-width:1.5px}.rm-poi circle{fill:var(--text);stroke:#fff;stroke-width:1px}.rm-poi.is-selected circle,.rm-poi:focus-visible circle{stroke:var(--primary);stroke-width:2px}.rm-stop text,.rm-poi text{fill:var(--text);stroke:#fffdf9e6;stroke-width:2.5px;stroke-linejoin:round;paint-order:stroke;font-family:var(--font);letter-spacing:.04em;text-rendering:geometricprecision;pointer-events:none;font-weight:500}.rm-stop text{font-size:10px}.rm-poi text{fill:var(--text-muted);font-size:8.5px}.rm-preview path{fill:#ea4335;stroke:#b3261e;stroke-width:1px}.rm-preview circle{fill:#fff}.rm-preview-shadow{fill:#00000040}.route-search{z-index:6;top:var(--space-3);left:var(--space-3);width:min(380px,100% - 76px);position:absolute}.route-search-bar{background:var(--surface);border-radius:24px;align-items:center;height:46px;padding:0 4px;display:flex;box-shadow:0 2px 8px #00000038}.route-search-bar input{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0 4px;font-size:1rem}.route-search-icon{width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.route-search-icon:hover:not(:disabled){color:var(--text)}.route-search-results{background:var(--surface);border-radius:16px;max-height:320px;margin:6px 0 0;padding:6px 0;overflow-y:auto;box-shadow:0 4px 14px #00000040}.route-search-result{align-items:center;gap:var(--space-3);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 14px;display:flex}.route-search-result:hover,.route-search-result:focus-visible{background:#7f7f7f24;outline:none}.route-search-pin{width:30px;height:30px;color:var(--text-muted);background:#7f7f7f2e;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.route-search-text{flex-direction:column;min-width:0;display:flex}.route-search-name{overflow-wrap:anywhere;font-weight:600}.route-search-detail{color:var(--text-muted);overflow-wrap:anywhere;font-size:.85rem}.route-search-note{color:var(--text-muted);padding:10px 16px;font-size:.92rem}.route-search-note.is-error{color:var(--danger,#c0362c)}.route-card{z-index:6;left:var(--space-3);bottom:var(--space-3);width:min(340px,100% - 24px);padding:var(--space-3) var(--space-4) var(--space-3);background:var(--surface);border-radius:16px;position:absolute;box-shadow:0 4px 14px #00000047}.route-card-title{overflow-wrap:anywhere;padding-right:28px;font-size:1.15rem;font-weight:700}.route-card-detail{color:var(--text-muted);margin-top:2px;font-size:.9rem}.route-card-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.route-card-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:8px;right:8px}.route-hint{z-index:5;left:50%;bottom:var(--space-3);color:#fff;pointer-events:none;background:#15181dd9;border-radius:20px;max-width:calc(100% - 24px);padding:8px 14px;font-size:.88rem;position:absolute;transform:translate(-50%)}.route-list-title{margin:0 0 var(--space-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}.place-dot{background:radial-gradient(circle,#0d0f12 0 6px,#0000 7px);border-radius:50%;flex:none;width:28px;height:28px}.route-search-result.is-active{background:#7f7f7f24}.route-search-spinner{border:2px solid #7f7f7f59;border-top-color:var(--primary);border-radius:50%;flex:none;width:18px;height:18px;margin-right:6px;animation:.7s linear infinite route-spin}@keyframes route-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.route-search-spinner{animation-duration:2s}}body{font-size:17px;font-weight:400;line-height:1.5}.page-title,.section-heading,.dialog-title,.login-title,.empty-state h3,.brand,.map-popup-title,.route-card-title{font-family:var(--font-display);color:var(--primary);letter-spacing:-.005em;font-weight:400}.page-title{font-size:clamp(2rem,7vw,3.4rem);line-height:1.08}.section-heading{font-size:1.7rem;line-height:1.15}.card-title{font-family:var(--font);color:var(--brown);font-size:1.02rem;font-weight:600}.dialog-title,.login-title{font-size:1.5rem}.brand{font-size:1.2rem}.travel-meta,.page-subtitle{color:var(--text-muted);font-size:1rem}.field-label,.section-title{color:var(--text-muted);letter-spacing:0;text-transform:none;font-size:.88rem;font-weight:600}.section-title{font-family:var(--font-display);color:var(--primary);margin-bottom:var(--space-3);font-size:1.25rem;font-weight:400}.login-brand{color:var(--primary);font-family:var(--font-display);letter-spacing:0;text-transform:none;font-size:1.1rem}.btn{border:1px solid var(--brown);color:var(--brown);font-family:var(--font);padding:0 var(--space-4);background:0 0;border-radius:999px;font-size:.92rem;font-weight:500}.btn:hover:not(:disabled){background:var(--surface-muted)}.btn-primary{background:var(--brown);border-color:var(--brown);color:#fff}.btn-primary:hover:not(:disabled){background:var(--text)}.btn-ghost{border-color:#0000}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-sm{padding:0 var(--space-4);font-size:.85rem}.back-link{color:var(--brown);font-weight:500}.icon-btn{color:var(--brown)}.icon-btn:hover:not(:disabled){background:var(--surface-muted)}.input{border:1.5px solid var(--border-strong);background:var(--surface);border-radius:18px;padding:10px 18px;font-size:17px}.textarea{resize:none;border-radius:22px;line-height:1.55;overflow:hidden}.input:focus{outline:3px solid var(--primary-soft);outline-offset:0;border-color:var(--primary)}input[type=date].input,.select-wrap .select{border-radius:999px}.form-section,.travel-card,.row-card,.summary-card,.empty-state,.login-card,.update-prompt{border-radius:var(--radius);border-color:var(--border);box-shadow:none}.menu-popover{border-radius:var(--radius)}.dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.topbar{border-bottom-color:var(--border)}.travel-nav{border-color:var(--border)}.navtab{font-weight:500}.summary-label{font-size:.78rem;font-weight:500}.summary-value{font-family:var(--font);color:var(--brown);font-size:1.05rem;font-weight:600}.navtab{border-radius:12px}.navtab.is-active{color:var(--brown)}.travel-card{padding:var(--space-3) var(--space-4)}.travel-card-meta,.travel-card-period{font-size:.85rem}.travel-card:hover{border-color:var(--border-strong);box-shadow:0 4px 14px #78461414}.row-card .row-title,.row-title{font-weight:500}.section-heading{font-size:1.45rem}.country-band .section-title{font-size:1.1rem}.tabs{background:var(--surface-muted);border:0;border-radius:999px;padding:4px}.tab{border-radius:999px}.tab.is-active{background:var(--primary);color:#fff;box-shadow:none;border:0}.badge{border-radius:999px;font-size:.78rem;font-weight:600}.toast{border-radius:999px}.avatar{background:var(--primary)}.map{border-radius:var(--radius-lg);border-color:var(--border)}.map-popup,.route-card{border-radius:var(--radius)}.map-land{stroke-width:.6px}.country-hero{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding:var(--space-4) 0 var(--space-5);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.country-hero .page-title{align-items:center;gap:var(--space-3);display:flex}.country-block{margin-bottom:var(--space-6)}.country-block>.section-heading{margin-bottom:var(--space-4)}.country-band{padding:var(--space-5);background:var(--band);border-radius:var(--radius-lg)}.country-band .form-section{background:0 0;border:0;padding:0}.country-band .input{background:var(--surface)}.route-fold{margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.route-fold>summary{min-height:var(--tap);padding:0 var(--space-4);color:var(--brown);cursor:pointer;justify-content:space-between;align-items:center;font-weight:500;list-style:none;display:flex}.route-fold>summary::-webkit-details-marker{display:none}.route-fold>summary svg{transition:transform .15s}.route-fold[open]>summary svg{transform:rotate(180deg)}.route-fold>.place-list{padding:0 var(--space-3) var(--space-3)}.place-item{list-style:none}.place-list{gap:var(--space-2)}.place-name-group{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.place-cost{color:var(--brown);white-space:nowrap;flex:none;font-size:.9rem;font-weight:500}.fold-toggle{width:38px;height:38px;color:var(--brown);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.fold-toggle:hover{background:var(--surface-muted)}.fold-toggle svg{transition:transform .15s}.fold-toggle.is-open svg{transform:rotate(180deg)}.place-plan{gap:var(--space-2);margin:var(--space-2) 0 var(--space-2) 22px;padding-left:var(--space-3);border-left:2px solid var(--border);flex-direction:column;display:flex}.plan-stay{padding-bottom:var(--space-2);flex-direction:column;gap:6px;display:flex}.plan-line{align-items:center;gap:6px;display:flex}.plan-line .input{flex:1;min-width:0}.plan-line-act{margin-left:46px}.input-sm{min-height:38px;padding:6px 14px;font-size:15px}.plan-nights{width:84px;flex:none!important}.plan-cost{width:96px;flex:none!important}.plan-mini{border:1px solid var(--border-strong);background:var(--surface);width:28px;height:28px;color:var(--brown);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.plan-mini:hover:not(:disabled){background:var(--primary-soft)}.plan-stay-add{border-color:var(--primary);background:var(--primary);color:#fff}.plan-stay-add:hover:not(:disabled){background:var(--primary-hover)}.plan-delete:hover:not(:disabled){border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.plan-expense.is-added,.plan-expense:hover:not(:disabled){border-color:var(--success);background:var(--success-soft);color:var(--success)}.plan-add{min-height:34px;padding:0 var(--space-3);border:1px dashed var(--border-strong);color:var(--brown);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.plan-add-activity{border-radius:var(--radius-sm);justify-content:center;align-self:stretch;width:100%;min-height:26px;font-size:.8rem}.plan-add-activity:hover:not(:disabled){background:var(--primary-soft)}.plan-mini:disabled,.plan-add:disabled{opacity:.45;cursor:not-allowed}.plan-total{color:var(--text-muted);font-size:.85rem}@media (width<=640px){.place-row{flex-wrap:wrap}.place-name-group{flex-wrap:wrap;flex-basis:calc(100% - 40px)}.place-name-group .input{flex-basis:100%}.place-row>.row-end{flex-wrap:wrap;margin-left:40px}}@media (width<=480px){.plan-line-stay{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 28px;display:grid}.plan-stay-add{grid-area:1/1}.plan-line-stay>.input:not(.plan-nights):not(.plan-stay-cost){grid-area:1/2/auto/4}.plan-line-stay>.plan-nights{grid-area:2/2;width:100%}.plan-line-stay>.plan-stay-cost{grid-area:2/3;width:100%}.plan-line-stay>.plan-delete{grid-area:1/4}.plan-line-stay>.plan-expense{grid-area:2/4}.plan-line-act{grid-template-columns:minmax(0,1fr) 28px 28px;display:grid}.plan-line-act>.input:not(.plan-cost){grid-column:1/-1}.plan-line-act>.plan-cost{max-width:100%}}.transit-row{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);background:#f3f3f3;border:1px solid #e4e4e4;padding:4px 10px;list-style:none;display:flex}.transit-input{text-align:center;color:#737373;background:0 0;border:0;flex:1;min-width:0;min-height:34px;font-size:.88rem}.transit-cost{color:#737373;background:0 0;border-color:#d5d5d5}.transit-input:focus{opacity:1;border-bottom:1px solid var(--border-strong);outline:0}.transit-input::placeholder{color:#858585}.checklist-page{gap:var(--space-4);display:grid}.checklist-toolbar{gap:var(--space-3);flex-wrap:wrap;margin-bottom:0}.checklist-actions,.checklist-controls,.checklist-save{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.checklist-actions{margin-left:auto}.checklist-controls{justify-content:space-between}.checklist-status{color:var(--text-muted);font-size:.88rem}.checklist-editor{gap:var(--space-2);display:grid}.checklist-source{resize:vertical;min-height:20rem;max-height:65dvh;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92rem;overflow:auto}.checklist-error{color:var(--danger);margin:0}.checklist-progress{align-items:center;gap:var(--space-3);color:var(--text-muted);flex-wrap:wrap;font-size:.92rem;display:flex}.checklist-progress progress{min-width:6rem;height:.6rem;accent-color:var(--primary);flex:1}.checklist-document{min-width:0;padding:var(--space-5)}.checklist-markdown{overflow-wrap:anywhere;line-height:1.65}.checklist-markdown>:first-child{margin-top:0}.checklist-markdown :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-display);color:var(--brown);margin:1.2em 0 .65em;font-weight:400;line-height:1.2}.checklist-markdown h1{font-size:1.9rem}.checklist-markdown h2{font-size:1.5rem}.checklist-markdown h3{font-size:1.2rem}.checklist-markdown p{margin:.6em 0}.checklist-markdown :is(ul,ol){margin:.5em 0;padding-left:1.5rem}.checklist-markdown .contains-task-list{padding-left:0;list-style:none}.checklist-task{align-items:flex-start;gap:var(--space-2);margin:.2em 0;display:flex}.checklist-checkbox{flex:0 0 var(--tap);min-height:var(--tap);cursor:pointer;justify-content:center;align-items:center;display:flex}.checklist-checkbox input{width:1.3rem;height:1.3rem;accent-color:var(--brown);cursor:pointer;margin:0}.checklist-checkbox input:disabled{cursor:default}.checklist-task-content{flex:1;min-width:0;padding-top:.3rem}.checklist-task-content>p:first-child{margin-top:0}.checklist-task.is-checked>.checklist-task-content>p:first-child{color:var(--text-muted)}.checklist-markdown blockquote{padding-left:var(--space-4);border-left:3px solid var(--border-strong);color:var(--text-muted);margin:1em 0}.checklist-markdown code{background:var(--surface-muted);border-radius:4px;padding:.1em .25em;font-size:.88em}.checklist-markdown pre{max-width:100%;padding:var(--space-3);border-radius:var(--radius);background:var(--surface-muted);overflow-x:auto}.checklist-markdown pre code{background:0 0;padding:0}.checklist-table{max-width:100%;overflow-x:auto}.checklist-table table{border-collapse:collapse;width:100%}.checklist-table :is(th,td){padding:var(--space-2) var(--space-3);border:1px solid var(--border);text-align:left}.checklist-table th{background:var(--surface-muted)}.checklist-markdown hr{border:0;border-top:1px solid var(--border);margin:var(--space-4) 0}@media (width<=480px){.checklist-actions{width:100%;margin-left:0}.checklist-document{padding:var(--space-3)}}
