:root { --navy:#08386f; --sky:#3da9ff; --coral:#ff7b5c; --ivory:#fffcf5; --ink:#1a2b3c; --slate:#64748b; --line:#d9e8f5; --card:#fff; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:linear-gradient(145deg,#fffdf9 0%,#eef8ff 100%); color:var(--ink); font-family:"Zen Kaku Gothic New","Yu Gothic",system-ui,sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
.app-shell { width:min(100%,440px); min-height:100vh; margin:auto; padding:18px 20px 110px; background:rgba(255,252,245,.84); box-shadow:0 0 60px rgba(8,56,111,.08); }
.app-header { display:flex; align-items:center; justify-content:space-between; height:44px; margin-bottom:16px; }
.brand { display:flex; gap:8px; align-items:center; padding:0; border:0; background:none; color:var(--navy); text-decoration:none; font-size:21px; font-family:Georgia,serif; font-weight:bold; }
.brand img { width:32px; height:32px; object-fit:contain; }.icon-button,.back { border:0; background:none; color:var(--navy); font-size:24px; }
.view { display:none; animation:in .28s ease; }.view.is-active { display:block; }@keyframes in{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}
.stepper { display:flex; gap:12px; align-items:center; color:#9ba8b6; font-size:13px; margin:9px 0 22px; }.stepper i { height:1px; flex:1; background:#d6e0e9; }.stepper i.is-done { background:var(--navy); }.stepper .step { display:grid; place-items:center; color:#fff; width:27px; height:27px; border-radius:50%; background:var(--navy); font-weight:700; }.eyebrow { margin:0 0 7px; color:var(--sky); font-size:11px; letter-spacing:.15em; font-weight:bold; }h1 { margin:0; color:var(--navy); font-size:28px; letter-spacing:-.045em; line-height:1.35; }.lead { margin:9px 0 28px; color:var(--slate); font-size:14px; line-height:1.7; }
.field-label { display:block; margin:21px 0 9px; color:var(--navy); font-size:14px; font-weight:700; }.select-field,.search-box,.option,.secondary-button { width:100%; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.78); color:var(--ink); }.select-field { min-height:60px; padding:0 16px; display:flex; align-items:center; gap:11px; text-align:left; }.select-field span { color:var(--coral); }.select-field b { margin-left:auto; font-size:25px; font-weight:400; color:var(--navy); }.pill-row,.filter-row,.two-options,.three-options { display:flex; gap:8px; }.pill,.filter { border:1px solid var(--line); background:#fff; border-radius:999px; color:var(--navy); padding:10px 15px; font-size:13px; }.pill.is-selected { color:var(--coral); border-color:#ffc8ba; background:#fff8f5; }.member-card { padding:14px 0 0; border-bottom:1px solid var(--line); }.avatar-stack { display:flex; gap:8px; align-items:center; }.avatar-stack span,.add-avatar { display:grid; place-items:center; width:43px; height:43px; border-radius:50%; background:#d5ebf8; color:var(--navy); font-size:13px; border:2px solid var(--ivory); }.avatar-stack span:nth-child(2){background:#ffe5d6}.avatar-stack span:nth-child(3){background:#e3f2e9}.avatar-stack span:nth-child(4){background:#dce8f3}.add-avatar { background:transparent; border:1px dashed #afc4d8; font-size:21px; }.member-card p { margin:12px 0 14px; color:var(--slate); font-size:13px; }.text-link { margin-top:12px; border:0; background:none; padding:0; color:var(--sky); font-size:12px; }.primary-button,.ai-button { width:100%; margin-top:30px; min-height:60px; border:0; border-radius:15px; color:#fff; background:var(--navy); font-weight:700; font-size:16px; }.button-pair { display:flex; align-items:center; gap:8px; }.button-pair .next { margin-top:24px; }.button-pair .back { min-width:58px; margin-top:24px; font-size:14px; }.search-box { height:52px; display:flex; align-items:center; padding:0 15px; gap:10px; }.search-box input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:14px; }.map-panel { position:relative; overflow:hidden; height:180px; margin:10px 0 15px; border-radius:18px; background:linear-gradient(160deg,#d6eff8 0%,#e6dfce 49%,#cde7f4 50%,#f0eadf 100%); }.map-panel::before { content:""; position:absolute; inset:0; opacity:.55; background:repeating-linear-gradient(33deg,transparent 0 22px,rgba(8,56,111,.13) 23px 24px),repeating-linear-gradient(-20deg,transparent 0 30px,rgba(8,56,111,.1) 31px 32px); }.pin,.map-label { position:absolute; z-index:1; }.pin { display:grid; place-items:center; width:29px; height:29px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); color:#fff; background:var(--coral); box-shadow:0 2px 6px #8da5b6; }.pin::first-letter { transform:rotate(45deg); }.pin-b{right:54px;top:38px;background:var(--navy)}.pin-a{left:80px;top:92px}.pin-c{right:132px;bottom:23px}.map-label { color:var(--navy); font-size:12px; font-weight:700; }.label-a{left:155px;top:52px}.label-b{right:25px;top:86px}.filter-row{margin-bottom:14px}.filter { padding:8px 11px; font-size:12px; }.filter.is-active { color:var(--coral); border-color:#ffd1c6; }.place-list { display:grid; gap:9px; }.place-card { display:grid; grid-template-columns:72px 1fr 20px; align-items:center; gap:11px; padding:8px; border-bottom:1px solid #edf2f7; }.place-card:last-child { border-bottom:0; }.place-image { width:72px; height:72px; border-radius:11px; background-size:cover; }.shrine{background:linear-gradient(135deg,#7b2e1c,#e4a24f)}.beach{background:linear-gradient(160deg,#48b9de 0 47%,#f3e1ad 48%)}.street{background:linear-gradient(135deg,#4d5b61,#b27a55)}.place-title { color:var(--navy); font-weight:700; font-size:15px; }.place-title em { margin-left:5px; padding:2px 6px; border:1px solid #ffc7b8; color:var(--coral); font-size:10px; font-style:normal; border-radius:6px; }.place-title em.blue { color:var(--sky); border-color:#b8deff; }.place-card p,.place-card small { display:block; margin:5px 0; color:var(--slate); font-size:11px; }.place-card small span { color:var(--coral); font-weight:700; }.place-card button { border:0; background:transparent; color:var(--navy); font-size:25px; }.blue-text{color:var(--sky)!important}.secondary-button { margin-top:15px; min-height:54px; color:var(--navy); font-weight:700; background:transparent; }.option-section { margin:22px 0; }.option-section .field-label { margin:0 0 9px; }.option { min-height:52px; padding:7px 8px; font-size:13px; }.two-options .option { width:50%; }.three-options .option { flex:1; min-height:48px; font-size:11px; }.option.is-selected { background:#eaf5ff; border-color:#9dd1ff; color:var(--navy); font-weight:700; }.ai-note { margin-top:25px; padding:17px; border-radius:16px; background:#edf7ff; color:var(--navy); line-height:1.7; font-size:13px; }.ai-button { margin-top:12px; background:linear-gradient(105deg,#1669d2,#3da9ff); box-shadow:0 10px 20px rgba(61,169,255,.2); }.inline-back { display:block; margin:15px auto 0; font-size:14px; }.plan-summary { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 20px; }.plan-summary span { padding:8px 10px; border-radius:999px; background:#edf7ff; color:var(--navy); font-size:12px; }.timeline { padding:18px 0; }.day-label { margin:0 0 13px; color:var(--navy); font-weight:700; }.timeline > div:not(.transfer) { display:grid; grid-template-columns:55px 1fr; gap:12px; margin:13px 0; }.timeline time { color:var(--navy); font-size:13px; font-weight:700; }.timeline section { padding:0 0 13px 14px; border-left:2px solid var(--sky); }.timeline b,.timeline small { display:block; }.timeline small { margin-top:5px; color:var(--slate); font-size:11px; }.transfer { margin-left:55px; padding:5px 0 5px 12px; color:var(--slate); font-size:11px; }
.daily-stays { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.78); }.daily-stays div { display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:8px; padding:11px 14px; border-bottom:1px solid #edf2f7; font-size:13px; }.daily-stays div:last-of-type { border-bottom:0; }.daily-stays b { color:var(--navy); font-size:11px; }.daily-stays span { color:var(--ink); font-weight:700; }.daily-stays small { color:var(--slate); font-size:10px; }.daily-stays button { width:100%; padding:10px; border:0; border-top:1px solid var(--line); background:#f7fbff; color:var(--sky); font-size:12px; font-weight:700; }
.route-editor { border-left:2px solid #cbe5fa; margin:8px 0 22px 8px; padding-left:18px; }.route-day { position:relative; margin:0 0 20px; }.route-day::before { content:""; position:absolute; left:-25px; top:10px; width:12px; height:12px; border-radius:50%; background:var(--sky); border:4px solid var(--ivory); }.route-day header { display:flex; align-items:baseline; gap:9px; margin-bottom:8px; }.route-day header span { color:var(--navy); font-weight:700; }.route-day header small { color:var(--slate); font-size:11px; }.route-stop { padding:12px 14px; margin-top:7px; border-radius:13px; background:#fff; box-shadow:0 4px 14px rgba(8,56,111,.06); }.route-stop b,.route-stop small { display:block; }.route-stop b { color:var(--navy); font-size:14px; }.route-stop small { margin-top:5px; color:var(--slate); font-size:11px; }.route-moving::before { background:var(--coral); }
.group-list,.archive-list { display:grid; gap:13px; }.group-card { display:grid; grid-template-columns:50px 1fr auto; gap:13px; align-items:center; padding:16px; border-radius:17px; background:#fff; box-shadow:0 5px 16px rgba(8,56,111,.055); }.group-card.family{background:linear-gradient(115deg,#fff 0%,#effaff 100%)}.group-card.friends{background:linear-gradient(115deg,#fff 0%,#f6f4ff 100%)}.group-card.couple{background:linear-gradient(115deg,#fff 0%,#fff5f1 100%)}.group-icon { display:grid; place-items:center; width:50px; height:50px; border-radius:16px; background:#ddecfa; color:var(--navy); font-size:23px; }.friends .group-icon{background:#eae5ff}.couple .group-icon{background:#ffe3d8;color:var(--coral)}.group-card h2,.archive-card h2 { margin:0; color:var(--navy); font-size:16px; }.group-card p { margin:4px 0 8px; color:var(--slate); font-size:11px; }.group-card > button { align-self:start; border:0; background:transparent; color:var(--sky); font-size:12px; }.mini-avatars{display:flex}.mini-avatars span{display:grid;place-items:center;width:22px;height:22px;margin-left:-4px;border:2px solid #fff;border-radius:50%;background:#d5ebf8;color:var(--navy);font-size:8px}.mini-avatars span:nth-child(2n){background:#ffe5d6}.quiet-note { margin-top:22px; padding:15px; border-radius:13px; background:#edf7ff; color:var(--navy); font-size:12px; line-height:1.65; }.archive-card { overflow:hidden; border-radius:18px; background:#fff; box-shadow:0 5px 16px rgba(8,56,111,.055); }.archive-cover { height:122px; background-size:cover; }.archive-cover.tokyo{background:linear-gradient(135deg,#345b91,#d6a878 50%,#f5e2be)}.archive-cover.okinawa{background:linear-gradient(155deg,#147bba,#50c8e8 48%,#f3df9f 49%)}.archive-cover.kyoto{background:linear-gradient(135deg,#71523d,#c29b70 55%,#e6d4b9)}.archive-content { padding:14px 15px 16px; }.archive-content p{margin:5px 0;color:var(--slate);font-size:11px}.archive-content small{color:var(--ink);font-size:12px;line-height:1.6}.archive-content footer{display:flex;justify-content:space-between;align-items:center;margin-top:13px;color:var(--slate);font-size:11px}.archive-badge{display:inline-block;margin-bottom:7px;padding:4px 7px;border-radius:999px;background:#eaf8f4;color:#16865c;font-size:10px;font-weight:700}.bottom-nav{position:fixed;z-index:10;bottom:16px;left:50%;display:flex;gap:4px;align-items:center;justify-content:space-between;width:min(calc(100% - 32px),408px);height:70px;padding:7px;transform:translateX(-50%);background:rgba(255,255,255,.88);border:1px solid rgba(217,232,245,.9);border-radius:23px;box-shadow:0 14px 35px rgba(8,56,111,.16),0 2px 9px rgba(8,56,111,.06);backdrop-filter:blur(18px)}.nav-item{display:grid;place-items:center;gap:3px;flex:1;min-width:0;height:54px;padding:5px 7px;border:0;border-radius:17px;background:transparent;color:#71839a;transition:background .2s,color .2s,transform .2s}.nav-item svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-item span{font-family:"Zen Kaku Gothic New","Yu Gothic",sans-serif;font-size:10px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.nav-item.is-active{background:var(--navy);color:#fff;box-shadow:0 7px 15px rgba(8,56,111,.22)}.nav-item.is-active svg{stroke:#fff}.nav-item:active{transform:scale(.94)}
.hidden{display:none}.toast{position:fixed;z-index:20;bottom:100px;left:50%;padding:12px 17px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:700;box-shadow:0 10px 28px rgba(8,56,111,.25);opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .25s,transform .25s;white-space:nowrap}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
.text-input{width:100%;height:57px;padding:0 15px;border:1px solid var(--line);border-radius:14px;outline:none;background:#fff;color:var(--ink);font-family:inherit;font-size:15px;font-weight:700}.text-input:focus{border-color:var(--sky);box-shadow:0 0 0 4px rgba(61,169,255,.12)}.editable-members{display:grid;gap:9px}.editable-member{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;background:#fff;box-shadow:0 4px 13px rgba(8,56,111,.05)}.editable-member .member-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#d5ebf8;color:var(--navy);font-size:12px;font-weight:700}.editable-member b{font-size:14px;color:var(--navy)}.editable-member span{margin-left:auto;color:var(--slate);font-size:11px}.remove-member{margin-left:8px;padding:5px 7px;border:0;border-radius:8px;background:#fff3ef;color:var(--coral);font-size:11px}
.home-hero{display:flex;justify-content:space-between;min-height:190px;padding:22px;border-radius:23px;background:linear-gradient(135deg,rgba(8,56,111,.98),rgba(23,115,207,.86)),linear-gradient(30deg,#4ec8e9,#f5d494);color:#fff;box-shadow:0 14px 28px rgba(8,56,111,.19)}.home-hero p{margin:0 0 12px;font-size:11px;letter-spacing:.09em;opacity:.8}.home-hero h1{color:#fff;font-size:31px;line-height:1.22}.home-hero span{display:block;margin-top:12px;font-size:11px;opacity:.85}.hero-edit{align-self:flex-start;padding:8px 12px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:11px}.home-section{margin-top:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-heading h2{margin:0;color:var(--navy);font-size:18px}.section-heading button{border:0;background:none;color:var(--sky);font-family:inherit;font-size:12px}.next-event{display:grid;grid-template-columns:53px 1fr 34px;align-items:center;gap:12px;padding:14px;border-radius:17px;background:#fff;box-shadow:0 5px 16px rgba(8,56,111,.055)}.next-event time{display:grid;gap:4px;place-items:center;padding-right:11px;border-right:1px solid var(--line);color:var(--navy)}.next-event time b{font-size:13px}.next-event time span{font-size:10px}.next-event small{color:var(--sky);font-size:11px;font-weight:700}.next-event h3{margin:3px 0;color:var(--navy);font-size:15px}.next-event p{margin:0;color:var(--slate);font-size:11px}.event-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:#edf7ff;color:var(--sky)}.home-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.home-status button{display:grid;gap:5px;place-items:center;min-height:82px;border:1px solid #eaf1f7;border-radius:16px;background:#fff;color:var(--navy);font-family:inherit}.home-status b{font-size:22px}.home-status span{font-size:10px;color:var(--slate)}.activity-row{display:grid;grid-template-columns:29px 1fr auto;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #edf2f7}.member-dot{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#dbeef9;color:var(--navy);font-size:10px;font-weight:700}.member-dot.coral{background:#ffe1d7;color:var(--coral)}.activity-row p{margin:0;color:var(--ink);font-size:11px;line-height:1.45}.activity-row p b{color:var(--navy)}.activity-row time{color:#a0adbb;font-size:9px}
.nav-create{margin-top:-21px;height:66px!important;border:4px solid var(--ivory)!important;border-radius:22px!important;background:linear-gradient(145deg,var(--navy),#1874cf)!important;color:#fff!important;box-shadow:0 10px 22px rgba(8,56,111,.28)}.nav-create svg{width:23px;height:23px;stroke:#fff!important;stroke-width:2.2}.nav-create span{font-weight:700}
.trip-member-list{display:grid;gap:10px}.trip-member{display:grid;grid-template-columns:39px 1fr auto;align-items:center;gap:11px;padding:12px;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(8,56,111,.055)}.trip-member .member-avatar{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#d9edf9;color:var(--navy);font-size:12px;font-weight:700}.trip-member:nth-child(2n) .member-avatar{background:#ffe6da}.trip-member b,.trip-member small{display:block}.trip-member b{color:var(--navy);font-size:14px}.trip-member small{margin-top:3px;color:var(--slate);font-size:10px}.trip-member-actions{display:flex;gap:5px;align-items:center}.member-role{padding:6px 8px;border:1px solid #cde6fa;border-radius:8px;background:#eff8ff;color:var(--navy);font-family:inherit;font-size:10px}.member-role.is-viewer{border-color:#e5ebf1;background:#f7f9fb;color:var(--slate)}.remove-trip-member{padding:5px;border:0;background:transparent;color:var(--coral);font-size:15px}
.reservation-glance{display:grid;grid-template-columns:38px 1fr 18px;align-items:center;gap:10px;padding:13px;border-radius:16px;background:#f2f9ff;cursor:pointer}.reservation-glance>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff;color:var(--sky)}.reservation-glance b{color:var(--navy);font-size:13px}.reservation-glance p{margin:3px 0 0;color:var(--slate);font-size:10px}.reservation-glance i{color:var(--navy);font-size:22px;font-style:normal}.reservation-list{display:grid;gap:11px}.reservation-card{display:grid;grid-template-columns:45px 1fr;gap:12px;padding:14px;border-radius:17px;background:#fff;box-shadow:0 5px 16px rgba(8,56,111,.055)}.reservation-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#edf7ff;color:var(--sky);font-size:20px}.reservation-card:nth-child(2n) .reservation-icon{background:#fff3ef;color:var(--coral)}.reservation-card header{display:flex;justify-content:space-between;gap:8px}.reservation-card h2{margin:0;color:var(--navy);font-size:15px}.reservation-card header span{padding:3px 6px;border-radius:999px;background:#eaf8f4;color:#16865c;font-size:9px;font-weight:700}.reservation-card p{margin:5px 0;color:var(--ink);font-size:12px}.reservation-card small{color:var(--slate);font-size:10px}.reservation-card footer{grid-column:1/-1;display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #edf2f7;color:var(--slate);font-size:10px}.reservation-card footer b{color:var(--navy);font-size:10px}
.plus-teaser{display:grid;grid-template-columns:39px 1fr;align-items:center;gap:12px;width:100%;margin:25px 0 0;padding:15px;border:1px solid #cae6ff;border-radius:18px;background:linear-gradient(120deg,#f4fbff,#e5f4ff);color:var(--navy);text-align:left;font-family:inherit}.plus-teaser-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#0c4d96,#39a6ff);color:#fff;font-size:18px;box-shadow:0 7px 14px rgba(25,119,207,.2)}.plus-teaser small,.plus-teaser b,.plus-teaser em{display:block}.plus-teaser small{color:#2783dc;font-size:9px;letter-spacing:.13em;font-weight:900}.plus-teaser b{margin-top:3px;font-size:13px}.plus-teaser em{margin-top:3px;color:var(--slate);font-size:10px;font-style:normal}.plus-hero{position:relative;overflow:hidden;min-height:232px;padding:27px 24px;border-radius:24px;background:radial-gradient(circle at 88% 18%,rgba(148,218,255,.68),transparent 24%),linear-gradient(135deg,#073368,#1367b9 65%,#279eea);color:#fff;box-shadow:0 16px 32px rgba(8,56,111,.2)}.plus-hero::after{position:absolute;right:-30px;bottom:-58px;width:180px;height:180px;border:1px solid rgba(255,255,255,.35);border-radius:50%;content:""}.plus-hero>span{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.16);font-size:20px}.plus-hero p{margin:19px 0 7px;font-size:12px;letter-spacing:.08em;opacity:.8}.plus-hero h1{color:#fff;font-size:30px;line-height:1.28}.plus-hero small{display:block;max-width:240px;margin-top:12px;font-size:11px;line-height:1.7;opacity:.82}.plus-plan-card{display:flex;align-items:center;justify-content:space-between;margin:17px 0;padding:17px 18px;border:1px solid #d7eaf8;border-radius:18px;background:#fff}.plus-plan-card p,.plus-plan-card h2{margin:0;color:var(--navy)}.plus-plan-card p{font-size:11px}.plus-plan-card h2{margin-top:3px;font-size:27px;letter-spacing:-.04em}.plus-plan-card h2 small{font-size:11px;font-weight:500;letter-spacing:0}.plus-plan-card>span{max-width:118px;color:var(--slate);font-size:10px;line-height:1.55;text-align:right}.plus-benefits{display:grid;gap:9px}.plus-benefits article{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center;padding:13px;border-bottom:1px solid #e8f0f6}.plus-benefits article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#eaf6ff;color:#1978d0;font-size:17px}.plus-benefits b,.plus-benefits small{display:block}.plus-benefits b{color:var(--navy);font-size:13px}.plus-benefits small{margin-top:4px;color:var(--slate);font-size:10px;line-height:1.5}.plus-note{margin-top:20px;padding:14px;border-radius:14px;background:#f4f8fb;color:var(--slate);font-size:11px;line-height:1.65}
.ai-button:disabled{background:#8bbce6;box-shadow:none;cursor:default}

/* Cotabia refined experience */
:root{
  --navy:#0b2d4d;
  --navy-2:#123f66;
  --sky:#3088c9;
  --coral:#f46f52;
  --ivory:#faf8f2;
  --ink:#172737;
  --slate:#66788a;
  --line:#dfe8ed;
  --card:#fff;
  --mint:#e7f3f1;
  --shadow-soft:0 8px 28px rgba(18,55,83,.075);
  --shadow-float:0 18px 44px rgba(11,45,77,.16);
}
html{background:#eef3f4;scroll-behavior:smooth}
body{background:radial-gradient(circle at 12% 0,#fff 0,transparent 28%),linear-gradient(145deg,#f5f1e9,#edf5f5);font-weight:500;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font-family:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible{outline:3px solid rgba(48,136,201,.3);outline-offset:3px}
.app-shell{width:min(100%,430px);padding:18px 20px calc(112px + env(safe-area-inset-bottom));background:rgba(250,248,242,.96);box-shadow:0 0 80px rgba(20,50,72,.13)}
.app-header{height:50px;margin-bottom:22px}
.brand{gap:10px;color:var(--navy);font-family:"Zen Kaku Gothic New","Yu Gothic",sans-serif;font-size:22px;font-weight:900;letter-spacing:-.035em}
.brand img{width:34px;height:34px}
.header-actions{display:flex;align-items:center;gap:9px}
.icon-button,.profile-button{position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid rgba(11,45,77,.08);border-radius:50%;background:rgba(255,255,255,.72);color:var(--navy)}
.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-button i{position:absolute;top:6px;right:5px;width:8px;height:8px;border:2px solid var(--ivory);border-radius:50%;background:var(--coral)}
.profile-button{border:0;background:linear-gradient(145deg,#dceff4,#c6e2e8);font-size:13px;font-weight:900}
.view{animation:view-in .4s cubic-bezier(.22,.9,.36,1)}
@keyframes view-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.eyebrow{margin-bottom:8px;color:var(--sky);font-size:10px;font-weight:900;letter-spacing:.18em}
h1{font-size:30px;font-weight:900;letter-spacing:-.055em;line-height:1.3}
.lead{margin-top:10px;margin-bottom:28px;font-size:14px;line-height:1.8}
.home-intro{display:flex;align-items:flex-end;justify-content:space-between;margin:0 2px 11px}
.home-intro .eyebrow{margin:0}
.home-intro div>p:last-child{margin:3px 0 0;color:var(--navy);font-size:13px;font-weight:700}
.home-intro>span{padding:6px 9px;border-radius:999px;background:var(--mint);color:#39726e;font-size:10px;font-weight:800}
.home-hero{position:relative;display:flex;align-items:flex-end;min-height:300px;padding:22px;overflow:hidden;border-radius:28px;background:linear-gradient(180deg,rgba(9,35,57,.03) 12%,rgba(9,35,57,.25) 43%,rgba(6,28,49,.94) 100%),url("cotabia-hakone-hero-v1.png") 53% center/cover no-repeat;color:#fff;box-shadow:0 18px 38px rgba(11,45,77,.22)}
.home-hero::after{position:absolute;inset:0;border:1px solid rgba(255,255,255,.18);border-radius:inherit;content:"";pointer-events:none}
.home-hero .hero-copy{position:relative;z-index:1;width:100%}
.hero-meta{display:flex;gap:7px;margin-bottom:10px}
.hero-meta span{display:inline-flex!important;width:auto;padding:5px 8px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(7,30,52,.28);font-size:9px;font-weight:700;backdrop-filter:blur(8px)}
.home-hero .hero-copy>p{margin:0 0 4px;font-size:10px;font-weight:700;letter-spacing:.08em;opacity:.76}
.home-hero h1{color:#fff;font-size:29px;line-height:1.2;letter-spacing:-.05em}
.home-hero .hero-copy>small{display:block;margin-top:10px;font-size:10px;opacity:.76}
.hero-route{display:flex;align-items:center;gap:7px;margin-top:12px}
.hero-route span{display:block!important;margin:0!important;font-size:11px!important;font-weight:700;opacity:.92!important}
.hero-route i{position:relative;width:28px;height:1px;background:rgba(255,255,255,.48)}
.hero-route i::after{position:absolute;top:-2px;right:0;width:5px;height:5px;border-radius:50%;background:#fff;content:""}
.hero-edit{position:absolute;z-index:2;top:17px;right:17px;min-width:52px;padding:8px 13px;border-color:rgba(255,255,255,.34);background:rgba(8,35,57,.38);font-weight:700;backdrop-filter:blur(10px)}
.home-section{margin-top:30px}
.section-heading{margin-bottom:13px}
.section-heading>div>small{display:block;margin-bottom:1px;color:#8b9aa6;font-size:9px;font-weight:800;letter-spacing:.14em}
.section-heading h2{font-size:19px;font-weight:900;letter-spacing:-.035em}
.section-heading button{min-height:36px;padding:0 3px;color:var(--sky);font-weight:700}
.next-event{grid-template-columns:48px 1fr 36px;gap:13px;padding:17px;border:1px solid rgba(11,45,77,.055);border-radius:20px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft)}
.next-event time{gap:0;padding-right:13px}
.next-event time b{font-size:22px;line-height:1.1;letter-spacing:-.05em}
.next-event time span{margin-top:2px;font-size:9px;letter-spacing:.1em}
.next-event>div>small{font-size:10px;letter-spacing:.02em}
.next-event h3{margin:4px 0;font-size:14px;font-weight:900}
.next-event p{font-size:10px;line-height:1.5}
.event-icon{width:34px;height:34px;border-radius:50%;background:#edf6fa;color:var(--navy)}
.event-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-status{gap:9px}
.home-status button{position:relative;min-height:92px;border:1px solid rgba(11,45,77,.06);border-radius:19px;background:rgba(255,255,255,.84);box-shadow:0 5px 18px rgba(18,55,83,.045)}
.home-status button::after{position:absolute;right:9px;bottom:9px;color:#a7b6c0;font-size:12px;content:"›"}
.home-status b{font-size:24px;font-weight:900;letter-spacing:-.06em}
.home-status span{max-width:62px;font-size:9px;line-height:1.35}
.reservation-glance{grid-template-columns:42px 1fr 18px;gap:12px;padding:16px;border:1px solid #d9eaef;border-radius:19px;background:linear-gradient(125deg,#eff8f8,#f4f9fc);box-shadow:0 7px 20px rgba(18,55,83,.05)}
.reservation-glance>span{width:42px;height:42px;border-radius:14px;color:var(--navy)}
.reservation-glance svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.reservation-glance b{font-size:12px;font-weight:900}
.reservation-glance p{font-size:9px;line-height:1.5}
.activity-row{grid-template-columns:32px 1fr auto;gap:10px;padding:12px 0}
.member-dot{width:32px;height:32px}
.activity-row p{font-size:11px}
.plus-teaser{margin-top:28px;padding:16px;border-color:#cfe5eb;border-radius:20px;background:linear-gradient(125deg,#eef8f5,#eef5fb);box-shadow:0 8px 22px rgba(18,55,83,.05)}
.plus-teaser-mark{background:linear-gradient(145deg,#0b2d4d,#318bc4)}
.plus-teaser small{color:#347b92}
.ai-button,.primary-button{min-height:58px;border-radius:18px;background:linear-gradient(135deg,var(--navy),#195a8d);font-size:14px;font-weight:900;box-shadow:0 12px 24px rgba(11,45,77,.18);transition:transform .18s ease,box-shadow .18s ease}
.ai-button{background:linear-gradient(135deg,#0e5482,#2c92bd)}
.secondary-button{min-height:54px;border-color:#cbd9df;border-radius:17px;background:rgba(255,255,255,.56);font-size:13px}
.select-field,.search-box,.option,.text-input{border-color:#d9e4e9;border-radius:17px;background:rgba(255,255,255,.92);box-shadow:0 5px 18px rgba(18,55,83,.035)}
.select-field{min-height:62px}
.field-label{margin-top:24px;font-size:13px;font-weight:900}
.pill-row{overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
.pill{flex:0 0 auto;min-height:42px;padding:9px 16px;border-color:#d5e1e6;font-size:12px;font-weight:700}
.pill.is-selected{border-color:#efaa99;background:#fff0ea;color:#c9563e;box-shadow:0 5px 14px rgba(244,111,82,.1)}
.stepper{margin-top:4px}
.stepper .step{width:30px;height:30px;background:var(--navy)}
.daily-stays,.member-card,.route-stop,.group-card,.archive-card,.reservation-card{border-color:rgba(11,45,77,.065);box-shadow:var(--shadow-soft)}
.daily-stays{border-radius:18px}
.daily-stays div{padding:13px 15px}
.route-editor{border-left-color:#badbe3}
.route-day::before{background:#4b97a4}
.route-stop{border:1px solid rgba(11,45,77,.05);border-radius:16px}
.map-panel{height:205px;border:1px solid rgba(11,45,77,.06);border-radius:22px;box-shadow:var(--shadow-soft)}
.place-list{gap:10px}
.place-card{grid-template-columns:78px 1fr 20px;padding:11px;border:1px solid rgba(11,45,77,.055);border-radius:17px;background:rgba(255,255,255,.78)}
.place-card:last-child{border-bottom:1px solid rgba(11,45,77,.055)}
.place-image{width:78px;height:78px;border-radius:14px}
.option{border-radius:16px}
.option.is-selected{border-color:#8cc2d3;background:#eaf5f6}
.ai-note{border:1px solid #cfe5eb;border-radius:18px;background:#edf7f6;color:var(--navy)}
.plan-summary span{border:1px solid #d4e8ec;background:#edf7f6}
.timeline{padding:17px;border:1px solid rgba(11,45,77,.06);border-radius:21px;background:#fff;box-shadow:var(--shadow-soft)}
.timeline section{border-left-color:#4b97a4}
.group-card,.archive-card,.reservation-card{border:1px solid rgba(11,45,77,.055);border-radius:20px}
.archive-cover.tokyo{height:150px;background:linear-gradient(180deg,transparent 30%,rgba(7,31,51,.38)),url("cotabia-hakone-hero-v1.png") center/cover no-repeat}
.bottom-nav{bottom:max(12px,env(safe-area-inset-bottom));width:min(calc(100% - 28px),402px);height:72px;padding:7px 8px;border-color:rgba(255,255,255,.78);border-radius:24px;background:rgba(252,252,249,.9);box-shadow:0 16px 42px rgba(11,45,77,.2);backdrop-filter:blur(22px) saturate(1.2)}
.nav-item{height:55px;border-radius:18px;color:#788995}
.nav-item.is-active{background:#e9f2f3;color:var(--navy);box-shadow:none}
.nav-item.is-active svg{stroke:var(--navy)}
.nav-item span{font-size:9px;font-weight:700}
.nav-create{height:67px!important;border-color:var(--ivory)!important;background:linear-gradient(145deg,#0b2d4d,#236f9d)!important;box-shadow:0 11px 25px rgba(11,45,77,.3)}
.plus-hero{min-height:260px;background:linear-gradient(180deg,rgba(7,31,51,.16),rgba(7,31,51,.92)),url("cotabia-hakone-hero-v1.png") 56% center/cover no-repeat}
.plus-plan-card,.plus-benefits article{border-color:rgba(11,45,77,.07)}
.toast{bottom:calc(96px + env(safe-area-inset-bottom));background:#0b2d4d;box-shadow:var(--shadow-float)}
@media (hover:hover){button:hover{transform:translateY(-1px)}.ai-button:hover,.primary-button:hover{box-shadow:0 16px 28px rgba(11,45,77,.23)}}
button:active{transform:scale(.98)}
@media (max-width:360px){.app-shell{padding-right:16px;padding-left:16px}.home-hero{min-height:280px;padding:19px}.home-hero h1{font-size:26px}.bottom-nav{width:calc(100% - 20px)}.home-status span{font-size:8px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.view{animation:none}button{transition:none}}
.place-image.shrine{background:url("cotabia-asakusa-card-v1.png") center/cover no-repeat}
.place-image.beach{background:url("cotabia-hakone-hero-v1.png") 68% center/cover no-repeat}
.place-image.street{background:url("cotabia-yokohama-card-v1.png") center/cover no-repeat}
.home-hero{background:linear-gradient(180deg,rgba(9,35,57,.03) 12%,rgba(9,35,57,.25) 43%,rgba(6,28,49,.94) 100%),url("cotabia-hakone-hero-v1.jpg") 53% center/cover no-repeat}
.archive-cover.tokyo{background:linear-gradient(180deg,transparent 30%,rgba(7,31,51,.38)),url("cotabia-hakone-hero-v1.jpg") center/cover no-repeat}
.plus-hero{background:linear-gradient(180deg,rgba(7,31,51,.16),rgba(7,31,51,.92)),url("cotabia-hakone-hero-v1.jpg") 56% center/cover no-repeat}
.place-image.shrine{background-image:url("cotabia-asakusa-card-v1.jpg")}
.place-image.beach{background-image:url("cotabia-hakone-hero-v1.jpg")}
.place-image.street{background-image:url("cotabia-yokohama-card-v1.jpg")}
.icon-button,.profile-button{width:44px;height:44px}
.hero-edit{min-height:44px}
.section-heading button,.text-link,.back{min-height:44px}
.text-link{display:inline-flex;align-items:center}
.filter{min-height:40px}
.booking-context{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid #d7e5e8;border-radius:19px;background:linear-gradient(125deg,#edf7f5,#f3f8fb);box-shadow:0 8px 22px rgba(18,55,83,.05)}
.booking-context-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff;color:var(--navy)}
.booking-context-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.booking-context small,.booking-context b,.booking-context span{display:block}
.booking-context small{color:#4c8993;font-size:9px;font-weight:800;letter-spacing:.05em}
.booking-context b{margin-top:2px;color:var(--navy);font-size:12px;font-weight:900}
.booking-context span{margin-top:3px;color:var(--slate);font-size:9px}
.booking-context button{min-height:40px;padding:0 5px;border:0;background:transparent;color:var(--sky);font-size:10px;font-weight:800}
.booking-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:22px 0;padding:5px;border-radius:17px;background:#e8edef}
.booking-tabs button{min-height:43px;border:0;border-radius:13px;background:transparent;color:var(--slate);font-size:12px;font-weight:800}
.booking-tabs button.is-active{background:#fff;color:var(--navy);box-shadow:0 4px 14px rgba(18,55,83,.09)}
.booking-results{display:none}.booking-results.is-active{display:grid;gap:12px}
.booking-result-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:2px 1px 0}
.booking-result-heading small{display:block;color:#8b9aa6;font-size:9px;font-weight:900;letter-spacing:.14em}
.booking-result-heading h2{margin:1px 0 0;color:var(--navy);font-size:19px;font-weight:900;letter-spacing:-.035em}
.booking-result-heading>span{padding:5px 8px;border-radius:999px;background:#edf4f5;color:var(--slate);font-size:9px;font-weight:800}
.booking-offer{overflow:hidden;border:1px solid rgba(11,45,77,.07);border-radius:21px;background:#fff;box-shadow:var(--shadow-soft)}
.offer-photo{position:relative;height:132px;background-position:center;background-size:cover}
.offer-photo::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,29,49,.25));content:""}
.offer-photo>span{position:absolute;z-index:1;top:12px;left:12px;padding:5px 9px;border-radius:999px;background:var(--coral);color:#fff;font-size:9px;font-weight:900;box-shadow:0 5px 14px rgba(244,111,82,.26)}
.hotel-asakusa{background-image:url("cotabia-asakusa-card-v1.jpg")}.hotel-hakone{background-image:url("cotabia-hakone-hero-v1.jpg")}.hotel-yokohama{background-image:url("cotabia-yokohama-card-v1.jpg")}
.offer-body{padding:14px 15px 15px}
.offer-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
.offer-title small{display:block;color:#56838b;font-size:9px;font-weight:800}
.offer-title h3{margin:2px 0 0;color:var(--navy);font-size:15px;font-weight:900}
.offer-title>b{display:grid;place-items:center;width:36px;height:30px;border-radius:10px;background:var(--navy);color:#fff;font-size:11px}
.offer-body>p{margin:8px 0;color:var(--slate);font-size:10px;line-height:1.55}
.offer-tags{display:flex;gap:6px;flex-wrap:wrap}.offer-tags span{padding:5px 7px;border-radius:999px;background:#eff6f4;color:#3f7772;font-size:8px;font-weight:800}
.offer-body footer,.flight-offer footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid #edf1f2}
.offer-body footer small,.offer-body footer strong,.flight-offer footer small,.flight-offer footer strong{display:block}.offer-body footer small,.flight-offer footer small{color:var(--slate);font-size:8px}.offer-body footer strong,.flight-offer footer strong{margin-top:2px;color:var(--navy);font-size:16px;font-weight:900;letter-spacing:-.04em}
.affiliate-cta{min-height:43px;padding:0 14px;border:0;border-radius:13px;background:var(--navy);color:#fff;font-size:10px;font-weight:900;white-space:nowrap}
.offer-actions{display:flex;align-items:center;gap:7px}.save-offer{min-height:43px;padding:0 11px;border:1px solid #c6d5d9;border-radius:13px;background:#fff;color:#466873;font-size:9px;font-weight:900;white-space:nowrap;transition:.2s ease}.save-offer.is-saved{border-color:#9ccbc3;background:#e9f6f2;color:#287468}.save-offer:active,.affiliate-cta:active{transform:scale(.97)}
.saved-offer-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:13px 14px;border-radius:18px;background:linear-gradient(135deg,#0b2d4d,#10546a);color:#fff;box-shadow:0 14px 26px rgba(11,45,77,.18)}.saved-offer-summary.hidden{display:none}.saved-offer-summary>div{display:flex;align-items:center;gap:10px}.saved-offer-summary>div>span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:11px;background:var(--coral);font-size:14px;font-weight:900}.saved-offer-summary p,.saved-offer-summary b,.saved-offer-summary small{display:block;margin:0}.saved-offer-summary b{font-size:10px}.saved-offer-summary small{margin-top:2px;color:#c9dce1;font-size:8px}.saved-offer-summary button{min-height:40px;padding:0 11px;border:0;border-radius:12px;background:#fff;color:var(--navy);font-size:9px;font-weight:900;white-space:nowrap}
.reservation-card.is-candidate{border-color:#c9e0dc;background:linear-gradient(145deg,#fff,#f4faf8)}.reservation-card.is-candidate header span{background:#e8f4f1;color:#36796e}.reservation-card.is-candidate .reservation-icon{background:#e8f4f1;color:#397f74}
.flight-offer{padding:15px;border:1px solid rgba(11,45,77,.07);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)}
.flight-offer.best{border-color:#b9dce3;background:linear-gradient(140deg,#fff,#f1f8f8)}
.flight-offer header{display:flex;align-items:center;justify-content:space-between}.flight-offer header>span{padding:4px 7px;border-radius:999px;background:#e9f5f3;color:#39756e;font-size:9px;font-weight:900}.flight-offer.best header>span{background:#ffede8;color:#c5543d}.flight-offer header small{color:var(--slate);font-size:9px}
.flight-route{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;gap:10px;margin-top:15px;text-align:center}.flight-route b,.flight-route small{display:block}.flight-route b{color:var(--navy);font-size:18px;font-weight:900}.flight-route small{color:var(--slate);font-size:9px}.flight-route i{position:relative;height:1px;background:#b9ccd4}.flight-route i::before,.flight-route i::after{position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#6a9aa4;content:""}.flight-route i::before{left:0}.flight-route i::after{right:0}.flight-route i span{position:absolute;left:50%;bottom:6px;width:80px;transform:translateX(-50%);color:var(--slate);font-size:8px;font-style:normal}
.affiliate-note{display:grid;grid-template-columns:23px 1fr;gap:9px;margin-top:18px;padding:13px;border-radius:15px;background:#f1f3f3;color:var(--slate)}
.affiliate-note>span{display:grid;place-items:center;width:23px;height:23px;border:1px solid #b8c6cb;border-radius:50%;font-size:10px;font-weight:900}.affiliate-note p{margin:0;font-size:9px;line-height:1.65}
.photo-upload-card{margin:20px 0 17px;padding:18px;border:1px solid rgba(20,91,109,.14);border-radius:22px;background:linear-gradient(145deg,#f9ffff,#ecf7f7);box-shadow:0 12px 26px rgba(21,79,91,.06)}
.photo-upload-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.photo-upload-heading span{display:block;color:#558589;font-size:8px;font-weight:900;letter-spacing:.16em}.photo-upload-heading h2{margin:4px 0 0;color:var(--navy);font-size:18px;font-weight:900;letter-spacing:-.04em}.photo-upload-heading i{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#dff1ef;color:#208174;font-size:14px;font-style:normal}.photo-upload-card>p{margin:10px 0 14px;color:var(--slate);font-size:10px;line-height:1.7}
.photo-select-button{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 15px;border:1px solid #9fcfc8;border-radius:15px;background:#fff;color:#226e69;font-size:12px;font-weight:900;cursor:pointer}.photo-select-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.photo-select-button span{display:grid;place-items:center;width:25px;height:25px;border-radius:9px;background:#e3f4f1;font-size:18px;font-weight:400}.photo-upload-status{margin:10px 1px 0!important;color:#568187!important;font-size:9px!important}.photo-upload-status.is-working{color:#226e69!important}.photo-upload-status.is-error{color:#ba503f!important}
.photo-upload-list{display:grid;gap:8px;margin-top:13px}.photo-upload-list.hidden{display:none}.compressed-photo{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:8px;border-radius:13px;background:#fff}.compressed-photo img{width:44px;height:44px;border-radius:9px;object-fit:cover}.compressed-photo b,.compressed-photo small{display:block}.compressed-photo b{overflow:hidden;color:var(--navy);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.compressed-photo small{margin-top:4px;color:#578083;font-size:9px}.compressed-photo strong{color:#287468;font-size:10px}
.cloud-status{padding:5px 8px;border-radius:999px;background:#e4f3ef;color:#267268;font-size:8px;font-weight:900;white-space:nowrap}.cloud-status.is-offline{background:#f0f2f3;color:#7c898f}.cloud-status.is-syncing{background:#edf5ff;color:#286da8}
.collaboration-card{margin:18px 0;padding:17px;border:1px solid #cde1e4;border-radius:20px;background:linear-gradient(145deg,#fbffff,#edf7f6)}.collaboration-card>div:first-child>span{color:#4a8582;font-size:8px;font-weight:900;letter-spacing:.15em}.collaboration-card h2{margin:4px 0;color:var(--navy);font-size:17px}.collaboration-card p{margin:0 0 13px;color:var(--slate);font-size:10px;line-height:1.6}.collaboration-card label{display:block;margin:14px 0 6px;color:var(--navy);font-size:10px;font-weight:800}.invite-code-row,.join-code-row{display:flex;gap:7px}.invite-code-row code{display:flex;align-items:center;flex:1;min-height:43px;padding:0 12px;border:1px dashed #9fbfc4;border-radius:12px;background:#fff;color:var(--navy);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:800;letter-spacing:.08em}.invite-code-row button,.join-code-row button{padding:0 12px;border:0;border-radius:12px;background:var(--navy);color:#fff;font-size:9px;font-weight:900}.invite-code-row button:disabled{background:#bcc8cc}.join-code-row input{min-width:0;flex:1;height:43px;padding:0 12px;border:1px solid #c8dadd;border-radius:12px;background:#fff;color:var(--navy);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:.08em;text-transform:lowercase;outline:none}
.auth-modal{position:fixed;z-index:80;inset:0;display:flex;align-items:flex-end;justify-content:center}.auth-modal.hidden{display:none}.auth-backdrop{position:absolute;inset:0;background:rgba(5,26,43,.48);backdrop-filter:blur(5px)}.auth-sheet{position:relative;width:min(100%,440px);padding:29px 24px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:#fbfcfa;box-shadow:0 -20px 55px rgba(5,31,52,.2)}.auth-close{position:absolute;top:16px;right:17px;width:34px;height:34px;border:0;border-radius:50%;background:#eef2f2;color:var(--navy);font-size:20px}.auth-mark{display:grid;place-items:center;width:40px;height:40px;margin-bottom:14px;border-radius:14px;background:linear-gradient(145deg,#0d5469,#238f88);color:#fff}.auth-sheet h2{margin:4px 0 8px;color:var(--navy);font-size:25px;letter-spacing:-.05em}.auth-sheet>p:not(.eyebrow):not(.auth-status){margin:0 0 19px;color:var(--slate);font-size:11px;line-height:1.7}.auth-sheet label{display:block;margin-bottom:7px;color:var(--navy);font-size:11px;font-weight:800}.auth-sheet input{width:100%;height:52px;padding:0 14px;border:1px solid #cedbdd;border-radius:14px;background:#fff;color:var(--navy);font:inherit;outline:none}.auth-sheet input:focus{border-color:#78b7b2;box-shadow:0 0 0 3px rgba(44,146,137,.1)}.auth-primary,.auth-secondary{width:100%;min-height:52px;margin-top:10px;border:0;border-radius:14px;background:var(--navy);color:#fff;font-size:12px;font-weight:900}.auth-secondary{background:#e7f3f1;color:#246e68}.auth-primary:disabled{opacity:.58}.auth-status{min-height:18px;margin:10px 0 0;color:#347b74;font-size:10px;line-height:1.5}.signed-in-user{display:flex;align-items:center;gap:12px;padding:13px;border-radius:16px;background:#eef6f5}.signed-in-user>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#cfe8e5;color:#1f6963;font-size:13px;font-weight:900}.signed-in-user b,.signed-in-user small{display:block}.signed-in-user b{color:var(--navy);font-size:13px}.signed-in-user small{margin-top:3px;color:var(--slate);font-size:9px}.auth-signout{display:block;margin:14px auto 0;border:0;background:transparent;color:#9b5c52;font-size:10px}
@media (max-width:360px){.app-shell{padding-right:16px;padding-left:16px}.bottom-nav{bottom:10px;width:calc(100% - 20px);height:66px;padding:6px}.nav-item{height:52px;padding-right:1px;padding-left:1px}.nav-item span{font-size:8px}.nav-item svg{width:19px;height:19px}.nav-create{height:62px!important;margin-top:-19px}.offer-body footer,.flight-offer footer{align-items:flex-start;flex-direction:column}.offer-actions{width:100%}.offer-actions button{flex:1}.saved-offer-summary small{display:none}}
@media (min-width:720px) { body { padding:28px 0; }.app-shell { min-height:860px; border-radius:28px; } }
.trip-form-input{display:block;width:100%;min-height:58px;padding:0 16px;color:var(--navy);font:700 14px/1.4 inherit}
.date-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.date-input-grid label{min-width:0}.date-input-grid .field-label{display:block;margin-bottom:8px}
.date-input-grid input{min-width:0;padding:0 10px;font-size:12px}
.form-message{margin:10px 2px 0;color:#bd4b36;font-size:11px;font-weight:700}.form-message.hidden{display:none}
.route-day-editor{margin-bottom:22px}.route-day-editor header{justify-content:space-between;padding-right:2px}
.route-stop-editor{display:grid;gap:13px;padding:15px}
.route-field{display:grid;gap:6px;min-width:0}.route-field>span{color:var(--slate);font-size:9px;font-weight:800;letter-spacing:.06em}
.route-field input,.route-field select{width:100%;min-width:0;min-height:44px;padding:0 11px;border:1px solid #d9e4e9;border-radius:12px;background:#fbfcfc;color:var(--navy);font:700 12px/1.4 inherit}
.route-field-wide input{font-size:13px}.route-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.route-minutes{position:relative;grid-template-columns:1fr 88px 20px;align-items:end}.route-minutes>span{grid-column:1/-1}.route-minutes input{grid-column:2}.route-minutes em{padding-bottom:12px;color:var(--slate);font-size:10px;font-style:normal}
.remove-route-area{justify-self:end;min-height:40px;padding:0 3px;border:0;background:transparent;color:#b65a48;font:700 10px/1.4 inherit}
.daily-stays div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-stays div small{line-height:1.45}
@media (max-width:360px){.date-input-grid,.route-field-grid{grid-template-columns:1fr}.route-minutes{grid-template-columns:1fr 76px 20px}}
.text-area{display:block;width:100%;min-height:112px;padding:13px 15px;resize:vertical;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);font:600 13px/1.7 inherit;outline:none}.text-area:focus{border-color:var(--sky);box-shadow:0 0 0 4px rgba(48,136,201,.1)}
.input-with-unit{position:relative;display:block}.input-with-unit input{padding-right:35px}.input-with-unit em{position:absolute;top:50%;right:13px;transform:translateY(-50%);color:var(--slate);font-size:10px;font-style:normal}
.place-title em.muted{border-color:#d5dcdf;background:#f3f5f5;color:#7b898e}.empty-place-list{padding:28px 18px;border:1px dashed #c9d8dc;border-radius:17px;color:var(--slate);font-size:11px;text-align:center}
.remove-place-button{display:block;min-height:44px;margin:18px auto 0;padding:0 8px;border:0;background:transparent;color:#b65a48;font:700 11px/1.4 inherit}.remove-place-button.hidden{display:none}
.proposal-timelines{display:grid;gap:14px}.proposal-timelines .timeline{margin:0}.timeline-empty{margin:0;padding:10px 2px;color:var(--slate);font-size:11px}.proposal-timelines+.quiet-note{margin-top:15px}
.place-suggestions{margin-top:8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 12px 28px rgba(23,42,71,.12)}.place-suggestion{display:block;width:100%;padding:13px 14px;border:0;border-bottom:1px solid #edf1f5;background:#fff;color:inherit;text-align:left;font:inherit}.place-suggestion:last-child{border-bottom:0}.place-suggestion:hover,.place-suggestion:focus-visible{background:#f1f7ff}
.place-suggestion-message{margin:0;padding:13px 15px;color:#52616b;font-size:13px;line-height:1.55}.place-suggestion-message.is-loading{color:#0c7287}.place-suggestion-message.is-error{color:#b04437}
