*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-canvas:#f4f1fa;--text-pri:#332f3a;--text-sec:#635f69;--accent-primary:#7c3aed;--accent-secondary:#db2777;--accent-tertiary:#0ea5e9;--accent-success:#10b981;--accent-warning:#f59e0b;--shadow-clayDeep:30px 30px 60px #cdc6d9, -30px -30px 60px #fff, inset 10px 10px 20px #8b5cf60d, inset -10px -10px 20px #fffc;--shadow-clayCard:16px 16px 32px #a096b433, -10px -10px 24px #ffffffe6, inset 6px 6px 12px #8b5cf608, inset -6px -6px 12px #fff;--shadow-clayButton:12px 12px 24px #8b5cf640, -8px -8px 16px #ffffff80, inset 4px 4px 8px #fff6, inset -4px -4px 8px #00000014;--shadow-clayButtonHover:16px 16px 28px #8b5cf659, -10px -10px 20px #fff9, inset 4px 4px 8px #fff6, inset -4px -4px 8px #00000014;--shadow-clayPressed:inset 10px 10px 20px #e2dbea, inset -10px -10px 20px #fff;--seicomart:#f59e0b;--seven-eleven:#10b981;--lawson:#0ea5e9;--familymart:#db2777}body{background-color:var(--bg-canvas);color:var(--text-pri);-webkit-font-smoothing:antialiased;width:100vw;height:100dvh;font-family:DM Sans,-apple-system,sans-serif;display:flex;overflow:hidden}h1,h2,h3,h4,h5,h6,.nunito{font-family:Nunito,sans-serif}#root{width:100%;height:100%;display:flex}@keyframes clay-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(2deg)}}@keyframes clay-float-delayed{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(-2deg)}}@keyframes clay-float-slow{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-30px)rotate(5deg)}}@keyframes clay-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.clay-blob{animation:8s ease-in-out infinite clay-float}.clay-blob-alt{animation:10s ease-in-out infinite clay-float-delayed}.mobile-app-container{background:0 0;width:100%;height:100%;position:relative;overflow:hidden}@media (width>=768px){.mobile-app-container{max-width:480px;box-shadow:var(--shadow-clayDeep);border-left:2px solid #fff;border-right:2px solid #fff;margin:0 auto}}.tab-page{display:none;position:absolute;inset:0;overflow:hidden}.tab-page.active{display:block}.tab-page.scroll-page{-webkit-overflow-scrolling:touch;padding-bottom:100px;overflow-y:auto}.bottom-tab-bar{-webkit-backdrop-filter:blur(20px);height:68px;box-shadow:var(--shadow-clayCard);z-index:100;background:#ffffffeb;border:2px solid #fff;border-radius:34px;justify-content:space-around;align-items:stretch;padding:6px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.nav-tab{color:var(--text-sec);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:24px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:700;transition:all .2s;display:flex}.nav-tab:active{transform:scale(.9)}.nav-tab.active{color:var(--accent-primary);background:#7c3aed1a;box-shadow:inset 4px 4px 8px #8b5cf614,inset -4px -4px 8px #ffffffe6}.location-selector{top:max(20px, env(safe-area-inset-top));z-index:30;width:90%;max-width:400px;position:absolute;left:50%;transform:translate(-50%)}.location-label{display:none}.select-wrapper{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-clayCard);background:#ffffffeb;border:2px solid #fff;border-radius:20px;align-items:center;height:56px;transition:all .2s;display:flex;position:relative}.select-wrapper .select-icon{color:var(--accent-primary);pointer-events:none;position:absolute;left:18px}.select-wrapper .chevron-icon{color:var(--text-sec);pointer-events:none;position:absolute;right:18px}.select-wrapper select{appearance:none;width:100%;height:100%;color:var(--text-pri);background:0 0;border:none;outline:none;padding:0 46px;font-size:16px;font-weight:700}.weather-widget{top:max(90px, env(safe-area-inset-top) + 70px);z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--accent-tertiary);box-shadow:var(--shadow-clayCard);background:#ffffffeb;border:2px solid #fff;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-family:Nunito,sans-serif;font-size:15px;font-weight:800;display:flex;position:absolute;right:20px}.locate-me-btn{z-index:30;width:48px;height:48px;box-shadow:var(--shadow-clayCard);color:var(--accent-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffeb;border:2px solid #fff;border-radius:20px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;bottom:100px;right:20px}.locate-me-btn:active{box-shadow:var(--shadow-clayPressed);transform:scale(.9)}.spin-anim{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-gps-dot{background:var(--accent-tertiary);border:3px solid #fff;border-radius:50%;width:18px;height:18px;animation:2s infinite gps-pulse;box-shadow:0 0 12px #0ea5e999}@keyframes gps-pulse{0%{box-shadow:0 0 #0ea5e966}70%{box-shadow:0 0 0 14px #0ea5e900}to{box-shadow:0 0 #0ea5e900}}.map-view{position:absolute;inset:0}.places-bottom-sheet{-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-clayDeep);z-index:90;background:#ffffffeb;border:2px solid #fff;border-radius:32px;flex-direction:column;transition:height .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;bottom:96px;left:16px;right:16px;overflow:hidden}.places-bottom-sheet.collapsed{height:80px}.places-bottom-sheet.expanded{height:58vh}.places-header{cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex;position:relative}.places-header:before{content:"";background:#a096b466;border-radius:3px;width:36px;height:5px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.places-header h2{color:var(--text-pri);align-items:center;gap:8px;font-family:Nunito,sans-serif;font-size:16px;font-weight:800;display:flex}.places-header .badge{color:#fff;background:linear-gradient(135deg,#a78bfa,#7c3aed);border-radius:12px;padding:4px 10px;font-size:12px;font-weight:700}.places-list{-webkit-overflow-scrolling:touch;flex:1;padding:8px 16px 16px;overflow-y:auto}.places-bottom-sheet.collapsed .places-list{display:none}.place-item{box-shadow:var(--shadow-clayCard);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:20px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px;transition:all .25s;display:flex}.place-item:active{box-shadow:var(--shadow-clayPressed);transform:scale(.96)}.place-icon-wrapper{color:#fff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.place-info{flex:1;min-width:0}.place-name{color:var(--text-pri);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-family:Nunito,sans-serif;font-size:15px;font-weight:800;overflow:hidden}.place-meta{color:var(--text-sec);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex;overflow:hidden}.place-desc{color:var(--text-sec);box-shadow:var(--shadow-clayPressed);background:#f4f1fa;border-radius:10px;margin-top:8px;padding:6px 10px;font-size:12px;line-height:1.4;display:inline-block}.place-action-btn{color:#fff;cursor:pointer;box-shadow:var(--shadow-clayButton);-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#a78bfa,#7c3aed);border:none;border-radius:12px;align-items:center;gap:5px;padding:6px 12px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;transition:all .2s;display:flex}.place-action-btn:active{box-shadow:var(--shadow-clayPressed);transform:scale(.9)}.place-action-details-btn{color:var(--accent-primary);cursor:pointer;box-shadow:var(--shadow-clayCard);-webkit-tap-highlight-color:transparent;background:#fff;border:2px solid #8b5cf666;border-radius:12px;align-items:center;gap:5px;padding:4px 10px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;transition:all .2s;display:flex}.place-action-details-btn:hover{border-color:var(--accent-primary)}.place-action-details-btn:active{box-shadow:var(--shadow-clayPressed);transform:scale(.9)}.place-time-badge{text-align:right;flex-shrink:0}.time-val{color:var(--accent-primary);font-family:Nunito,sans-serif;font-size:13px;font-weight:800;display:block}.dist-val{color:var(--text-sec);margin-top:2px;font-size:11px;display:block}.hotel-marker-pill{color:var(--accent-primary);box-shadow:var(--shadow-clayButton);white-space:nowrap;cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-family:Nunito,sans-serif;font-weight:800;transition:all .2s;display:flex;position:relative}.hotel-marker-pill:active{box-shadow:var(--shadow-clayPressed);transform:scale(.9)}.store-marker-pill{color:#fff;box-shadow:var(--shadow-clayCard);cursor:pointer;white-space:nowrap;background:#64748b;border-radius:14px;align-items:center;gap:6px;padding:6px 12px;font-weight:700;transition:all .2s;display:flex;position:relative}.store-marker-pill:active{box-shadow:var(--shadow-clayPressed);transform:scale(.9)}.brand-seicomart,.store-marker-pill.brand-seicomart{background:linear-gradient(135deg, #fcd34d, var(--accent-warning));color:#332f3a}.brand-711,.store-marker-pill.brand-711{background:linear-gradient(135deg, #34d399, var(--accent-success));color:#fff}.brand-lawson,.store-marker-pill.brand-lawson{background:linear-gradient(135deg, #38bdf8, var(--accent-tertiary));color:#fff}.brand-familymart,.store-marker-pill.brand-familymart{background:linear-gradient(135deg, #f472b6, var(--accent-secondary));color:#fff}.brand-generic,.store-marker-pill.brand-generic{background:linear-gradient(135deg, #c4b5fd, var(--accent-primary));color:#fff}.weather-view-container{padding:calc(max(env(safe-area-inset-top), 20px) + 16px) 20px 20px}.weather-content{padding-top:100px;padding-bottom:20px}.weather-chart-scroll-area{box-shadow:var(--shadow-clayCard);-ms-overflow-style:none;scrollbar-width:none;background:#fff;border-radius:32px;margin-top:20px;padding:20px;overflow-x:auto}.weather-chart-scroll-area::-webkit-scrollbar{display:none}.weather-chart-inner{width:1800px;min-height:320px}.itinerary-view{padding:calc(max(env(safe-area-inset-top), 20px) + 20px) 20px 20px}.itinerary-tag{background:linear-gradient(135deg, #f472b6, var(--accent-secondary));color:#fff;box-shadow:var(--shadow-clayButton);text-transform:uppercase;letter-spacing:.05em;border-radius:16px;margin-bottom:12px;padding:6px 14px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;display:inline-block}.itinerary-header h1{color:var(--text-pri);margin-bottom:28px;font-size:26px;font-weight:900}.itinerary-timeline{flex-direction:column;padding-left:50px;display:flex;position:relative}.itinerary-timeline:before{content:"";background:#efebf5;border-radius:2px;width:4px;position:absolute;top:10px;bottom:0;left:22px}.timeline-day{z-index:2;margin-bottom:28px;position:relative}.timeline-dot{width:44px;height:44px;box-shadow:var(--shadow-clayButton);background:#fff;border-radius:22px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:-50px}.timeline-dot .day-num{color:var(--accent-primary);font-family:Nunito,sans-serif;font-size:14px;font-weight:900}.timeline-content{box-shadow:var(--shadow-clayCard);background:#fff;border-radius:28px;margin-left:36px;padding:20px}.route-title{color:var(--accent-primary);margin-bottom:10px;font-size:16px;font-weight:800;line-height:1.4}.route-desc{color:var(--text-sec);margin-bottom:14px;font-size:14px;line-height:1.6}.day-hotel{color:var(--text-pri);box-shadow:var(--shadow-clayPressed);background:#efebf5;border-radius:16px;flex-direction:column;gap:10px;padding:14px;font-size:14px;font-weight:700;display:flex}.jump-to-map-btn{color:var(--accent-primary);cursor:pointer;box-shadow:var(--shadow-clayButton);background:#fff;border:none;border-radius:14px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:800;transition:all .2s;display:flex}.jump-to-map-btn:active{box-shadow:var(--shadow-clayPressed);transform:scale(.95)}.rotate-icon{transform:rotate(-90deg)}.timeline-end{background:linear-gradient(135deg, #34d399, var(--accent-success));color:#fff;box-shadow:var(--shadow-clayButton);border-radius:20px;align-items:center;gap:10px;margin-left:16px;padding:14px 20px;font-size:15px;font-weight:800;display:flex}.end-icon-wrapper{background:#ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.shopping-view{padding:calc(max(env(safe-area-inset-top), 20px) + 20px) 20px 20px}.shopping-tag{background:linear-gradient(135deg, #fcd34d, var(--accent-warning));color:#fff;box-shadow:var(--shadow-clayButton);border-radius:16px;margin-bottom:12px;padding:6px 14px;font-family:Nunito,sans-serif;font-size:12px;font-weight:900;display:inline-block}.shopping-header h1{color:var(--text-pri);margin-bottom:8px;font-size:26px;font-weight:900}.shopping-subtitle{color:var(--text-sec);margin-bottom:28px;font-size:14px}.shopping-content{flex-direction:column;gap:28px;display:flex}.category-title{color:var(--accent-primary);margin-bottom:14px;font-family:Nunito,sans-serif;font-size:20px;font-weight:900}.shopping-subcategory{margin-top:12px}.subcategory-title{color:var(--accent-secondary);margin-bottom:12px;font-size:15px;font-weight:800}.shopping-list{flex-direction:column;gap:12px;display:flex}.shopping-item{box-shadow:var(--shadow-clayCard);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:20px;align-items:flex-start;gap:14px;padding:16px;transition:all .2s;display:flex}.shopping-item:active{box-shadow:var(--shadow-clayPressed);transform:scale(.97)}.shopping-item.checked{opacity:.55;box-shadow:var(--shadow-clayPressed);background:#efebf5}.shopping-item.checked .item-name{color:var(--text-sec);text-decoration:line-through}.checkbox-wrapper{flex-shrink:0;width:26px;height:26px;margin-top:2px;position:relative}.checkbox-wrapper input{opacity:0;cursor:pointer;z-index:2;width:100%;height:100%;margin:0;position:absolute}.custom-checkbox{width:26px;height:26px;box-shadow:var(--shadow-clayPressed);background:#efebf5;border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:0;left:0}.checkbox-wrapper input:checked+.custom-checkbox{background:var(--accent-success);box-shadow:var(--shadow-clayButton)}.checkbox-wrapper input:checked+.custom-checkbox:after{content:"";border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:5px;height:11px;margin-bottom:2px;transform:rotate(45deg)}.item-details{flex:1;min-width:0}.item-name{color:var(--text-pri);margin-bottom:5px;font-family:Nunito,sans-serif;font-size:16px;font-weight:800}.item-desc{color:var(--text-sec);font-size:13px;line-height:1.5}
