:root{--teal: #0d7d8c;--teal-d: #0a626e;--bg: #f4f6f7;--card: #ffffff;--ink: #1a2327;--muted: #5a6b72;--line: #e4e9eb;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg)}h1,h2,h3,h4{margin:0}a{color:inherit}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}.screen{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column;position:relative}.screen-body{flex:1;padding-bottom:84px}.screen-body.nopad{padding-bottom:84px}.pad{padding:12px 16px}.pad-x{padding:0 16px}.center-soft{display:grid;gap:8px;place-content:center;text-align:center;padding:40px 24px}.apphead,.screenhead,.screenhead.floating{display:flex;align-items:center;gap:8px;padding:14px 16px 8px}.apphead h1{flex:1;font-size:1.6rem}.screenhead{justify-content:space-between}.screenhead h1{font-size:1.05rem;font-weight:700;text-align:center;flex:1}.screenhead.floating{position:sticky;top:0;z-index:5}.screenhead-right{min-width:28px;display:flex;justify-content:flex-end}.iconbtn{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--teal);background:#ffffffb3}.iconbtn.small{font-size:1rem}.iconbtn.ghost{background:none;visibility:hidden}.muted{color:var(--muted)}.notes{color:#36474e;white-space:pre-wrap;margin:8px 0 0}.linkbtn{color:var(--teal);font-weight:600;padding:0}.maplink{color:var(--teal);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-top:6px}.softbtn{background:#eef6f7;border-radius:10px;padding:8px 12px;font-size:.85rem;margin-top:8px}.drow.maplink{margin-top:0}.map-chip{margin-left:auto;font-size:.8rem;opacity:.85}.row{display:flex;gap:10px;align-items:center}.center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}.landing .brand{font-size:2rem;font-weight:800}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--teal);color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;text-decoration:none}.btn.full{width:100%}.btn:disabled{opacity:.6}input,textarea,select{padding:11px 13px;border:1px solid #d4dadd;border-radius:12px;font:inherit;width:100%;background:#fff;min-width:0}textarea{resize:vertical}.stack{display:grid;gap:10px}.stack label{display:grid;gap:4px;color:var(--muted);font-size:.85rem}.stack label input[type=date],.stack label input[type=time]{width:auto}.chip{background:#eef3f4;color:#36474e;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:600}.chip.on{background:var(--teal);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.addrow{width:100%;text-align:left;color:var(--teal);font-weight:600;padding:12px 0}.segmented{display:flex;background:#e9eef0;border-radius:12px;padding:3px;margin:10px 0}.seg{flex:1;padding:8px;border-radius:9px;font-weight:600;color:var(--muted);font-size:.9rem}.seg.on{background:var(--teal);color:#fff}.subtabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:8px 0}.subtab{padding:8px 0;color:var(--muted);font-weight:600;border-bottom:2px solid transparent}.subtab.on{color:var(--teal);border-bottom-color:var(--teal)}.bottomnav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:20}.navbtn{display:grid;gap:2px;justify-items:center;color:#9aa7ac;font-size:.68rem;font-weight:600;flex:1;padding:4px 0}.navbtn .navicon{font-size:1.15rem;filter:grayscale(1) opacity(.6)}.navbtn.on{color:var(--teal)}.navbtn.on .navicon{filter:none}.navadd{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;font-size:1.8rem;font-weight:300;margin-top:-22px;box-shadow:0 4px 12px #0d7d8c66;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.apphead.greet{align-items:center;padding-bottom:4px}.greet-text{flex:1;min-width:0}.greet-text h1{font-size:1.5rem;line-height:1.2}.greet-text p{margin:2px 0 0;font-size:.95rem}.greet-avatar{display:inline-flex;border-radius:50%}.triplist{display:grid;gap:14px;padding:12px 16px}.tripcard{display:flex;flex-direction:column;justify-content:space-between;border-radius:20px;overflow:hidden;min-height:250px;text-decoration:none;color:#fff;background:linear-gradient(160deg,#1f5f6b,#2c3e50);position:relative;isolation:isolate;box-shadow:0 2px 10px #00000024}.tripcard-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(1.15) contrast(1.06) brightness(.96)}.tripcard:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#0000002e,#0000000d,#00000073 60%,#000000d1)}.tripcard-top{padding:14px;display:flex;align-items:center;gap:8px}.tripcard-top .pill.countdown{margin-left:auto}.tripcard-body{padding:0 16px 14px;text-shadow:0 1px 2px rgba(0,0,0,.35)}.tripcard-body h2{font-size:1.65rem;font-weight:800;letter-spacing:-.01em}.tripcard-body p{margin:3px 0 0;font-size:.95rem;opacity:.95}.tripcard-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:.85rem}.tripcard-people{display:inline-flex;align-items:center;gap:8px}.tripcard-people .avatar-stack{padding-left:8px}.tripcard-people .avatar-wrap{border-color:#ffffffe6}.tripcard-go{width:40px;height:40px;border-radius:50%;flex:0 0 40px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff2e;border:1px solid rgba(255,255,255,.55);font-size:1.15rem;text-shadow:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.03em;background:#ffffffe6;color:#36474e}.pill.green{background:#d6f5e0;color:#137a40}.pill.blue{background:#dbeafe;color:#1d4ed8}.pill.amber{background:#fef3c7;color:#92560a}.pill.countdown{padding:6px 11px;font-size:.76rem;letter-spacing:.02em;text-transform:uppercase;background:#fffffff0;color:var(--ink);box-shadow:0 1px 3px #00000026}.cover{background:#d9e2e5 center/cover no-repeat;display:flex;align-items:center;justify-content:center;position:relative}.cover.rounded{border-radius:16px}.cover-edit,.cover-uploader{cursor:pointer}.cover-edit{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:#ffffffeb;color:var(--teal);font-size:1rem}.cover-uploader{display:block}.cover-pill{position:absolute;left:16px;bottom:14px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:.82rem;font-weight:700;color:#fff;background:#141e228c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25)}.trip-title{font-size:1.7rem;margin-top:12px}.quickrow{display:flex;gap:8px;margin:16px 0 8px}.quick{flex:1;display:grid;gap:6px;justify-items:center;text-decoration:none;color:var(--ink);font-size:.72rem;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 4px 10px;min-width:0;box-shadow:0 1px 3px #0000000d}.quick:active{background:#eef6f7}.quick-icon{font-size:1.35rem;line-height:1}.nextup{display:flex;align-items:center;gap:12px;background:#eef6f7;border-radius:16px;padding:14px;margin:12px 0;text-decoration:none;color:var(--ink)}.nextup-icon{font-size:1.4rem;align-self:flex-start}.nextup-main{flex:1;display:grid;gap:2px;min-width:0}.nextup-main .muted{font-size:.82rem}.nextup-route{font-size:1.3rem;letter-spacing:.02em}.nextup-side{display:grid;gap:2px;justify-items:start;padding-left:12px;border-left:1px solid #cfe0e3;align-self:stretch;align-content:center}.nextup-side .muted{font-size:.78rem;white-space:nowrap}.nextup-side strong{font-size:1.3rem;color:var(--teal)}.section{margin:20px 0}.section>h3{margin-bottom:8px;font-size:1rem}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-head h3{font-size:1rem}.card{background:#fff;border-radius:16px;padding:16px;margin:12px 0;box-shadow:0 1px 3px #0000000f}.lodging{display:flex;gap:12px;background:#fff;border-radius:14px;padding:12px;box-shadow:0 1px 3px #0000000f}.lodging img{width:84px;height:84px;border-radius:12px;object-fit:cover}.lodging-main strong{display:block}.lodging-name{display:inline-block;font-weight:700;color:var(--teal);text-decoration:none}.lodging-name .ext{font-size:.75rem;opacity:.7}.month{font-size:1.05rem;padding:10px 16px 6px}.tl-daygroup{margin-bottom:6px}.tl-dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:14px 16px 8px}.tl-dayhead h3{font-size:1.02rem;font-weight:700}.tl-dayhead .wx{font-weight:600}.timeline{list-style:none;margin:0;padding:0 16px}.tl-item{display:grid;grid-template-columns:64px 1fr;gap:10px;position:relative;padding-bottom:10px}.tl-item:before{content:"";position:absolute;left:69px;top:0;bottom:0;width:2px;background:var(--line)}.tl-col{font-size:.8rem;font-weight:700;color:var(--muted);text-align:right;padding-top:13px;line-height:1.2}.tl-card{display:flex;gap:10px;background:#fff;border-radius:14px;padding:12px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px #0000000f;align-items:center;min-width:0}.tl-main{flex:1;display:grid;gap:2px;min-width:0}.tl-main strong{font-size:1rem}.tl-main .muted{font-size:.85rem}.tl-time{color:var(--teal);font-weight:600;font-size:.85rem}.tl-thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;flex:0 0 64px}.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:.7rem;color:var(--muted);font-weight:700;padding:4px 0}.cal-cell{min-height:56px;border-radius:8px;background:#fff;padding:3px;font-size:.62rem;display:grid;gap:4px;align-content:start;color:var(--ink);text-decoration:none}.cal-cell.empty{background:transparent}.cal-cell.has{outline:1px solid #d8e6e8}a.cal-cell.has{background:#f3f9fa}.cal-num{font-weight:700;color:var(--muted)}.cal-dots{display:flex;flex-wrap:wrap;gap:3px;align-items:center;padding:0 1px}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--teal)}.cal-more{color:var(--muted);font-weight:700;line-height:1}.cal-emojis{display:flex;flex-wrap:wrap;gap:1px;font-size:.72rem;line-height:1.1;margin-top:2px}.detail-rows{display:grid;gap:8px;margin:12px 0}.drow{display:flex;gap:10px;align-items:center;color:#36474e}.linkrow{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:14px;padding:14px 16px;margin:12px 0;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px #0000000f;font-weight:600}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;background:var(--teal)}.avatar.overflow{background:#cfd8db;color:#36474e}.avatar-stack{display:flex;align-items:center;padding-left:8px}.avatar-wrap,.avatar-stack .avatar.overflow{border:2px solid #fff;border-radius:50%}.avatar-wrap{display:inline-flex}.photogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px 16px}.photocell{aspect-ratio:1;background:#d9e2e5 center/cover no-repeat;border-radius:6px}.photocell-more{display:flex;align-items:center;justify-content:center;background:#eef3f4;color:var(--muted);font-weight:700;font-size:1.1rem}.photo-group{margin-bottom:12px}.photo-group h3{padding:8px 16px 2px;font-size:.95rem}.thumbs{display:flex;gap:6px;flex-wrap:wrap}.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:10px}.thumb-more{width:72px;height:72px;border-radius:10px;background:#eef3f4;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700}.eventrow,.exprow{display:flex;gap:12px;align-items:center;background:#fff;padding:12px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.er-date{width:38px;text-align:center}.er-dow{display:block;font-size:.6rem;color:var(--muted);font-weight:700}.er-day{font-size:1.1rem;font-weight:700}.er-main,.exp-main{flex:1;display:grid;gap:2px;min-width:0}.er-main strong,.exp-main strong{font-size:.98rem}.er-thumb{width:52px;height:52px;border-radius:10px;object-fit:cover}.exp-icon{width:38px;height:38px;border-radius:10px;background:#eef3f4;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.exp-right{display:grid;justify-items:end;gap:4px}.exp-list{display:flex;flex-direction:column}.total-row,.group-head{display:flex;justify-content:space-between;align-items:center}.group-head{background:#eef3f4;font-weight:700}.total-row{font-size:1.05rem}.footaction{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,#fff 30%)}.people{list-style:none;margin:0;padding:0}.person{display:flex;gap:12px;align-items:center;background:#fff;padding:12px 16px;border-bottom:1px solid var(--line)}.person-main{flex:1;display:grid;gap:2px;min-width:0}.person-meta{font-size:.8rem;text-align:right}.chevron{color:var(--muted);font-size:1.2rem;line-height:1;flex:0 0 auto}.you{background:#d6f5e0;color:#137a40;border-radius:6px;padding:1px 6px;font-size:.65rem;font-weight:700;vertical-align:middle}.owner-badge{background:#eef4fb;color:#1d4ed8;margin-left:4px}.profile{display:flex;gap:14px;align-items:center;padding:16px}.menu{list-style:none;margin:0;padding:0}.menu li a{display:block;padding:14px 16px;background:#fff;border-bottom:1px solid var(--line);color:var(--teal);font-weight:600;text-decoration:none}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:30}.sheet{width:100%;max-width:480px;background:#fff;border-radius:20px 20px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.sheet h2{margin-bottom:12px}.cal-trip{display:block;position:relative;min-height:84px;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;background:#2c3e50 center/cover no-repeat;box-shadow:0 1px 3px #0000001a}.cal-trip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0003,#0009)}.cal-trip-body{position:relative;z-index:1;padding:14px;display:grid;gap:2px}.cal-trip-body strong{font-size:1.15rem}.cal-trip-body span{font-size:.85rem;opacity:.95}.daychips{display:flex;gap:8px;overflow-x:auto;padding:8px 16px 10px;scrollbar-width:none}.daychips::-webkit-scrollbar{display:none}.daychips .chip{flex:0 0 auto;padding:6px 12px;font-size:.8rem}.mapimg{width:100%;border-radius:14px;display:block;background:#e6ecee;min-height:160px;box-shadow:0 1px 3px #0000000f}.maplegend{list-style:none;margin:10px 0 0;padding:0 16px;display:grid;gap:6px}.legendrow{display:flex;gap:12px;align-items:center;background:#fff;border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px #0000000f}.legend-main{flex:1;display:grid;gap:2px;min-width:0}.legend-main strong{font-size:.95rem}.legend-main .muted{font-size:.8rem}.pinnum{width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex:0 0 26px}.pinnum.none{background:#cfd8dc}.airline-logo{display:inline-block;width:auto;max-width:96px;object-fit:contain;vertical-align:middle}.airline-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:#eef3f4;color:#36474e;font-weight:700;font-size:.78rem;letter-spacing:.04em}.leg-links{display:flex;gap:10px;flex-wrap:wrap;font-size:.8rem}.livebtn{display:inline-flex;align-items:center;gap:6px;background:#137a40;color:#fff;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap}.livebtn.sm{padding:3px 9px;font-size:.72rem}.livedot{width:8px;height:8px;border-radius:50%;background:#7cffb2;box-shadow:0 0 #7cffb2b3;animation:livepulse 1.6s infinite}@keyframes livepulse{0%{box-shadow:0 0 #7cffb2b3}70%{box-shadow:0 0 0 6px #7cffb200}to{box-shadow:0 0 #7cffb200}}.leg-links a{color:var(--teal);font-weight:600;text-decoration:none}.tl-card.flight{background:#eef6f7}.flightcard{border-left:4px solid transparent}.flightcard.mine{border-left-color:var(--teal)}.flightcard.live{border-left-color:#137a40;box-shadow:0 0 0 2px #137a4026,0 1px 3px #0000000f}.flight-route{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 10px}.flight-route>div{display:grid;gap:2px}.flight-route .muted{font-size:.85rem}.iata{font-size:1.5rem;letter-spacing:.04em}.flight-arrow{flex:1;text-align:center;position:relative}.flight-arrow:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed #b6c4c9;z-index:0}.legs{list-style:none;margin:0;padding:8px 0 0;display:grid;gap:6px;border-top:1px solid var(--line)}.leg{display:flex;gap:10px;align-items:baseline;font-size:.88rem;flex-wrap:wrap}.leg-code{font-weight:700;color:var(--teal);min-width:72px}.layover{font-size:.78rem;padding:2px 0 4px 82px}.legform{border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;margin:0;display:grid;gap:8px}.legform legend{font-weight:700;font-size:.85rem;color:var(--muted);padding:0 6px}.sheet.scroll{max-height:92dvh;overflow-y:auto}.linkrow.quiet{background:transparent;box-shadow:none;padding:10px 4px;font-weight:600;color:var(--muted);border-top:1px solid var(--line);border-radius:0;margin-top:4px}.links{list-style:none;margin:0;padding:0;display:grid;gap:6px}.links li{display:flex;align-items:center;gap:6px}.linkitem{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px #0000000f;min-width:0}.linkicon{font-size:1.15rem}.linkmain{flex:1;display:grid;gap:1px;min-width:0}.linkmain strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linkmain .muted{font-size:.78rem}.netbar{position:sticky;top:0;z-index:40;background:#36474e;color:#fff;text-align:center;font-size:.8rem;font-weight:600;padding:6px 12px}.netbar.back{background:#137a40}.section.danger{border-top:1px solid var(--line);padding-top:10px;margin-top:6px}.dangerbtn{color:#c0392b;font-weight:700;padding:8px 0}.dangerbtn:disabled{opacity:.5}.lodging-addphoto{width:84px;height:84px;flex:0 0 84px;border-radius:12px;border:1px dashed #c6d3d7;background:#f6f9f9;color:var(--teal);font-weight:700;font-size:.72rem;white-space:pre-line;line-height:1.3}.checklist{list-style:none;margin:0;padding:0}.checkrow{display:flex;gap:12px;align-items:flex-start;background:#fff;padding:12px 16px;border-bottom:1px solid var(--line)}.checkrow.done{background:#fafbfb}.checkrow.done .checkmain strong{text-decoration:line-through;color:var(--muted);font-weight:600}.checkbox{width:26px;height:26px;flex:0 0 26px;border-radius:8px;border:2px solid #c6d3d7;background:#fff;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:2px}.checkbox.on{background:var(--teal);border-color:var(--teal)}.checkmain{flex:1;display:grid;gap:2px;min-width:0}.checkmeta{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem}.checkmeta .overdue{color:#c0392b;font-weight:700}.checkright{display:flex;align-items:center;gap:6px}.assignsel{max-width:104px;font-size:.78rem;padding:4px 6px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--muted)}.rsvprow{display:flex;gap:8px;margin:8px 0 4px}.rsvpbtn{flex:1;padding:9px 6px;border-radius:12px;background:#eef3f4;color:#36474e;font-weight:700;font-size:.85rem}.rsvpbtn.on.going{background:#137a40;color:#fff}.rsvpbtn.on.maybe{background:#b7791f;color:#fff}.rsvpbtn.on.out{background:#5a6b72;color:#fff}.rsvp-group{margin-top:10px}.rsvp-group h4{margin:0 0 4px;font-size:.8rem;color:var(--muted);font-weight:700}.today{margin-top:12px}.wx{font-weight:700;font-size:.9rem;color:#36474e;white-space:nowrap}.todaylist{list-style:none;margin:0;padding:0;display:grid;gap:6px}.todaylist.moves{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.todayrow{display:grid;grid-template-columns:96px 1fr;gap:8px;align-items:baseline;text-decoration:none;color:var(--ink);font-size:.92rem}.wxstrip{display:flex;gap:6px;overflow-x:auto;padding:4px 16px 8px;scrollbar-width:none}.wxstrip::-webkit-scrollbar{display:none}.wxday{flex:0 0 auto;display:grid;justify-items:center;gap:1px;background:#fff;border-radius:10px;padding:6px 8px;min-width:52px;font-size:.68rem;color:var(--muted);box-shadow:0 1px 3px #0000000f}.wxday .wxicon{font-size:1rem}.wxday strong{color:var(--ink);font-size:.78rem}.wxday.today{outline:2px solid var(--teal)}.wxday.none{opacity:.55}.wxday.actual{background:#f0f8f3}
