*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg: #121318;--surface: #1c1f2a;--surface-2: #252937;--border: #313548;--text: #e4e4e7;--text-dim: #9ca3af;--accent: #70b0d8;--accent-soft: rgba(112, 176, 216, .12);--font-ja: "Zen Maru Gothic", "Hiragino Maru Gothic Pro", sans-serif;--cost-color: #e2b93b;--cost-rm: #9ca3af;--radius: 14px;--radius-sm: 10px;--shadow: 0 2px 8px rgba(0, 0, 0, .25);--shadow-lifted: 0 6px 20px rgba(0, 0, 0, .3);--pill-text-active: #000;--nav-blur: rgba(18, 19, 24, .82);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--selection-bg: rgba(112, 176, 216, .3);--selection-text: #fff;--color-transport: #22d3ee;--color-food: #4ade80;--color-sightseeing: #60a5fa;--color-shopping: #facc15;--color-entertainment: #f472b6;--color-rest: #a8a29e;--pattern-opacity: .035;--cash-bg: rgba(220, 38, 38, .12);--cash-color: #f87171;--chip-bg: rgba(255, 255, 255, .06);--washi-opacity: .18;--grain-opacity: .03}[data-theme=light]{--bg: #f6f4f0;--surface: #ffffff;--surface-2: #f0ece5;--border: #ddd8ce;--text: #1c1c1e;--text-dim: #6b7280;--accent: #3d85ad;--accent-soft: rgba(61, 133, 173, .08);--cost-color: #a07010;--cost-rm: #8b7355;--radius: 14px;--radius-sm: 10px;--shadow: 0 2px 8px rgba(0, 0, 0, .05);--shadow-lifted: 0 6px 20px rgba(0, 0, 0, .08);--pill-text-active: #fff;--nav-blur: rgba(246, 244, 240, .82);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--selection-bg: rgba(61, 133, 173, .2);--selection-text: #1c1c1e;--color-transport: #0891b2;--color-food: #16a34a;--color-sightseeing: #2563eb;--color-shopping: #ca8a04;--color-entertainment: #db2777;--color-rest: #78716c;--pattern-opacity: .04;--cash-bg: rgba(220, 38, 38, .08);--cash-color: #dc2626;--chip-bg: rgba(0, 0, 0, .04);--washi-opacity: .12;--grain-opacity: .02}::selection{background:var(--selection-bg);color:var(--selection-text)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}html{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.65;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease;scroll-behavior:smooth}body{min-height:100vh;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cpath d='M0 40 C20 40 20 20 40 20 C60 20 60 40 80 40' fill='none' stroke='%239ca3af' stroke-width='0.6'/%3E%3Cpath d='M-40 40 C-20 40 -20 20 0 20 C20 20 20 40 40 40' fill='none' stroke='%239ca3af' stroke-width='0.6'/%3E%3Cpath d='M40 40 C60 40 60 20 80 20 C100 20 100 40 120 40' fill='none' stroke='%239ca3af' stroke-width='0.6'/%3E%3C/svg%3E");background-size:80px 40px;background-repeat:repeat;opacity:1}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);opacity:calc(1 - var(--pattern-opacity) * 3);z-index:-1;pointer-events:none}a{color:var(--accent);text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.skip-link{position:absolute;top:-100%;left:16px;padding:10px 18px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;z-index:100;transition:top .2s ease}.skip-link:focus{top:12px}.app{max-width:900px;margin:0 auto;padding:28px 20px 80px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(80px,calc(80px + env(safe-area-inset-bottom)))}.header{text-align:center;margin-bottom:32px;position:relative}.header h1{font-size:2rem;font-weight:700;margin-bottom:6px;letter-spacing:-.03em}.header-names{font-family:var(--font-ja);font-size:.95rem;font-weight:500;letter-spacing:.04em;color:var(--accent);opacity:.72;margin-bottom:2px}.header-amp{font-family:DM Sans,sans-serif;font-style:italic;font-size:.88em;margin:0 .1em}.subtitle{color:var(--text-dim);font-size:.88rem;letter-spacing:.01em}.theme-toggle{position:absolute;top:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:999px;width:44px;height:44px;font-size:1.15rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,transform .2s;box-shadow:var(--shadow)}.theme-toggle:hover{border-color:var(--accent);transform:scale(1.08)}.theme-toggle:focus-visible{box-shadow:var(--focus-ring)}.day-nav-sticky{position:sticky;top:0;z-index:20;background:var(--nav-blur);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin:0 -20px;padding:10px 20px 12px;transition:box-shadow .2s ease}.day-nav-sticky--scrolled{box-shadow:0 1px 12px #0000001a}.day-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pill{padding:8px 16px;min-height:44px;border-radius:999px;font-size:.82rem;font-weight:500;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease;white-space:nowrap;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative}.pill:hover{border-color:var(--pill-color, #888);color:var(--text);transform:translateY(-1px)}.pill-active{background:var(--pill-color, #888);color:var(--pill-text-active);border-color:var(--pill-color, #888);font-weight:600;box-shadow:var(--shadow-lifted)}.pill-active:hover{color:var(--pill-text-active);transform:none}.pill-city{font-size:.62rem;font-weight:400;opacity:.7;line-height:1}.pill-active .pill-city{opacity:.85}.pill-today{box-shadow:0 0 0 2px var(--accent)}.pill-today:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent)}.pill-active.pill-today:after{background:var(--pill-text-active)}.pill:focus-visible{box-shadow:var(--focus-ring)}.day-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);transition:background .2s;position:relative;overflow:hidden}.city-vignette{position:absolute;right:16px;bottom:0;height:50px;width:auto;opacity:.06;color:var(--text);pointer-events:none}.day-title-row{display:flex;align-items:center;gap:14px}.day-emoji,.day-icon{font-size:1.8rem;color:var(--accent);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);flex-shrink:0}.day-header h2{font-size:1.3rem;font-weight:700;margin-bottom:2px;letter-spacing:-.02em}.city-badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:.72rem;font-weight:600;color:#000}.city-alt{font-weight:500;opacity:.75}.day-budget{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-size:1.1rem;font-weight:600;color:var(--text)}.day-budget-rm{font-size:.78rem;font-weight:500;color:var(--text-dim)}.plan-switcher{display:flex;align-items:center;gap:8px;margin-bottom:18px;flex-wrap:wrap}.plan-label{font-size:.85rem;color:var(--text-dim);font-weight:500}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px;font-size:.78rem}.legend-item{display:flex;align-items:center;gap:6px}.schedule-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.schedule-card:hover{background:var(--surface-2);box-shadow:var(--shadow-lifted);transform:translateY(-1px)}.schedule-card--has-img{display:flex}.card-img-wrap{position:relative;width:180px;min-height:100px;flex-shrink:0;overflow:hidden}.img-ref-badge{position:absolute;bottom:4px;right:4px;font-family:var(--font-ja);font-size:9px;letter-spacing:.03em;line-height:1;padding:2px 5px;border-radius:3px;background:#0000008c;color:#ffffffd9;pointer-events:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.alt-img-wrap{position:relative;flex-shrink:0}.img-ref-badge--alt{font-size:8px;bottom:2px;right:2px;padding:1px 4px}.card-img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;transition:transform .3s ease,opacity .4s ease;opacity:0}.card-img.loaded{opacity:1}.schedule-card:hover .card-img{transform:scale(1.04)}.card-body{flex:1;padding:12px 16px;min-width:0}.card-header{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}.card-time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);font-size:.88rem;letter-spacing:-.01em}.card-cost{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--cost-color);font-weight:500;font-size:.85rem}.card-name{font-weight:600;font-size:.94rem;line-height:1.35;margin-bottom:4px}.name-alt{display:block;font-family:var(--font-ja);font-weight:400;font-size:.78em;opacity:.6;margin-top:2px;line-height:1.3}.card-detail{color:var(--text-dim);font-size:.84rem;line-height:1.55}.cost-rm{display:block;font-size:.72rem;font-weight:400;color:var(--cost-rm);margin-top:1px}.type-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:600;text-transform:capitalize;color:var(--badge-color);background:color-mix(in srgb,var(--badge-color) 12%,transparent);line-height:1.3;white-space:nowrap}.type-badge svg{flex-shrink:0}.type-badge-label{letter-spacing:.01em}.name-ja{display:block;font-family:var(--font-ja);font-weight:400;font-size:.82em;opacity:.65;margin-top:2px;line-height:1.4;letter-spacing:.02em}.card-info-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.info-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.72rem;font-weight:500;color:var(--text-dim);background:var(--chip-bg);white-space:nowrap;line-height:1.3}.info-chip svg{flex-shrink:0;opacity:.7}.info-chip--cash{color:var(--cash-color);background:var(--cash-bg);font-weight:600}.info-chip--link{color:var(--accent);text-decoration:none;cursor:pointer;transition:background .15s}.info-chip--link:hover{background:var(--accent-soft);text-decoration:none}.schedule-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:background .15s ease,box-shadow .2s ease,transform .15s ease;overflow:hidden;position:relative}.schedule-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 40%,transparent) 100%);opacity:var(--washi-opacity);border-radius:var(--radius) 0 0 var(--radius)}.schedule-card--no-img{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='30' viewBox='0 0 60 30'%3E%3Cpath d='M0 30 C15 30 15 15 30 15 C45 15 45 30 60 30' fill='none' stroke='%239ca3af' stroke-width='0.4'/%3E%3C/svg%3E");background-size:60px 30px;background-position:right bottom;background-repeat:repeat}.schedule-card--no-img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface);opacity:.94;pointer-events:none;border-radius:var(--radius)}.schedule-card--no-img>.card-body{position:relative;z-index:1}.cloud-divider{display:block;width:100%;height:20px;margin:8px 0;opacity:.08;color:var(--text-dim)}.schedule-gap{display:flex;align-items:center;gap:10px;padding:2px 0}.schedule-gap-line{flex:1;height:1px;background:var(--border);opacity:.5}.schedule-gap-label{font-size:.68rem;color:var(--text-dim);opacity:.6;white-space:nowrap;font-variant-numeric:tabular-nums}.alt-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 14px;min-height:36px;font-size:.72rem;font-weight:500;color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:all .2s ease;line-height:1.4}.alt-toggle:hover,.alt-toggle-open{border-color:var(--accent);background:var(--accent-soft)}.alt-toggle:focus-visible{box-shadow:var(--focus-ring)}.alt-panel{margin-top:10px;display:flex;flex-direction:column;gap:8px}.alt-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.alt-item--has-img{display:flex;gap:10px;padding:0;overflow:hidden}.alt-img{width:90px;height:90px;object-fit:cover;flex-shrink:0;display:block;transition:opacity .4s ease;opacity:0}.alt-img.loaded{opacity:1}.alt-content{padding:10px 14px 10px 0;min-width:0}.alt-item--has-img .alt-content{padding-left:0}.alt-name{font-weight:600;font-size:.84rem;color:var(--text)}.alt-desc{font-size:.8rem;color:var(--text-dim);margin-top:2px;line-height:1.45}.alt-footer{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.alt-cost{display:inline-block;font-size:.78rem;font-weight:500;color:var(--cost-color)}.tips-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:24px;box-shadow:var(--shadow)}.tips-section h3{font-size:1rem;margin-bottom:12px;font-weight:600;letter-spacing:-.01em}.tips-list{list-style:none;display:flex;flex-direction:column;gap:8px}.tips-list li{position:relative;padding-left:18px;font-size:.88rem;color:var(--text-dim);line-height:1.55}.tips-list li:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}.food-guide{display:flex;flex-direction:column;gap:6px}.food-category{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.food-category-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:var(--surface-2);border:none;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--text);text-align:left;transition:background .15s ease}.food-category-header:hover{background:var(--border)}.food-category-name{flex:1}.food-category-count{font-size:.75rem;font-weight:500;color:var(--text-dim);background:var(--border);border-radius:10px;padding:1px 8px;min-width:20px;text-align:center}.food-category-caret{color:var(--text-dim);transition:transform .2s ease;flex-shrink:0}.food-category-caret--open{transform:rotate(180deg)}.food-category-spots{display:flex;flex-direction:column;gap:1px;background:var(--border)}.food-spot-card{padding:14px 16px;background:var(--surface)}.food-spot-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.food-spot-name{font-size:.9rem;font-weight:600;color:var(--text);line-height:1.4}.food-spot-desc{font-size:.82rem;color:var(--text-dim);line-height:1.55;margin-bottom:8px}.food-spot-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.food-vibe-tag{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:10px;flex-shrink:0;line-height:1.4}.food-vibe-tag--local{background:#4ade8026;color:#4ade80}.food-vibe-tag--tourist{background:#fbbf2426;color:#fbbf24}.food-vibe-tag--mixed{background:#94a3b826;color:#94a3b8}[data-theme=light] .food-vibe-tag--local{background:#16a34a1a;color:#15803d}[data-theme=light] .food-vibe-tag--tourist{background:#d977061a;color:#b45309}[data-theme=light] .food-vibe-tag--mixed{background:#64748b1a;color:#475569}.food-tabelog{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;color:#f59e0b;background:#f59e0b1a;padding:2px 7px;border-radius:8px;line-height:1.4}@media(max-width:600px){.food-category-header{padding:10px 14px;font-size:.85rem}.food-spot-card{padding:12px 14px}.food-spot-name{font-size:.85rem}.food-spot-desc{font-size:.78rem}}.stat-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;text-align:center;box-shadow:var(--shadow)}.stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:6px}.stat-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-sub{font-size:.78rem;color:var(--text-dim);margin-top:4px}.callout{display:flex;gap:12px;padding:14px 18px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-dim);margin-top:14px;line-height:1.55}.callout-emoji,.callout-icon{font-size:1.1rem;flex-shrink:0;display:flex;align-items:center;color:var(--accent)}.collapsible{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow);transition:background .2s}.collapsible-summary{padding:16px 22px;min-height:48px;font-weight:600;font-size:1rem;cursor:pointer;display:flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none;list-style:none;transition:background .15s}.collapsible-icon{display:flex;align-items:center;color:var(--accent);flex-shrink:0}.collapsible-summary:hover{background:var(--surface-2)}.collapsible-summary::-webkit-details-marker{display:none}.collapsible-summary:after{content:"▸";margin-left:auto;transition:transform .25s ease;color:var(--text-dim)}.collapsible[open]>.collapsible-summary:after{transform:rotate(90deg)}.collapsible-body{padding:0 22px 18px}.budget-grid h4{font-size:.9rem;margin:20px 0 10px;color:var(--text-dim);letter-spacing:-.01em}.budget-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:10px}.bar-chart{display:flex;flex-direction:column;gap:8px}.bar-row{display:flex;align-items:center;gap:10px;font-size:.8rem}.bar-label{width:180px;flex-shrink:0;color:var(--text-dim);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{flex:1;height:18px;background:var(--surface-2);border-radius:6px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;transform-origin:left;transition:transform .4s ease}.bar-value{width:120px;font-variant-numeric:tabular-nums;text-align:right;color:var(--text-dim);white-space:nowrap}.bar-value-rm{font-size:.72rem;color:var(--cost-rm);margin-left:4px}.donut-chart{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:8px}.donut-total{font-size:16px;font-weight:700;fill:var(--text)}.donut-label{font-size:10px;fill:var(--text-dim)}.donut-legend{display:flex;flex-direction:column;gap:6px;font-size:.82rem}.donut-legend-item{display:flex;align-items:center;gap:8px}.donut-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.donut-pct{color:var(--text-dim);margin-left:auto}.route-visual{display:flex;flex-direction:column;gap:0;padding:8px 0}.route-step{display:flex;align-items:flex-start;gap:14px;position:relative;padding-bottom:22px}.route-step:last-child{padding-bottom:0}.route-dot{width:12px;height:12px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:4px;z-index:1}.route-line{position:absolute;left:5px;top:16px;width:2px;bottom:0;background:var(--border)}.route-info strong{display:block;font-size:.88rem}.route-meta{font-size:.8rem;color:var(--text-dim)}.route-directions-link{display:inline-flex;align-items:center;gap:3px;margin-left:8px;color:var(--accent);text-decoration:none;font-weight:600;transition:opacity .15s}.route-directions-link:hover{opacity:.8;text-decoration:underline}.info-table{width:100%;border-collapse:collapse;font-size:.85rem}.info-table tr{border-bottom:1px solid var(--border)}.info-table tr:last-child{border-bottom:none}.info-table td{padding:10px 12px;vertical-align:top}.info-key{font-weight:600;white-space:nowrap;width:140px}.info-val{color:var(--text-dim)}.references-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.link-group h4{font-size:.9rem;margin-bottom:8px}.link-group ul{list-style:none;display:flex;flex-direction:column;gap:6px}.link-group a{font-size:.84rem;display:inline-flex;align-items:center;gap:4px;padding:2px 0;min-height:32px}.bottom-nav{display:none}.footer{text-align:center;padding-top:40px;color:var(--text-dim);font-size:.85rem}@media(max-width:768px){.app{padding:20px 16px 80px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.day-nav-sticky{margin:0 -16px;padding:8px 16px 10px}.bar-label{width:140px;font-size:.75rem}.bar-value{width:100px;font-size:.76rem}}@media(max-width:640px){.app{padding:12px 12px 100px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.header h1{font-size:1.45rem;padding-right:50px}.header-names{font-size:.85rem}.subtitle{font-size:.8rem}.day-nav-sticky{margin:0 -12px;padding:6px 12px 8px}.day-nav{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}.day-nav::-webkit-scrollbar{display:none}.pill{scroll-snap-align:center;flex-shrink:0;font-size:.78rem;padding:6px 12px}.day-header{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px}.day-budget{align-items:flex-start}.bar-label{width:90px;font-size:.68rem}.bar-value{width:80px;font-size:.7rem}.bar-value-rm{display:none}.schedule-card--has-img{flex-direction:column}.card-img-wrap{width:100%;height:auto;min-height:0;aspect-ratio:16 / 9}.card-img{border-radius:0}.card-body{padding:12px 14px}.card-time{font-size:.9rem}.card-detail{font-size:.8rem}.card-info-strip{gap:5px}.alt-item--has-img{flex-direction:column}.alt-img{width:100%;height:120px}.budget-stats{grid-template-columns:1fr}.donut-chart{flex-direction:column;align-items:center}.tips-section{padding:14px 16px}.collapsible-body{padding:0 16px 14px}.collapsible-summary{padding:14px 16px}.info-table td{display:block;padding:6px 10px}.info-table tr{display:flex;flex-direction:column;padding:6px 0}.info-key{width:auto;font-size:.82rem}.info-val{font-size:.82rem;padding-top:0!important}.references-grid{grid-template-columns:1fr}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--nav-blur);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:8px 16px;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:30;align-items:center;justify-content:space-between;gap:8px}.bottom-nav-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 16px;min-height:44px;min-width:44px;color:var(--text);font-size:.82rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,border-color .15s;font-family:inherit}.bottom-nav-btn:hover,.bottom-nav-btn:active{background:var(--surface-2);border-color:var(--accent)}.bottom-nav-btn:disabled{opacity:.35;cursor:default}.bottom-nav-btn:disabled:hover{background:var(--surface);border-color:var(--border)}.bottom-nav-current{flex:1;text-align:center;font-size:.78rem;font-weight:600;color:var(--text);line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav-current-sub{display:block;font-size:.68rem;font-weight:400;color:var(--text-dim)}}@media(pointer:coarse){.pill{min-height:44px}.alt-toggle{min-height:44px;padding:8px 16px}.collapsible-summary{min-height:52px}.link-group a{min-height:44px;padding:6px 0}.schedule-card:hover{transform:none}}@media(hover:none){.schedule-card:hover{background:var(--surface);box-shadow:var(--shadow);transform:none}.schedule-card--no-img:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='30' viewBox='0 0 60 30'%3E%3Cpath d='M0 30 C15 30 15 15 30 15 C45 15 45 30 60 30' fill='none' stroke='%239ca3af' stroke-width='0.4'/%3E%3C/svg%3E")}.schedule-card:hover .card-img,.pill:hover,.theme-toggle:hover{transform:none}}.schedule-card,.tips-section,.day-header,.collapsible,.trip-essentials{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");background-size:200px 200px}.trip-essentials{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;overflow:hidden;box-shadow:var(--shadow);transition:background .2s}.trip-essentials-header{display:flex;align-items:center;gap:10px;width:100%;padding:16px 22px;min-height:52px;background:none;border:none;cursor:pointer;color:var(--text);font-family:inherit;font-size:1rem;text-align:left;transition:background .15s}.trip-essentials-header:hover{background:var(--surface-2)}.trip-essentials-icon{display:flex;align-items:center;color:var(--accent);flex-shrink:0}.trip-essentials-title{font-weight:600;letter-spacing:-.01em}.trip-essentials-subtitle{font-size:.78rem;color:var(--text-dim);margin-left:4px}.trip-essentials-caret{margin-left:auto;color:var(--text-dim);display:flex;align-items:center;transition:transform .25s ease}.trip-essentials-caret--open{transform:rotate(180deg)}.trip-essentials-body{padding:0 22px 18px;display:flex;flex-direction:column;gap:6px}.te-section{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:background .15s}.te-section-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;min-height:44px;background:var(--surface-2);border:none;cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:600;color:var(--text);text-align:left;transition:background .15s}.te-section-header:hover{background:var(--border)}.te-section-icon{display:flex;align-items:center;color:var(--accent);flex-shrink:0}.te-section-title{flex:1}.te-section-caret{color:var(--text-dim);display:flex;align-items:center;transition:transform .2s ease}.te-section-caret--open{transform:rotate(180deg)}.te-section-body{padding:14px}.booking-checklist{display:flex;flex-direction:column;gap:10px}.booking-progress{display:flex;align-items:center;gap:10px}.booking-progress-text{font-size:.78rem;font-weight:600;color:var(--text-dim);white-space:nowrap}.booking-progress-bar{flex:1;height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}.booking-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.booking-items{display:flex;flex-direction:column;gap:4px}.booking-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .15s,opacity .2s;min-height:44px}.booking-item:hover{background:var(--surface-2)}.booking-item--done{opacity:.55}.booking-item--done .booking-what{text-decoration:line-through}.booking-check{display:flex;align-items:center;color:var(--accent);flex-shrink:0;margin-top:1px}.booking-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.booking-what{font-weight:600;font-size:.85rem;line-height:1.35}.booking-meta{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-dim);flex-wrap:wrap}.booking-day{background:var(--accent-soft);color:var(--accent);padding:1px 6px;border-radius:4px;font-weight:600;font-size:.7rem}.booking-when{color:var(--text-dim)}.booking-method{font-size:.75rem;color:var(--text-dim);line-height:1.4}.booking-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:var(--accent);background:var(--accent-soft);flex-shrink:0;transition:background .15s;margin-top:2px}.booking-link:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);text-decoration:none}.hotel-cards{display:flex;flex-direction:column;gap:8px}.hotel-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface)}.hotel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.hotel-name{font-weight:600;font-size:.9rem;display:block}.hotel-name-ja{display:block;font-family:var(--font-ja);font-weight:400;font-size:.78rem;opacity:.6;margin-top:1px}.hotel-dates{font-size:.78rem;font-weight:600;color:var(--accent);white-space:nowrap;background:var(--accent-soft);padding:2px 8px;border-radius:6px}.hotel-details{display:flex;flex-direction:column;gap:3px}.hotel-detail{font-size:.8rem;color:var(--text-dim);line-height:1.45}.hotel-detail--luggage{font-style:italic;opacity:.85}.hotel-map-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.78rem;font-weight:600;color:var(--accent)}.hotel-map-link:hover{text-decoration:underline}.packing-list{display:flex;flex-direction:column;gap:3px}.packing-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .15s,opacity .2s;min-height:36px}.packing-item:hover{background:var(--surface-2);border-color:var(--border)}.packing-item--done{opacity:.5}.packing-item--done .packing-name{text-decoration:line-through}.packing-check{display:flex;align-items:center;color:var(--accent);flex-shrink:0;margin-top:1px}.packing-info{flex:1;min-width:0}.packing-name{display:block;font-weight:600;font-size:.84rem}.packing-detail{display:block;font-size:.78rem;color:var(--text-dim);line-height:1.45;margin-top:1px}@media(max-width:640px){.trip-essentials-header{padding:14px 16px;flex-wrap:wrap}.trip-essentials-subtitle{width:100%;margin-left:30px;margin-top:-2px}.trip-essentials-body{padding:0 12px 14px}.te-section-header{padding:10px 12px;font-size:.84rem}.te-section-body{padding:10px 12px}.booking-item{padding:8px 10px}.hotel-card{padding:10px 12px}}@media(pointer:coarse){.trip-essentials-header{min-height:52px}.te-section-header,.booking-item{min-height:48px}.packing-item{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
