@charset "UTF-8";
:root{--ivory:#f7f1e5;--paper:#fffdf8;--paper2:#fbf7ef;--sage950:#203833;--sage900:#294941;--sage800:#365b52;--sage700:#49645d;--moss:#536547;--plum:#7b6177;--rose:#bb7f83;--gold:#b18a4c;--goldsoft:#eadfc7;--verm:#a64635;--tea:#8b684d;--char:#343832;--muted:#746f66;--line:rgba(83,101,71,.18);--shadow:0 18px 55px rgba(56,48,37,.13);--soft:0 8px 24px rgba(56,48,37,.09);--r-xl:26px;--r-lg:18px;--r-md:13px;--safe-bottom:max(14px,env(safe-area-inset-bottom));}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--char);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 10% -5%,rgba(187,127,131,.14),transparent 28%),radial-gradient(circle at 92% 2%,rgba(177,138,76,.12),transparent 24%),var(--ivory)}h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.025em;margin:.12em 0;color:var(--sage900)}a{color:inherit}.app{min-height:100vh;padding-bottom:76px}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 22px;background:rgba(32,56,51,.96);color:#fffaf0;backdrop-filter:blur(18px);box-shadow:0 8px 30px rgba(31,55,51,.2)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.seal{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:#f7ede0;color:var(--verm);font-family:Georgia,serif;font-weight:800;box-shadow:inset 0 0 0 1px rgba(166,70,53,.18)}.brand h1{margin:0;color:#fffaf0;font-size:1.1rem}.eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:850;opacity:.72}.desktop-nav{display:flex;gap:5px;flex-wrap:wrap}.nav-link{display:flex;align-items:center;gap:7px;padding:9px 11px;border-radius:999px;text-decoration:none;color:#fffaf0;font-size:.84rem;font-weight:760;opacity:.75}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.14);opacity:1}.more{position:relative}.more summary{list-style:none;cursor:pointer}.more summary::-webkit-details-marker{display:none}.more-menu{position:absolute;right:0;top:46px;min-width:190px;padding:7px;background:rgba(255,253,248,.98);color:var(--char);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.more-menu a{display:block;padding:9px 10px;border-radius:9px;text-decoration:none;font-size:.86rem;font-weight:720}.more-menu a:hover{background:#f5ecdc}.mobile-nav{display:none;position:fixed;z-index:60;left:9px;right:9px;bottom:var(--safe-bottom);padding:7px;background:rgba(32,56,51,.96);border-radius:18px;box-shadow:0 14px 35px rgba(31,55,51,.3);backdrop-filter:blur(18px)}.mobile-nav a{display:grid;place-items:center;gap:2px;text-decoration:none;color:#fffaf0;font-size:.62rem;font-weight:800;opacity:.72;padding:6px 4px;border-radius:12px}.mobile-nav a span{font-size:1.05rem}.mobile-nav a.active{opacity:1;background:rgba(255,255,255,.14)}.page{max-width:1560px;margin:auto;padding:20px}.panel{background:rgba(255,253,248,.88);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--soft);backdrop-filter:blur(12px)}.hero{position:relative;overflow:hidden;min-height:260px;padding:28px;border-radius:var(--r-xl);background:linear-gradient(90deg,rgba(32,56,51,.94),rgba(32,56,51,.74) 47%,rgba(32,56,51,.12)),url('assets/hero-dashboard.jpg') center/cover;color:#fffaf0;box-shadow:var(--shadow)}.hero h2{max-width:680px;color:#fffaf0;font-size:clamp(2rem,4vw,4.2rem);line-height:.98;margin:8px 0}.hero p{max-width:650px;line-height:1.55}.hero-actions,.button-row,.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.button,button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:#fffaf2;color:var(--char);font-weight:800;font-size:.84rem;text-decoration:none;transition:.18s ease}button:not(.map-pin):hover,.button:hover{transform:translateY(-1px);box-shadow:var(--soft)}.button.primary,button.primary{background:var(--sage800);border-color:var(--sage800);color:#fff}.button.light{background:rgba(255,255,255,.9);color:var(--sage900)}.button.ghost,button.ghost{background:transparent}.button.danger,button.danger{color:#93453b;background:#fff6f1;border-color:rgba(166,70,53,.25)}.icon-btn{padding:8px 10px}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.section{margin-top:17px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:10px}.section-head p{margin:0}.card{padding:16px}.metric{padding:15px}.metric strong{display:block;font-family:Georgia,serif;font-size:2rem;color:var(--sage900)}.metric span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:850}.muted{color:var(--muted);font-size:.86rem;line-height:1.48}.pill,.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#f2eadb;border:1px solid var(--line);font-size:.7rem;font-weight:850;color:var(--tea)}.pill.green{background:#e8f1e5;color:#537454}.pill.amber{background:#fff1d7;color:#8d652e}.pill.red{background:#f8e2dc;color:#93483c}.pill.plum{background:#efe6ef;color:#795d78}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px}.field{display:grid;gap:5px;font-size:.74rem;font-weight:850;color:var(--tea)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:10px;background:rgba(255,255,255,.8);color:var(--char);font:inherit;font-size:.88rem;outline:none}textarea{min-height:74px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(177,138,76,.14)}.search{min-width:230px}.route-ribbon{display:flex;gap:9px;overflow:auto;padding:11px 18px;background:rgba(255,253,248,.76);border-bottom:1px solid var(--line)}.route-ribbon span{white-space:nowrap;padding:6px 9px;border-radius:999px;background:#f4ebdc;color:var(--sage800);font-size:.76rem;font-weight:820}.calendar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}.day-tile{display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.65);text-decoration:none;min-height:106px}.day-tile:hover{box-shadow:var(--soft);transform:translateY(-1px)}.day-tile b{font-size:.72rem;color:var(--plum)}.day-tile strong{font-size:.82rem;line-height:1.25;color:var(--sage900)}.day-tile small{font-size:.69rem;color:var(--muted)}.progress{height:8px;border-radius:99px;background:#ede4d5;overflow:hidden}.progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sage700),var(--gold))}.list{display:grid;gap:9px}.list-row{padding:11px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.62)}.list-row h4{margin:.1rem 0}.empty{padding:18px;text-align:center;color:var(--muted)}.savebar{position:sticky;z-index:35;top:72px;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 15px;background:rgba(255,253,248,.94);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(16px);box-shadow:var(--soft)}.save-state{display:flex;align-items:center;gap:9px}.dot{width:10px;height:10px;border-radius:50%;background:#d4933c;box-shadow:0 0 0 5px rgba(212,147,60,.14)}.dot.saved{background:#628c65;box-shadow:0 0 0 5px rgba(98,140,101,.14)}.layout-3{display:grid;grid-template-columns:260px minmax(0,1fr) 290px;gap:14px;align-items:start}.sticky{position:sticky;top:138px}.day-list{display:grid;gap:7px;max-height:calc(100vh - 220px);overflow:auto}.day-btn{display:grid;text-align:left;border:1px solid transparent;background:transparent;padding:10px;border-radius:11px;color:var(--char)}.day-btn:hover{background:#fff8ed;box-shadow:none;transform:none}.day-btn.active{background:linear-gradient(135deg,var(--sage800),var(--sage700));color:#fff}.day-btn small{opacity:.72}.tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);background:rgba(255,253,248,.68);border-radius:14px;overflow:auto}.tab{white-space:nowrap;border:0;background:transparent;padding:9px 11px;box-shadow:none}.tab.active{background:var(--sage800);color:#fff}.tab-panel{display:none}.tab-panel.active{display:grid;gap:12px}.place-card,.check-card,.idea-card,.pin-card,.booking-card{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.64)}details summary{cursor:pointer;font-weight:850;color:var(--sage900)}details summary::-webkit-details-marker{display:none}.form-grid{display:grid;gap:9px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.check-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:flex-start}.check-card input[type=checkbox]{width:22px;height:22px}.status-dot{display:inline-block;width:10px;height:10px;border-radius:99px;margin-right:6px}.status-dot.checked{background:#628c65}.status-dot.planning{background:#d4933c}.status-dot.unresolved{background:#9e968d}.idea-grid,.pin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.idea-card,.pin-card{display:grid;gap:8px}.pin-dot{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 4px rgba(177,138,76,.14)}.floating-filter{position:absolute;z-index:10;top:14px;left:14px;right:14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px;background:rgba(255,253,248,.94);border:1px solid var(--line);border-radius:15px;box-shadow:var(--soft)}#map{height:calc(100vh - 72px);min-height:680px}.map-shell{position:relative}.legend{position:absolute;z-index:8;right:14px;bottom:18px;max-width:280px;padding:12px}.maplibregl-popup-content{border-radius:12px!important;box-shadow:var(--shadow)!important}.map-pin{width:18px;height:18px;border:3px solid #fff7e7;border-radius:50%;box-shadow:0 3px 12px rgba(45,38,31,.38);cursor:pointer}.map-pin.planning{border-color:#f5c66f}.map-pin.idea{border-radius:4px}.bottom-sheet{display:none}.device-card code{display:block;white-space:pre-wrap;padding:10px;background:#273b37;color:#fff8ed;border-radius:10px;font-size:.78rem}.hero-mini{min-height:180px;background:linear-gradient(90deg,rgba(32,56,51,.92),rgba(32,56,51,.42)),url('assets/hero-ideas.jpg') center/cover;color:#fff}.hero-mini h2{color:#fff}.file-input input{display:none}.hidden{display:none!important}
@media(max-width:1250px){.layout-3{grid-template-columns:230px minmax(0,1fr)}.layout-3>.right{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:static}.calendar{grid-template-columns:repeat(6,minmax(0,1fr))}.idea-grid,.pin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.desktop-nav{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr)}.topbar{padding:12px 14px}.page{padding:12px}.hero{min-height:230px;padding:20px}.grid.three,.grid.four,.grid.two,.form-grid.two,.form-grid.three,.idea-grid,.pin-grid{grid-template-columns:1fr}.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-3{grid-template-columns:1fr}.left-rail{position:static}.day-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.right{display:grid!important;grid-template-columns:1fr!important}.savebar{top:64px;display:grid}.savebar .button-row{overflow:auto;flex-wrap:nowrap}.route-ribbon{padding:8px 12px}.floating-filter{top:8px;left:8px;right:8px;padding:8px;max-height:180px;overflow:auto}.legend{display:none}#map{height:calc(100vh - 64px);min-height:620px}.search{min-width:0;width:100%}.brand h1{font-size:.96rem}.seal{width:38px;height:38px}.section-head{align-items:flex-start}.toolbar{padding:10px}.day-tile{min-height:92px}.mobile-compact{display:none}}
@media(max-width:480px){.day-list{grid-template-columns:1fr}.calendar{grid-template-columns:1fr}.hero h2{font-size:2rem}.button,button{font-size:.78rem;padding:9px 10px}.topbar .eyebrow{display:none}.floating-filter select,.floating-filter input{font-size:.78rem;padding:8px}.floating-filter{gap:5px}}

/* v11: Muzli-inspired editorial, modular, responsive refinements */
.editorial-hero{isolation:isolate;display:grid;align-content:end;min-height:340px}.editorial-hero:after{content:"";position:absolute;inset:auto -80px -120px auto;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,rgba(213,184,118,.34),rgba(213,184,118,0) 68%);z-index:-1}.hero-kicker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.hero-kicker span{padding:7px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.1);font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.tool-panel{display:none}.tool-panel.active{display:block}.tool-tabs{position:sticky;top:72px;z-index:28;background:rgba(255,253,248,.93);backdrop-filter:blur(18px);box-shadow:var(--soft)}.hero-tools{min-height:260px;background:linear-gradient(100deg,rgba(32,56,51,.96),rgba(49,81,70,.64),rgba(49,81,70,.12)),url('assets/hero-ideas.jpg') center/cover;color:#fff}.hero-tools h2{color:#fff;font-size:clamp(2.2rem,4vw,4.5rem);max-width:760px;line-height:.98;margin:.4rem 0}.route-card{padding:15px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(249,242,229,.72));box-shadow:var(--soft)}.resolved-card{background:linear-gradient(150deg,rgba(255,255,255,.91),rgba(246,238,224,.74))}.workspace-callout{border-left:4px solid var(--gold);padding-left:14px}.hero code,.panel code{font-size:.78rem;background:rgba(36,60,54,.08);padding:2px 5px;border-radius:5px}.desktop-nav .more-menu{min-width:210px}.button:disabled,button:disabled{opacity:.48;cursor:not-allowed;transform:none!important;box-shadow:none!important}@media(max-width:850px){.tool-tabs{top:64px;padding:4px;overflow:auto}.tool-tabs .tab{font-size:.76rem}.editorial-hero{min-height:280px}.hero-kicker{margin-bottom:10px}.hero-tools{min-height:225px;padding:19px}.hero-tools h2{font-size:2.3rem}.resolved-card,.route-card{border-radius:14px}.panel.card{padding:14px}.page{padding-bottom:88px}}

/* v12 · Unfold-inspired responsive refinement */
:root{--surface-glass:rgba(255,253,248,.84);--surface-solid:#fffdf8;--surface-soft:#f8f1e4;--sage-deep:#1f3933;--sage-mid:#41645b;--ink-soft:#615d56;--ring:0 0 0 1px rgba(177,138,76,.12),0 20px 50px rgba(36,49,43,.11)}
body{background:radial-gradient(circle at 0% 0%,rgba(187,127,131,.13),transparent 22rem),radial-gradient(circle at 100% 6%,rgba(177,138,76,.14),transparent 26rem),linear-gradient(180deg,#f8f3e9 0%,#f4ecdf 100%);background-attachment:fixed}.topbar{padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(115deg,rgba(29,56,50,.97),rgba(44,77,68,.96));box-shadow:0 12px 34px rgba(25,48,43,.18)}.page{padding:18px clamp(12px,2vw,26px) 96px}.panel{background:var(--surface-glass);border-color:rgba(83,101,71,.15);box-shadow:var(--ring)}.card{padding:18px}.hero{border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 64px rgba(35,52,46,.19)}.hero h2{letter-spacing:-.055em}.button,button{min-height:42px;border-radius:14px;padding:10px 14px;letter-spacing:.01em}.button.primary,button.primary{background:linear-gradient(135deg,var(--sage800),var(--sage700));box-shadow:0 9px 22px rgba(53,91,82,.18)}input,select,textarea{min-height:42px;border-radius:13px;background:rgba(255,255,255,.91)}.metric{min-height:116px;display:grid;align-content:space-between}.metric strong{font-size:2.25rem;letter-spacing:-.06em}.day-tile{transition:.18s ease;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(251,247,239,.68));border-radius:17px}.day-tile:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(56,48,37,.12)}.route-ribbon{scrollbar-width:none}.route-ribbon::-webkit-scrollbar{display:none}.unfold-page{max-width:1640px}.unfold-card{position:relative;overflow:hidden}.unfold-card:after{content:"";position:absolute;width:120px;height:120px;right:-48px;bottom:-66px;border-radius:50%;background:radial-gradient(circle,rgba(177,138,76,.16),rgba(177,138,76,0) 70%);pointer-events:none}.unfold-toolbar{position:sticky;top:76px;z-index:31;background:rgba(255,253,248,.92);backdrop-filter:blur(18px);box-shadow:0 14px 30px rgba(56,48,37,.1)}.unfold-metric{background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(246,238,224,.78))}.food-hero{min-height:260px;background:linear-gradient(92deg,rgba(31,57,51,.96),rgba(31,57,51,.74) 52%,rgba(31,57,51,.1)),url('assets/hero-ideas.jpg') center/cover}.food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.food-card{display:grid;gap:9px;padding:15px;border:1px solid rgba(83,101,71,.15);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(249,242,229,.73));box-shadow:0 8px 20px rgba(56,48,37,.07);transition:.18s ease}.food-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(56,48,37,.12)}.food-card h3{font-size:1.08rem}.food-card-top,.food-card-bottom{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.food-card-bottom{justify-content:space-between}.food-card small{color:var(--muted);font-weight:750}.mobile-nav{grid-template-columns:repeat(5,1fr);padding:7px 8px;border:1px solid rgba(255,255,255,.12)}.mobile-nav a{min-height:48px}.mobile-nav a span{font-size:1.18rem}.more-menu{overflow:hidden}.more-menu a{padding:11px 12px}.list-row{transition:.15s ease}.list-row:hover{background:#fffaf1;transform:translateY(-1px)}
@media(max-width:850px){.page{padding:10px 10px 104px}.topbar{padding:10px 12px}.brand h1{font-size:.93rem}.seal{border-radius:13px}.hero{border-radius:21px;padding:18px;min-height:216px}.hero h2{font-size:clamp(2.05rem,11vw,3.1rem);line-height:.95}.hero p{font-size:.88rem}.hero-actions{gap:6px}.hero-actions .button{flex:1 1 auto;text-align:center}.panel{border-radius:16px}.card{padding:14px}.section{margin-top:13px}.section-head{gap:8px}.section-head h2{font-size:1.5rem}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:92px;padding:13px}.metric strong{font-size:1.8rem}.unfold-toolbar{top:58px;display:grid;grid-template-columns:1fr 1fr;padding:10px}.unfold-toolbar .search{grid-column:1/-1}.unfold-toolbar button{width:100%}.food-grid{grid-template-columns:1fr}.food-card{border-radius:16px}.mobile-nav{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));border-radius:20px;padding-bottom:max(7px,env(safe-area-inset-bottom))}.mobile-nav a{font-size:.63rem}.desktop-nav{display:none}}
@media(max-width:480px){.grid.four{grid-template-columns:1fr 1fr}.food-card-top .pill{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unfold-toolbar{grid-template-columns:1fr}.unfold-toolbar .search{grid-column:auto}.brand .eyebrow{display:none}.topbar{min-height:58px}.hero-kicker{gap:5px}.hero-kicker span{font-size:.58rem;padding:6px 8px}.button,button{min-height:40px}.page{padding-inline:8px}}


/* v13 · Mizu modern theme system and smoother cross-device behavior */
:root{
  --canvas:#eef3f2;--canvas2:#f8fbfa;--paper:#ffffff;--paper2:#f2f7f5;
  --sage950:#102e32;--sage900:#153b40;--sage800:#20565a;--sage700:#32746f;
  --moss:#3f746c;--plum:#6c6589;--rose:#d07878;--gold:#c18a45;--goldsoft:#f0e0c7;
  --verm:#d45d4c;--tea:#816450;--char:#203238;--muted:#6a7a7d;
  --line:rgba(29,67,71,.14);--shadow:0 22px 58px rgba(22,52,57,.14);--soft:0 10px 26px rgba(22,52,57,.08);
  --surface-glass:rgba(255,255,255,.86);--surface-solid:#fff;--surface-soft:#eef5f3;
  --sage-deep:#102e32;--sage-mid:#2d6d68;--ink-soft:#5f7376;
}
html[data-theme="ledger-light"]{--canvas:#f7f1e5;--canvas2:#fffdf8;--paper:#fffdf8;--paper2:#fbf7ef;--sage950:#203833;--sage900:#294941;--sage800:#365b52;--sage700:#49645d;--moss:#536547;--plum:#7b6177;--rose:#bb7f83;--gold:#b18a4c;--goldsoft:#eadfc7;--verm:#a64635;--tea:#8b684d;--char:#343832;--muted:#746f66;--line:rgba(83,101,71,.18);--surface-soft:#f8f1e4}
html[data-theme="plum-dusk"]{--canvas:#f2eef5;--canvas2:#fcfafc;--paper:#fff;--paper2:#f5f0f6;--sage950:#312c44;--sage900:#423653;--sage800:#5a476b;--sage700:#79628a;--moss:#5f7d75;--plum:#7f5d89;--rose:#d48391;--gold:#c79b5c;--goldsoft:#efe0c9;--verm:#c35959;--tea:#765c68;--char:#312d3b;--muted:#766e7f;--line:rgba(85,67,103,.15);--surface-soft:#f5f0f6}
body{background:radial-gradient(circle at 2% -4%,rgba(80,163,157,.16),transparent 24rem),radial-gradient(circle at 100% 0%,rgba(212,93,76,.12),transparent 24rem),linear-gradient(180deg,var(--canvas2),var(--canvas));transition:background .35s ease,color .25s ease}
.topbar{background:linear-gradient(116deg,rgba(13,46,50,.98),rgba(30,91,91,.96));border-bottom-color:rgba(255,255,255,.11)}
.panel,.food-card,.day-tile,.place-card,.check-card,.idea-card,.pin-card,.booking-card,.route-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .25s ease}
.panel:hover,.food-card:hover,.idea-card:hover,.pin-card:hover{border-color:rgba(50,116,111,.25)}
.button.primary,button.primary{background:linear-gradient(135deg,var(--sage800),var(--sage700));box-shadow:0 10px 26px rgba(32,86,90,.2)}
.theme-switcher{display:flex;align-items:center;gap:7px;margin-left:6px}.theme-switcher select{min-width:132px;min-height:36px;padding:7px 9px;border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.12);color:#fff;font-size:.76rem}.theme-switcher option{color:#22383c;background:#fff}.topbar-tools{display:flex;align-items:center;gap:7px}.map-source-note{font-size:.72rem;color:var(--muted);max-width:260px}.offline-ready{color:#28775f}.offline-missing{color:#a05b44}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:850px){.theme-switcher{margin-left:auto}.theme-switcher label{display:none}.theme-switcher select{min-width:112px;max-width:132px}.topbar{gap:7px}.brand{min-width:0}.brand h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48vw}}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.76)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:.82rem;vertical-align:top}th{color:var(--sage900);background:var(--surface-soft);font-weight:850}tr:last-child td{border-bottom:0}


/* v14 · immersive palette system: entire canvas, surfaces, heroes and buttons change */
:root{--page-gradient:radial-gradient(circle at 6% -8%,rgba(73,160,166,.25),transparent 34%),radial-gradient(circle at 98% 4%,rgba(216,168,102,.2),transparent 28%),linear-gradient(145deg,#e7f5f4 0%,#f7fbf8 48%,#f2eee7 100%);--surface-gradient:linear-gradient(145deg,rgba(255,255,255,.92),rgba(244,250,247,.78));--surface-strong:linear-gradient(135deg,#ffffff,#eef7f5);--topbar-gradient:linear-gradient(115deg,#0e3741,#17616a 55%,#24575e);--hero-gradient:linear-gradient(100deg,rgba(8,47,57,.96),rgba(13,83,91,.77) 54%,rgba(21,83,88,.12));--button-gradient:linear-gradient(135deg,#17616a,#2f7c82);--button-soft:linear-gradient(135deg,#f8ffff,#e6f4f2);--button-radius:999px;--panel-radius:23px;--nav-glow:rgba(77,184,184,.2)}
html[data-theme="ledger-light"]{--page-gradient:radial-gradient(circle at 8% -8%,rgba(197,156,91,.18),transparent 32%),radial-gradient(circle at 97% 0%,rgba(167,94,74,.14),transparent 28%),linear-gradient(145deg,#f6efe2 0%,#fffdf8 48%,#f1e6d3 100%);--surface-gradient:linear-gradient(145deg,rgba(255,253,248,.96),rgba(248,239,222,.82));--surface-strong:linear-gradient(135deg,#fffdf8,#f6ead8);--topbar-gradient:linear-gradient(115deg,#203833,#365b52 58%,#536547);--hero-gradient:linear-gradient(100deg,rgba(32,56,51,.96),rgba(65,91,78,.8) 54%,rgba(102,101,76,.12));--button-gradient:linear-gradient(135deg,#365b52,#536547);--button-soft:linear-gradient(135deg,#fffaf0,#f5ead8);--button-radius:12px;--panel-radius:16px;--nav-glow:rgba(177,138,76,.16)}
html[data-theme="plum-dusk"]{--page-gradient:radial-gradient(circle at 2% 0%,rgba(201,112,138,.23),transparent 32%),radial-gradient(circle at 98% 0%,rgba(102,90,171,.23),transparent 30%),linear-gradient(145deg,#211c38 0%,#3b2f51 45%,#201f3d 100%);--surface-gradient:linear-gradient(145deg,rgba(255,252,255,.92),rgba(242,233,246,.83));--surface-strong:linear-gradient(135deg,#fff9ff,#eee4f2);--topbar-gradient:linear-gradient(115deg,#251b3e,#4f315e 56%,#6a3e68);--hero-gradient:linear-gradient(100deg,rgba(32,24,58,.97),rgba(82,52,92,.84) 54%,rgba(150,78,108,.14));--button-gradient:linear-gradient(135deg,#6f4c8a,#bd6684);--button-soft:linear-gradient(135deg,#fff9ff,#f2e6f6);--button-radius:18px;--panel-radius:25px;--nav-glow:rgba(213,123,159,.24);--ivory:#241f3a;--paper:#fffaff;--paper2:#f3eaf6;--char:#352e43;--muted:#786f82;--line:rgba(118,82,132,.18)}
body{background:var(--page-gradient)!important;background-attachment:fixed!important}.topbar{background:var(--topbar-gradient)!important;box-shadow:0 12px 38px var(--nav-glow)!important}.mobile-nav{background:var(--topbar-gradient)!important}.panel{background:var(--surface-gradient)!important;border-radius:var(--panel-radius)!important}.hero{background:var(--hero-gradient),url('assets/hero-dashboard.jpg') center/cover!important}.button,button{border-radius:var(--button-radius)!important;background:var(--button-soft)!important;border-color:rgba(75,112,112,.16)!important}.button.primary,button.primary,.tab.active{background:var(--button-gradient)!important;color:white!important;border-color:transparent!important}.button:hover,button:hover{filter:saturate(1.08);transform:translateY(-2px) scale(1.008)}.day-btn.active{background:var(--button-gradient)!important}.idea-card{position:relative;overflow:hidden;background:var(--surface-strong)!important}.idea-card::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-42px;top:-42px;background:radial-gradient(circle,rgba(107,164,161,.14),transparent 70%);pointer-events:none}.idea-card.rejected{opacity:.82;border-style:dashed}.idea-card .idea-title{font-size:1.15rem}.idea-meta{display:flex;gap:6px;flex-wrap:wrap}.idea-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.idea-actions .button,.idea-actions button{display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 10px}.idea-coords{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:var(--muted)}.idea-source{font-size:.72rem;line-height:1.45;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}.filter-group{display:flex;gap:7px;flex-wrap:wrap}.segmented{display:flex;gap:4px;overflow:auto;padding:4px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:999px}.segmented button{white-space:nowrap;padding:8px 11px;background:transparent!important;border:0!important;box-shadow:none!important}.segmented button.active{background:var(--button-gradient)!important;color:#fff!important}.theme-switcher{display:flex;align-items:center;gap:7px}.theme-switcher select{min-width:132px;background:rgba(255,255,255,.92);padding:8px 10px;border-radius:999px}.map-focus-pin{animation:pulsePin 1.5s ease-in-out infinite}@keyframes pulsePin{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}
@media(max-width:720px){.page{padding:13px}.hero{padding:20px;min-height:230px}.hero h2{font-size:2.25rem}.panel{border-radius:18px!important}.idea-grid,.pin-grid{grid-template-columns:1fr}.idea-actions{grid-template-columns:1fr}.theme-switcher{width:100%;justify-content:space-between;padding-top:7px}.theme-switcher select{width:auto;max-width:170px}.toolbar{position:sticky;top:68px;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(16px)}}


/* v15 · expressive themes, cross-document motion, compact phone-first map */
@view-transition{navigation:auto}
::view-transition-old(root){animation:180ms ease both jhtcFadeOut}
::view-transition-new(root){animation:360ms cubic-bezier(.2,.8,.2,1) both jhtcSlideIn}
@keyframes jhtcFadeOut{to{opacity:.18;transform:translateY(-8px)}}
@keyframes jhtcSlideIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes jhtcFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-8px,0)}}
@keyframes jhtcRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
:root{--theme-swatch:#0f5963;--bg-a:#dff6f4;--bg-b:#f8fbfa;--bg-c:#f6eee4;--nav-a:#0c3841;--nav-b:#17636a;--nav-c:#275a61;--panel-a:rgba(255,255,255,.9);--panel-b:rgba(237,249,247,.78);--hero-a:rgba(4,54,65,.96);--hero-b:rgba(16,106,111,.72);--hero-c:rgba(40,141,145,.08);--button-a:#0f5f68;--button-b:#3d9290;--outline:rgba(26,93,99,.18);--glow:rgba(50,171,172,.22);--orb-a:rgba(73,184,182,.22);--orb-b:rgba(225,157,87,.17);--button-radius:999px;--card-radius:24px;--button-shadow:0 10px 22px rgba(22,94,98,.2)}
html[data-theme="ledger-light"]{--bg-a:#efe4ce;--bg-b:#fffaf0;--bg-c:#f6efe4;--nav-a:#243e38;--nav-b:#4b695d;--nav-c:#6f7655;--panel-a:rgba(255,253,247,.95);--panel-b:rgba(248,236,216,.82);--hero-a:rgba(35,57,51,.96);--hero-b:rgba(77,106,90,.74);--hero-c:rgba(169,131,71,.10);--button-a:#355f55;--button-b:#71855d;--outline:rgba(121,99,61,.18);--glow:rgba(177,138,76,.19);--orb-a:rgba(185,144,84,.22);--orb-b:rgba(175,101,77,.14);--button-radius:12px;--card-radius:15px;--button-shadow:0 8px 18px rgba(84,77,55,.16)}
html[data-theme="plum-dusk"]{--bg-a:#211a37;--bg-b:#3c2a52;--bg-c:#211e3d;--nav-a:#201633;--nav-b:#55316c;--nav-c:#8a4f70;--panel-a:rgba(255,250,255,.94);--panel-b:rgba(239,224,244,.86);--hero-a:rgba(34,23,60,.97);--hero-b:rgba(103,57,114,.77);--hero-c:rgba(206,111,148,.13);--button-a:#6b478d;--button-b:#c16086;--outline:rgba(144,103,158,.22);--glow:rgba(205,115,157,.26);--orb-a:rgba(211,121,156,.28);--orb-b:rgba(97,100,194,.19);--button-radius:18px;--card-radius:27px;--button-shadow:0 12px 30px rgba(80,48,100,.25)}
html[data-theme="sakura-glass"]{--bg-a:#ffe6ef;--bg-b:#fff9fb;--bg-c:#f0e8ff;--nav-a:#773e5d;--nav-b:#bc6282;--nav-c:#d98da2;--panel-a:rgba(255,255,255,.72);--panel-b:rgba(255,238,246,.62);--hero-a:rgba(117,57,88,.91);--hero-b:rgba(207,111,144,.67);--hero-c:rgba(255,221,234,.12);--button-a:#b64975;--button-b:#e8899d;--outline:rgba(185,79,117,.19);--glow:rgba(222,123,157,.28);--orb-a:rgba(232,139,171,.31);--orb-b:rgba(181,151,235,.21);--button-radius:999px;--card-radius:30px;--button-shadow:0 12px 26px rgba(184,79,117,.22)}
html[data-theme="koyo-ember"]{--bg-a:#f9dfc9;--bg-b:#fff7ed;--bg-c:#f5ebcf;--nav-a:#5e2d20;--nav-b:#a74f2e;--nav-c:#ce7a42;--panel-a:rgba(255,252,245,.92);--panel-b:rgba(251,227,199,.78);--hero-a:rgba(89,43,29,.95);--hero-b:rgba(170,76,39,.75);--hero-c:rgba(230,155,71,.10);--button-a:#a04427;--button-b:#d98245;--outline:rgba(168,75,38,.19);--glow:rgba(214,122,68,.24);--orb-a:rgba(224,113,64,.24);--orb-b:rgba(221,174,76,.21);--button-radius:9px;--card-radius:18px;--button-shadow:0 10px 22px rgba(149,69,36,.22)}
html[data-theme="yoru-indigo"]{--bg-a:#0c1b32;--bg-b:#112b4a;--bg-c:#15243f;--nav-a:#071627;--nav-b:#163b62;--nav-c:#28598b;--panel-a:rgba(235,245,255,.94);--panel-b:rgba(218,232,250,.85);--hero-a:rgba(8,24,49,.97);--hero-b:rgba(24,75,125,.78);--hero-c:rgba(89,166,210,.10);--button-a:#245a91;--button-b:#4b9fba;--outline:rgba(79,145,191,.22);--glow:rgba(74,155,194,.28);--orb-a:rgba(58,134,181,.29);--orb-b:rgba(112,104,202,.20);--button-radius:16px;--card-radius:20px;--button-shadow:0 10px 28px rgba(15,62,102,.27)}
body{position:relative;background:radial-gradient(circle at 5% -8%,var(--orb-a),transparent 34rem),radial-gradient(circle at 98% 0%,var(--orb-b),transparent 32rem),linear-gradient(145deg,var(--bg-a),var(--bg-b) 48%,var(--bg-c))!important;background-attachment:fixed!important;transition:background .55s ease,color .35s ease}
body::before,body::after{content:"";position:fixed;z-index:-1;border-radius:999px;filter:blur(28px);pointer-events:none;opacity:.72;animation:jhtcFloat 12s ease-in-out infinite}body::before{width:240px;height:240px;left:-70px;bottom:7vh;background:var(--orb-a)}body::after{width:190px;height:190px;right:-45px;top:22vh;background:var(--orb-b);animation-delay:-4s}
.topbar{background:linear-gradient(116deg,var(--nav-a),var(--nav-b) 56%,var(--nav-c))!important;box-shadow:0 14px 34px var(--glow)!important;border-bottom:1px solid rgba(255,255,255,.10)}
.mobile-nav{background:linear-gradient(116deg,var(--nav-a),var(--nav-b),var(--nav-c))!important}
.panel,.place-card,.check-card,.idea-card,.pin-card,.booking-card,.food-card,.route-card,.list-row,.day-tile{background:linear-gradient(145deg,var(--panel-a),var(--panel-b))!important;border-color:var(--outline)!important;border-radius:var(--card-radius)!important;box-shadow:0 12px 30px rgba(31,52,58,.08);transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,border-color .24s ease,background .45s ease}
.panel:hover,.idea-card:hover,.pin-card:hover,.food-card:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(31,52,58,.13)}
.hero{background:linear-gradient(100deg,var(--hero-a),var(--hero-b) 55%,var(--hero-c)),url('assets/hero-dashboard.jpg') center/cover!important;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 56px var(--glow)!important}
.button,button{background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(240,248,247,.84))!important;border-color:var(--outline)!important;border-radius:var(--button-radius)!important;box-shadow:none;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,filter .2s ease,background .35s ease}
.button.primary,button.primary,.tab.active,.segmented button.active{background:linear-gradient(135deg,var(--button-a),var(--button-b))!important;color:#fff!important;border-color:transparent!important;box-shadow:var(--button-shadow)!important}
.button:hover,button:hover{transform:translateY(-2px);filter:saturate(1.1)}
.google-maps{background:linear-gradient(135deg,#ffffff,#eef6ff)!important;border-color:rgba(54,116,186,.24)!important;color:#205b95!important}
.theme-switcher{position:relative;margin-left:auto}.theme-switcher summary{display:flex;align-items:center;gap:7px;cursor:pointer;color:#fff;font-size:.75rem;font-weight:850;list-style:none;padding:7px 10px;border:1px solid rgba(255,255,255,.17);border-radius:999px;background:rgba(255,255,255,.12)}.theme-switcher summary::-webkit-details-marker{display:none}.theme-orb{width:14px;height:14px;border-radius:50%;background:var(--theme-swatch);box-shadow:0 0 0 3px rgba(255,255,255,.18)}.theme-menu{position:absolute;right:0;top:46px;width:220px;padding:9px;background:rgba(255,255,255,.96);border:1px solid var(--outline);border-radius:18px;box-shadow:0 20px 48px rgba(20,44,52,.18)}.theme-menu .eyebrow{color:var(--muted);padding:3px 6px}.theme-menu button{display:flex;width:100%;align-items:center;gap:9px;justify-content:flex-start;border:0!important;border-radius:12px!important;background:transparent!important;padding:9px!important;box-shadow:none!important}.theme-menu button:hover{background:rgba(24,101,109,.08)!important;transform:none}.theme-menu i{width:16px;height:16px;border-radius:50%;box-shadow:0 0 0 3px rgba(20,40,50,.08)}
.jhtc-ready .page,.jhtc-ready .map-shell{animation:jhtcRise .42s cubic-bezier(.2,.8,.2,1) both}
.shortlist-chip input,.compact-toggle input{accent-color:var(--button-a)}
/* Map canvas is the hero surface. Filters move into a compact sheet. */
.map-app{padding-bottom:0}.map-experience{position:relative;height:calc(100vh - 72px);min-height:520px;overflow:hidden;background:#d9e9e8}.map-experience #map{height:100%;min-height:0}.map-quickbar{position:absolute;z-index:24;top:12px;left:12px;display:flex;gap:7px;flex-wrap:wrap}.map-fab{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:8px 11px!important;border-radius:999px!important;background:rgba(255,255,255,.94)!important;color:#254148!important;box-shadow:0 8px 20px rgba(19,54,62,.16)!important;font-size:.76rem!important;text-decoration:none!important}.map-fab-secondary{padding-inline:10px!important}.map-summary{position:absolute;z-index:19;left:12px;bottom:14px;max-width:calc(100% - 118px);padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 8px 18px rgba(20,50,60,.13);color:#49646a;font-size:.7rem;font-weight:800}.map-sheet{position:absolute;z-index:35;top:12px;right:12px;width:min(340px,calc(100vw - 24px));max-height:calc(100% - 24px);overflow:auto;padding:14px;background:rgba(255,255,255,.95);border:1px solid var(--outline);border-radius:22px;box-shadow:0 22px 50px rgba(18,53,62,.19);backdrop-filter:blur(18px);transform:translateX(calc(100% + 30px));opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .25s ease}.map-sheet.open{transform:none;opacity:1;pointer-events:auto}.map-sheet-grabber{display:none}.map-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.map-sheet-head h3{margin:0}.map-close{display:grid;place-items:center;width:32px;height:32px;padding:0!important;border-radius:50%!important;font-size:1.25rem!important}.map-sheet-grid{display:grid;gap:9px;margin-top:12px}.map-toggle-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.compact-toggle{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:#f1f7f6;border:1px solid rgba(40,99,105,.13);font-size:.72rem;color:#48636a}.compact-toggle input{width:15px;height:15px;margin:0}.compact-toggle span{display:none}.map-legend{margin-top:12px;padding-top:10px;border-top:1px dashed var(--outline)}.map-legend summary{font-size:.78rem}.map-legend p{font-size:.76rem;margin:8px 0}.map-sheet-backdrop{position:absolute;z-index:30;inset:0;background:rgba(16,40,48,.22);backdrop-filter:blur(1px)}.map-sheet-backdrop[hidden]{display:none}.map-pin{width:16px!important;height:16px!important;border-width:2px!important}.maplibregl-ctrl-bottom-right{bottom:42px!important}.maplibregl-popup-content{border-radius:16px!important;padding:11px!important}.map-popup{display:grid;gap:5px}.map-popup small{color:#65777b}.map-popup-actions{display:flex;gap:7px;margin-top:4px}.map-popup-actions a{font-size:.72rem;font-weight:850;color:#236092;text-decoration:none}
@media(max-width:720px){.map-experience{height:calc(100vh - 58px);min-height:0}.map-quickbar{top:9px;left:9px;right:9px}.map-fab{min-height:34px;padding:7px 10px!important;font-size:.72rem!important}.map-summary{left:9px;bottom:calc(76px + env(safe-area-inset-bottom));max-width:calc(100% - 18px)}.map-sheet{position:fixed;z-index:80;left:8px;right:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:min(72vh,620px);border-radius:24px;transform:translateY(calc(100% + 30px));padding:12px 14px 15px}.map-sheet.open{transform:none}.map-sheet-grabber{display:block;width:42px;height:4px;border-radius:999px;background:#cad8d8;margin:0 auto 10px}.map-sheet-grid{grid-template-columns:1fr 1fr}.map-sheet-grid .field{font-size:.68rem}.map-sheet-grid select{min-height:36px;padding:7px 8px;font-size:.76rem}.map-sheet-backdrop{position:fixed;inset:0;z-index:70}.maplibregl-ctrl-bottom-right{bottom:118px!important}.legend{display:none}.map-app .mobile-nav{z-index:90}.theme-label{display:none}.theme-menu{right:0;width:210px}.topbar .brand h1{max-width:44vw}}
@media(max-width:460px){.map-fab span{display:none}.map-fab{width:36px;height:36px;justify-content:center;padding:0!important}.map-sheet-grid{grid-template-columns:1fr}.map-summary{font-size:.65rem}.map-toggle-row{gap:6px}.compact-toggle{padding:6px 8px}}


/* === v16 semantic theme contrast, compact planner controls, and QoL polish === */
html[data-theme="mizu-modern"]{--bg-a:#d7eeef;--bg-b:#f8fffe;--bg-c:#e4f3ef;--nav-a:#08343b;--nav-b:#0f6570;--nav-c:#5a9e9b;--panel-a:rgba(248,255,254,.95);--panel-b:rgba(227,245,242,.90);--hero-a:rgba(8,52,59,.96);--hero-b:rgba(15,101,112,.78);--hero-c:rgba(149,210,200,.12);--button-a:#0f6570;--button-b:#347780;--outline:rgba(15,101,112,.20);--glow:rgba(15,101,112,.22);--orb-a:rgba(95,179,176,.27);--orb-b:rgba(168,213,203,.24);--button-radius:14px;--card-radius:22px;--text:#17383c;--muted-text:#49696d;--heading:#103f46;--surface-solid:#f8fffe;--primary:#0f6570;--on-primary:#fff;--nav-solid:#08343b;--nav-text:#fff;--chip-bg:#edf9f8;--chip-text:#21464b;--input-bg:#f8fffe;--input-text:#17383c;--map-sheet-bg:#f8fffe;--map-sheet-text:#17383c;--map-fab-bg:#f8fffe;--map-fab-text:#17383c;}
html[data-theme="ledger-light"]{--bg-a:#ece8db;--bg-b:#fffdf8;--bg-c:#e6eee7;--nav-a:#29443d;--nav-b:#526d62;--nav-c:#809486;--panel-a:rgba(255,253,248,.96);--panel-b:rgba(239,243,235,.90);--hero-a:rgba(41,68,61,.96);--hero-b:rgba(82,109,98,.77);--hero-c:rgba(184,164,118,.12);--button-a:#526d62;--button-b:#5d746b;--outline:rgba(82,109,98,.20);--glow:rgba(82,109,98,.20);--orb-a:rgba(170,185,170,.25);--orb-b:rgba(214,194,153,.19);--button-radius:6px;--card-radius:12px;--text:#343b36;--muted-text:#65706b;--heading:#35534b;--surface-solid:#fffdf8;--primary:#526d62;--on-primary:#fff;--nav-solid:#29443d;--nav-text:#fff;--chip-bg:#f2f5ef;--chip-text:#384f48;--input-bg:#fffdf8;--input-text:#343b36;--map-sheet-bg:#fffdf8;--map-sheet-text:#343b36;--map-fab-bg:#fffdf8;--map-fab-text:#343b36;}
html[data-theme="plum-dusk"]{--bg-a:#1f1828;--bg-b:#342640;--bg-c:#3d2b4a;--nav-a:#241b30;--nav-b:#4e3760;--nav-c:#815b9a;--panel-a:rgba(52,38,64,.96);--panel-b:rgba(73,54,89,.92);--hero-a:rgba(31,24,40,.97);--hero-b:rgba(97,67,117,.82);--hero-c:rgba(206,130,167,.14);--button-a:#76528c;--button-b:#815b90;--outline:rgba(225,205,235,.18);--glow:rgba(143,95,172,.28);--orb-a:rgba(177,111,166,.24);--orb-b:rgba(111,100,194,.18);--button-radius:18px;--card-radius:27px;--text:#fff9ff;--muted-text:#dacde3;--heading:#fff4ff;--surface-solid:#342640;--primary:#8e64a7;--on-primary:#fff;--nav-solid:#2b2037;--nav-text:#fff;--chip-bg:#493659;--chip-text:#fff7ff;--input-bg:#342640;--input-text:#fff9ff;--map-sheet-bg:#342640;--map-sheet-text:#fff9ff;--map-fab-bg:#342640;--map-fab-text:#fff9ff;}
html[data-theme="sakura-glass"]{--bg-a:#ffe7ef;--bg-b:#fff9fb;--bg-c:#f1eaff;--nav-a:#7a3d5c;--nav-b:#be557b;--nav-c:#dc91a9;--panel-a:rgba(255,249,251,.86);--panel-b:rgba(255,235,243,.76);--hero-a:rgba(122,61,92,.94);--hero-b:rgba(205,103,139,.73);--hero-c:rgba(255,224,235,.14);--button-a:#aa466d;--button-b:#b65375;--outline:rgba(190,85,123,.20);--glow:rgba(219,125,158,.27);--orb-a:rgba(232,139,171,.31);--orb-b:rgba(181,151,235,.21);--button-radius:999px;--card-radius:30px;--text:#4b2c38;--muted-text:#765460;--heading:#753f59;--surface-solid:#fff9fb;--primary:#be557b;--on-primary:#fff;--nav-solid:#7a3d5c;--nav-text:#fff;--chip-bg:#fff0f5;--chip-text:#5a3444;--input-bg:#fff9fb;--input-text:#4b2c38;--map-sheet-bg:#fff9fb;--map-sheet-text:#4b2c38;--map-fab-bg:#fff9fb;--map-fab-text:#4b2c38;}
html[data-theme="koyo-ember"]{--bg-a:#f8dec8;--bg-b:#fffaf3;--bg-c:#f5ebd2;--nav-a:#633021;--nav-b:#a95031;--nav-c:#d08147;--panel-a:rgba(255,250,243,.96);--panel-b:rgba(251,228,203,.90);--hero-a:rgba(94,46,31,.96);--hero-b:rgba(176,80,43,.80);--hero-c:rgba(231,157,78,.12);--button-a:#a24d2d;--button-b:#b45b35;--outline:rgba(183,91,52,.20);--glow:rgba(208,122,70,.24);--orb-a:rgba(224,113,64,.24);--orb-b:rgba(221,174,76,.21);--button-radius:9px;--card-radius:18px;--text:#4a2c20;--muted-text:#795748;--heading:#763b25;--surface-solid:#fffaf3;--primary:#b75b34;--on-primary:#fff;--nav-solid:#633021;--nav-text:#fff;--chip-bg:#fff2e4;--chip-text:#5d3828;--input-bg:#fffaf3;--input-text:#4a2c20;--map-sheet-bg:#fffaf3;--map-sheet-text:#4a2c20;--map-fab-bg:#fffaf3;--map-fab-text:#4a2c20;}
html[data-theme="yoru-indigo"]{--bg-a:#08182b;--bg-b:#12263d;--bg-c:#183653;--nav-a:#0b1e33;--nav-b:#1e4e7a;--nav-c:#3775aa;--panel-a:rgba(18,38,61,.96);--panel-b:rgba(25,53,80,.92);--hero-a:rgba(8,24,43,.98);--hero-b:rgba(31,79,124,.82);--hero-c:rgba(102,177,211,.12);--button-a:#2f6899;--button-b:#3674a1;--outline:rgba(197,220,238,.18);--glow:rgba(55,117,170,.28);--orb-a:rgba(58,134,181,.29);--orb-b:rgba(112,104,202,.20);--button-radius:16px;--card-radius:20px;--text:#f7fbff;--muted-text:#cfdeeb;--heading:#f9fcff;--surface-solid:#12263d;--primary:#3f84bd;--on-primary:#fff;--nav-solid:#0b1e33;--nav-text:#fff;--chip-bg:#193550;--chip-text:#f8fcff;--input-bg:#12263d;--input-text:#f7fbff;--map-sheet-bg:#12263d;--map-sheet-text:#f7fbff;--map-fab-bg:#12263d;--map-fab-text:#f7fbff;}
html[data-theme="celadon-mist"]{--bg-a:#dcefe9;--bg-b:#f8fffc;--bg-c:#eef5ee;--nav-a:#315c53;--nav-b:#4f8174;--nav-c:#91aa96;--panel-a:rgba(248,255,252,.95);--panel-b:rgba(230,243,237,.91);--hero-a:rgba(49,92,83,.96);--hero-b:rgba(79,129,116,.78);--hero-c:rgba(181,213,195,.16);--button-a:#46756a;--button-b:#50766c;--outline:rgba(79,129,116,.19);--glow:rgba(79,129,116,.22);--orb-a:rgba(125,182,166,.24);--orb-b:rgba(205,219,188,.24);--button-radius:20px;--card-radius:26px;--text:#244038;--muted-text:#587069;--heading:#355e54;--surface-solid:#f8fffc;--primary:#4f8174;--on-primary:#fff;--nav-solid:#315c53;--nav-text:#fff;--chip-bg:#eaf7f2;--chip-text:#2f514a;--input-bg:#f8fffc;--input-text:#244038;--map-sheet-bg:#f8fffc;--map-sheet-text:#244038;--map-fab-bg:#f8fffc;--map-fab-text:#244038;}
html[data-theme="sumi-noir"]{--bg-a:#141719;--bg-b:#202427;--bg-c:#2b2f31;--nav-a:#181b1e;--nav-b:#30363a;--nav-c:#6f665c;--panel-a:rgba(32,36,39,.97);--panel-b:rgba(48,54,58,.93);--hero-a:rgba(20,23,25,.98);--hero-b:rgba(70,68,64,.82);--hero-c:rgba(162,127,88,.13);--button-a:#795c42;--button-b:#86664a;--outline:rgba(235,228,217,.17);--glow:rgba(162,127,88,.22);--orb-a:rgba(162,127,88,.17);--orb-b:rgba(100,110,120,.17);--button-radius:4px;--card-radius:10px;--text:#fbf7f0;--muted-text:#d6d1ca;--heading:#fffaf2;--surface-solid:#202427;--primary:#a27f58;--on-primary:#1e2225;--nav-solid:#181b1e;--nav-text:#fff;--chip-bg:#30363a;--chip-text:#fffaf2;--input-bg:#202427;--input-text:#fbf7f0;--map-sheet-bg:#202427;--map-sheet-text:#fbf7f0;--map-fab-bg:#202427;--map-fab-text:#fbf7f0;}
html[data-theme="matcha-studio"]{--bg-a:#e1ead4;--bg-b:#fbfdf6;--bg-c:#eef2df;--nav-a:#40552d;--nav-b:#6c853f;--nav-c:#a7af65;--panel-a:rgba(251,253,246,.96);--panel-b:rgba(234,241,221,.92);--hero-a:rgba(64,85,45,.96);--hero-b:rgba(108,133,63,.78);--hero-c:rgba(218,199,116,.13);--button-a:#5f7537;--button-b:#677c3e;--outline:rgba(108,133,63,.19);--glow:rgba(108,133,63,.20);--orb-a:rgba(145,177,98,.22);--orb-b:rgba(217,195,110,.20);--button-radius:12px;--card-radius:18px;--text:#304026;--muted-text:#667555;--heading:#526a34;--surface-solid:#fbfdf6;--primary:#6c853f;--on-primary:#fff;--nav-solid:#40552d;--nav-text:#fff;--chip-bg:#f0f5e8;--chip-text:#455635;--input-bg:#fbfdf6;--input-text:#304026;--map-sheet-bg:#fbfdf6;--map-sheet-text:#304026;--map-fab-bg:#fbfdf6;--map-fab-text:#304026;}
html[data-theme="fuji-dawn"]{--bg-a:#dceaf5;--bg-b:#f8fbff;--bg-c:#f0e8f4;--nav-a:#334f70;--nav-b:#54779b;--nav-c:#9c8ca9;--panel-a:rgba(248,251,255,.95);--panel-b:rgba(230,239,249,.92);--hero-a:rgba(51,79,112,.96);--hero-b:rgba(84,119,155,.76);--hero-c:rgba(225,190,205,.14);--button-a:#4c6e91;--button-b:#54779b;--outline:rgba(84,119,155,.19);--glow:rgba(84,119,155,.22);--orb-a:rgba(125,172,207,.23);--orb-b:rgba(222,180,202,.20);--button-radius:999px;--card-radius:24px;--text:#2e4052;--muted-text:#607083;--heading:#405e7e;--surface-solid:#f8fbff;--primary:#54779b;--on-primary:#fff;--nav-solid:#334f70;--nav-text:#fff;--chip-bg:#edf4fb;--chip-text:#38506a;--input-bg:#f8fbff;--input-text:#2e4052;--map-sheet-bg:#f8fbff;--map-sheet-text:#2e4052;--map-fab-bg:#f8fbff;--map-fab-text:#2e4052;}
html[data-theme="tea-house"]{--bg-a:#211a16;--bg-b:#312720;--bg-c:#46372f;--nav-a:#241c18;--nav-b:#49342a;--nav-c:#8a5a3d;--panel-a:rgba(49,39,32,.97);--panel-b:rgba(70,55,47,.93);--hero-a:rgba(33,26,22,.98);--hero-b:rgba(112,76,55,.82);--hero-c:rgba(188,145,95,.14);--button-a:#8f5f40;--button-b:#9c6847;--outline:rgba(235,215,197,.17);--glow:rgba(160,107,72,.23);--orb-a:rgba(160,107,72,.18);--orb-b:rgba(184,150,101,.16);--button-radius:8px;--card-radius:14px;--text:#fff9f1;--muted-text:#dfd1c5;--heading:#fff7ec;--surface-solid:#312720;--primary:#ad7751;--on-primary:#fff;--nav-solid:#241c18;--nav-text:#fff;--chip-bg:#46372f;--chip-text:#fff7ee;--input-bg:#312720;--input-text:#fff9f1;--map-sheet-bg:#312720;--map-sheet-text:#fff9f1;--map-fab-bg:#312720;--map-fab-text:#fff9f1;}
html[data-theme="snow-camellia"]{--bg-a:#f3e8e8;--bg-b:#fffaf9;--bg-c:#f4f0ed;--nav-a:#63313f;--nav-b:#a63f55;--nav-c:#d28689;--panel-a:rgba(255,250,249,.96);--panel-b:rgba(246,233,232,.92);--hero-a:rgba(99,49,63,.96);--hero-b:rgba(166,63,85,.77);--hero-c:rgba(223,190,176,.14);--button-a:#a63f55;--button-b:#b14e5d;--outline:rgba(166,63,85,.18);--glow:rgba(166,63,85,.22);--orb-a:rgba(199,115,132,.20);--orb-b:rgba(224,196,181,.22);--button-radius:15px;--card-radius:21px;--text:#482f34;--muted-text:#745a5f;--heading:#743747;--surface-solid:#fffaf9;--primary:#a63f55;--on-primary:#fff;--nav-solid:#63313f;--nav-text:#fff;--chip-bg:#fff0ef;--chip-text:#553840;--input-bg:#fffaf9;--input-text:#482f34;--map-sheet-bg:#fffaf9;--map-sheet-text:#482f34;--map-fab-bg:#fffaf9;--map-fab-text:#482f34;}

body{color:var(--text)!important}.page,.map-app{color:var(--text)}
h1,h2,h3,h4,h5,h6,.brand h1,.section-head h2,.section-head h3{color:var(--heading)!important}
.panel,.place-card,.check-card,.idea-card,.pin-card,.booking-card,.food-card,.route-card,.list-row,.day-tile,.calendar button,.day-btn{color:var(--text)!important}
.muted,.field,.day-btn small,.metric small,.map-popup small,.theme-menu .eyebrow{color:var(--muted-text)!important}
input,select,textarea{background:var(--input-bg)!important;color:var(--input-text)!important;border-color:var(--outline)!important}
input::placeholder,textarea::placeholder{color:var(--muted-text)!important;opacity:.82}
.button,button{color:var(--text)!important;background:linear-gradient(135deg,var(--surface-solid),var(--chip-bg))!important}
.button.primary,button.primary,.tab.active,.segmented button.active{color:var(--on-primary)!important}
.chip,.pill,.compact-toggle{background:var(--chip-bg)!important;color:var(--chip-text)!important;border-color:var(--outline)!important}
.topbar,.mobile-nav,.topbar a,.mobile-nav a,.topbar summary,.brand h1,.topbar .eyebrow{color:var(--nav-text)!important}
.more-menu,.theme-menu{background:var(--surface-solid)!important;color:var(--text)!important;border-color:var(--outline)!important}
.more-menu a,.theme-menu button{color:var(--text)!important}.theme-menu button:hover{background:var(--chip-bg)!important}
.map-sheet{background:color-mix(in srgb,var(--map-sheet-bg) 96%,transparent)!important;color:var(--map-sheet-text)!important}
.map-fab,.map-summary{background:color-mix(in srgb,var(--map-fab-bg) 94%,transparent)!important;color:var(--map-fab-text)!important}
.map-summary{border:1px solid var(--outline)}.map-popup{color:#233f45}.map-popup h3{color:#153c42!important}
:focus-visible{outline:3px solid var(--primary)!important;outline-offset:3px}
/* Planner checklist: compact touch targets without oversized rows. */
.check-card{grid-template-columns:auto minmax(0,1fr) minmax(150px,210px)!important;gap:8px!important;align-items:start!important;padding:10px!important}
.check-card>input[type=checkbox]{width:18px!important;height:18px!important;margin-top:5px!important;accent-color:var(--primary)}
.check-card .field{gap:3px!important;font-size:.68rem!important}.check-card input,.check-card select{min-height:32px!important;padding:6px 7px!important;font-size:.76rem!important}
.check-card textarea{min-height:48px!important;padding:6px 7px!important;font-size:.76rem!important}
.check-card .check-side{display:grid;gap:6px}.check-card .compact-action{padding:6px 8px!important;min-height:30px!important;font-size:.7rem!important}
.check-card .chip{padding:5px 7px!important;font-size:.7rem!important}.check-card .chip input{min-height:auto!important}
.check-summary{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}.check-toolbar{display:flex;gap:6px;flex-wrap:wrap}.check-toolbar button{padding:7px 9px!important;font-size:.72rem!important}
/* QoL visual motion */
.unfold-card,.day-tile,.place-card,.check-card{animation:jhtcRise .34s cubic-bezier(.2,.8,.2,1) both}.day-tile:nth-child(2n),.check-card:nth-child(2n){animation-delay:.035s}
.map-fab{min-width:36px}.map-fab strong{font-size:.8rem}.travel-note{border-left:3px solid var(--primary);padding-left:10px}.reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.reference-card ul{padding-left:18px}.reference-card li{margin:.35rem 0}
@media(max-width:720px){.check-card{grid-template-columns:auto minmax(0,1fr)!important}.check-card .check-side{grid-column:2}.check-card>input[type=checkbox]{width:16px!important;height:16px!important}.check-toolbar{gap:5px}.check-toolbar button{padding:6px 7px!important;font-size:.68rem!important}.reference-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* v17 readability, banners, pins, compact controls and full trip brief */
:root{--fixed-header-a:#1c332f;--fixed-header-b:#36564f;--fixed-header-text:#fffaf0;--page-banner:url('assets/banners/hero-dashboard.webp')}
body.page-dashboard{--page-banner:url('assets/banners/hero-dashboard.webp')}body.page-planner{--page-banner:url('assets/banners/hero-planner.webp')}body.page-map{--page-banner:url('assets/banners/hero-map.webp')}body.page-ideas{--page-banner:url('assets/banners/hero-ideas.webp')}body.page-food{--page-banner:url('assets/banners/hero-food.webp')}body.page-brief{--page-banner:url('assets/banners/hero-brief.webp')}body.page-today{--page-banner:url('assets/banners/hero-today.webp')}body.page-tools{--page-banner:url('assets/banners/hero-tools.webp')}body.page-pins{--page-banner:url('assets/banners/hero-pins.webp')}body.page-bookings{--page-banner:url('assets/banners/hero-bookings.webp')}
.topbar,.mobile-nav{background:linear-gradient(135deg,var(--fixed-header-a),var(--fixed-header-b))!important;color:var(--fixed-header-text)!important}.topbar a,.topbar summary,.mobile-nav a,.brand h1,.topbar .eyebrow{color:var(--fixed-header-text)!important}.topbar .nav-link.active,.topbar .nav-link:hover,.mobile-nav a.active{background:rgba(255,255,255,.18)!important}
.hero{background-image:linear-gradient(90deg,rgba(25,46,42,.92),rgba(25,46,42,.62) 52%,rgba(25,46,42,.14)),var(--page-banner)!important;background-position:center!important;background-size:cover!important}.page-banner{height:92px;border-radius:0 0 22px 22px;background-image:linear-gradient(90deg,rgba(25,46,42,.44),rgba(25,46,42,.08)),var(--page-banner);background-size:cover;background-position:center;box-shadow:var(--soft)}.compact-banner{height:76px}.map-page-banner{height:54px;border-radius:0}.page-map .map-experience{height:calc(100vh - 126px)!important}
.map-pin{background:var(--pin-color,#536547)!important;color:transparent!important;padding:0!important;min-height:0!important;min-width:0!important;border-style:solid!important}.map-pin:hover,.map-pin:focus-visible{transform:none!important}.map-pin.idea:hover,.map-pin.idea:focus-visible{transform:none!important}
input[type=checkbox]{width:15px!important;height:15px!important;min-height:15px!important;min-width:15px!important;padding:0!important;margin:0 5px 0 0!important;vertical-align:middle;accent-color:var(--primary)}.check-card>input[type=checkbox]{width:15px!important;height:15px!important;margin-top:5px!important}.compact-toggle input{width:15px!important;height:15px!important}.today-check{display:flex;gap:8px;align-items:flex-start}.today-check input{margin-top:3px!important}
.metric-link{display:grid;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.metric-link:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.metric-link small{margin-top:7px;font-size:.7rem;color:var(--muted-text)}
.palette-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.palette-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--outline);border-radius:12px;background:var(--chip-bg);font-size:.78rem;font-weight:800}.palette-row input[type=color]{width:46px!important;height:30px!important;padding:2px!important}
.idea-editor{margin-top:4px;padding:9px;border:1px dashed var(--outline);border-radius:12px;background:color-mix(in srgb,var(--surface-solid) 84%,transparent)}.idea-editor summary{font-size:.78rem}.idea-editor input[type=color]{height:34px!important;padding:2px!important}.micro-note{font-size:.72rem;line-height:1.35;color:var(--muted-text);margin:.35rem 0}.google-maps{border-color:color-mix(in srgb,var(--primary) 55%,var(--outline))!important}
.brief-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:15px;align-items:start}.brief-toc{top:86px;max-height:calc(100vh - 108px);overflow:auto}.brief-toc nav{display:grid;gap:4px}.brief-toc a{display:block;padding:6px 7px;border-radius:8px;text-decoration:none;font-size:.78rem;color:var(--text)}.brief-toc a:hover{background:var(--chip-bg)}.brief-toc .toc-l2{padding-left:14px}.brief-toc .toc-l3{padding-left:24px;font-size:.73rem}.markdown-body{max-width:100%;overflow:hidden}.markdown-body h1,.markdown-body h2,.markdown-body h3{scroll-margin-top:92px}.markdown-body h1{font-size:2rem;border-bottom:1px solid var(--outline);padding-bottom:9px}.markdown-body h2{font-size:1.55rem;margin-top:1.8rem;border-bottom:1px dashed var(--outline);padding-bottom:6px}.markdown-body h3{font-size:1.2rem;margin-top:1.3rem}.markdown-body p,.markdown-body li{font-size:.88rem;line-height:1.62}.markdown-body ul,.markdown-body ol{padding-left:22px}.markdown-body blockquote{margin:15px 0;padding:12px 15px;border-left:4px solid var(--primary);background:var(--chip-bg);border-radius:0 11px 11px 0}.markdown-body pre{overflow:auto;padding:12px;border-radius:12px;background:#243431;color:#fffaf0}.markdown-body code{font-size:.78rem}.table-wrap{overflow:auto;border:1px solid var(--outline);border-radius:12px;margin:12px 0}.markdown-body table{width:100%;border-collapse:collapse;min-width:680px}.markdown-body th,.markdown-body td{padding:9px 10px;border-bottom:1px solid var(--outline);text-align:left;vertical-align:top;font-size:.8rem;line-height:1.42}.markdown-body th{position:sticky;top:0;background:var(--chip-bg);color:var(--chip-text)}
@media(max-width:820px){.brief-layout{grid-template-columns:1fr}.brief-toc{position:relative!important;top:auto!important;max-height:260px}.page-banner{height:64px}.compact-banner{height:58px}.map-page-banner{height:44px}.page-map .map-experience{height:calc(100vh - 116px)!important}.markdown-body{padding:12px}.markdown-body h1{font-size:1.55rem}.markdown-body h2{font-size:1.28rem}.markdown-body p,.markdown-body li{font-size:.82rem}}


/* === v18 contrast-first semantic palette and stable MapLibre marker contract === */
:root{--v18-canvas-a:#d8eeee;--v18-canvas-b:#f7fbfa;--v18-surface:#fff;--v18-surface-2:#edf7f5;--v18-header-a:#08343b;--v18-header-b:#145b63}
html[data-theme="mizu-modern"]{--v18-canvas-a:#d8eeee;--v18-canvas-b:#f7fbfa;--v18-surface:#ffffff;--v18-surface-2:#edf7f5;--text:#17383c;--muted-text:#49696d;--heading:#103f46;--primary:#0f6570;--on-primary:#ffffff;--v18-header-a:#08343b;--v18-header-b:#145b63;--nav-text:#fffaf0;--chip-bg:#e7f4f2;--chip-text:#21464b;--outline:#6f8e90;--surface-solid:#ffffff;--input-bg:#ffffff;--input-text:#17383c;--map-sheet-bg:#ffffff;--map-sheet-text:#17383c;--map-fab-bg:#ffffff;--map-fab-text:#17383c;--card-radius:16px;--button-radius:16px}
html[data-theme="ledger-light"]{--v18-canvas-a:#efe7d8;--v18-canvas-b:#fbf7ef;--v18-surface:#fffdf8;--v18-surface-2:#f3eee4;--text:#343b36;--muted-text:#5e6964;--heading:#294941;--primary:#405e55;--on-primary:#ffffff;--v18-header-a:#203833;--v18-header-b:#365b52;--nav-text:#fffaf0;--chip-bg:#edf1e9;--chip-text:#384f48;--outline:#7a897f;--surface-solid:#fffdf8;--input-bg:#fffdf8;--input-text:#343b36;--map-sheet-bg:#fffdf8;--map-sheet-text:#343b36;--map-fab-bg:#fffdf8;--map-fab-text:#343b36;--card-radius:12px;--button-radius:12px}
html[data-theme="plum-dusk"]{--v18-canvas-a:#211a2b;--v18-canvas-b:#33273f;--v18-surface:#342640;--v18-surface-2:#493659;--text:#fff9ff;--muted-text:#dacde3;--heading:#fff4ff;--primary:#c39bd7;--on-primary:#271c31;--v18-header-a:#21182b;--v18-header-b:#4c345d;--nav-text:#fff9ff;--chip-bg:#493659;--chip-text:#fff7ff;--outline:#9b83aa;--surface-solid:#342640;--input-bg:#342640;--input-text:#fff9ff;--map-sheet-bg:#342640;--map-sheet-text:#fff9ff;--map-fab-bg:#342640;--map-fab-text:#fff9ff;--card-radius:20px;--button-radius:20px}
html[data-theme="sakura-glass"]{--v18-canvas-a:#f7e3e9;--v18-canvas-b:#fff8fa;--v18-surface:#fff9fb;--v18-surface-2:#f8e9ee;--text:#4b2c38;--muted-text:#6f505b;--heading:#713c55;--primary:#8f3f5d;--on-primary:#ffffff;--v18-header-a:#633049;--v18-header-b:#843d5b;--nav-text:#fff8fb;--chip-bg:#f8e8ee;--chip-text:#5a3444;--outline:#9b7c86;--surface-solid:#fff9fb;--input-bg:#fff9fb;--input-text:#4b2c38;--map-sheet-bg:#fff9fb;--map-sheet-text:#4b2c38;--map-fab-bg:#fff9fb;--map-fab-text:#4b2c38;--card-radius:22px;--button-radius:22px}
html[data-theme="koyo-ember"]{--v18-canvas-a:#f3dfcf;--v18-canvas-b:#fff9f2;--v18-surface:#fffaf3;--v18-surface-2:#f7eadc;--text:#4a2c20;--muted-text:#704f41;--heading:#713720;--primary:#914424;--on-primary:#ffffff;--v18-header-a:#5a2b1e;--v18-header-b:#753820;--nav-text:#fff9f2;--chip-bg:#f9eadb;--chip-text:#5d3828;--outline:#9e7f71;--surface-solid:#fffaf3;--input-bg:#fffaf3;--input-text:#4a2c20;--map-sheet-bg:#fffaf3;--map-sheet-text:#4a2c20;--map-fab-bg:#fffaf3;--map-fab-text:#4a2c20;--card-radius:10px;--button-radius:10px}
html[data-theme="yoru-indigo"]{--v18-canvas-a:#08182b;--v18-canvas-b:#12263d;--v18-surface:#12263d;--v18-surface-2:#193550;--text:#f7fbff;--muted-text:#cfdeeb;--heading:#f9fcff;--primary:#8cc1ee;--on-primary:#0b1e33;--v18-header-a:#071627;--v18-header-b:#163b62;--nav-text:#ffffff;--chip-bg:#193550;--chip-text:#f8fcff;--outline:#7e9bb3;--surface-solid:#12263d;--input-bg:#12263d;--input-text:#f7fbff;--map-sheet-bg:#12263d;--map-sheet-text:#f7fbff;--map-fab-bg:#12263d;--map-fab-text:#f7fbff;--card-radius:16px;--button-radius:16px}
html[data-theme="celadon-mist"]{--v18-canvas-a:#dcefe9;--v18-canvas-b:#f8fffc;--v18-surface:#f8fffc;--v18-surface-2:#eaf7f2;--text:#244038;--muted-text:#536b64;--heading:#315c53;--primary:#3e6d62;--on-primary:#ffffff;--v18-header-a:#294d46;--v18-header-b:#315c53;--nav-text:#ffffff;--chip-bg:#e5f3ee;--chip-text:#2f514a;--outline:#7d9790;--surface-solid:#f8fffc;--input-bg:#f8fffc;--input-text:#244038;--map-sheet-bg:#f8fffc;--map-sheet-text:#244038;--map-fab-bg:#f8fffc;--map-fab-text:#244038;--card-radius:20px;--button-radius:20px}
html[data-theme="sumi-noir"]{--v18-canvas-a:#141719;--v18-canvas-b:#202427;--v18-surface:#202427;--v18-surface-2:#30363a;--text:#fbf7f0;--muted-text:#d6d1ca;--heading:#fffaf2;--primary:#d2b18c;--on-primary:#202427;--v18-header-a:#141719;--v18-header-b:#282e31;--nav-text:#fffaf2;--chip-bg:#30363a;--chip-text:#fffaf2;--outline:#8b8e8f;--surface-solid:#202427;--input-bg:#202427;--input-text:#fbf7f0;--map-sheet-bg:#202427;--map-sheet-text:#fbf7f0;--map-fab-bg:#202427;--map-fab-text:#fbf7f0;--card-radius:8px;--button-radius:8px}
html[data-theme="matcha-studio"]{--v18-canvas-a:#e1ead4;--v18-canvas-b:#fbfdf6;--v18-surface:#fbfdf6;--v18-surface-2:#eff4e6;--text:#304026;--muted-text:#5d6c4d;--heading:#40552d;--primary:#53672e;--on-primary:#ffffff;--v18-header-a:#354723;--v18-header-b:#40552d;--nav-text:#fffef8;--chip-bg:#edf3e5;--chip-text:#455635;--outline:#889677;--surface-solid:#fbfdf6;--input-bg:#fbfdf6;--input-text:#304026;--map-sheet-bg:#fbfdf6;--map-sheet-text:#304026;--map-fab-bg:#fbfdf6;--map-fab-text:#304026;--card-radius:14px;--button-radius:14px}
html[data-theme="fuji-dawn"]{--v18-canvas-a:#dceaf5;--v18-canvas-b:#f8fbff;--v18-surface:#f8fbff;--v18-surface-2:#edf4fb;--text:#2e4052;--muted-text:#596a7c;--heading:#334f70;--primary:#456789;--on-primary:#ffffff;--v18-header-a:#2b4662;--v18-header-b:#334f70;--nav-text:#ffffff;--chip-bg:#e9f1f9;--chip-text:#38506a;--outline:#8393a3;--surface-solid:#f8fbff;--input-bg:#f8fbff;--input-text:#2e4052;--map-sheet-bg:#f8fbff;--map-sheet-text:#2e4052;--map-fab-bg:#f8fbff;--map-fab-text:#2e4052;--card-radius:18px;--button-radius:18px}
html[data-theme="tea-house"]{--v18-canvas-a:#211a16;--v18-canvas-b:#312720;--v18-surface:#312720;--v18-surface-2:#46372f;--text:#fff9f1;--muted-text:#dfd1c5;--heading:#fff7ec;--primary:#d9a67d;--on-primary:#2a201b;--v18-header-a:#211915;--v18-header-b:#49342a;--nav-text:#fff9f1;--chip-bg:#46372f;--chip-text:#fff7ee;--outline:#9f8a7d;--surface-solid:#312720;--input-bg:#312720;--input-text:#fff9f1;--map-sheet-bg:#312720;--map-sheet-text:#fff9f1;--map-fab-bg:#312720;--map-fab-text:#fff9f1;--card-radius:12px;--button-radius:12px}
html[data-theme="snow-camellia"]{--v18-canvas-a:#f3e8e8;--v18-canvas-b:#fffaf9;--v18-surface:#fffaf9;--v18-surface-2:#f8eded;--text:#482f34;--muted-text:#6d5459;--heading:#63313f;--primary:#8f3449;--on-primary:#ffffff;--v18-header-a:#552a36;--v18-header-b:#63313f;--nav-text:#fffaf9;--chip-bg:#f7e8e8;--chip-text:#553840;--outline:#978386;--surface-solid:#fffaf9;--input-bg:#fffaf9;--input-text:#482f34;--map-sheet-bg:#fffaf9;--map-sheet-text:#482f34;--map-fab-bg:#fffaf9;--map-fab-text:#482f34;--card-radius:16px;--button-radius:16px}
body{color:var(--text)!important;background:radial-gradient(circle at 8% -6%,color-mix(in srgb,var(--primary) 18%,transparent),transparent 32rem),radial-gradient(circle at 96% 0%,color-mix(in srgb,var(--chip-bg) 74%,transparent),transparent 30rem),linear-gradient(145deg,var(--v18-canvas-a),var(--v18-canvas-b))!important}
.topbar,.mobile-nav{background:linear-gradient(118deg,var(--v18-header-a),var(--v18-header-b))!important;color:var(--nav-text)!important;box-shadow:0 12px 30px color-mix(in srgb,var(--v18-header-a) 25%,transparent)!important}
.topbar a,.topbar summary,.mobile-nav a,.brand h1,.topbar .eyebrow,.theme-switcher summary{color:var(--nav-text)!important}
.panel,.place-card,.check-card,.idea-card,.pin-card,.booking-card,.food-card,.route-card,.list-row,.day-tile,.savebar,.tabs{background:linear-gradient(145deg,var(--v18-surface),var(--v18-surface-2))!important;color:var(--text)!important;border-color:var(--outline)!important}
h1,h2,h3,h4,h5,h6,.section-head h2,.section-head h3,.metric strong,.day-tile strong,details summary{color:var(--heading)!important}
.muted,.field,.day-btn small,.metric small,.map-popup small,.theme-menu .eyebrow,.idea-source,.idea-coords,.empty{color:var(--muted-text)!important}
input,select,textarea{background:var(--input-bg)!important;color:var(--input-text)!important;border-color:var(--outline)!important}
input::placeholder,textarea::placeholder{color:var(--muted-text)!important;opacity:1!important}
.button,button{color:var(--text)!important;background:linear-gradient(135deg,var(--v18-surface),var(--chip-bg))!important;border-color:var(--outline)!important}
.button.primary,button.primary,.tab.active,.segmented button.active,.day-btn.active{color:var(--on-primary)!important;background:var(--primary)!important;border-color:var(--primary)!important}
.chip,.pill,.compact-toggle,.route-ribbon span{background:var(--chip-bg)!important;color:var(--chip-text)!important;border-color:var(--outline)!important}
.more-menu,.theme-menu{background:var(--v18-surface)!important;color:var(--text)!important;border-color:var(--outline)!important}
.hero{color:#fffaf0!important;background-image:linear-gradient(90deg,rgba(18,34,31,.96),rgba(18,34,31,.77) 54%,rgba(18,34,31,.20)),var(--page-banner)!important}.hero h2,.hero h3,.hero p,.hero .eyebrow{color:#fffaf0!important}
.page-banner{background-image:linear-gradient(90deg,rgba(18,34,31,.54),rgba(18,34,31,.12)),var(--page-banner)!important}
:focus-visible{outline:3px solid var(--primary)!important;outline-offset:3px}
/* MapLibre positions .map-marker-host geographically. Keep that host static; animate only nested visual effects. */
.map-pin{appearance:none!important;display:grid!important;place-items:center!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;filter:none!important;color:transparent!important;cursor:pointer!important}
.map-pin:hover,.map-pin:active,.map-pin:focus,.map-pin:focus-visible{filter:none!important;background:transparent!important;box-shadow:none!important}
.map-pin-core{display:block;width:17px;height:17px;border:2px solid var(--pin-halo,#fff7e7);border-radius:50%;background:var(--pin-color,#536547);box-shadow:0 3px 12px rgba(45,38,31,.44);transition:transform .16s ease,box-shadow .16s ease}
.map-pin.idea .map-pin-core{border-radius:4px;transform:rotate(45deg)}
.map-pin:hover .map-pin-core,.map-pin:focus-visible .map-pin-core{box-shadow:0 4px 16px rgba(45,38,31,.62),0 0 0 4px color-mix(in srgb,var(--pin-color,#536547) 28%,transparent)}
.map-pin.idea:hover .map-pin-core,.map-pin.idea:focus-visible .map-pin-core{transform:rotate(45deg)}
.map-focus-pin{animation:none!important}.map-focus-pin .map-pin-core{animation:v18PulsePin 1.55s ease-in-out infinite}
@keyframes v18PulsePin{0%,100%{box-shadow:0 3px 12px rgba(45,38,31,.44),0 0 0 0 rgba(212,145,61,.42)}50%{box-shadow:0 4px 14px rgba(45,38,31,.55),0 0 0 8px rgba(212,145,61,0)}}
input[type=checkbox]{width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;margin:0 5px 0 0!important;padding:0!important;accent-color:var(--primary)!important}

/* v19 contrast-first menus, native selects, static marker hosts, and dynamic emaki backdrop */
html[data-theme-mode="dark"]{color-scheme:dark}html[data-theme-mode="light"]{color-scheme:light}
select,select option,select optgroup{background-color:var(--input-bg)!important;color:var(--input-text)!important;-webkit-text-fill-color:var(--input-text)!important}
select{color-scheme:inherit!important}.more-menu a,.theme-menu button,.theme-menu span{color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}.theme-menu button{background:var(--v18-surface-2)!important}.theme-menu button:hover,.more-menu a:hover{background:var(--chip-bg)!important;color:var(--chip-text)!important;-webkit-text-fill-color:var(--chip-text)!important}
.map-marker-host{width:30px;height:30px;display:grid;place-items:center;pointer-events:auto}.map-marker-host,.map-marker-host:hover,.map-marker-host:focus-within{filter:none!important;box-shadow:none!important}.map-pin{position:relative!important}.map-pin-core{will-change:box-shadow}
body{position:relative;isolation:isolate;overflow-x:hidden}.app{position:relative;z-index:2}body::before,body::after{content:"";position:fixed;inset:-14vmax;z-index:0;pointer-events:none;opacity:.72;filter:blur(22px);mix-blend-mode:multiply}body::before{background:radial-gradient(ellipse at 8% 18%,color-mix(in srgb,var(--primary) 30%,transparent) 0 5%,transparent 18%),radial-gradient(ellipse at 86% 12%,rgba(123,97,119,.20) 0 4%,transparent 16%),radial-gradient(ellipse at 74% 82%,rgba(177,138,76,.20) 0 5%,transparent 18%),conic-gradient(from 210deg at 44% 48%,transparent,rgba(110,197,227,.10),transparent,rgba(248,101,101,.09),transparent);animation:inkDrift 22s ease-in-out infinite alternate}body::after{opacity:.4;filter:blur(34px);background:radial-gradient(circle at 24% 74%,rgba(248,163,105,.24),transparent 12%),radial-gradient(circle at 84% 54%,rgba(209,58,146,.18),transparent 14%),radial-gradient(circle at 52% 10%,rgba(200,216,53,.14),transparent 13%);animation:inkDrift2 29s ease-in-out infinite alternate}
.ink-spark-field{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.ink-spark-field i{position:absolute;width:5px;height:5px;border-radius:999px;background:color-mix(in srgb,var(--primary) 68%,#fff);box-shadow:0 0 16px color-mix(in srgb,var(--primary) 52%,transparent);opacity:.38;animation:sparkFloat 10s ease-in-out infinite}.ink-spark-field i:nth-child(1){left:8%;top:18%;animation-delay:-1s}.ink-spark-field i:nth-child(2){left:20%;top:72%;animation-delay:-3s}.ink-spark-field i:nth-child(3){left:38%;top:30%;animation-delay:-7s}.ink-spark-field i:nth-child(4){left:55%;top:82%;animation-delay:-5s}.ink-spark-field i:nth-child(5){left:67%;top:15%;animation-delay:-9s}.ink-spark-field i:nth-child(6){left:80%;top:64%;animation-delay:-2s}.ink-spark-field i:nth-child(7){left:91%;top:28%;animation-delay:-6s}.ink-spark-field i:nth-child(8){left:46%;top:55%;animation-delay:-4s}
@keyframes inkDrift{from{transform:translate3d(-2%,0,0) rotate(-1deg) scale(1)}to{transform:translate3d(3%,2%,0) rotate(2deg) scale(1.05)}}@keyframes inkDrift2{from{transform:translate3d(2%,-2%,0) rotate(1deg)}to{transform:translate3d(-3%,3%,0) rotate(-2deg)}}@keyframes sparkFloat{0%,100%{transform:translateY(0) scale(.8);opacity:.2}50%{transform:translateY(-28px) scale(1.45);opacity:.62}}
.japan-clock{margin-left:auto;padding:7px 10px;border:1px solid color-mix(in srgb,var(--nav-text) 34%,transparent);border-radius:999px;color:var(--nav-text);font-size:.68rem;font-weight:850;letter-spacing:.04em;white-space:nowrap;background:color-mix(in srgb,var(--v18-header-a) 66%,transparent)}.today-live{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 34%,transparent),var(--soft)!important}.transit-composer{display:grid;gap:10px;padding:13px;border:1px solid var(--outline);border-radius:14px;background:linear-gradient(145deg,var(--v18-surface),var(--v18-surface-2))}.transit-composer .form-grid{align-items:end}.map-transit-composer{margin-top:12px}.trip-phase{display:inline-flex;gap:7px;align-items:center;padding:7px 10px;border-radius:999px;background:var(--chip-bg);color:var(--chip-text);border:1px solid var(--outline);font-weight:850;font-size:.72rem}
@media(prefers-reduced-motion:reduce){body::before,body::after,.ink-spark-field i{animation:none!important}.map-pin-core{transition:none!important}}
@media(max-width:1080px){.japan-clock{display:none}}


html[data-theme="mizu-modern"]{--v18-canvas-a:#d8eeee;--v18-canvas-b:#f7fbfa;--v18-surface:#ffffff;--v18-surface-2:#edf7f5;--text:#17383c;--muted-text:#49696d;--heading:#103f46;--primary:#0f6570;--on-primary:#ffffff;--v18-header-a:#08343b;--v18-header-b:#145b63;--nav-text:#fffaf0;--chip-bg:#e7f4f2;--chip-text:#21464b;--outline:#6f8e90;--surface-solid:#ffffff;--input-bg:#ffffff;--input-text:#17383c;--map-sheet-bg:#ffffff;--map-sheet-text:#17383c;--map-fab-bg:#ffffff;--map-fab-text:#17383c;--theme-swatch:#0f6570;}
html[data-theme="ledger-light"]{--v18-canvas-a:#efe7d8;--v18-canvas-b:#fbf7ef;--v18-surface:#fffdf8;--v18-surface-2:#f3eee4;--text:#343b36;--muted-text:#5e6964;--heading:#294941;--primary:#405e55;--on-primary:#ffffff;--v18-header-a:#203833;--v18-header-b:#365b52;--nav-text:#fffaf0;--chip-bg:#edf1e9;--chip-text:#384f48;--outline:#7a897f;--surface-solid:#fffdf8;--input-bg:#fffdf8;--input-text:#343b36;--map-sheet-bg:#fffdf8;--map-sheet-text:#343b36;--map-fab-bg:#fffdf8;--map-fab-text:#343b36;--theme-swatch:#526d62;}
html[data-theme="plum-dusk"]{--v18-canvas-a:#211a2b;--v18-canvas-b:#33273f;--v18-surface:#342640;--v18-surface-2:#493659;--text:#fff9ff;--muted-text:#dacde3;--heading:#fff4ff;--primary:#c39bd7;--on-primary:#271c31;--v18-header-a:#21182b;--v18-header-b:#4c345d;--nav-text:#fff9ff;--chip-bg:#493659;--chip-text:#fff7ff;--outline:#9b83aa;--surface-solid:#342640;--input-bg:#342640;--input-text:#fff9ff;--map-sheet-bg:#342640;--map-sheet-text:#fff9ff;--map-fab-bg:#342640;--map-fab-text:#fff9ff;--theme-swatch:#a987bf;}
html[data-theme="sakura-glass"]{--v18-canvas-a:#f7e3e9;--v18-canvas-b:#fff8fa;--v18-surface:#fff9fb;--v18-surface-2:#f8e9ee;--text:#4b2c38;--muted-text:#6f505b;--heading:#713c55;--primary:#8f3f5d;--on-primary:#ffffff;--v18-header-a:#633049;--v18-header-b:#843d5b;--nav-text:#fff8fb;--chip-bg:#f8e8ee;--chip-text:#5a3444;--outline:#9b7c86;--surface-solid:#fff9fb;--input-bg:#fff9fb;--input-text:#4b2c38;--map-sheet-bg:#fff9fb;--map-sheet-text:#4b2c38;--map-fab-bg:#fff9fb;--map-fab-text:#4b2c38;--theme-swatch:#b55273;}
html[data-theme="koyo-ember"]{--v18-canvas-a:#f3dfcf;--v18-canvas-b:#fff9f2;--v18-surface:#fffaf3;--v18-surface-2:#f7eadc;--text:#4a2c20;--muted-text:#704f41;--heading:#713720;--primary:#914424;--on-primary:#ffffff;--v18-header-a:#5a2b1e;--v18-header-b:#753820;--nav-text:#fff9f2;--chip-bg:#f9eadb;--chip-text:#5d3828;--outline:#9e7f71;--surface-solid:#fffaf3;--input-bg:#fffaf3;--input-text:#4a2c20;--map-sheet-bg:#fffaf3;--map-sheet-text:#4a2c20;--map-fab-bg:#fffaf3;--map-fab-text:#4a2c20;--theme-swatch:#b75b34;}
html[data-theme="yoru-indigo"]{--v18-canvas-a:#08182b;--v18-canvas-b:#12263d;--v18-surface:#12263d;--v18-surface-2:#193550;--text:#f7fbff;--muted-text:#cfdeeb;--heading:#f9fcff;--primary:#8cc1ee;--on-primary:#0b1e33;--v18-header-a:#071627;--v18-header-b:#163b62;--nav-text:#ffffff;--chip-bg:#193550;--chip-text:#f8fcff;--outline:#7e9bb3;--surface-solid:#12263d;--input-bg:#12263d;--input-text:#f7fbff;--map-sheet-bg:#12263d;--map-sheet-text:#f7fbff;--map-fab-bg:#12263d;--map-fab-text:#f7fbff;--theme-swatch:#72a7d8;}
html[data-theme="celadon-mist"]{--v18-canvas-a:#dcefe9;--v18-canvas-b:#f8fffc;--v18-surface:#f8fffc;--v18-surface-2:#eaf7f2;--text:#244038;--muted-text:#536b64;--heading:#315c53;--primary:#3e6d62;--on-primary:#ffffff;--v18-header-a:#294d46;--v18-header-b:#315c53;--nav-text:#ffffff;--chip-bg:#e5f3ee;--chip-text:#2f514a;--outline:#7d9790;--surface-solid:#f8fffc;--input-bg:#f8fffc;--input-text:#244038;--map-sheet-bg:#f8fffc;--map-sheet-text:#244038;--map-fab-bg:#f8fffc;--map-fab-text:#244038;--theme-swatch:#4f8174;}
html[data-theme="sumi-noir"]{--v18-canvas-a:#141719;--v18-canvas-b:#202427;--v18-surface:#202427;--v18-surface-2:#30363a;--text:#fbf7f0;--muted-text:#d6d1ca;--heading:#fffaf2;--primary:#d2b18c;--on-primary:#202427;--v18-header-a:#141719;--v18-header-b:#282e31;--nav-text:#fffaf2;--chip-bg:#30363a;--chip-text:#fffaf2;--outline:#8b8e8f;--surface-solid:#202427;--input-bg:#202427;--input-text:#fbf7f0;--map-sheet-bg:#202427;--map-sheet-text:#fbf7f0;--map-fab-bg:#202427;--map-fab-text:#fbf7f0;--theme-swatch:#b69269;}
html[data-theme="matcha-studio"]{--v18-canvas-a:#e1ead4;--v18-canvas-b:#fbfdf6;--v18-surface:#fbfdf6;--v18-surface-2:#eff4e6;--text:#304026;--muted-text:#5d6c4d;--heading:#40552d;--primary:#53672e;--on-primary:#ffffff;--v18-header-a:#354723;--v18-header-b:#40552d;--nav-text:#fffef8;--chip-bg:#edf3e5;--chip-text:#455635;--outline:#889677;--surface-solid:#fbfdf6;--input-bg:#fbfdf6;--input-text:#304026;--map-sheet-bg:#fbfdf6;--map-sheet-text:#304026;--map-fab-bg:#fbfdf6;--map-fab-text:#304026;--theme-swatch:#6c853f;}
html[data-theme="fuji-dawn"]{--v18-canvas-a:#dceaf5;--v18-canvas-b:#f8fbff;--v18-surface:#f8fbff;--v18-surface-2:#edf4fb;--text:#2e4052;--muted-text:#596a7c;--heading:#334f70;--primary:#456789;--on-primary:#ffffff;--v18-header-a:#2b4662;--v18-header-b:#334f70;--nav-text:#ffffff;--chip-bg:#e9f1f9;--chip-text:#38506a;--outline:#8393a3;--surface-solid:#f8fbff;--input-bg:#f8fbff;--input-text:#2e4052;--map-sheet-bg:#f8fbff;--map-sheet-text:#2e4052;--map-fab-bg:#f8fbff;--map-fab-text:#2e4052;--theme-swatch:#54779b;}
html[data-theme="tea-house"]{--v18-canvas-a:#211a16;--v18-canvas-b:#312720;--v18-surface:#312720;--v18-surface-2:#46372f;--text:#fff9f1;--muted-text:#dfd1c5;--heading:#fff7ec;--primary:#d9a67d;--on-primary:#2a201b;--v18-header-a:#211915;--v18-header-b:#49342a;--nav-text:#fff9f1;--chip-bg:#46372f;--chip-text:#fff7ee;--outline:#9f8a7d;--surface-solid:#312720;--input-bg:#312720;--input-text:#fff9f1;--map-sheet-bg:#312720;--map-sheet-text:#fff9f1;--map-fab-bg:#312720;--map-fab-text:#fff9f1;--theme-swatch:#c9956e;}
html[data-theme="snow-camellia"]{--v18-canvas-a:#f3e8e8;--v18-canvas-b:#fffaf9;--v18-surface:#fffaf9;--v18-surface-2:#f8eded;--text:#482f34;--muted-text:#6d5459;--heading:#63313f;--primary:#8f3449;--on-primary:#ffffff;--v18-header-a:#552a36;--v18-header-b:#63313f;--nav-text:#fffaf9;--chip-bg:#f7e8e8;--chip-text:#553840;--outline:#978386;--surface-solid:#fffaf9;--input-bg:#fffaf9;--input-text:#482f34;--map-sheet-bg:#fffaf9;--map-sheet-text:#482f34;--map-fab-bg:#fffaf9;--map-fab-text:#482f34;--theme-swatch:#a63f55;}
html[data-theme="aurora-bubbles"]{--v18-canvas-a:#d9f2f1;--v18-canvas-b:#f9fbff;--v18-surface:#ffffff;--v18-surface-2:#e9f3f8;--text:#19353f;--muted-text:#526a73;--heading:#143c50;--primary:#256f89;--on-primary:#ffffff;--v18-header-a:#203a5b;--v18-header-b:#315e78;--nav-text:#fffaf0;--chip-bg:#e5f5f5;--chip-text:#254c59;--outline:#779399;--surface-solid:#ffffff;--input-bg:#ffffff;--input-text:#19353f;--map-sheet-bg:#ffffff;--map-sheet-text:#19353f;--map-fab-bg:#ffffff;--map-fab-text:#19353f;--theme-swatch:#256f89;}
html[data-theme="rainbow-pop"]{--v18-canvas-a:#f7e2f1;--v18-canvas-b:#fffaf7;--v18-surface:#ffffff;--v18-surface-2:#f2ebff;--text:#342b49;--muted-text:#685e79;--heading:#4b3377;--primary:#6546b5;--on-primary:#ffffff;--v18-header-a:#3b275f;--v18-header-b:#684b91;--nav-text:#fffaf0;--chip-bg:#f3e8ff;--chip-text:#51356d;--outline:#91839f;--surface-solid:#ffffff;--input-bg:#ffffff;--input-text:#342b49;--map-sheet-bg:#ffffff;--map-sheet-text:#342b49;--map-fab-bg:#ffffff;--map-fab-text:#342b49;--theme-swatch:#6546b5;}
html[data-theme="cosmic-spark"]{--v18-canvas-a:#10152e;--v18-canvas-b:#1a2043;--v18-surface:#1b2146;--v18-surface-2:#282c59;--text:#fff8ec;--muted-text:#d4d8ec;--heading:#fff3cf;--primary:#f2b858;--on-primary:#241a08;--v18-header-a:#111530;--v18-header-b:#29275c;--nav-text:#fff8ec;--chip-bg:#303568;--chip-text:#fff7e8;--outline:#8e92b9;--surface-solid:#1b2146;--input-bg:#1b2146;--input-text:#fff8ec;--map-sheet-bg:#1b2146;--map-sheet-text:#fff8ec;--map-fab-bg:#1b2146;--map-fab-text:#fff8ec;--theme-swatch:#f2b858;}
html[data-theme="bubblegum-sky"]{--v18-canvas-a:#ffe6f2;--v18-canvas-b:#f2f8ff;--v18-surface:#fffafd;--v18-surface-2:#f8eaf4;--text:#482d44;--muted-text:#755b70;--heading:#71345c;--primary:#a93f78;--on-primary:#ffffff;--v18-header-a:#5b315d;--v18-header-b:#9b4d86;--nav-text:#fffaf0;--chip-bg:#f9e5f2;--chip-text:#623b5b;--outline:#a48a9d;--surface-solid:#fffafd;--input-bg:#fffafd;--input-text:#482d44;--map-sheet-bg:#fffafd;--map-sheet-text:#482d44;--map-fab-bg:#fffafd;--map-fab-text:#482d44;--theme-swatch:#c24f8b;}
html[data-theme="neon-garden"]{--v18-canvas-a:#0d201c;--v18-canvas-b:#15332d;--v18-surface:#17372f;--v18-surface-2:#22483e;--text:#f3fff9;--muted-text:#c6ded5;--heading:#d9fff0;--primary:#7fe4bd;--on-primary:#10251f;--v18-header-a:#102923;--v18-header-b:#215446;--nav-text:#f6fff9;--chip-bg:#28584b;--chip-text:#eefff8;--outline:#75a99a;--surface-solid:#17372f;--input-bg:#17372f;--input-text:#f3fff9;--map-sheet-bg:#17372f;--map-sheet-text:#f3fff9;--map-fab-bg:#17372f;--map-fab-text:#f3fff9;--theme-swatch:#7fe4bd;}
html[data-theme="sunset-jump"]{--v18-canvas-a:#ffe1cf;--v18-canvas-b:#fff8ef;--v18-surface:#fffaf5;--v18-surface-2:#f8e6dc;--text:#4b2e35;--muted-text:#765961;--heading:#743346;--primary:#a93b5d;--on-primary:#ffffff;--v18-header-a:#633247;--v18-header-b:#a84e69;--nav-text:#fffaf0;--chip-bg:#fae6e4;--chip-text:#643c48;--outline:#9d8585;--surface-solid:#fffaf5;--input-bg:#fffaf5;--input-text:#4b2e35;--map-sheet-bg:#fffaf5;--map-sheet-text:#4b2e35;--map-fab-bg:#fffaf5;--map-fab-text:#4b2e35;--theme-swatch:#b84668;}
html[data-theme="prism-party"]{--v18-canvas-a:#12132b;--v18-canvas-b:#242243;--v18-surface:#252444;--v18-surface-2:#36325a;--text:#fffaff;--muted-text:#dad4ee;--heading:#effcff;--primary:#a7f0ff;--on-primary:#10282f;--v18-header-a:#16162d;--v18-header-b:#39325d;--nav-text:#fffaff;--chip-bg:#3c3864;--chip-text:#fffaff;--outline:#9b96bb;--surface-solid:#252444;--input-bg:#252444;--input-text:#fffaff;--map-sheet-bg:#252444;--map-sheet-text:#fffaff;--map-fab-bg:#252444;--map-fab-text:#fffaff;--theme-swatch:#a7f0ff;}
/* === v19 final semantic palette layer: keep last in file === */
body{color:var(--text)!important;background:linear-gradient(145deg,var(--v18-canvas-a),var(--v18-canvas-b))!important}
.topbar,.mobile-nav{background:linear-gradient(118deg,var(--v18-header-a),var(--v18-header-b))!important;color:var(--nav-text)!important}
.topbar a,.topbar summary,.mobile-nav a,.brand h1,.topbar .eyebrow,.theme-switcher summary{color:var(--nav-text)!important;-webkit-text-fill-color:var(--nav-text)!important}
.panel,.place-card,.check-card,.idea-card,.pin-card,.booking-card,.food-card,.route-card,.list-row,.day-tile,.savebar,.tabs,.transit-composer{background:linear-gradient(145deg,var(--v18-surface),var(--v18-surface-2))!important;color:var(--text)!important;border-color:var(--outline)!important}
h1,h2,h3,h4,h5,h6,.section-head h2,.section-head h3,.metric strong,.day-tile strong,details summary{color:var(--heading)!important}
.muted,.field,.day-btn small,.metric small,.map-popup small,.idea-source,.idea-coords,.empty{color:var(--muted-text)!important}
input,select,textarea{background:var(--input-bg)!important;color:var(--input-text)!important;-webkit-text-fill-color:var(--input-text)!important;border-color:var(--outline)!important}
/* iOS and desktop native option menus are rendered by the OS. Force a stable readable pair. */
select{color-scheme:light!important}select option,select optgroup{background:#fffdf8!important;color:#203833!important;-webkit-text-fill-color:#203833!important}
.button,button{color:var(--text)!important;background:linear-gradient(135deg,var(--v18-surface),var(--chip-bg))!important;border-color:var(--outline)!important}.button.primary,button.primary,.tab.active,.segmented button.active,.day-btn.active{color:var(--on-primary)!important;-webkit-text-fill-color:var(--on-primary)!important;background:var(--primary)!important;border-color:var(--primary)!important}.chip,.pill,.compact-toggle,.route-ribbon span{background:var(--chip-bg)!important;color:var(--chip-text)!important;border-color:var(--outline)!important}
/* Popup menus use a fixed neutral pair so dark-theme inheritance cannot create white on white. */
.more-menu,.theme-menu{background:#fffdf8!important;color:#203833!important;border-color:#8b988f!important}.more-menu a,.theme-menu button,.theme-menu span,.theme-menu .eyebrow{color:#203833!important;-webkit-text-fill-color:#203833!important}.theme-menu button{background:#f6f0e7!important}.theme-menu button:hover,.more-menu a:hover{background:#e7f2ef!important;color:#203833!important;-webkit-text-fill-color:#203833!important}
.hero{color:#fffaf0!important;background-image:linear-gradient(90deg,rgba(18,34,31,.96),rgba(18,34,31,.77) 54%,rgba(18,34,31,.20)),var(--page-banner)!important}.hero h2,.hero h3,.hero p,.hero .eyebrow{color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important}
/* Marker anchor is exclusively owned by MapLibre. Never transform it or its button. */
.map-marker-host{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;pointer-events:auto!important;filter:none!important;box-shadow:none!important;transition:none!important}
.map-marker-host:hover,.map-marker-host:focus-within{filter:none!important;box-shadow:none!important;transform:none!important}
.map-pin{appearance:none!important;position:relative!important;display:grid!important;place-items:center!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;filter:none!important;color:transparent!important;transform:none!important;transition:none!important}
.map-pin:hover,.map-pin:active,.map-pin:focus,.map-pin:focus-visible{background:transparent!important;box-shadow:none!important;filter:none!important;transform:none!important}
.map-pin-core{display:block!important;width:17px!important;height:17px!important;border:2px solid var(--pin-halo,#fff7e7)!important;border-radius:50%!important;background:var(--pin-color,#536547)!important;box-shadow:0 3px 12px rgba(45,38,31,.44)!important;transition:box-shadow .16s ease!important;will-change:box-shadow!important}
.map-pin.idea .map-pin-core{border-radius:4px!important;transform:rotate(45deg)!important}.map-pin:hover .map-pin-core,.map-pin:focus-visible .map-pin-core{box-shadow:0 4px 16px rgba(45,38,31,.62),0 0 0 5px color-mix(in srgb,var(--pin-color,#536547) 28%,transparent)!important}.map-focus-pin .map-pin-core{animation:v19PinHalo 1.7s ease-in-out infinite!important}@keyframes v19PinHalo{0%,100%{box-shadow:0 3px 12px rgba(45,38,31,.44),0 0 0 0 rgba(212,145,61,.42)}50%{box-shadow:0 4px 14px rgba(45,38,31,.55),0 0 0 8px rgba(212,145,61,0)}}
/* playful background system */
body::before,body::after{content:"";position:fixed;inset:-18vmax;z-index:0;pointer-events:none;opacity:.45;filter:blur(24px);animation:v19Float 24s ease-in-out infinite alternate}.app{position:relative;z-index:2}.ink-spark-field{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.ink-spark-field i{position:absolute;width:6px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--primary) 68%,#fff);box-shadow:0 0 18px color-mix(in srgb,var(--primary) 52%,transparent);opacity:.42;animation:v19Spark 9s ease-in-out infinite}.ink-spark-field i:nth-child(1){left:8%;top:18%;animation-delay:-1s}.ink-spark-field i:nth-child(2){left:20%;top:72%;animation-delay:-3s}.ink-spark-field i:nth-child(3){left:38%;top:30%;animation-delay:-7s}.ink-spark-field i:nth-child(4){left:55%;top:82%;animation-delay:-5s}.ink-spark-field i:nth-child(5){left:67%;top:15%;animation-delay:-9s}.ink-spark-field i:nth-child(6){left:80%;top:64%;animation-delay:-2s}.ink-spark-field i:nth-child(7){left:91%;top:28%;animation-delay:-6s}.ink-spark-field i:nth-child(8){left:46%;top:55%;animation-delay:-4s}
html[data-fx="bubbles"] body::before,html[data-fx="bubblegum"] body::before{background:radial-gradient(circle at 12% 24%,rgba(110,197,227,.42) 0 4%,transparent 5%),radial-gradient(circle at 70% 18%,rgba(248,163,105,.30) 0 5%,transparent 6%),radial-gradient(circle at 86% 74%,rgba(209,58,146,.28) 0 7%,transparent 8%),radial-gradient(circle at 36% 82%,rgba(101,180,206,.34) 0 6%,transparent 7%)}
html[data-fx="rainbow"] body::before,html[data-fx="prism"] body::before{background:conic-gradient(from 50deg at 52% 48%,rgba(248,101,101,.32),rgba(248,163,105,.28),rgba(247,213,108,.24),rgba(200,216,53,.22),rgba(110,197,227,.28),rgba(209,58,146,.28),rgba(248,101,101,.32))}
html[data-fx="aurora"] body::before,html[data-fx="cosmic"] body::before{background:radial-gradient(ellipse at 20% 32%,rgba(127,228,189,.34),transparent 30%),radial-gradient(ellipse at 76% 22%,rgba(110,197,227,.34),transparent 29%),radial-gradient(ellipse at 54% 78%,rgba(209,58,146,.24),transparent 31%)}
html[data-fx="neon"] body::before,html[data-fx="color-jumps"] body::before{background:linear-gradient(120deg,rgba(127,228,189,.28),transparent 26%,rgba(209,58,146,.26) 48%,transparent 70%,rgba(247,213,108,.24))}
html[data-fx="sunset"] body::before,html[data-fx="lanterns"] body::before{background:radial-gradient(circle at 14% 28%,rgba(248,163,105,.34),transparent 22%),radial-gradient(circle at 82% 62%,rgba(248,101,101,.26),transparent 26%),radial-gradient(circle at 52% 18%,rgba(247,213,108,.20),transparent 18%)}
html[data-fx="sparkles"] .ink-spark-field i,html[data-fx="stars"] .ink-spark-field i,html[data-fx="cosmic"] .ink-spark-field i,html[data-fx="prism"] .ink-spark-field i{opacity:.76;width:7px;height:7px}
html[data-fx-level="calm"] body::before,html[data-fx-level="calm"] body::after,html[data-fx-level="calm"] .ink-spark-field{display:none!important}html[data-fx-level="subtle"] body::before,html[data-fx-level="subtle"] body::after{opacity:.20!important}html[data-fx-level="subtle"] .ink-spark-field{opacity:.42}html[data-fx-level="max"] body::before,html[data-fx-level="max"] body::after{opacity:.80!important;filter:blur(14px)}html[data-fx-level="max"] .ink-spark-field i{width:8px;height:8px;opacity:.88}
@keyframes v19Float{from{transform:translate3d(-2%,-1%,0) rotate(-2deg) scale(1)}to{transform:translate3d(3%,3%,0) rotate(3deg) scale(1.07)}}@keyframes v19Spark{0%,100%{transform:translateY(0) scale(.8);opacity:.18}50%{transform:translateY(-32px) scale(1.55);opacity:.68}}
.jhtc-network-pill,.jhtc-cloud-pill{position:fixed;z-index:120;right:12px;padding:7px 10px;border-radius:999px;border:1px solid var(--outline);font-size:.68rem;font-weight:850;box-shadow:var(--soft)}.jhtc-network-pill{bottom:12px;background:var(--v18-surface);color:var(--text)}.jhtc-cloud-pill{bottom:48px;background:var(--v18-surface);color:var(--text)}.jhtc-cloud-pill[data-tone="ok"]{background:#e5f2e6!important;color:#24532e!important}.jhtc-cloud-pill[data-tone="warn"]{background:#fff0da!important;color:#7b511d!important}
@media(prefers-reduced-motion:reduce){body::before,body::after,.ink-spark-field i,.map-focus-pin .map-pin-core{animation:none!important}}



/* === v20 native-layer map pins, iPhone SE travel mode, visible seal, and richer motifs === */
.seal{background:#fff4df!important;color:#8d241e!important;-webkit-text-fill-color:#8d241e!important;border:2px solid #cba673!important;box-shadow:0 3px 12px rgba(31,38,32,.22),inset 0 0 0 1px rgba(255,255,255,.62)!important;text-shadow:none!important}
.page-map .map-page-banner{display:none!important}.page-map .map-experience{height:calc(100dvh - 70px)!important;min-height:520px!important}.page-map #map{height:100%!important;min-height:0!important}
/* DOM markers are no longer used for itinerary pins. MapLibre circle layers own geographic placement. */
.map-marker-host,.map-pin,.map-pin-core{transition:none!important;animation:none!important;transform:none!important}
.map-transit-dock{position:absolute;z-index:24;left:14px;right:14px;bottom:16px;pointer-events:none}.map-route-dock-inner{display:flex;gap:8px;align-items:center;justify-content:space-between;max-width:760px;padding:8px;margin:auto;border:1px solid var(--outline);border-radius:15px;background:color-mix(in srgb,var(--map-sheet-bg) 95%,transparent);color:var(--map-sheet-text);box-shadow:var(--shadow);backdrop-filter:blur(16px);pointer-events:auto}.route-dock-status{display:grid;gap:2px;text-align:left;min-width:0;flex:1;border:0!important;background:transparent!important;padding:4px 6px!important;box-shadow:none!important;transform:none!important;color:var(--map-sheet-text)!important}.route-dock-status b{font-size:.74rem}.route-dock-status span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;color:var(--muted-text)}.route-dock-actions{display:flex;gap:5px;align-items:center}.route-dock-actions button,.route-dock-actions .button{min-width:34px;min-height:34px;padding:6px 8px!important;font-size:.72rem!important}.disabled{pointer-events:none!important;opacity:.46!important}
.map-popup-actions button{padding:7px 8px!important;font-size:.72rem!important;min-height:32px!important}.map-popup-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.map-popup-actions a{font-size:.73rem;font-weight:800}
.ink-spark-field .motif{position:absolute;display:block;opacity:.28;filter:drop-shadow(0 0 12px color-mix(in srgb,var(--primary) 38%,transparent));animation:v20Motif 16s ease-in-out infinite alternate}.ink-spark-field .petal{left:12%;top:44%;width:18px;height:10px;border-radius:90% 10% 90% 10%;background:color-mix(in srgb,var(--primary) 55%,#fff)}.ink-spark-field .diamond{left:84%;top:34%;width:13px;height:13px;transform:rotate(45deg);border:2px solid color-mix(in srgb,var(--primary) 62%,#fff)}.ink-spark-field .brush{left:28%;top:16%;width:56px;height:8px;border-radius:99px 12px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--primary) 44%,transparent),transparent)}.ink-spark-field .star{left:72%;top:78%;width:18px;height:18px;background:color-mix(in srgb,var(--primary) 48%,#fff);clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%)}.ink-spark-field .ribbon{left:42%;top:88%;width:74px;height:15px;border:3px solid color-mix(in srgb,var(--primary) 36%,transparent);border-left-color:transparent;border-right-color:transparent;border-radius:50%}.ink-spark-field .leaf{left:92%;top:56%;width:20px;height:12px;border-radius:100% 0 100% 0;background:color-mix(in srgb,var(--primary) 42%,#fff)}
@keyframes v20Motif{from{translate:0 0;rotate:-5deg;scale:.9}to{translate:18px -28px;rotate:12deg;scale:1.15}}
.page-map .ink-spark-field,.page-map::before,.page-map::after{opacity:.18!important}
@media(max-width:720px){.page-map .map-experience{height:calc(100dvh - 54px)!important}.map-transit-dock{left:7px;right:7px;bottom:calc(74px + env(safe-area-inset-bottom))}.map-route-dock-inner{padding:5px 6px;border-radius:13px}.route-dock-status{padding:3px!important}.route-dock-actions button,.route-dock-actions .button{min-width:30px;min-height:30px;padding:4px 6px!important}.map-summary{bottom:calc(124px + env(safe-area-inset-bottom))!important}.maplibregl-ctrl-bottom-right{bottom:168px!important}}
@media(max-width:390px), (max-height:700px) and (max-width:480px){.topbar{min-height:48px!important;padding:6px 8px!important;gap:5px!important}.brand{gap:0!important}.brand>div{display:none!important}.seal{width:35px!important;height:35px!important;border-radius:12px!important;font-size:.98rem!important}.theme-switcher summary{padding:6px 7px!important}.theme-switcher .theme-label{display:none!important}.theme-menu{position:fixed!important;left:8px!important;right:8px!important;top:50px!important;width:auto!important;max-height:66vh!important;overflow:auto!important}.page{padding:7px 7px 88px!important}.hero{min-height:168px!important;padding:14px!important;border-radius:16px!important}.hero h2{font-size:1.82rem!important}.hero p{font-size:.78rem!important;line-height:1.38!important}.hero-kicker{margin-bottom:7px!important}.hero-kicker span{font-size:.52rem!important;padding:4px 6px!important}.button,button{min-height:34px!important;padding:7px 8px!important;font-size:.72rem!important}.panel.card{padding:10px!important}.section{margin-top:9px!important}.section-head h2{font-size:1.24rem!important}.mobile-nav{left:5px!important;right:5px!important;padding:4px!important;border-radius:15px!important}.mobile-nav a{padding:4px 2px!important;font-size:.55rem!important}.mobile-nav a span{font-size:.9rem!important}.map-quickbar{left:6px!important;right:6px!important;top:6px!important;gap:4px!important}.map-fab{width:34px!important;height:34px!important;min-height:34px!important}.map-summary{left:6px!important;max-width:calc(100% - 12px)!important;font-size:.58rem!important;padding:5px 7px!important}.map-sheet{left:5px!important;right:5px!important;bottom:calc(5px + env(safe-area-inset-bottom))!important;max-height:74vh!important;border-radius:18px!important;padding:8px 9px 10px!important}.map-sheet-head h3{font-size:1.05rem!important}.map-sheet-grid select{font-size:.69rem!important}.map-toggle-row{display:grid!important;grid-template-columns:1fr 1fr}.transit-composer{padding:8px!important;gap:6px!important}.transit-composer h4{font-size:.95rem!important}.transit-composer .muted{font-size:.7rem!important}.route-dock-status b{font-size:.65rem!important}.route-dock-status span{font-size:.58rem!important;max-width:154px}.route-dock-actions .button{font-size:.64rem!important}.ink-spark-field .motif{opacity:.16!important}.ink-spark-field i:nth-child(n+6){display:none!important}}

/* v21: grouped themes, readable tables, compact desktop layouts, first-run gate */
html[data-theme="dawn-lilac"]{--v18-canvas-a:#eee9fa;--v18-canvas-b:#fcfbff;--v18-surface:#fff;--v18-surface-2:#f4f0fb;--text:#352f49;--muted-text:#655e78;--heading:#4b3f70;--primary:#6e5b9a;--on-primary:#fff;--v18-header-a:#44395f;--v18-header-b:#66578b;--nav-text:#fff;--chip-bg:#f1eef9;--chip-text:#453b61;--outline:#8b84a0;--surface-solid:#fff;--input-bg:#fff;--input-text:#352f49;--map-sheet-bg:#fff;--map-sheet-text:#352f49;--map-fab-bg:#fff;--map-fab-text:#352f49;--theme-swatch:#6e5b9a}
html[data-theme="sunlit-ochre"]{--v18-canvas-a:#f7edd8;--v18-canvas-b:#fffaf0;--v18-surface:#fffdf7;--v18-surface-2:#f7ead0;--text:#3d301b;--muted-text:#6d5b3d;--heading:#58411d;--primary:#8b6420;--on-primary:#fff;--v18-header-a:#503a1d;--v18-header-b:#795a2d;--nav-text:#fffaf0;--chip-bg:#f4e5c7;--chip-text:#493717;--outline:#9f8a62;--surface-solid:#fffdf7;--input-bg:#fffdf7;--input-text:#3d301b;--map-sheet-bg:#fffdf7;--map-sheet-text:#3d301b;--map-fab-bg:#fffdf7;--map-fab-text:#3d301b;--theme-swatch:#8b6420}
html[data-theme="midnight-camellia"]{--v18-canvas-a:#1b1d2e;--v18-canvas-b:#28263b;--v18-surface:#2d2a40;--v18-surface-2:#363249;--text:#fff8ef;--muted-text:#d1c6d3;--heading:#ffd7df;--primary:#e8899f;--on-primary:#2d1720;--v18-header-a:#191b2b;--v18-header-b:#413047;--nav-text:#fff8ef;--chip-bg:#42364e;--chip-text:#fff5ef;--outline:#8c7d99;--surface-solid:#2d2a40;--input-bg:#242337;--input-text:#fff8ef;--map-sheet-bg:#2d2a40;--map-sheet-text:#fff8ef;--map-fab-bg:#363249;--map-fab-text:#fff8ef;--theme-swatch:#e8899f;color-scheme:dark}
html[data-theme="deep-teal-night"]{--v18-canvas-a:#102c31;--v18-canvas-b:#183b40;--v18-surface:#20464a;--v18-surface-2:#295459;--text:#f7fffc;--muted-text:#c0dad7;--heading:#d6fff2;--primary:#87d9c8;--on-primary:#102c31;--v18-header-a:#0d262a;--v18-header-b:#1e4a50;--nav-text:#f7fffc;--chip-bg:#28565a;--chip-text:#f4fffc;--outline:#6d9b9e;--surface-solid:#20464a;--input-bg:#173b40;--input-text:#f7fffc;--map-sheet-bg:#20464a;--map-sheet-text:#f7fffc;--map-fab-bg:#295459;--map-fab-text:#f7fffc;--theme-swatch:#87d9c8;color-scheme:dark}
html[data-theme="moonstone-night"]{--v18-canvas-a:#202731;--v18-canvas-b:#2e3741;--v18-surface:#37424d;--v18-surface-2:#414d58;--text:#fbfcfd;--muted-text:#ccd4da;--heading:#e4f0fa;--primary:#a9c7df;--on-primary:#1f2b34;--v18-header-a:#1b242d;--v18-header-b:#364653;--nav-text:#fbfcfd;--chip-bg:#485661;--chip-text:#fbfcfd;--outline:#8796a1;--surface-solid:#37424d;--input-bg:#2d3943;--input-text:#fbfcfd;--map-sheet-bg:#37424d;--map-sheet-text:#fbfcfd;--map-fab-bg:#414d58;--map-fab-text:#fbfcfd;--theme-swatch:#a9c7df;color-scheme:dark}
.theme-menu{width:min(92vw,390px);max-height:min(80vh,720px);overflow:hidden}.theme-menu-scroll{max-height:min(66vh,590px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.theme-group{display:grid;gap:4px;margin:8px 0 13px}.theme-group h4{position:sticky;top:0;z-index:2;margin:0;padding:7px 6px;background:var(--surface-solid);color:var(--heading);border-bottom:1px solid var(--outline);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.theme-menu button{width:100%;text-align:left}
/* Native dropdown rows and decision tables must not inherit invisible combinations. */
select,select option,select optgroup{background-color:var(--input-bg)!important;color:var(--input-text)!important}select optgroup{font-weight:800}table{width:100%;border-collapse:separate;border-spacing:0;color:var(--text);background:var(--surface-solid);border:1px solid var(--outline);border-radius:12px;overflow:hidden}thead th{background:var(--chip-bg)!important;color:var(--chip-text)!important}tbody td{background:color-mix(in srgb,var(--surface-solid) 96%,var(--chip-bg))!important;color:var(--text)!important;border-top:1px solid var(--outline)}th,td{padding:8px 9px;text-align:left;vertical-align:top}tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-solid) 88%,var(--chip-bg))!important}
.guardrail-note{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;margin:8px 0 12px;border-left:3px solid var(--primary);background:color-mix(in srgb,var(--chip-bg) 74%,transparent);border-radius:9px;font-size:.76rem;line-height:1.35}.guardrail-note strong{white-space:nowrap;color:var(--heading)}
.idea-list{display:grid;gap:8px}.idea-list details{background:var(--surface-solid);border:1px solid var(--outline);border-radius:12px;padding:8px 10px}.idea-list details[open]{box-shadow:var(--soft)}.idea-list summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;list-style:none}.idea-list summary::-webkit-details-marker{display:none}.idea-list-summary{min-width:0}.idea-list-summary b{display:block}.idea-list-summary small{display:block;color:var(--muted-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.idea-filter-grid,.pins-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.offline-setup-gate{margin:0 0 12px}.offline-required-card,.offline-ready-card{display:flex;gap:12px;align-items:center;text-decoration:none;padding:13px 15px;border-radius:16px;border:1px solid var(--outline);box-shadow:var(--soft)}.offline-required-card{background:linear-gradient(135deg,#fff0cf,#f9d5a7);color:#4a3010}.offline-ready-card{background:linear-gradient(135deg,#e7f4ea,#d7eadf);color:#1f4631}.offline-gate-icon{display:grid;place-items:center;flex:0 0 33px;width:33px;height:33px;border-radius:50%;background:rgba(255,255,255,.66);font-size:1.1rem;font-weight:900}.offline-setup-gate small{display:block;margin-top:2px;line-height:1.35}.offline-setup-gate code{font-size:.72rem}
.today-ops-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:12px;align-items:start}.today-side-stack{display:grid;gap:12px}.compact-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.compact-check-grid .today-check{min-width:0;padding:7px;border:1px solid var(--outline);border-radius:9px;background:color-mix(in srgb,var(--surface-solid) 92%,var(--chip-bg))}
@media(min-width:1080px){.page{max-width:1480px;padding-inline:28px}.section.grid.two.desktop-efficient{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.food-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.panel.card{min-width:0}}
@media(max-width:720px){.theme-menu{position:fixed;left:10px;right:10px;top:66px;width:auto;max-height:74vh}.theme-menu-scroll{max-height:57vh}.today-ops-grid{grid-template-columns:1fr}.compact-check-grid{grid-template-columns:1fr}.offline-required-card,.offline-ready-card{padding:10px 11px;border-radius:12px}.offline-setup-gate small{font-size:.7rem}.page{padding-inline:10px}.section{margin:11px 0}.panel,.card{padding:10px}.map-transit-dock{left:8px!important;right:8px!important;bottom:calc(58px + env(safe-area-inset-bottom))!important}.map-quickbar{gap:5px!important}.map-fab{padding:6px 7px!important}.map-fab span{font-size:.63rem!important}}

/* === development build: richer but background-safe motion system === */
.dev-build-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:3px 7px;border-radius:999px;background:#fff1d6;color:#7f2e27;border:1px solid #d8b47a;font-size:.62rem;font-weight:900;letter-spacing:.12em;box-shadow:0 2px 10px rgba(34,32,28,.15)}
.ink-spark-field .motif-wave{left:4%;top:78%;width:118px;height:28px;border-top:4px solid color-mix(in srgb,#6ec5e3 62%,transparent);border-radius:55% 45% 0 0;animation-duration:20s}
.ink-spark-field .motif-comet{left:78%;top:12%;width:72px;height:4px;border-radius:999px;background:linear-gradient(90deg,transparent,#f8a369,#f7d56c);box-shadow:18px 0 16px rgba(247,213,108,.45);animation-duration:11s}
.ink-spark-field .motif-ring{left:55%;top:22%;width:34px;height:34px;border:4px solid color-mix(in srgb,#d13a92 58%,transparent);border-radius:50%;animation-duration:18s}
.ink-spark-field .motif-sunburst{left:16%;top:12%;width:38px;height:38px;background:conic-gradient(from 0deg,transparent 0 8%,#f7d56c 9% 14%,transparent 15% 23%,#f86565 24% 29%,transparent 30% 39%,#6ec5e3 40% 45%,transparent 46% 100%);border-radius:50%;animation-duration:22s}
.ink-spark-field .motif-inkdrop{left:64%;top:70%;width:38px;height:46px;border-radius:60% 40% 62% 38%;background:radial-gradient(circle at 35% 30%,rgba(110,197,227,.66),rgba(209,58,146,.22),transparent 78%);filter:blur(2px);animation-duration:15s}
.ink-spark-field .motif-kite{left:34%;top:62%;width:24px;height:24px;background:linear-gradient(135deg,#f86565,#6ec5e3);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);animation-duration:13s}
.ink-spark-field .motif-confetti{width:10px;height:4px;border-radius:99px;opacity:.48;animation:vDevConfetti 12s linear infinite}
.ink-spark-field .c1{left:24%;top:35%;background:#f86565;animation-delay:-2s}.ink-spark-field .c2{left:48%;top:10%;background:#6ec5e3;animation-delay:-7s}.ink-spark-field .c3{left:73%;top:48%;background:#f7d56c;animation-delay:-5s}.ink-spark-field .c4{left:88%;top:82%;background:#d13a92;animation-delay:-10s}
@keyframes vDevConfetti{0%{translate:0 0;rotate:0deg;opacity:.15}45%{opacity:.64}100%{translate:28px -64px;rotate:220deg;opacity:.06}}
@media(max-width:720px){.ink-spark-field .motif-wave,.ink-spark-field .motif-ring,.ink-spark-field .motif-sunburst{opacity:.18}.ink-spark-field .motif-comet,.ink-spark-field .motif-confetti{opacity:.26}.dev-build-badge{font-size:.54rem;padding:2px 5px}}

/* 0.24.0-dev map-runtime repair overlay */
.map-runtime-repair{position:absolute;inset:16px;z-index:8;max-width:620px;margin:auto;align-self:center;padding:20px;border-radius:20px;background:var(--surface,#fffaf0);color:var(--text,#24322e);border:1px solid var(--outline,#70857a);box-shadow:0 16px 44px rgba(0,0,0,.18)}.map-runtime-repair code{display:inline-block;padding:.25rem .45rem;border-radius:.45rem;background:var(--surface-2,#efe6d4);color:var(--text,#24322e)}


/* 0.24.0-dev · complete mobile navigation, compact Ideas filters, and mobile-safe storage UX */
.mobile-more-overlay{position:fixed;inset:0;z-index:140;background:rgba(9,22,24,.42);display:grid;align-items:end;padding:10px 10px calc(78px + env(safe-area-inset-bottom));backdrop-filter:blur(4px)}.mobile-more-overlay[hidden]{display:none!important}.mobile-more-sheet{max-height:min(72vh,620px);overflow:auto;padding:12px;border:1px solid var(--outline);border-radius:20px;background:var(--surface-solid);color:var(--text);box-shadow:0 18px 48px rgba(0,0,0,.25)}.mobile-more-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.mobile-more-head h3{margin:0}.mobile-more-close{min-width:36px;min-height:36px;padding:4px 8px!important;border-radius:50%!important}.mobile-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.mobile-more-grid a{display:grid;place-items:center;gap:5px;min-height:62px;padding:8px 5px;text-decoration:none;text-align:center;border:1px solid var(--outline);border-radius:12px;background:var(--chip-bg);color:var(--chip-text);font-size:.7rem;font-weight:850}.mobile-more-grid a span{font-size:1rem}.mobile-nav .mobile-more-trigger{display:grid;place-items:center;gap:2px;border:0;border-radius:12px;padding:6px 4px!important;background:transparent!important;color:var(--nav-text)!important;box-shadow:none!important;font-size:.62rem;font-weight:800;opacity:.72}.mobile-nav .mobile-more-trigger span{font-size:1.05rem}.mobile-nav .mobile-more-trigger.active{opacity:1;background:rgba(255,255,255,.14)!important}.ideas-filter-summary{display:none}.ideas-filter-body{display:contents}
@media(max-width:720px){.desktop-nav{display:none!important}.mobile-nav{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.mobile-nav a,.mobile-nav .mobile-more-trigger{min-width:0}.ideas-filter-panel{position:sticky!important;top:54px!important;z-index:34!important;display:block!important;padding:0!important;overflow:hidden;background:color-mix(in srgb,var(--surface-solid) 96%,transparent)!important}.ideas-filter-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 11px;color:var(--heading);font-size:.8rem}.ideas-filter-summary small{color:var(--muted-text);font-size:.65rem;font-weight:700}.ideas-filter-body{display:block;padding:0 9px 9px}.ideas-filter-panel:not([open]) .ideas-filter-body{display:none}.ideas-filter-panel .filter-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ideas-filter-panel .search{grid-column:1/-1;min-width:0}.ideas-filter-panel .segmented{margin:8px 0 0}.page-ideas .hero{display:none}.page-ideas .section:first-of-type{margin-top:6px!important}.mobile-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:721px){.mobile-more-overlay{display:none!important}}


/* 0.24.0-dev · Photo Inbox Phase P1 */
.hero-photo-inbox{background:linear-gradient(90deg,rgba(32,56,51,.95),rgba(32,56,51,.72) 48%,rgba(32,56,51,.16)),url('assets/banners/hero-ideas.webp') center/cover}.photo-inbox-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:15px;align-items:start}.photo-inbox-side{position:sticky;top:82px}.photo-drop-zone{display:grid;place-items:center;gap:7px;min-height:185px;padding:22px;border:2px dashed color-mix(in srgb,var(--primary) 48%,var(--outline));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 84%,transparent),color-mix(in srgb,var(--chip-bg) 92%,transparent));text-align:center;cursor:pointer;transition:.2s ease}.photo-drop-zone:hover,.photo-drop-zone.dragging,.photo-drop-zone:focus-visible{border-color:var(--primary);background:color-mix(in srgb,var(--chip-bg) 82%,var(--surface));box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent);outline:0}.photo-drop-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--primary);color:var(--primary-text);font-size:1.65rem;font-weight:700}.photo-drop-zone small,.photo-card small{display:block;color:var(--muted-text);font-size:.72rem}.photo-filter-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(160px,.8fr) minmax(160px,.8fr);gap:9px}.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.photo-card{overflow:hidden;background:var(--surface);border:1px solid var(--outline);border-radius:16px;box-shadow:var(--soft)}.photo-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--chip-bg)}.photo-card-body{display:grid;gap:9px;padding:11px}.photo-card-title{display:flex;justify-content:space-between;gap:8px;align-items:start;min-width:0}.photo-card-title b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.favorite-toggle{display:grid;place-items:center;cursor:pointer}.favorite-toggle input{position:absolute;opacity:0;pointer-events:none}.favorite-toggle span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--outline);color:var(--muted-text);font-size:1.05rem;background:var(--chip-bg)}.favorite-toggle input:checked+span{color:#704900;background:#f7d56c;border-color:#d8a53a}.photo-card-status{display:flex;justify-content:space-between;gap:7px;align-items:center}.photo-card textarea{resize:vertical;min-height:58px}.empty-state{text-align:center}.compact-note{font-size:.8rem;line-height:1.45}.photo-picker-button{display:inline-flex;align-items:center}.photo-summary-grid .metric{padding:13px}.photo-summary-grid .metric strong{font-size:1.6rem}
@media(max-width:1120px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.photo-inbox-layout{grid-template-columns:1fr}.photo-inbox-side{position:static}.photo-filter-grid{grid-template-columns:1fr 1fr}.photo-filter-grid .field:first-child{grid-column:1/-1}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.photo-gallery{grid-template-columns:1fr}.photo-drop-zone{min-height:142px;padding:15px}.photo-defaults{grid-template-columns:1fr!important}.photo-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.photo-card-body{padding:10px}.photo-filter-grid{grid-template-columns:1fr}.photo-filter-grid .field:first-child{grid-column:auto}}

/* 0.24.0-dev · Photo Inbox Phase P2 preview repair and Drive queue */
.grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.photo-alert{padding:11px 14px;border-left:4px solid var(--primary)}.photo-alert p{margin:0}.photo-alert.warn{border-left-color:#b56c19}.photo-alert.success{border-left-color:#4e8068}.photo-alert.danger{border-left-color:#b34c56}.photo-thumb-button{display:block;width:100%;padding:0;border:0;border-radius:0;background:var(--chip-bg);cursor:zoom-in;text-align:center;overflow:hidden}.photo-thumb-button:hover,.photo-thumb-button:focus-visible{background:var(--chip-bg);outline:3px solid color-mix(in srgb,var(--primary) 42%,transparent);outline-offset:-3px}.photo-thumb-placeholder{display:grid;place-items:center;aspect-ratio:4/3;color:var(--muted-text);font-size:.8rem;line-height:1.45}.photo-thumb-fallback{display:grid;place-items:center;min-height:150px;padding:12px;color:var(--muted-text);font-size:.8rem}.photo-card-broken{border-color:#b56c19}.photo-drive-error{color:#9b3e45!important}.drive-panel{display:grid;gap:8px}.drive-settings{border-top:1px solid var(--outline);padding-top:8px}.drive-settings summary{cursor:pointer;font-weight:700;color:var(--heading-text);margin-bottom:8px}.drive-settings .field{margin-top:8px}.photo-modal{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:20px;background:rgba(10,15,18,.86);backdrop-filter:blur(9px)}.photo-modal[hidden]{display:none}.photo-modal img{max-width:min(96vw,1200px);max-height:82vh;object-fit:contain;border-radius:14px;box-shadow:0 18px 54px rgba(0,0,0,.38)}.photo-modal p{max-width:min(90vw,900px);margin:8px auto 0;color:#fff;text-align:center}.photo-modal-close{position:fixed;top:max(14px,env(safe-area-inset-top));right:16px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:1.7rem;background:#fff;color:#203833;border:0}.photo-card .button-row{gap:6px}.photo-card .button-row button,.photo-card .button-row .button{font-size:.73rem;padding:7px 9px}.photo-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.photo-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.photo-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.drive-settings .button-row,.drive-panel>.button-row{display:grid;grid-template-columns:1fr}.drive-settings .button-row button,.drive-panel>.button-row button{width:100%}}
