*{margin:0;padding:0;box-sizing:border-box}:root{--mc-bg: #0D0D0D;--mc-bg-card: #161616;--mc-bg-card-alt: #1A1A1A;--mc-border: #252525;--mc-border-hover: #353535;--mc-text: #E0E0E0;--mc-text-secondary: #999999;--mc-text-muted: #666666;--mc-shadow: 0 4px 24px rgba(0,0,0,.5);--gold: #D4A847;--green: #4caf50;--green-dim: rgba(76, 175, 80, .12);--red: #ef5350;--red-dim: rgba(239, 83, 80, .12);--blue: #42a5f5;--yellow: #ffb300;--yellow-dim: rgba(255, 179, 0, .12);--teal: #4dd0e1;--teal-dim: rgba(77, 208, 225, .12);--pink: #e91e63;--sakura: #FFB7C5;--sakura-dark: #e8a0b0;--sakura-bg: rgba(255, 183, 197, .07);--sakura-bg-alt: rgba(255, 183, 197, .04);--blue-dim: rgba(66, 165, 245, .1);--purple: #7c4dff;--purple-dim: rgba(124, 77, 255, .1);--sakura-dim: rgba(255, 183, 197, .1)}body.mode-light,body.theme-light{--mc-bg: #F2F2F2;--mc-bg-card: #FFFFFF;--mc-bg-card-alt: #FAFAFA;--mc-border: #E5E5E5;--mc-border-hover: #D0D0D0;--mc-text: #1A1A1A;--mc-text-secondary: #555555;--mc-text-muted: #999999;--mc-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.03);--green: #2e7d32;--green-dim: rgba(46, 125, 50, .1);--red: #c62828;--red-dim: rgba(198, 40, 40, .1);--blue: #1565c0;--yellow: #f57f17;--yellow-dim: rgba(245, 127, 23, .1);--teal: #00897b;--teal-dim: rgba(0, 137, 123, .1);--sakura-bg: rgba(252, 228, 236, .6);--sakura-bg-alt: rgba(255, 240, 243, .8);--blue-dim: rgba(21, 101, 192, .08);--purple: #6200ea;--purple-dim: rgba(98, 0, 234, .08);--sakura-dim: rgba(252, 228, 236, .7)}body{font-family:-apple-system,BlinkMacSystemFont,Inter,sans-serif;background:var(--mc-bg);color:var(--mc-text);-webkit-font-smoothing:antialiased}.container{max-width:960px;margin:0 auto;padding:80px 40px 60px}.nav{display:flex;gap:30px}.nav a{color:var(--mc-text-secondary);text-decoration:none;font-size:14px}.nav a:hover,.nav a.active{color:var(--mc-text)}h1{font-size:14px;font-weight:400;color:var(--mc-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:40px}.hero{background:linear-gradient(135deg,var(--sakura-bg-alt),var(--sakura-bg));border:1px solid var(--sakura);border-radius:16px;padding:40px;margin-bottom:40px;position:relative;overflow:hidden}.hero:before{content:"🌸";position:absolute;top:15px;right:25px;font-size:50px;opacity:.3}.hero-title{font-size:28px;font-weight:600;color:var(--mc-text);margin-bottom:8px}.hero-subtitle{font-size:16px;color:var(--mc-text-secondary);margin-bottom:20px}.hero-meta{display:flex;flex-wrap:wrap;gap:20px;font-size:14px;color:var(--mc-text-secondary)}.hero-meta span{display:flex;align-items:center;gap:6px}.hero-meta .tag{background:#fff;padding:4px 12px;border-radius:20px;font-size:12px;border:1px solid var(--sakura);color:var(--pink);font-weight:500}.checklist-section{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:16px;padding:30px;margin-bottom:40px}.checklist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.checklist-title{font-size:18px;font-weight:600;color:var(--mc-text)}.checklist-progress-text{font-size:13px;color:var(--mc-text-secondary);font-family:JetBrains Mono,monospace}.checklist-progress-bar{width:100%;height:6px;background:var(--mc-bg-card-alt);border-radius:3px;margin-bottom:24px;overflow:hidden}.checklist-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--sakura));border-radius:3px;transition:width .5s ease}.checklist-category{margin-bottom:16px}.checklist-category:last-child{margin-bottom:0}.checklist-category-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--mc-text-muted);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--mc-border)}.checklist-item{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;border-radius:8px;padding:8px 6px;transition:background .15s ease}.checklist-item:hover{background:#00000008}.checklist-item:active .checklist-icon{transform:scale(1.3)}.checklist-icon{font-size:16px;flex-shrink:0;width:22px;text-align:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.checklist-icon.pulse{animation:iconPulse .3s cubic-bezier(.34,1.56,.64,1)}@keyframes iconPulse{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.checklist-reset{display:inline-block;margin-top:16px;font-size:12px;color:var(--mc-text-muted);cursor:pointer;border:none;background:none;padding:4px 0;font-family:inherit;transition:color .15s}.checklist-reset:hover{color:var(--red, #e53935)}.checklist-item-text{color:var(--mc-text)}.checklist-item-text.done{color:var(--mc-text-muted);text-decoration:line-through}.checklist-item-priority{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-left:auto;flex-shrink:0}.checklist-item-priority.high{background:var(--red-dim);color:var(--red)}.checklist-item-priority.medium{background:var(--yellow-dim);color:var(--yellow)}.checklist-item-priority.low{background:var(--blue-dim);color:var(--blue)}.flight-status-card{background:var(--mc-bg-card);border:2px solid var(--yellow);border-radius:16px;overflow:hidden;margin-bottom:40px}.flight-status-banner{background:linear-gradient(135deg,#fff3e0,#fff8e1);padding:20px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #FFE0B2}.flight-status-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--mc-text-muted);margin-bottom:4px}.flight-status-text{font-size:20px;font-weight:700;color:var(--yellow);letter-spacing:.5px}.flight-status-icon{font-size:40px;opacity:.6}.flight-status-body{padding:25px 30px}.flight-status-body h3{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--mc-text-secondary);margin-bottom:12px;margin-top:25px}.flight-status-body h3:first-child{margin-top:0}.target-flights-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:5px}.target-flights-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mc-text-muted);padding:8px 12px;border-bottom:1px solid var(--mc-border)}.target-flights-table td{padding:10px 12px;border-bottom:1px solid var(--mc-border);color:var(--mc-text)}.target-flights-table tr:last-child td{border-bottom:none}.flight-name{font-weight:600;color:var(--accent)}.points-math-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:10px;padding:18px 20px;margin:15px 0}.points-math-row{display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:6px}.points-math-row:last-child{margin-bottom:0}.points-math-row .value{font-weight:700;color:var(--green)}.points-math-row .arrow{color:var(--mc-text-muted)}.points-math-row .label{color:var(--mc-text-secondary);font-size:13px}.booking-steps{list-style:none;padding:0}.booking-steps li{padding:8px 0;font-size:13px;color:var(--mc-text-secondary);border-bottom:1px solid var(--mc-border);line-height:1.5}.booking-steps li:last-child{border-bottom:none}.fare-class-info{display:flex;gap:20px;flex-wrap:wrap;margin:10px 0}.fare-class-badge{display:flex;align-items:center;gap:8px;font-size:14px;padding:8px 14px;border-radius:8px}.fare-class-badge.good{background:var(--green-dim);color:var(--green);border:1px solid rgba(76,175,80,.2)}.fare-class-badge.bad{background:var(--red-dim);color:var(--red);border:1px solid rgba(239,83,80,.2)}.fare-class-badge .class-letter{font-weight:700;font-size:18px}.phone-number{font-size:18px;font-weight:600;color:var(--accent);text-decoration:none}.phone-number:hover{text-decoration:underline}.monitoring-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--blue-dim);border:1px solid rgba(66,165,245,.2);border-radius:6px;font-size:13px;color:var(--blue)}.action-items{margin:15px 0}.action-item{padding:10px 14px;font-size:13px;color:var(--mc-text);border-bottom:1px solid var(--mc-border);line-height:1.5}.action-item:last-child{border-bottom:none}.action-item.urgent{background:#fff3e0;border-left:3px solid var(--red);border-radius:4px;margin-bottom:4px}.action-item.pending{background:var(--mc-bg);border-left:3px solid var(--yellow);border-radius:4px;margin-bottom:4px}section{margin-bottom:50px}h2{font-size:12px;font-weight:500;color:var(--mc-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--mc-border)}.points-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px;margin-bottom:15px}.points-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:12px;padding:22px;transition:border-color .2s}.points-card:hover{border-color:var(--accent)}.points-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mc-text-muted);margin-bottom:8px}.points-card-value{font-size:28px;font-weight:700;color:var(--green);margin-bottom:4px}.points-card-detail{font-size:13px;color:var(--mc-text-secondary);line-height:1.5}.points-card-bonus{margin-top:8px;font-size:12px;color:var(--accent);font-weight:500}.bonus-deadline{background:var(--red-dim);border:1px solid rgba(239,83,80,.2);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:12px;font-size:14px;color:var(--red);font-weight:500}.bonus-deadline .icon{font-size:24px}.trip-phases{display:flex;flex-direction:column;gap:0;position:relative}.trip-phase{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 20px;background:var(--mc-bg-card);border:1px solid var(--mc-border);border-bottom:none;position:relative;transition:border-color .2s}.trip-phase:first-child{border-radius:12px 12px 0 0}.trip-phase:last-child{border-bottom:1px solid var(--mc-border);border-radius:0 0 12px 12px}.trip-phase:hover{border-color:var(--accent);z-index:1}.trip-phase-days{font-weight:600;color:var(--accent);font-size:14px}.trip-phase-info{display:flex;flex-direction:column;gap:3px}.trip-phase-name{font-weight:500;color:var(--mc-text);font-size:15px}.trip-phase-desc{font-size:13px;color:var(--mc-text-secondary)}.phase-badge-inline{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:500;color:#fff;margin-left:8px}.phase-badge-inline.transit{background:var(--blue)}.phase-badge-inline.osaka{background:var(--purple)}.phase-badge-inline.kyoto{background:var(--pink)}.phase-badge-inline.return{background:var(--yellow)}.hotel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.hotel-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:10px;padding:20px;transition:all .2s}.hotel-card:hover{border-color:var(--accent);box-shadow:0 4px 15px #0000000f}.hotel-card.recommended{border:2px solid var(--accent)}.hotel-rec-badge{display:inline-block;font-size:10px;padding:2px 8px;background:var(--accent);color:#fff;border-radius:4px;text-transform:uppercase;margin-bottom:8px}.hotel-name{font-size:16px;font-weight:600;color:var(--mc-text);margin-bottom:4px}.hotel-style{font-size:12px;color:var(--accent);margin-bottom:10px}.hotel-price{font-size:14px;color:var(--green);font-weight:500}.budget-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:12px;overflow:hidden}.budget-header{padding:20px 25px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--green),#7cb342);color:#fff}.budget-header-title{font-size:16px;font-weight:500}.budget-header-total{font-size:24px;font-weight:600}.budget-header-note{font-size:12px;opacity:.9}.budget-rows{padding:5px 0}.budget-row{display:grid;grid-template-columns:40px 1fr auto;gap:15px;padding:14px 25px;border-bottom:1px solid var(--mc-border);align-items:center}.budget-row:last-child{border-bottom:none}.budget-icon{font-size:18px;text-align:center}.budget-label{font-weight:500;color:var(--mc-text);font-size:14px}.budget-detail{font-size:12px;color:var(--mc-text-secondary);margin-top:2px}.budget-amount{font-weight:600;color:var(--mc-text);font-size:15px;text-align:right}.budget-footer{padding:15px 25px;background:var(--mc-bg-card-alt);display:flex;justify-content:space-between;font-size:13px;color:var(--mc-text-secondary)}.pregnancy-card{background:linear-gradient(135deg,var(--sakura-bg-alt),var(--sakura-bg));border:1px solid var(--sakura);border-radius:12px;padding:25px 30px}.pregnancy-title{font-size:16px;font-weight:500;color:var(--mc-text);margin-bottom:15px}.pregnancy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.pregnancy-item{background:#fff;padding:12px 15px;border-radius:8px;font-size:13px}.pregnancy-item-label{font-weight:500;color:var(--pink);font-size:12px;margin-bottom:4px}.pregnancy-item-text{color:var(--mc-text-secondary);line-height:1.5}.monitoring-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:12px;padding:25px 30px}.monitoring-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px}.monitoring-item{background:var(--mc-bg);padding:16px;border-radius:8px}.monitoring-item-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mc-text-muted);margin-bottom:6px}.monitoring-item-text{font-size:14px;color:var(--mc-text);line-height:1.5}.recommendation{padding:25px;background:var(--mc-bg-card-alt);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;font-size:14px;color:var(--mc-text-secondary);line-height:1.6}.recommendation strong{color:var(--mc-text)}.meta{margin-top:60px;font-size:12px;color:var(--mc-text-muted)}.itinerary-section{margin-top:60px;padding-top:40px;border-top:2px solid var(--sakura)}.itinerary-hero{background:linear-gradient(135deg,var(--sakura-bg-alt) 0%,var(--sakura-bg) 50%,var(--green-dim) 100%);border:2px solid var(--sakura);border-radius:20px;padding:40px;margin-bottom:40px;position:relative;overflow:hidden}.itinerary-hero:before{content:"⛩️🌸🏯";position:absolute;top:20px;right:30px;font-size:40px;opacity:.4;letter-spacing:10px}.itinerary-hero-title{font-size:32px;font-weight:700;color:var(--mc-text);margin-bottom:10px}.itinerary-hero-subtitle{font-size:18px;color:var(--mc-text-secondary);margin-bottom:20px}.itinerary-hero-meta{display:flex;flex-wrap:wrap;gap:15px;font-size:14px;color:var(--mc-text-secondary)}.itinerary-hero-meta .meta-item{display:flex;align-items:center;gap:6px;background:#fff;padding:8px 14px;border-radius:25px;box-shadow:0 2px 8px #0000000d}.day-timeline{position:relative;padding-left:30px}.day-timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--sakura),var(--accent),var(--green));border-radius:3px}.day-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:16px;margin-bottom:25px;position:relative;overflow:hidden;transition:all .3s ease}.day-card:hover{border-color:var(--accent);box-shadow:0 8px 30px #00000014;transform:translateY(-2px)}.day-card:before{content:"";position:absolute;left:-34px;top:28px;width:14px;height:14px;background:var(--accent);border:3px solid white;border-radius:50%;box-shadow:0 2px 8px #00bcd466}.day-card.osaka:before{background:var(--purple);box-shadow:0 2px 8px #7c4dff66}.day-card.kyoto:before{background:var(--pink);box-shadow:0 2px 8px #e91e6366}.day-card.nara:before{background:var(--green);box-shadow:0 2px 8px #91b85966}.day-card.uji:before{background:#4caf50;box-shadow:0 2px 8px #4caf5066}.day-card.travel:before{background:var(--blue);box-shadow:0 2px 8px #6182b866}.day-header{padding:20px 25px;border-bottom:1px solid var(--mc-border);display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:15px}.day-header-left{flex:1;min-width:200px}.day-number{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-weight:600;margin-bottom:4px}.day-card.osaka .day-number{color:var(--purple)}.day-card.kyoto .day-number{color:var(--pink)}.day-card.nara .day-number{color:var(--green)}.day-card.uji .day-number{color:#4caf50}.day-card.travel .day-number{color:var(--blue)}.day-title{font-size:20px;font-weight:600;color:var(--mc-text);margin-bottom:4px}.day-theme{font-size:13px;color:var(--mc-text-secondary);font-style:italic}.day-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.day-location-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500}.day-location-badge.osaka{background:var(--purple-dim);color:var(--purple)}.day-location-badge.kyoto{background:var(--sakura-dim);color:var(--pink)}.day-location-badge.nara,.day-location-badge.uji{background:var(--green-dim);color:var(--green)}.day-location-badge.travel{background:var(--blue-dim);color:var(--blue)}.day-walking{font-size:12px;color:var(--mc-text-muted)}.day-body{padding:20px 25px}.day-schedule{display:flex;flex-direction:column;gap:0}.schedule-item{display:grid;grid-template-columns:100px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid var(--mc-border)}.schedule-item:last-child{border-bottom:none}.schedule-time{font-size:12px;text-transform:uppercase;font-weight:600;color:var(--mc-text-muted);display:flex;align-items:flex-start;gap:6px}.schedule-time .icon{font-size:16px}.schedule-content{flex:1}.schedule-activity{font-weight:500;color:var(--mc-text);margin-bottom:4px}.schedule-details{font-size:13px;color:var(--mc-text-secondary);line-height:1.5;margin-bottom:6px}.schedule-tip{font-size:12px;color:var(--accent);background:#e0f7fa;padding:6px 10px;border-radius:6px;display:inline-block;margin-top:4px}.restaurant-inline{background:linear-gradient(135deg,#fff8e1,#fff3e0);border:1px solid #FFE0B2;border-radius:10px;padding:12px 15px;margin-top:8px}.restaurant-inline-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.restaurant-inline-name{font-weight:600;color:var(--mc-text)}.restaurant-inline-cuisine{font-size:11px;color:var(--yellow);background:#fff;padding:2px 8px;border-radius:10px}.restaurant-inline-price{font-size:11px;color:var(--green);font-weight:600}.restaurant-inline-order{font-size:13px;color:var(--mc-text-secondary);margin-bottom:4px}.restaurant-inline-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:500}.badge.pregnancy-safe{background:var(--sakura-dim);color:var(--pink)}.badge.tiktok{background:var(--purple-dim);color:var(--purple)}.badge.reservation{background:var(--red-dim);color:var(--red)}.day-footer{padding:15px 25px;background:var(--mc-bg);border-top:1px solid var(--mc-border);display:flex;flex-wrap:wrap;gap:10px;align-items:center}.highlight-tag{font-size:11px;padding:4px 10px;background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:15px;color:var(--mc-text-secondary)}.pregnancy-note{width:100%;margin-top:8px;font-size:12px;color:var(--pink);background:var(--sakura-bg-alt);padding:8px 12px;border-radius:8px;border-left:3px solid var(--sakura)}.restaurant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.restaurant-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:14px;padding:20px;transition:all .2s ease;position:relative}.restaurant-card:hover{border-color:var(--yellow);box-shadow:0 6px 20px #f6a43426;transform:translateY(-2px)}.restaurant-card-badges{position:absolute;top:15px;right:15px;display:flex;gap:5px}.restaurant-card .badge-icon{font-size:16px}.restaurant-card-name{font-size:17px;font-weight:600;color:var(--mc-text);margin-bottom:4px;padding-right:60px}.restaurant-card-meta{display:flex;gap:12px;font-size:13px;color:var(--mc-text-muted);margin-bottom:12px}.restaurant-card-cuisine{color:var(--accent);font-weight:500}.restaurant-card-price{color:var(--green);font-weight:600}.restaurant-card-famous{font-size:13px;color:var(--mc-text-secondary);margin-bottom:10px;line-height:1.5}.restaurant-card-footer{display:flex;gap:8px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--mc-border)}.restaurant-card-footer .badge{font-size:11px;padding:4px 10px}.restaurant-card-links{display:flex;gap:12px;padding-top:8px;flex-wrap:wrap}.restaurant-card-links a{font-size:12px;color:var(--mc-text-secondary);text-decoration:none;transition:color .2s}.restaurant-card-links a:hover{color:var(--mc-text)}.spots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.spot-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:14px;padding:20px;transition:all .2s ease;position:relative;overflow:hidden}.spot-card:hover{border-color:var(--pink);box-shadow:0 6px 20px #e91e631f}.spot-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.spot-card.shrine:before{background:linear-gradient(90deg,#ff5722,#ff9800)}.spot-card.temple:before{background:linear-gradient(90deg,var(--pink),var(--sakura))}.spot-card.nature:before{background:linear-gradient(90deg,var(--green),#8BC34A)}.spot-card.market:before{background:linear-gradient(90deg,var(--yellow),#FFC107)}.spot-card.neighborhood:before{background:linear-gradient(90deg,var(--purple),#9C27B0)}.spot-card.castle:before{background:linear-gradient(90deg,var(--blue),var(--accent))}.spot-category-icon{font-size:28px;margin-bottom:10px}.spot-name{font-size:16px;font-weight:600;color:var(--mc-text);margin-bottom:4px}.spot-location{font-size:12px;color:var(--mc-text-muted);margin-bottom:10px}.spot-details{font-size:13px;color:var(--mc-text-secondary);margin-bottom:6px}.spot-tip{font-size:12px;color:var(--accent);line-height:1.5;margin-top:10px;padding-top:10px;border-top:1px solid var(--mc-border)}.itinerary-tabs{display:flex;gap:10px;margin-bottom:30px;flex-wrap:wrap}.itinerary-tab{padding:10px 20px;border-radius:25px;font-size:14px;font-weight:500;cursor:pointer;border:2px solid var(--mc-border);background:var(--mc-bg-card);color:var(--mc-text-secondary);transition:all .2s ease}.itinerary-tab:hover{border-color:var(--accent);color:var(--accent)}.itinerary-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.itinerary-panel{display:none}.itinerary-panel.active{display:block}.hotel-timeline{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:16px;padding:25px;margin-bottom:30px;overflow-x:auto}.hotel-timeline-title{font-size:14px;font-weight:600;color:var(--mc-text);margin-bottom:20px;display:flex;align-items:center;gap:8px}.timeline-bar{display:flex;gap:3px;min-width:700px}.timeline-segment{flex:1;min-width:120px;padding:15px;border-radius:10px;cursor:pointer;transition:all .2s ease;position:relative}.timeline-segment:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.timeline-segment.transit{background:linear-gradient(135deg,var(--mc-bg-card-alt),var(--mc-bg-card));border:1px solid var(--mc-border);color:var(--mc-text-secondary);flex:.6;min-width:90px}.timeline-segment.osaka{background:linear-gradient(135deg,#f6a434,#ff9800);color:#fff}.timeline-segment.kyoto-booked{background:linear-gradient(135deg,#7c4dff,#9c27b0);color:#fff}.timeline-segment.kyoto-tbd{background:linear-gradient(135deg,#e91e63,#f48fb1);color:#fff;border:2px dashed rgba(255,255,255,.5)}.segment-dates{font-size:11px;opacity:.9;margin-bottom:6px;font-weight:500}.segment-icon{font-size:20px;margin-bottom:6px}.segment-name{font-size:12px;font-weight:600;line-height:1.3;margin-bottom:8px}.segment-status{display:inline-block;padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase}.segment-status.booked{background:#ffffff40}.segment-status.tbd{background:#fff3;border:1px dashed rgba(255,255,255,.5)}@media(max-width:768px){.timeline-bar{flex-direction:column;min-width:unset}.timeline-segment{min-width:unset}}.map-section{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:16px;overflow:hidden;margin-bottom:30px}.map-header{padding:20px 25px;border-bottom:1px solid var(--mc-border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.map-title{font-size:16px;font-weight:600;color:var(--mc-text);display:flex;align-items:center;gap:8px}.day-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.day-filter-btn{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--mc-border);background:var(--mc-bg);color:var(--mc-text-secondary);transition:all .2s ease}.day-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.day-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.day-filter-btn.osaka.active{background:var(--purple);border-color:var(--purple)}.day-filter-btn.kyoto.active{background:var(--pink);border-color:var(--pink)}.day-filter-btn.nara.active{background:var(--green);border-color:var(--green)}.day-filter-btn.uji.active{background:#4caf50;border-color:#4caf50}#map-container{height:500px;width:100%;background:var(--mc-bg)}.map-legend{padding:15px 25px;border-top:1px solid var(--mc-border);display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--mc-text-secondary)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.hotel{background:#3b82f6}.legend-dot.restaurant{background:#f97316}.legend-dot.activity{background:#22c55e}.legend-dot.mustvisit{background:#ec4899}.leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 4px 15px #00000026}.leaflet-popup-content{margin:12px 15px;font-family:-apple-system,BlinkMacSystemFont,Inter,sans-serif}.popup-title{font-size:14px;font-weight:600;color:#333;margin-bottom:6px}.popup-type{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;margin-bottom:8px}.popup-type.hotel{background:#dbeafe;color:#1d4ed8}.popup-type.restaurant{background:#ffedd5;color:#c2410c}.popup-type.activity{background:#dcfce7;color:#15803d}.popup-type.mustvisit{background:#fce7f3;color:#be185d}.popup-detail{font-size:12px;color:#666;line-height:1.4;margin-bottom:4px}.popup-tip{font-size:11px;color:#00bcd4;margin-top:8px;padding-top:8px;border-top:1px solid #eee}@media(max-width:768px){.itinerary-hero{padding:25px}.itinerary-hero-title{font-size:24px}.itinerary-hero:before{display:none}.day-timeline{padding-left:0}.day-timeline:before{display:none}.day-card:before{display:none}.day-header{flex-direction:column}.day-header-right{align-items:flex-start}.schedule-item{grid-template-columns:1fr;gap:8px}.schedule-time{margin-bottom:4px}.restaurant-grid,.spots-grid{grid-template-columns:1fr}.itinerary-tabs{justify-content:center}}@media(max-width:768px){.container{padding:70px 20px 40px}.hero{padding:25px}.hero-meta{gap:12px}.flight-status-banner{flex-direction:column;text-align:center;gap:10px}.flight-status-body{padding:20px}.target-flights-table{font-size:12px}.target-flights-table th,.target-flights-table td{padding:6px 8px}.points-overview{grid-template-columns:1fr}.trip-phase{grid-template-columns:90px 1fr}.hotel-grid,.pregnancy-grid,.monitoring-grid{grid-template-columns:1fr}.budget-footer{flex-direction:column;gap:5px}.fare-class-info{flex-direction:column;gap:8px}.points-math-row{flex-wrap:wrap}.travel-tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px}.travel-tab{font-size:13px;padding:8px 16px}.booking-resources-grid{grid-template-columns:1fr}}.travel-tab-bar{display:flex;gap:8px;margin-bottom:30px;position:sticky;top:56px;z-index:100;background:#0d0d0dd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 0;border-bottom:1px solid var(--mc-border)}body.mode-light .travel-tab-bar,body.theme-light .travel-tab-bar{background:#f2f2f2d9}.travel-tab{padding:10px 22px;border-radius:25px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--mc-border);background:var(--mc-bg-card);color:var(--mc-text-secondary);transition:all .2s ease;white-space:nowrap;font-family:inherit}.travel-tab:hover{border-color:var(--gold);color:var(--gold)}.travel-tab.active{background:var(--gold);border-color:var(--gold);color:#000;font-weight:600}.travel-tab-panel{display:none}.travel-tab-panel.active{display:block}.rest-section-title{font-size:16px;font-weight:600;color:var(--mc-text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.rest-section-subtitle{font-size:13px;color:var(--mc-text-muted);margin-bottom:20px}.rest-card-book-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--gold);text-decoration:none;font-weight:600;padding:4px 12px;border-radius:15px;border:1px solid var(--gold);transition:all .2s}.rest-card-book-link:hover{background:var(--gold);color:#000}.rest-card-tip{font-size:12px;color:var(--mc-text-muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--mc-border);line-height:1.5}.pregnancy-callout{background:linear-gradient(135deg,var(--sakura-bg-alt),var(--sakura-bg));border:1px solid var(--sakura);border-radius:12px;padding:20px 25px;margin-top:30px}.pregnancy-callout-title{font-size:15px;font-weight:600;color:var(--mc-text);margin-bottom:12px}.pregnancy-callout-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.pregnancy-callout-item{font-size:13px;color:var(--mc-text-secondary);line-height:1.5}.pregnancy-callout-item strong{color:var(--pink)}.booking-resources{margin-top:30px}.booking-resources-title{font-size:14px;font-weight:600;color:var(--mc-text);margin-bottom:15px}.booking-resources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.booking-resource-card{background:var(--mc-bg-card);border:1px solid var(--mc-border);border-radius:12px;padding:20px;text-decoration:none;transition:all .2s;display:block}.booking-resource-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 4px 15px #0000001a}.booking-resource-icon{font-size:24px;margin-bottom:8px}.booking-resource-name{font-size:14px;font-weight:600;color:var(--mc-text);margin-bottom:4px}.booking-resource-desc{font-size:12px;color:var(--mc-text-secondary);line-height:1.4}
