:root{color-scheme:light;--bg: #f7f3ec;--paper: #fffdf9;--paper-2: #f1ebe1;--ink: #1f2d33;--muted: #6c7a7d;--line: #e4dccf;--pine: #2c4f45;--pine-soft: #e3ece6;--sea: #1f3a4a;--sun: #e9a46b;--sun-soft: #fbead8;--red: #c4553b;--gold: #e0a72c;--radius: 18px;--shadow: 0 1px 2px rgba(31, 45, 51, .06), 0 6px 20px rgba(31, 45, 51, .06);--serif: "Fraunces", Georgia, serif;--sans: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body{min-height:100vh;-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}a{color:var(--sea)}code{background:var(--paper-2);padding:1px 6px;border-radius:6px}input,select,textarea,button{font:inherit;font-size:16px;color:inherit}::placeholder{color:#a9a293;opacity:1;font-weight:400}.serif{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:14px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;color:var(--red)}.pad{padding:24px 4px}.small-pad{padding:8px 0 12px}.stack{display:flex;flex-direction:column;gap:14px}.stack-lg{display:flex;flex-direction:column;gap:20px}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card.flat{box-shadow:none;border:1px solid var(--line);background:var(--paper)}.card.narrow{max-width:480px}.empty{text-align:center;padding:36px 24px;display:flex;flex-direction:column;gap:12px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:0;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .08s ease,background .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5}.btn.primary{background:var(--pine);color:#fff}.btn.soft{background:var(--pine-soft);color:var(--pine);align-self:flex-start}.btn.ghost{background:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--paper-2)}.btn.glass{background:#fffdf9d9;color:var(--ink);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.wide{width:100%}.btn.icon-only{padding:0;width:44px}.btn.danger{color:var(--red)}.btn.danger-solid{background:var(--red);color:#fff}.field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.field>span{font-size:13px;font-weight:700;color:var(--muted)}.field em{font-weight:400;font-style:normal}.field input,.field select,.plain-input,select{min-height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--paper);outline:none;width:100%}select{width:auto;padding-right:8px;background:var(--paper)}.field input:focus,.plain-input:focus,select:focus,.boxed:focus{border-color:var(--pine);box-shadow:0 0 0 3px var(--pine-soft)}.field.compact input{min-height:40px}.row-2{display:flex;gap:12px;flex-wrap:wrap}.row-2>*{flex:1 1 160px}.form-error{color:var(--red);font-weight:600}.title-input,.time-input{border:0;background:transparent;outline:none;padding:6px 8px;border-radius:8px;width:100%;font-family:var(--serif);font-weight:600;font-size:19px}.title-input:focus,.time-input:focus{background:var(--paper-2)}.time-input{width:92px;flex:none;font-family:var(--sans);font-size:15px;font-weight:700;color:var(--red)}textarea.grow{resize:none;overflow:hidden;border:0;background:transparent;outline:none;width:100%;padding:6px 8px;border-radius:8px;line-height:1.45;color:#3d4b50}textarea.grow:focus{background:var(--paper-2)}textarea.boxed{border:1px solid var(--line);padding:10px 12px;border-radius:12px;min-height:46px}.link-field{display:flex;align-items:center;gap:8px;background:var(--paper-2);border-radius:12px;padding:0 6px 0 12px;min-height:44px;flex:1;min-width:200px;color:var(--muted)}.link-field input{border:0;background:transparent;outline:none;flex:1;min-width:0;color:var(--ink);min-height:42px}.money-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding-left:12px;background:var(--paper)}.money-field span{color:var(--muted);font-weight:700}.money-field input{border:0!important;box-shadow:none!important;outline:none;min-height:40px;padding:0 10px 0 4px;width:100%;background:transparent}.toggle{display:inline-flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}.toggle input{width:22px;height:22px;accent-color:var(--pine)}.check{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid #c9bfae;background:var(--paper);display:grid;place-items:center;cursor:pointer;color:#fff;margin-top:6px}.check.on{background:var(--pine);border-color:var(--pine)}.login{min-height:100vh;position:relative;display:grid;place-items:center;padding:24px;overflow:hidden}.login-scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.login-card{position:relative;width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px;padding:32px 28px}.login-card h1{font-size:36px;margin-bottom:6px}.page{max-width:1100px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 28px) 20px 60px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:24px;flex-wrap:wrap}.topbar-actions{display:flex;gap:8px}.page-title{font-size:40px}.trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.trip-card{display:flex;flex-direction:column;justify-content:flex-start;text-align:left;border:0;padding:0;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:transform .15s ease}.trip-card:active{transform:scale(.98)}.trip-card-art{position:relative;height:170px;background:var(--paper-2)}.trip-card-art svg,.trip-card-art img{width:100%;height:100%;object-fit:cover;display:block}.trip-card-art .badge{position:absolute;top:12px;left:12px}.trip-card-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:4px}.trip-card-body h2{font-size:24px}.countdown{color:var(--red);font-weight:700;margin-top:4px}.badge{display:inline-block;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:700;background:var(--paper)}.status-planning{background:var(--sun-soft);color:#9a5a22}.status-booked{background:var(--pine-soft);color:var(--pine)}.status-done{background:#e7e4f0;color:#4d4672}.hero{position:relative;height:300px;overflow:hidden;color:#fff}.hero-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f1e2626,#0f1e2600 35%,#0f1e268c)}.hero-top{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:16px;right:16px;display:flex;justify-content:space-between;align-items:center}.hero-top-right{display:flex;align-items:center;gap:8px}.hero-text{position:absolute;left:0;right:0;bottom:22px;max-width:1100px;margin:0 auto;padding:0 24px}.hero-title{font-size:clamp(30px,5vw,48px);text-shadow:0 2px 14px rgba(0,0,0,.3)}.hero-sub{font-weight:600;opacity:.95;margin-top:4px;text-shadow:0 1px 8px rgba(0,0,0,.35)}.hero-countdown{display:inline-block;background:var(--red);padding:4px 12px;border-radius:999px;font-weight:700;font-size:14px;margin-bottom:10px}.save-pill{background:#fffdf9e6;color:var(--pine);font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px}.save-pill.error{color:var(--red)}.tabs{position:sticky;top:0;z-index:5;display:flex;gap:4px;overflow-x:auto;padding:10px 16px;padding-top:calc(env(safe-area-inset-top)*.4 + 10px);background:#f7f3eceb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);scrollbar-width:none;justify-content:center}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;padding:10px 18px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:700;min-height:44px;display:flex;align-items:center}.tab.active{background:var(--sea);color:#fff}.tab-body{max-width:1100px;margin:0 auto;padding:24px 20px 80px;padding-bottom:calc(env(safe-area-inset-bottom) + 80px)}@media (max-width: 700px){.tabs{justify-content:flex-start}}.days{display:flex;flex-direction:column;gap:18px}.day{display:flex;flex-direction:column;gap:6px}.day-head{display:flex;gap:14px;align-items:center;margin-bottom:6px}.day-head h2{font-size:22px}.day-num{flex:none;background:var(--sun-soft);color:#9a5a22;font-weight:800;font-size:13px;padding:8px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.06em}.day-stop{color:var(--pine);font-weight:700;font-size:14px}.items{list-style:none;padding:0;margin:0 0 6px;display:flex;flex-direction:column}.item{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line);align-items:flex-start}.item:first-child{border-top:0}.item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.item-line{display:flex;gap:4px;align-items:center}.item-extras{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-left:8px}.item-tools{display:flex;gap:0}.item-tools.vertical{flex-direction:column}.item.is-done .title-input{text-decoration:line-through;color:var(--muted)}.day-move{min-height:44px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.stop-group{display:flex;flex-direction:column;gap:14px}.stop-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}.stop-head h2{font-size:24px}.stop-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stop-notes{margin-top:6px;color:var(--pine);font-weight:600;font-size:14px}.lodging-grid,.idea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.lodge,.idea{display:flex;flex-direction:column;gap:10px;padding:14px}.lodge.fav{border-color:var(--gold);box-shadow:0 0 0 2px #f6e3b5}.lodge.booked{background:#f3f8f4;border-color:#b9d2c2}.lodge-top{display:flex;align-items:center;gap:6px}.star{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:#c9bfae;cursor:pointer;display:grid;place-items:center}.star.on{color:var(--gold)}.lodge-foot,.idea-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lodge-foot select,.idea-actions select{flex:1;min-width:140px}.quick-add{display:flex;flex-direction:column;gap:10px;background:linear-gradient(135deg,var(--paper) 0%,var(--sun-soft) 100%)}.quick-add .btn{align-self:flex-start}.checklists{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;align-items:start}.list-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}.list-head h2{font-size:22px}.progress{height:6px;background:var(--paper-2);border-radius:999px;overflow:hidden;margin-bottom:8px}.progress div{height:100%;background:var(--pine);transition:width .3s ease}.checks{list-style:none;padding:0;margin:0 0 12px}.checks li{display:flex;gap:8px;align-items:center;padding:4px 0}.checks li .check{margin-top:0}.checks .plain-input{border-color:transparent;background:transparent}.checks .plain-input:focus{background:var(--paper)}.checks .check-text{flex:1;color:var(--ink);font-size:16px}.checks li.is-done .check-text,.checks li.is-done .plain-input{text-decoration:line-through;color:var(--muted)}.add-line{display:flex;gap:8px}.totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.total{display:flex;flex-direction:column;gap:4px}.total span{color:var(--muted);font-weight:700;font-size:14px}.total strong{font-size:30px}.total .over{color:var(--red)}.budget-cat{display:flex;flex-direction:column;gap:8px}.budget-row{display:grid;grid-template-columns:1fr 130px 130px 44px;gap:8px;align-items:center}.budget-row.labels span{font-size:13px;font-weight:700;color:var(--muted);padding-left:4px}@media (max-width: 560px){.budget-row{grid-template-columns:1fr 1fr 44px}.budget-row>:first-child{grid-column:1 / -1}.budget-row.labels{display:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14202673;display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:0}.modal{width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;padding:0;border-radius:22px 22px 0 0}.modal.wide{max-width:760px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 10px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:22px}.modal-body{padding:18px 20px calc(env(safe-area-inset-bottom) + 24px);overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 700px){.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:22px}}.section-head{margin-top:10px;display:flex;flex-direction:column;gap:2px}.section-head h3{font-size:20px}.stop-edit{display:flex;gap:10px;padding:14px}.stop-edit-main{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.danger-zone{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.confirm-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.add-booking{display:flex;flex-direction:column;gap:12px}.kind-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.kind-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;min-height:84px;border-radius:16px;border:1px solid var(--line);background:var(--paper);font-weight:700;cursor:pointer;transition:transform .08s ease,border-color .15s ease}.kind-btn:active{transform:scale(.97)}.kind-btn:hover{border-color:var(--pine)}.booking{display:flex;flex-direction:column;gap:12px;border-left:6px solid var(--sun)}.booking.kind-flight{border-left-color:#6d9bb3}.booking.kind-lodging{border-left-color:var(--pine)}.booking.kind-car{border-left-color:#8a7f6e}.booking.kind-dining{border-left-color:var(--red)}.booking.kind-activity{border-left-color:var(--gold)}.booking-head{display:flex;align-items:center;gap:8px}.booking-icon{font-size:26px;flex:none;width:40px;text-align:center}.kind-select{flex:none;min-height:40px}.booking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.conf-wrap{display:flex;gap:6px;align-items:center}.conf-wrap input{flex:1;min-width:0}.conf-input{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.06em;font-weight:700}.files{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.file-chip{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:14px;padding:6px 4px 6px 6px;background:var(--paper);max-width:100%}.file-open{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}.file-open img{width:48px;height:48px;object-fit:cover;border-radius:10px;flex:none}.file-badge{width:48px;height:48px;border-radius:10px;background:var(--sun-soft);color:#9a5a22;font-weight:800;font-size:13px;display:grid;place-items:center;flex:none}.file-name{font-weight:600;font-size:14px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-bookings{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.booking-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--pine-soft);color:var(--pine);text-decoration:none;font-weight:700;font-size:14px;min-height:40px}.booking-chip-meta{font-weight:600;opacity:.8;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}@media (max-width: 560px){.booking-head{flex-wrap:wrap}.booking-head .title-input{flex:1 1 calc(100% - 52px);order:1}.booking-head .booking-icon{order:0}.booking-head .kind-select{order:2;margin-left:48px}.booking-head .btn{order:3;margin-left:auto}}.add-link{color:var(--muted);padding:0 12px;min-height:36px}.link-chip-wrap{display:inline-flex;align-items:center;gap:2px;min-width:0}.link-chip{display:inline-flex;align-items:center;gap:6px;padding:0 14px;min-height:36px;border-radius:999px;background:var(--sun-soft);color:#8a4f1c;font-weight:700;font-size:14px;text-decoration:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-link-edit{display:flex;align-items:center;gap:6px;flex:1;min-width:240px}.item-extras .day-move{min-height:36px;font-size:15px;margin-left:auto}.link-list{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;flex:1;min-width:0}.icon-tight{padding:0 10px;font-size:14px}.lodge-photo{display:block;margin:-14px -14px 0;border-radius:16px 16px 0 0;overflow:hidden;aspect-ratio:16 / 9;background:var(--paper-2)}.lodge-photo img{width:100%;height:100%;object-fit:cover;display:block}.lodge-summary{color:var(--pine);font-weight:600;font-size:14px;padding:0 8px;margin-top:-6px}.refresh-link{align-self:flex-start;color:var(--muted);min-height:32px;padding:0 8px;font-size:13px}.idea-wall{columns:3 260px;column-gap:16px}.idea-wall .idea{break-inside:avoid;display:inline-flex;flex-direction:column;width:100%;margin:0 0 16px;padding:0;overflow:hidden;gap:0}.idea-photo{display:block;background:var(--paper-2)}.idea-photo img{width:100%;height:auto;max-height:520px;object-fit:cover;display:block}.idea-body{display:flex;flex-direction:column;gap:6px;padding:12px}textarea.idea-title{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--ink);line-height:1.25}.idea-wall .idea-actions{flex-wrap:nowrap;gap:6px}.idea-actions select{flex:1 1 0;min-width:0;font-size:15px;min-height:40px}.idea-actions .btn{flex:none}@media (max-width: 600px){.idea-wall{columns:2 160px;column-gap:10px}.idea-wall .idea{margin-bottom:10px}.idea-wall .idea-actions{flex-wrap:wrap}.idea-actions select{flex-basis:100%}}.quick-add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.quick-add-row select{flex:1 1 180px;min-width:0}.quick-add-row .btn{flex:none}.filters{display:flex;flex-direction:column;gap:8px}.chip-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filter-chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-weight:700;color:var(--muted);cursor:pointer;font-size:15px}.filter-chip.on{background:var(--sea);border-color:var(--sea);color:#fff}.filter-count{margin-left:auto;font-size:14px}.idea.must{border-color:var(--gold);box-shadow:0 0 0 2px #f6e3b5}.idea-tags{display:flex;gap:6px;align-items:center;justify-content:space-between}.must-btn{min-height:34px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-weight:700;font-size:14px;padding:0 12px;cursor:pointer;color:var(--muted);white-space:nowrap}.must-btn.on{background:#fdf3d9;border-color:var(--gold);color:#8a6412}.planned-badge{align-self:flex-start;background:var(--pine-soft);color:var(--pine);font-weight:700;font-size:13px;padding:6px 12px;border-radius:999px;text-decoration:none}.day-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nearby-btn{background:var(--sun-soft);color:#8a4f1c}.nearby-btn.on{background:#f6d9b8}.nearby{margin-top:8px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fffaf3;display:flex;flex-direction:column;gap:8px}.nearby ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.nearby li{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.nearby li:first-child{border-top:0}.nearby li.planned{opacity:.6}.nearby-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;flex:none;background:var(--paper-2)}.nearby-thumb.icon{display:grid;place-items:center;font-size:24px}.nearby-text{flex:1;min-width:0;display:flex;flex-direction:column}.nearby-title{font-weight:700}.nearby-meta{color:var(--muted);font-size:13px}.nearby .btn.ghost{align-self:flex-start}.chip-row.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px;-webkit-overflow-scrolling:touch}.chip-row.scroll::-webkit-scrollbar{display:none}.chip-row.scroll .filter-chip{flex:none}@media (max-width: 520px){.idea-wall{columns:1}}.idea-body .add-link,.idea-body .link-chip-wrap{align-self:flex-start}svg.icon{flex:none;vertical-align:-.15em}.filter-chip,.must-btn,.planned-badge,.refresh-link,.nearby-btn,.booking-chip{display:inline-flex;align-items:center;gap:6px}.kind-btn .kind-icon{color:var(--pine)}.booking-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--paper-2);color:var(--pine);font-size:0}.booking.kind-flight .booking-icon{color:#4f7f97}.booking.kind-dining .booking-icon{color:var(--red)}.booking.kind-activity .booking-icon{color:#a7771a}.nearby-thumb.icon{color:var(--pine);font-size:0}.must-star{color:var(--gold);margin-right:4px;vertical-align:-2px}.must-btn.on svg{color:var(--gold)}.filter-chip.on svg{color:#fff}.icon-select{position:relative;display:inline-flex;align-items:center;min-width:0}.icon-select>svg{position:absolute;left:12px;pointer-events:none;color:var(--pine)}.icon-select>select{width:100%;padding-left:36px}.quick-add-row .icon-select{flex:1 1 180px}.idea-actions .icon-select{flex:1 1 0}.idea-actions .icon-select select{min-height:40px;font-size:15px}.tag-select>select{min-height:34px;font-size:14px;font-weight:700;border-radius:999px;background:var(--pine-soft);color:var(--pine);border-color:transparent;padding-left:32px}.tag-select>svg{left:10px}.icon-select.tag-select{max-width:70%}.icon-select.where-select{align-self:flex-start;max-width:100%}.where-select>select{min-height:36px;font-size:14px;color:var(--pine);font-weight:700;border-color:transparent;background:transparent;padding-left:28px}.where-select>svg{left:4px}.time-select,.time-exact{flex:none;width:120px;min-height:38px;border:0;background:transparent;padding:0 6px;border-radius:8px;font-family:var(--sans);font-size:15px;font-weight:700;color:var(--red);cursor:pointer}.time-select:focus,.time-exact:focus{background:var(--paper-2);box-shadow:none;outline:none}.time-select.empty{color:#a9a293;font-weight:600}.item-tools .btn:disabled{opacity:.25;cursor:default}.btn.center{align-self:center}.app-status{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 16px);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:calc(100% - 32px);pointer-events:none}.status-pill{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 6px 20px #1420262e;border:0}.status-pill.offline{background:var(--ink);color:#fff}.status-pill.update{background:var(--pine);color:#fff;cursor:pointer}.booked-lines{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column}.booked-lines li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--pine-soft);color:var(--pine);margin-bottom:6px;flex-wrap:wrap}.booked-title{font-weight:700;flex:1;min-width:120px}.booked-day{font-size:14px}.booked-lines strong{font-family:var(--serif);font-size:18px}.booked-from{font-size:13px;font-weight:700;color:var(--pine);opacity:.75}.map-toolbar{display:flex;flex-direction:column;gap:8px}.map-wrap{position:relative;padding:0;overflow:hidden}.map{height:min(68vh,720px);min-height:420px;width:100%;background:#e8eef0;z-index:0}.map.placing{cursor:crosshair}.map-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:500;background:var(--ink);color:#fff;padding:8px 8px 8px 16px;border-radius:999px;display:flex;gap:8px;align-items:center;font-weight:600;box-shadow:var(--shadow);max-width:calc(100% - 24px)}.map-banner .btn{color:#fff}.map-finding{position:absolute;bottom:12px;left:12px;z-index:500;background:#fffdf9f2;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--pine)}.map-pin{width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);display:grid;place-items:center;color:#fff;border:2px solid #fff;box-shadow:0 3px 8px #00000040}.map-pin>*{transform:rotate(45deg)}.map-pin span{font-weight:800;font-size:15px;font-family:var(--sans)}.pin-stop{background:var(--sea)}.pin-idea{background:var(--pine)}.pin-must{background:#c48a12}.pin-lodging{background:#8a7f6e}.pin-booked{background:var(--red)}.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;align-items:center}.map-legend .dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}.stop-num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sea);color:#fff;font-size:12px;font-weight:800}.filter-chip:disabled{opacity:.5}.unplaced{list-style:none;margin:8px 0 0;padding:0}.unplaced li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.unplaced li:first-child{border-top:0}.unplaced-name{flex:1;font-weight:700;min-width:0}.day-head{position:relative}.weather-chip{margin-left:auto;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:14px;background:#eef4f7;color:#2f5b70}.weather-chip.lastYear{background:var(--paper-2);color:#6c6252}.weather-chip div{display:flex;flex-direction:column;line-height:1.15}.wx-temps{font-size:15px}.wx-temps b{font-size:17px}.wx-note{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.75}@media (max-width: 520px){.day-head{flex-wrap:wrap}.weather-chip{margin-left:0}}@media (max-width: 520px){.item-line{flex-wrap:wrap}.item-line .time-select{width:auto;padding-left:8px}.item-line .title-input{flex:1 1 100%}.item-extras{padding-left:0}.item-extras .day-move{margin-left:0}.booking-chip-meta{white-space:nowrap}}textarea.item-title{flex:1;min-width:0;line-height:1.25;color:var(--ink);font-family:var(--serif);font-weight:600;font-size:19px}@media (max-width: 520px){.item-extras .link-list{flex:1 1 100%}}.journal-intro{display:flex;gap:16px;align-items:center;color:var(--pine);background:linear-gradient(135deg,var(--paper) 0%,var(--pine-soft) 100%)}.journal-intro h2{font-size:22px;color:var(--ink)}.journal-day{display:flex;flex-direction:column;gap:12px}.journal-day.today{box-shadow:0 0 0 3px var(--pine-soft),var(--shadow)}.journal-day.future .day-head{opacity:.8}.today-badge{margin-left:auto}.memory{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:16px;background:#fffaf3;border:1px solid var(--line)}textarea.memory-text{font-size:17px;line-height:1.5;color:var(--ink)}.memory-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.memory-actions .btn.danger{margin-left:auto}.new-memory{display:flex;flex-direction:column;gap:10px}.new-memory .btn.primary{margin-left:auto}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.photo{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--paper-2)}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-loading{width:100%;height:100%}.photo-remove{position:absolute;top:6px;right:6px;width:30px;height:30px;border-radius:50%;border:0;background:#14202699;color:#fff;display:grid;place-items:center;cursor:pointer}.map-finding.trouble{color:var(--red);max-width:calc(100% - 24px)}.pin-card{position:absolute;left:12px;right:12px;bottom:12px;z-index:5;background:var(--paper);border-radius:16px;box-shadow:0 8px 28px #14202640;padding:14px 16px;display:flex;flex-direction:column;gap:10px;max-width:520px}.pin-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.pin-card-head b{font-size:19px}.pin-card-head p{margin-top:2px;font-size:14px}.pin-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.map-banner{z-index:6}.map-banner.error{background:var(--red)}.map-finding{z-index:6}.find-it{display:flex;gap:8px}.find-it .plain-input{flex:1}.find-results{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.find-results button{width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;color:var(--pine)}.find-results button:hover,.find-results button:active{border-color:var(--pine);background:var(--pine-soft)}.find-results span{display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--ink)}.find-results .muted{font-size:14px}.unplaced li{flex-wrap:wrap}.unplaced-name{display:flex;flex-direction:column}.unplaced-why{font-size:13px;font-weight:600;color:var(--muted)}.map-search{position:relative}.map-search form{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 16px;box-shadow:var(--shadow);color:var(--pine)}.map-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;min-height:44px;color:var(--ink)}.map-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;background:var(--paper);border-radius:16px;box-shadow:0 10px 30px #14202633;padding:10px;max-height:60vh;overflow-y:auto}.map-search-results .find-results{margin:0}.map-search-results>p{padding:8px}.save-card-fields{display:flex;gap:10px;flex-wrap:wrap}.save-card-fields .field{flex:1 1 160px}.save-card-fields select{width:100%;min-height:40px}.tab{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-x;transition:background .15s ease,box-shadow .15s ease;cursor:pointer}.tabs.dragging{overflow-x:hidden}.tabs.dragging .tab:not(.lifted){transition:transform .15s ease}.tab.lifted{position:relative;z-index:2;background:var(--paper);color:var(--ink);box-shadow:0 6px 18px #14202638;transition:none;cursor:grabbing}.tab.lifted.active{background:var(--sea);color:#fff}.tab-hint{text-align:center;font-size:13px;color:var(--muted);margin:6px 0 0}.tabs.arranging{overflow-x:auto;flex-wrap:wrap;justify-content:center;row-gap:6px}.tabs.arranging .tab{touch-action:none;border:1px dashed #c9bfae;animation:tab-wiggle .28s ease-in-out infinite alternate}.tabs.arranging .tab:nth-child(2n){animation-delay:.14s}.tabs.arranging .tab.lifted{animation:none;border-style:solid}.tab-done{flex:none;margin-left:6px}@keyframes tab-wiggle{0%{transform:rotate(-1.2deg)}to{transform:rotate(1.2deg)}}@media (prefers-reduced-motion: reduce){.tabs.arranging .tab{animation:none}}
