:root{--bg:#f6f7f9;--card:#ffffff;--ink:#1a2233;--muted:#6b7280;--line:#e5e7eb;--accent:#4f46e5;--accent-ink:#ffffff;--done:#16a34a;--skipped:#dc2626;--moved:#d97706;--modified:#7c3aed;--added:#2563eb;--unreported:#9ca3af}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:baseline;gap:1rem;padding:.85rem 1.5rem;background:rgba(246,247,249,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}.nav{display:flex;gap:.9rem;font-weight:600;font-size:.9rem}.nav a{color:var(--muted)}.nav a:hover{color:var(--ink)}.brand-mark{color:var(--accent)}.tagline{color:var(--muted);font-size:.85rem}.container{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}h1{font-size:1.9rem;letter-spacing:-.02em;margin:.25rem 0 .5rem}h2{font-size:1.25rem;margin:2rem 0 .75rem}h3{margin:0}.hero{padding:1.75rem 1.5rem;margin:.5rem 0 1rem;background:linear-gradient(120deg,#eef2ff,#fdf2f8);border:1px solid var(--line);border-radius:16px}.hero-brand{padding:3.5rem 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(135deg,#4338ca,#7c3aed 55%,#a21caf);color:#ffffff;border:none}.hero-kicker{font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:.75rem}.hero-brand h1{font-size:2.5rem;font-weight:800;line-height:1.1;letter-spacing:-.01em;margin:0 0 .75rem;color:#ffffff}.hero-brand p{color:#f1f5f9;max-width:620px;margin:0 0 1.5rem;font-size:1.12rem;line-height:1.6}.hero-brand .searchbar{width:100%;max-width:520px;margin:0 auto;align-items:center}.hero-brand .searchbar input{background:#ffffff;border:none;color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.25)}.hero h1{margin-top:0}.hero p{margin:.25rem 0 0}.hero p,.summary{color:var(--muted)}.summary{margin:.25rem 0 .75rem}.back{display:inline-block;color:var(--accent);font-weight:600;margin-bottom:.75rem}.empty{color:var(--muted)}.cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:1rem;gap:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;transition:box-shadow .15s ease,transform .15s ease}.card:hover{box-shadow:0 6px 20px rgba(17,24,39,.07);transform:translateY(-1px)}.card h3{font-size:1.05rem;margin-bottom:.4rem}.meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;color:var(--muted);font-size:.82rem;margin:.4rem 0}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;background:#eef2ff;color:var(--accent)}.badge.muted{background:#f3f4f6;color:var(--muted)}.badge.must{background:#fef3c7;color:#b45309}.badge.private,.badge.public,.badge.unlisted{background:#f3f4f6;color:var(--muted)}.badge.public{background:#ecfdf5;color:#047857}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.tag{background:#f3f4f6;color:var(--muted);border-radius:6px;padding:.05rem .5rem;font-size:.75rem}.day{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;margin:1rem 0}.day h2{margin:0 0 .75rem}.day h3{font-size:.95rem;color:var(--muted);margin:.5rem 0;text-transform:uppercase;letter-spacing:.04em}.items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.item{display:flex;align-items:flex-start;gap:.7rem;padding:.6rem .7rem;border-radius:10px;border:1px solid transparent}.item.gap-skipped{background:#fef2f2}.item.gap-moved{background:#fffbeb}.item.gap-added{background:#eff6ff}.item.gap-modified{background:#f5f3ff}.kind{flex:none;min-width:4.2rem;text-align:center;padding:.12rem .4rem;border-radius:7px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#f3f4f6;color:var(--muted)}.item-body{flex:1 1;display:flex;flex-direction:column;gap:.2rem}.item-body strong{font-size:.95rem}.time{font-size:.8rem}.notes,.time{color:var(--muted)}.notes{font-size:.82rem;margin:0}.strike{text-decoration:line-through;color:var(--muted)}.gap-summary{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem}.gap-summary h2{margin:0 0 .75rem}.gap-stats{display:flex;flex-wrap:wrap;gap:.75rem}.stat{flex:1 1;min-width:84px;border-radius:10px;padding:.6rem;text-align:center;border:1px solid var(--line)}.stat-value{display:block;font-size:1.4rem;font-weight:800}.stat-label{font-size:.72rem;color:var(--muted)}.g-done{color:var(--done)}.g-skipped{color:var(--skipped)}.g-moved{color:var(--moved)}.g-modified{color:var(--modified)}.g-added{color:var(--added)}.g-unreported{color:var(--unreported)}.fidelity{display:flex;align-items:center;gap:.75rem;margin-top:.9rem;color:var(--muted);font-size:.85rem}.fidelity-bar{flex:1 1;height:8px;border-radius:999px;background:#eef2f6;overflow:hidden}.fidelity-fill{height:100%;background:linear-gradient(90deg,var(--accent),#818cf8)}.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:.5rem .9rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s ease}.btn:hover{background:#f3f4f6}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#4338ca}.btn.small{padding:.25rem .6rem;font-size:.78rem}.item-actions{display:flex;gap:.35rem}.btn.done{color:var(--done);border-color:#bbf7d0}.btn.skip{color:var(--skipped);border-color:#fecaca}.btn.move{color:var(--moved);border-color:#fde68a}.add-form{display:flex;gap:.6rem;margin:1rem 0}.add-form input{flex:1 1;border:1px solid var(--line);border-radius:9px;padding:.55rem .7rem;font-size:.9rem}.pagehead{display:flex;align-items:center;gap:.75rem}.status-in_flight{background:#eef2ff;color:var(--accent)}.status-completed{background:#ecfdf5;color:#047857}.status-published{background:#f5f3ff;color:#6d28d9}.section-head{display:flex;align-items:center;justify-content:space-between;margin-top:2rem}.section-head h2{margin:0}.editor .field{display:flex;flex-direction:column;gap:.25rem;margin:.75rem 0}.field label{font-size:.8rem;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:9px;padding:.55rem .7rem;font-size:.92rem;font-family:inherit;background:var(--card);color:var(--ink)}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:600px){.field-row{grid-template-columns:1fr}}.day-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.day-num{font-weight:800;font-size:.9rem;color:var(--muted)}.day-title{border:1px solid var(--line);border-radius:8px;padding:.3rem .5rem;font-size:.9rem;flex:1 1}.item-editor{padding:.45rem 0;border-top:1px solid var(--line)}.item-edit-fields,.item-editor{display:flex;align-items:center;gap:.4rem}.item-edit-fields{flex:1 1;flex-wrap:wrap}.item-editor input,.item-editor select{border:1px solid var(--line);border-radius:8px;padding:.32rem .45rem;font-size:.85rem;background:var(--card);color:var(--ink)}.item-editor .grow{flex:1 1;min-width:140px}.item-editor .time{width:70px}.item-editor .notes{flex:1 1;min-width:120px}.must{display:flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--muted)}.editor-day{padding:1rem}.add{opacity:.72}.cost-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:600px){.cost-grid{grid-template-columns:1fr}}.cost-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;margin:.75rem 0}.cost-head{display:flex;align-items:baseline;justify-content:space-between}.cost-label{font-weight:700;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.cost-total{font-size:1.5rem;font-weight:800}.cost-meta{color:var(--muted);font-size:.85rem;margin-top:.2rem}.cost-cats{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.25rem}.cost-cats li{display:flex;justify-content:space-between;font-size:.85rem}.cost-cats .cat{color:var(--muted)}.expense-form{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0}.expense-form input,.expense-form select{border:1px solid var(--line);border-radius:8px;padding:.35rem .5rem;font-size:.85rem;background:var(--card);color:var(--ink)}.expense-form .grow{flex:1 1;min-width:160px}.expense-form .unit{width:110px}.expense-form .qty{width:70px}.expense-list{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.35rem}.expense-list li{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.3rem 0;border-top:1px solid var(--line)}.expense-list .cat{color:var(--muted);min-width:90px}.expense-list .desc{flex:1 1}.expense-list .amt{font-weight:600}.inline{margin:0}.attachments{margin:1.25rem 0}.attachments h3{margin:.75rem 0 .5rem;font-size:1rem}.attachment-list{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.4rem}.attachment{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.att-kind{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--muted);min-width:64px}.att-link{color:var(--accent);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-caption{color:var(--muted);flex:1 1}.member-list{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.5rem}.member{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-top:1px solid var(--line);font-size:.9rem}.member-email{flex:1 1}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex:none}.place-card{display:block}.place-link{display:flex;gap:.8rem;align-items:flex-start}.place-thumb{flex:none;width:48px;height:48px;border-radius:12px;background:#f3f4f6;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.place-thumb.big{width:56px;height:56px;font-size:1.8rem}.place-body{flex:1 1;min-width:0}.searchbar{display:flex;gap:.5rem;margin-top:.75rem;align-items:center}.searchbar input{flex:1 1;border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;font-size:.95rem;background:#fff;color:var(--ink)}.explore-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.explore-card{padding:0;overflow:hidden}.explore-card .cover{height:120px;display:flex;align-items:center;justify-content:center;position:relative}.cover-emoji{font-size:2.6rem}.cover-gen{flex-direction:column;gap:.35rem}.cover-title{color:#fff;font-weight:700;font-size:.82rem;line-height:1.2;text-align:center;padding:0 .7rem;text-shadow:0 1px 3px rgba(0,0,0,.4);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-picker{margin:1rem 0}.cover-choices{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.cover-choice{display:flex;flex-direction:column;gap:.3rem;align-items:center;padding:0;background:none;border:2px solid transparent;border-radius:10px;cursor:pointer;overflow:hidden}.cover-choice.active{border-color:var(--accent)}.cover-thumb{width:120px;height:72px;object-fit:cover;border-radius:8px;display:flex;align-items:center;justify-content:center}.cover-choice-label{font-size:.72rem;color:var(--muted)}.badge.experience{position:absolute;top:8px;left:8px;background:rgba(255,255,255,.94);color:#6d28d9}.cover-body{padding:.9rem 1.1rem}.cost{font-weight:700;color:var(--accent);margin-left:auto}.carousel-section{margin:1.5rem 0}.carousel{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem .75rem;list-style:none;margin:0;-webkit-overflow-scrolling:touch}.carousel .trip-card{scroll-snap-align:start;flex:0 0 240px}.trip-card{position:relative}.card-photo{width:100%;height:140px;object-fit:cover;display:block}.cover-wrap{position:relative}.trip-card .cover{height:140px}.badge.fork{left:8px;background:rgba(255,255,255,.94);color:#b45309}.badge.fork,.like-form{position:absolute;top:8px}.like-form{right:8px;margin:0}.like-btn{border:none;background:rgba(255,255,255,.92);color:#64748b;border-radius:999px;padding:.3rem .65rem;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.12)}.like-btn.liked{color:#e11d48}.auth{margin-left:auto;display:flex;align-items:center;gap:.6rem}.auth-email{color:var(--muted);font-size:.85rem}.login{max-width:420px;margin:2rem auto;text-align:center}.login-buttons{display:flex;flex-direction:column;gap:.6rem;margin:1.25rem 0}.login-btn{width:100%;padding:.7rem}.chat{display:flex;flex-direction:column;height:calc(100vh - 140px)}.chat-box{flex:1 1;overflow-y:auto;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:1rem;margin:.75rem 0;display:flex;flex-direction:column;gap:.8rem}.chat-empty{color:var(--muted)}.chat-empty ul{margin:.5rem 0;padding-left:1.2rem}.msg{display:flex;flex-direction:column;gap:.2rem}.msg.user{align-items:flex-end}.msg-role{font-size:.72rem;font-weight:700;color:var(--muted)}.msg-content{max-width:80%;padding:.6rem .85rem;border-radius:12px;white-space:pre-wrap;font-size:.95rem}.msg.user .msg-content{background:var(--accent);color:#fff}.msg.assistant .msg-content{background:#f3f4f6}.chat-input{display:flex;gap:.5rem}.chat-input input{flex:1 1;border:1px solid var(--line);border-radius:10px;padding:.65rem .8rem;font-size:.95rem}.chat-fab{position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;background:var(--accent);color:#fff;font-size:1.7rem;border:none;cursor:pointer;box-shadow:0 8px 24px rgba(79,70,229,.35);z-index:60;display:flex;align-items:center;justify-content:center}.chat-fab:hover{transform:scale(1.04)}.chat-widget{position:fixed;z-index:60;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.18);overflow:hidden}.chat-widget-header{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;background:var(--accent);color:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.chat-drag,.chat-widget-header{cursor:-webkit-grab;cursor:grab}.chat-drag{opacity:.8}.chat-title{font-weight:700;flex:1 1;font-size:.95rem}.chat-profile{font-size:.75rem;border:none;border-radius:6px;padding:.25rem;max-width:150px;color:var(--ink)}.chat-close{background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;line-height:1;padding:0 .1rem}.chat-widget-body{flex:1 1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.7rem}.chat-widget-input{display:flex;gap:.4rem;padding:.6rem;border-top:1px solid var(--line)}.chat-widget-input input{flex:1 1;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;font-size:.9rem}.share-box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;margin:.9rem 0}.share-label{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.share-row{display:flex;gap:.5rem;margin-top:.4rem}.share-url{flex:1 1;border:1px solid var(--line);border-radius:8px;padding:.4rem .6rem;font-size:.85rem;background:#fafafa;color:var(--muted)}.qr-wrap{margin-top:.75rem;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.qr-hint{color:var(--muted);font-size:.8rem;margin:0}.embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000;margin:.25rem 0}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}