/* Aizome Journey / TabiMate visual system derived from stitch_japan_smart_travel_planner.zip */
:root{
  --aizome-bg:#fbf9f3;
  --aizome-surface:#fff;
  --aizome-surface-low:#f5f3ed;
  --aizome-surface-mid:#f0eee8;
  --aizome-indigo:#091722;
  --aizome-indigo-2:#1e2b37;
  --aizome-vermilion:#ab3425;
  --aizome-coral:#fc6f5a;
  --aizome-green:#001a0f;
  --aizome-green-2:#003120;
  --aizome-ink:#1b1c18;
  --aizome-muted:#44474b;
  --aizome-line:#c4c6cc;
  --aizome-shadow:0 4px 18px rgba(9,23,34,.07);
  --aizome-radius:12px;
}
*{box-sizing:border-box}
html{background:var(--aizome-bg);scroll-behavior:smooth}
body{margin:0;background:var(--aizome-bg);color:var(--aizome-ink);font-family:"Noto Sans Thai","Noto Sans",Tahoma,system-ui,sans-serif;font-size:14px;line-height:1.55}
body:before{display:none}
::selection{background:var(--aizome-coral);color:#fff}
:focus-visible{outline:3px solid var(--aizome-coral);outline-offset:3px}
.app-header{position:fixed;z-index:50;top:0;left:0;right:0;height:64px;display:flex;align-items:center;gap:12px;padding:0 max(16px,calc((100vw - 1180px)/2));background:rgba(251,249,243,.92);border:0;border-bottom:1px solid rgba(196,198,204,.65);box-shadow:0 2px 12px rgba(9,23,34,.04);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:9px;min-width:0;color:var(--aizome-indigo);text-decoration:none;letter-spacing:.08em;font-weight:800}
.brand-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:var(--aizome-indigo);color:#fff;font-size:16px;letter-spacing:0}
.brand-copy{display:flex;align-items:baseline;gap:3px;white-space:nowrap;font-size:13px}.brand-copy b{color:var(--aizome-vermilion)}.brand-copy small{display:block;margin-left:6px;color:var(--aizome-muted);font-size:10px;letter-spacing:.02em;font-weight:500}
.header-day-pill{display:flex;align-items:center;gap:7px;margin-left:auto;padding:6px 10px;border:1px solid var(--aizome-line);border-radius:999px;color:var(--aizome-indigo);background:rgba(255,255,255,.72);font-size:10px;letter-spacing:.08em}.header-day-pill b{font-size:15px;letter-spacing:0}.header-actions{display:flex;gap:4px}.app-header .quiet{min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--aizome-muted);padding:8px 10px;font-size:12px}.app-header .quiet:hover{background:var(--aizome-surface-mid);color:var(--aizome-indigo)}
main{max-width:1180px;margin:0 auto;padding:84px max(16px,calc((100vw - 1180px)/2)) 150px}.day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:14px 0 8px}.day-head h1{margin:0;color:var(--aizome-indigo);font-size:clamp(28px,4vw,40px);line-height:1.15;letter-spacing:-.035em}.day-head h1 span{display:block;margin-top:4px;color:var(--aizome-muted);font-size:15px;font-weight:500;letter-spacing:0}.day-head>a{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border:1px solid var(--aizome-line);border-radius:999px;color:var(--aizome-indigo);text-decoration:none;background:var(--aizome-surface)}
.day-status{display:flex;align-items:center;gap:12px;min-height:42px;margin:0 0 4px;padding:9px 0;border:0;border-bottom:1px solid var(--aizome-line);font-size:12px;color:var(--aizome-muted)}.status-live{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--aizome-green-2);font-weight:700}.status-live i{width:7px;height:7px;border-radius:50%;background:#27915d;box-shadow:0 0 0 3px rgba(39,145,93,.14)}.day-status button{margin-left:auto;padding:5px 8px;border:0;background:transparent;color:var(--aizome-muted);font-size:12px;text-align:right}.day-status button:hover{color:var(--aizome-indigo)}
.aizome-day-carousel{display:flex;gap:8px;overflow-x:auto;padding:12px 0 9px;scrollbar-width:none}.aizome-day-carousel::-webkit-scrollbar{display:none}.aizome-day-carousel button{flex:0 0 118px;min-height:66px;padding:10px 11px;border:1px solid transparent;border-radius:12px;background:var(--aizome-surface-mid);color:var(--aizome-muted);text-align:left;cursor:pointer}.aizome-day-carousel button span{display:block;font-size:10px}.aizome-day-carousel button b{display:block;margin-top:2px;color:var(--aizome-indigo);font-size:12px;letter-spacing:.06em}.aizome-day-carousel button small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.aizome-day-carousel button[aria-selected=true]{background:var(--aizome-indigo-2);color:#fff;border-color:var(--aizome-indigo-2);box-shadow:var(--aizome-shadow)}.aizome-day-carousel button[aria-selected=true] b{color:#fff}.aizome-day-carousel button[aria-selected=true] small{color:#dce4ea}
.view-tabs{display:none}.workspace{display:block}.work-area{width:100%}.desktop-timeline{display:none}.step-picker{display:flex;align-items:center;gap:10px;margin:4px 0 10px;padding:0;border:0}.step-picker label{color:var(--aizome-muted);font-size:11px}.step-picker select{min-height:40px;flex:1;padding:7px 10px;border:1px solid var(--aizome-line);border-radius:8px;background:var(--aizome-surface);color:var(--aizome-ink);font:inherit}
#view-navigate{padding:0}.view[hidden]{display:none!important}#route{position:relative;overflow:hidden;padding:18px;border:1px solid rgba(9,23,34,.10);border-radius:var(--aizome-radius);background:var(--aizome-surface);box-shadow:var(--aizome-shadow)}#route:after{display:none}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:var(--aizome-muted);font-size:11px}.card-top b{color:var(--aizome-indigo);font-size:12px;letter-spacing:.04em}.route-title{margin:0 0 13px;color:var(--aizome-indigo);font-size:clamp(25px,4vw,34px);line-height:1.2;letter-spacing:-.035em}.route-context{display:flex;align-items:center;gap:8px;margin:0 -2px 14px;padding:10px 12px;border-radius:9px;background:var(--aizome-indigo-2)!important;color:#fff}.route-context .line-dot{background:var(--aizome-coral)!important}.station-pair{padding:0 0 14px;border:0;border-bottom:1px solid var(--aizome-line);color:var(--aizome-muted);font-size:14px}.station-pair strong{display:inline-flex;align-items:center;min-height:28px;padding:2px 7px;border:1px solid var(--aizome-indigo);border-radius:6px;background:var(--aizome-surface-low);color:var(--aizome-indigo);font-size:12px}
.next-action{margin:14px 0;padding:14px 15px;border:0;border-radius:10px;background:var(--aizome-surface-low);box-shadow:none}.next-action .field-label{display:block;margin-bottom:3px;color:var(--aizome-muted);font-size:11px}.next-action strong{display:block;color:var(--aizome-indigo);font-size:20px;line-height:1.25}.next-action .instruction{margin:5px 0 0;color:var(--aizome-muted)}.arrival-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:4px 0 14px;border:0;border-bottom:1px solid var(--aizome-line)}.arrival-row .field-label{display:block;color:var(--aizome-muted);font-size:11px}.arrival-row strong{display:block;color:var(--aizome-indigo);font-size:16px;line-height:1.3}.arrival-row small{display:block;color:var(--aizome-muted);font-size:11px}.check{margin:14px 0;padding:10px 12px;border:1px solid rgba(0,49,32,.16);border-radius:9px;background:#f3f7f3;color:var(--aizome-green-2)}.check b{display:block;color:var(--aizome-green-2);font-size:12px}.route-actions{display:flex;gap:8px;flex-wrap:wrap}.route-actions a,.route-actions button{min-height:44px;border-radius:8px;font:inherit}.route-actions a.primary{display:inline-flex;align-items:center;background:var(--aizome-indigo);border-color:var(--aizome-indigo);color:#fff}.route-actions button,.route-actions a:not(.primary){background:var(--aizome-surface);border:1px solid var(--aizome-line);color:var(--aizome-indigo)}
.route-photos{margin-top:18px;padding-top:16px;border-top:1px solid var(--aizome-line)}.photo-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.photo-section-head h3{margin:0;color:var(--aizome-indigo);font-size:15px}.photo-preview{border:1px solid rgba(9,23,34,.10);border-radius:10px;background:var(--aizome-surface);box-shadow:none;overflow:hidden}.photo-preview img{background:var(--aizome-surface-low);border-radius:0}.photo-preview strong{color:var(--aizome-indigo)}.photo-preview small{color:var(--aizome-muted)}.photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-empty{margin-top:16px;padding:14px;border-radius:10px;background:var(--aizome-surface-low);color:var(--aizome-muted)}details{border-color:var(--aizome-line)}details summary{color:var(--aizome-indigo)}.warning{border:1px solid rgba(171,52,37,.35);border-radius:10px;background:#fff4f0}.warning summary{color:var(--aizome-vermilion)}.route-nav{margin-top:18px;border-top:1px solid var(--aizome-line)}
.section-head{margin:8px 0 16px}.section-head h2{margin:0;color:var(--aizome-indigo);font-size:25px;letter-spacing:-.025em}.section-head p{margin:4px 0;color:var(--aizome-muted)}.day-list{position:relative;margin:0;padding:4px 0 12px 28px;list-style:none}.day-list:before{content:"";position:absolute;left:9px;top:10px;bottom:16px;width:1px;background:var(--aizome-line)}.day-list li{position:relative;margin:0 0 10px}.day-list li:before{content:"";position:absolute;left:-24px;top:18px;width:9px;height:9px;border:2px solid var(--aizome-vermilion);border-radius:50%;background:var(--aizome-bg);z-index:1}.day-list button{display:flex;align-items:center;gap:10px;width:100%;min-height:58px;padding:10px 12px;border:1px solid rgba(9,23,34,.10);border-radius:10px;background:var(--aizome-surface);text-align:left;box-shadow:0 2px 8px rgba(9,23,34,.04)}.day-list button[aria-current=true]{border-color:var(--aizome-indigo);background:var(--aizome-indigo);color:#fff}.leg-num{font-size:11px;color:var(--aizome-vermilion);font-weight:800}.day-list button[aria-current=true] .leg-num{color:var(--aizome-coral)}.day-list strong{display:block;font-size:13px}.day-list small{display:block;color:var(--aizome-muted);font-size:11px}.day-list button[aria-current=true] small{color:#dce4ea}
.match-info,.pass-benefits,.luggage,.packing-group,.flight-links a,.home-start{border-color:var(--aizome-line);border-radius:10px;background:var(--aizome-surface);box-shadow:none}.pass-benefits{border-top:3px solid var(--aizome-vermilion)}.packing-group{border-top:1px solid var(--aizome-line);padding-top:12px}.packing-group h4{color:var(--aizome-vermilion)}.packing-group .check-item{background:var(--aizome-surface-low);border:0;border-radius:8px;margin:6px 0}.check-item input{accent-color:var(--aizome-indigo)}
.bottom{left:50%;right:auto;bottom:64px;width:min(680px,calc(100% - 24px));transform:translateX(-50%);display:flex;gap:8px;padding:10px 12px;border:1px solid rgba(9,23,34,.10);border-bottom:0;border-radius:16px 16px 0 0;background:rgba(251,249,243,.95);box-shadow:0 -4px 16px rgba(9,23,34,.06);backdrop-filter:blur(14px);z-index:45}.bottom>*{min-height:44px;border-radius:8px;font:inherit}.bottom .primary{background:var(--aizome-indigo);border-color:var(--aizome-indigo);color:#fff}.bottom .help-button{border-color:var(--aizome-vermilion);color:var(--aizome-vermilion);background:var(--aizome-surface)}
.aizome-bottom-nav{position:fixed;z-index:49;left:0;right:0;bottom:0;height:64px;display:flex;align-items:stretch;background:rgba(251,249,243,.97);border-top:1px solid rgba(196,198,204,.75);box-shadow:0 -2px 12px rgba(9,23,34,.05);backdrop-filter:blur(16px)}.aizome-bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;border:0;background:transparent;color:var(--aizome-muted);font:inherit;font-size:10px;cursor:pointer}.aizome-bottom-nav .nav-icon{font-size:19px;line-height:1;color:var(--aizome-muted)}.aizome-bottom-nav button[aria-current=true]{color:var(--aizome-indigo);font-weight:800}.aizome-bottom-nav button[aria-current=true] .nav-icon{color:var(--aizome-vermilion)}
footer{padding:22px 0 14px;color:var(--aizome-muted)}
@media(min-width:760px){.aizome-day-carousel{max-width:760px}.workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px}.desktop-timeline{display:block;border:0}.desktop-timeline h2{margin:8px 0 4px;color:var(--aizome-indigo);font-size:15px}.desktop-timeline>p{margin:0 0 12px;color:var(--aizome-muted);font-size:12px}.desktop-timeline ol{padding:0;margin:0;list-style:none}.desktop-timeline li{margin-bottom:5px}.desktop-timeline button{width:100%;min-height:50px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left}.desktop-timeline button[aria-current=true]{border-color:rgba(9,23,34,.12);background:var(--aizome-surface);box-shadow:0 2px 8px rgba(9,23,34,.04)}.bottom{width:min(640px,calc(100% - 48px))}}
@media(max-width:520px){.app-header{padding:0 12px}.brand-copy small{display:none}.brand-copy{font-size:12px}.header-day-pill{margin-left:auto}.header-actions .quiet:first-child{display:none}main{padding-left:12px;padding-right:12px;padding-top:78px}.day-head{display:block}.day-head h1{font-size:28px}.day-head>a{margin-top:10px}.day-status{gap:6px;flex-wrap:wrap}.day-status button{order:3;width:100%;margin-left:0;padding-left:0;text-align:left}.bottom{width:calc(100% - 16px);padding:8px}.bottom>*{flex:1}.photo-strip{gap:8px}.photo-preview img{height:128px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.app-header,.bottom,.aizome-bottom-nav{backdrop-filter:none}}
/* Full-width shell keeps the centered 1180px content area usable on wide screens. */
main{max-width:none;width:100%}
/* detector fixes: readable controls and a restrained accent rule */
.header-day-pill span,.aizome-bottom-nav button{font-size:11px}
.pass-benefits{border-top-width:1px}
.app-header button:hover,.view-tabs button:hover,.home-start button:hover{color:var(--aizome-indigo)!important}
/* Timeline screen: match the supplied TabiMate cockpit and activity cards. */
#view-day{padding-bottom:18px}.timeline-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.timeline-section-title h2{margin:0;color:var(--aizome-indigo);font-size:22px;letter-spacing:-.02em}.timeline-section-title span{color:var(--aizome-muted);font-size:11px;text-align:right}.timeline-section-title+p{margin:3px 0 0;color:var(--aizome-muted)}
#timeline.day-list{display:flex;flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none}#timeline.day-list:before{display:none}#timeline .timeline-cockpit-item{margin:0}.timeline-cockpit{padding:14px;border:1px solid rgba(9,23,34,.08);border-radius:14px;background:var(--aizome-surface);box-shadow:var(--aizome-shadow)}.timeline-live{display:flex;align-items:center;gap:10px;padding-bottom:10px;color:var(--aizome-muted);font-size:11px}.timeline-live span:first-child{display:inline-flex;align-items:center;gap:5px;color:var(--aizome-indigo);font-weight:800;letter-spacing:.04em}.timeline-live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--aizome-vermilion)}.timeline-live b{color:var(--aizome-indigo);font-size:13px}.timeline-weather{margin-left:auto;padding:4px 8px;border-radius:999px;background:var(--aizome-surface-low);white-space:nowrap}.timeline-anchor{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:10px;background:var(--aizome-surface-low)}.timeline-kicker{display:block;color:var(--aizome-vermilion);font-size:11px;font-weight:800}.timeline-anchor strong{display:block;margin-top:2px;color:var(--aizome-indigo);font-size:18px;line-height:1.2}.timeline-anchor p{margin:3px 0 0;color:var(--aizome-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-map-button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:9px;background:var(--aizome-indigo-2);color:#fff;text-decoration:none;font-size:20px}.timeline-item{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;margin:0!important;padding:0!important}.timeline-item:before{display:none!important}.timeline-node{position:relative;z-index:1;display:grid;place-items:center;width:24px;height:24px;margin-top:12px;border-radius:50%;background:var(--aizome-surface-mid);color:var(--aizome-muted);font-size:13px;font-weight:800}.timeline-item:not(:last-child) .timeline-node:after{content:"";position:absolute;top:24px;left:11px;width:2px;height:calc(100% + 10px);background:var(--aizome-line);z-index:-1}.timeline-done .timeline-node{background:var(--aizome-surface-mid);color:var(--aizome-muted)}.timeline-current .timeline-node{background:var(--aizome-coral);color:var(--aizome-vermilion);box-shadow:0 0 0 3px rgba(252,111,90,.18)}.timeline-card-wrap{min-width:0}.timeline-card{display:block;width:100%;padding:12px;border:1px solid rgba(9,23,34,.08);border-radius:12px;background:var(--aizome-surface);box-shadow:0 2px 9px rgba(9,23,34,.05);text-align:left;cursor:pointer}.timeline-card[aria-current=true]{border-color:rgba(171,52,37,.22);box-shadow:0 4px 14px rgba(171,52,37,.10)}.timeline-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-card-head>strong{color:var(--aizome-indigo);font-size:13px}.timeline-status{padding:3px 8px;border-radius:999px;background:var(--aizome-surface-mid);color:var(--aizome-muted);font-size:10px;font-weight:800;white-space:nowrap}.timeline-current .timeline-status{background:#ffdad4;color:var(--aizome-vermilion)}.timeline-card-main{display:flex;gap:10px;margin-top:9px}.timeline-thumb{flex:0 0 64px;width:64px;height:64px;overflow:hidden;border-radius:9px;background:var(--aizome-surface-mid)}.timeline-thumb img{display:block;width:100%;height:100%;object-fit:cover}.timeline-copy{min-width:0}.timeline-copy h3{margin:0;color:var(--aizome-indigo);font-size:16px;line-height:1.28}.timeline-copy p{display:-webkit-box;margin:3px 0 0;overflow:hidden;color:var(--aizome-muted);font-size:12px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.timeline-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:10px}.timeline-tags span{padding:4px 7px;border-radius:5px;background:var(--aizome-surface-low);color:var(--aizome-muted);font-size:10px}.timeline-inline-map{display:inline-flex;align-items:center;justify-content:center;min-height:36px;margin-top:6px;padding:6px 10px;border-radius:8px;background:var(--aizome-indigo-2);color:#fff;text-decoration:none;font-size:11px;font-weight:700}.timeline-inline-map:hover{background:var(--aizome-indigo)}
@media(max-width:520px){.timeline-section-title{display:block}.timeline-section-title span{display:block;margin-top:2px;text-align:left}.timeline-live{gap:7px}.timeline-weather{font-size:10px;max-width:125px;overflow:hidden;text-overflow:ellipsis}.timeline-anchor strong{font-size:17px}}
/* The timeline card stays a light surface; only its status/node carry the active vermilion. */
#timeline .timeline-card[aria-current=true]{background:var(--aizome-surface)!important;color:var(--aizome-ink)!important;border-color:rgba(171,52,37,.28)!important}
#timeline .timeline-card[aria-current=true] .timeline-card-head>strong,#timeline .timeline-card[aria-current=true] .timeline-copy h3{color:var(--aizome-indigo)!important}
#timeline .timeline-card[aria-current=true] .timeline-copy p{color:var(--aizome-muted)!important}
#timeline.day-list button.timeline-card{display:block}
@media(max-width:759px){#day-carousel{contain:layout paint;max-width:100vw}}
#bottom-bar.view-hidden{display:none!important}
#timeline .timeline-tags{justify-content:flex-start;width:100%;min-width:0;max-width:100%;overflow:hidden}
#timeline .timeline-tags span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){.bottom{left:8px;right:8px;width:auto;transform:none}}
.timeline-anchor>div{min-width:0}
@media(min-width:760px){body.timeline-mode .desktop-timeline{display:none!important}body.timeline-mode .workspace{display:block!important}body.timeline-mode .work-area{max-width:680px;margin:0 auto}body.timeline-mode #view-day{max-width:680px;margin:0 auto}}
.day-brief{margin:12px 0 14px;padding:14px;border:1px solid rgba(9,23,34,.10);border-radius:14px;background:linear-gradient(135deg,#fffdf7 0%,#f5f1e8 100%);box-shadow:var(--aizome-shadow)}.day-brief-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--aizome-muted);font-size:11px}.brief-eyebrow{color:var(--aizome-vermilion);font-weight:900;letter-spacing:.08em}.day-brief h2{margin:5px 0 3px;color:var(--aizome-indigo);font-size:18px;line-height:1.25}.day-brief-route{margin:0;color:var(--aizome-ink);font-size:13px;font-weight:700;line-height:1.45}.day-brief-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px}.day-brief-grid>div{padding:10px;border-radius:10px;background:rgba(255,255,255,.66)}.brief-label{display:block;margin-bottom:4px;color:var(--aizome-vermilion);font-size:11px;font-weight:900}.day-brief-grid p{margin:0;color:var(--aizome-muted);font-size:12px;line-height:1.45}.day-brief-grid ul{margin:0;padding-left:16px;color:var(--aizome-muted);font-size:12px;line-height:1.45}.day-brief-grid li+li{margin-top:3px}
@media(max-width:520px){.day-brief{margin:10px 0 12px;padding:12px}.day-brief-grid{grid-template-columns:1fr;gap:7px;margin-top:9px}.day-brief-grid>div{padding:9px}.day-brief-route{font-size:12px}.day-brief h2{font-size:17px}}
