/* Stitch design system: Tokyo Field Ledger / mobile-first operate mode */
:root{
  --stitch-bg:#f7faf8;
  --stitch-ticket:#fbf8f0;
  --stitch-ledger:#dfe6e3;
  --stitch-ink:#181c1c;
  --stitch-ink-soft:#3e4947;
  --stitch-primary:#00514b;
  --stitch-primary-container:#006b64;
  --stitch-secondary:#4d6262;
  --stitch-rule:#aebcb6;
  --stitch-yellow:#f3ca4f;
  --stitch-red:#a74231;
  --stitch-surface:#ffffff;
  --stitch-shadow:0 8px 22px rgba(24,28,28,.08);
  font-family:"Noto Sans Thai","Noto Sans",Tahoma,system-ui,sans-serif;
}
body{background:var(--stitch-bg);color:var(--stitch-ink);font-family:inherit}
body:before{border:0;box-shadow:inset 0 0 0 4px rgba(0,81,75,.08);z-index:30}
.app-header{max-width:none;padding:12px clamp(16px,5vw,56px);background:rgba(251,248,240,.96);border-bottom:1px solid var(--stitch-rule);box-shadow:0 1px 0 rgba(24,28,28,.04);backdrop-filter:blur(8px)}
.brand{color:var(--stitch-primary);font-family:inherit;font-size:14px;letter-spacing:.12em}.brand b{color:var(--stitch-red)}.brand small{color:var(--stitch-secondary);letter-spacing:.02em}.app-header button{color:var(--stitch-primary);border:1px solid transparent;border-radius:4px}.app-header button:hover{background:#e7efec;color:var(--stitch-primary)}
main{max-width:1220px;padding:18px clamp(16px,5vw,56px) 170px}.day-head{align-items:flex-start}.day-head h1{color:var(--stitch-ink);font-size:clamp(27px,4vw,38px);letter-spacing:-.04em}.day-head h1 span{color:var(--stitch-secondary)}.day-head>a{color:var(--stitch-primary);border-color:var(--stitch-primary)}
.day-status{border-bottom:1px dashed var(--stitch-rule);color:var(--stitch-secondary)}.day-status button{color:var(--stitch-primary)}.day-status span{color:var(--stitch-secondary)}
.view-tabs{border-bottom:1px solid var(--stitch-rule);gap:4px}.view-tabs button{background:transparent;border:0;border-radius:4px;color:var(--stitch-secondary);text-transform:none;letter-spacing:0}.view-tabs button[aria-current=page]{background:var(--stitch-primary);color:#fff}.view-tabs button[aria-current=page]:after{display:none}.view-tabs button:hover{background:#e7efec;color:var(--stitch-primary)}
.desktop-timeline{border-right:1px solid var(--stitch-rule)}.desktop-timeline h2{color:var(--stitch-secondary);letter-spacing:.08em}.desktop-timeline button{border-bottom:1px dashed var(--stitch-rule);border-radius:4px}.desktop-timeline button[aria-current=true]{background:var(--stitch-yellow);color:var(--stitch-ink)}
.step-picker{border-bottom:3px solid var(--stitch-yellow);padding-bottom:9px}.step-picker label{color:var(--stitch-secondary);text-transform:none;letter-spacing:0}.step-picker select{border-color:var(--stitch-primary);border-radius:4px;background:var(--stitch-ticket);color:var(--stitch-ink)}
#route{background:var(--stitch-ticket);border:1px solid var(--stitch-ink);box-shadow:var(--stitch-shadow);padding:20px clamp(16px,3vw,30px);border-radius:4px}#route:after{content:"FIELD TICKET · 26";color:var(--stitch-red);font-size:10px;letter-spacing:.12em}.card-top{color:var(--stitch-secondary)}.route-title{color:var(--stitch-ink);font-size:clamp(25px,3vw,32px)}.route-context{background:var(--stitch-primary);color:#fff;border-radius:4px}.station-pair{border-bottom:1px dashed var(--stitch-rule)}.station-pair strong{border:1px solid var(--stitch-primary);background:transparent;color:var(--stitch-primary);border-radius:4px}
.next-action{background:var(--stitch-yellow);border:2px solid var(--stitch-ink);border-radius:4px;box-shadow:3px 3px 0 rgba(24,28,28,.12)}.next-action .field-label{color:var(--stitch-ink)}.next-action strong{color:var(--stitch-ink)}.instruction{color:var(--stitch-ink-soft)}.arrival-row{border-bottom:1px solid var(--stitch-rule)}.arrival-row .field-label{color:var(--stitch-secondary)}.check{border-bottom:1px dashed var(--stitch-rule)}.check b{color:var(--stitch-primary)}
.route-actions a.primary{background:var(--stitch-primary);border-color:var(--stitch-primary);border-radius:4px}.route-actions button,.route-actions a{border-radius:4px;background:var(--stitch-surface);border-color:var(--stitch-rule);color:var(--stitch-primary)}.route-actions button:hover,.route-actions a:hover{background:#e7efec}.route-photos{border-top:1px solid var(--stitch-ink)}.photo-section-head h3{color:var(--stitch-secondary);text-transform:none;letter-spacing:0}.photo-preview{background:var(--stitch-surface);border:1px solid var(--stitch-rule);border-radius:4px;padding:0 0 9px;overflow:hidden;box-shadow:none}.photo-preview img{border-radius:0;background:var(--stitch-ledger)}.photo-preview strong{padding:0 10px;color:var(--stitch-ink)}.photo-preview small{padding:0 10px;color:var(--stitch-secondary)}
.warning{background:#ffebe5;border:1px solid var(--stitch-red);border-radius:4px}.warning summary{color:var(--stitch-red)}.route-detail{border-color:var(--stitch-rule)}.route-nav{border-top:1px solid var(--stitch-ink)}.pass-benefits{background:var(--stitch-ticket);border:1px dashed var(--stitch-ink);border-top:3px solid var(--stitch-red);border-radius:4px}.pass-benefits details{border-color:var(--stitch-rule)}
.home-head h1{color:var(--stitch-primary);font-size:clamp(34px,5vw,48px)}.home-head p{color:var(--stitch-secondary)}.home-start{background:var(--stitch-ticket);color:var(--stitch-ink);border:1px solid var(--stitch-ink);border-radius:4px;box-shadow:var(--stitch-shadow)}.home-start:before{color:var(--stitch-red)}.home-start p{color:var(--stitch-secondary)}.home-start .primary{background:var(--stitch-yellow);border-color:var(--stitch-ink);color:var(--stitch-ink);border-radius:4px}.home-start button:not(.primary){border-color:var(--stitch-primary);border-radius:4px;color:var(--stitch-primary)}.home-start button:not(.primary):hover{background:var(--stitch-primary);color:#fff}.home-day-list{border-top:2px solid var(--stitch-ink)}.home-day-list li{border-bottom:1px dashed var(--stitch-rule)}.home-day-list button{border-radius:4px}.home-day-list button:hover{background:var(--stitch-ticket)}.home-date{color:var(--stitch-red)}.home-day-list small{color:var(--stitch-secondary)}
.match-info{border-top:2px solid var(--stitch-ink)}.luggage{background:var(--stitch-ledger);border:1px solid var(--stitch-rule);border-radius:4px}.flight-links a{border-radius:4px;background:var(--stitch-ticket);border-color:var(--stitch-rule)}.packing-group{border-top:1px solid var(--stitch-rule)}.packing-group h4{color:var(--stitch-red)}.packing-group .check-item{background:var(--stitch-ticket);border-bottom:1px solid var(--stitch-rule)}
.bottom{background:rgba(251,248,240,.97);border-top:1px solid var(--stitch-ink);box-shadow:0 -8px 20px rgba(24,28,28,.1)}.bottom>*{border-radius:4px}.bottom .primary{background:var(--stitch-primary);border-color:var(--stitch-primary);color:#fff}.bottom .help-button{border-color:var(--stitch-red);color:var(--stitch-red);background:transparent}.bottom .help-button:hover{background:#ffebe5}.photo-gallery .photo-preview{box-shadow:none}.finish{background:var(--stitch-ticket);border-top:3px solid var(--stitch-primary);border-radius:4px}
dialog{border:1px solid var(--stitch-ink);border-radius:4px;background:var(--stitch-ticket);box-shadow:var(--stitch-shadow)}dialog::backdrop{background:rgba(24,28,28,.6)}.phrase{background:var(--stitch-surface);border:1px solid var(--stitch-rule);border-radius:4px}.image-stage{border-radius:4px;background:var(--stitch-ledger)}#drawer{background:var(--stitch-ledger)}#days button{border-radius:4px}#toast{background:var(--stitch-primary);border-radius:4px}
@media(max-width:430px){body:before{box-shadow:inset 0 0 0 3px rgba(0,81,75,.08)}.app-header{padding-left:14px;padding-right:14px}.brand{font-size:12px}.day-head h1{font-size:27px}.view-tabs button{font-size:12px}.view-tabs button[aria-current=page]{background:var(--stitch-primary)}#route{padding:17px 14px}.next-action{box-shadow:2px 2px 0 rgba(24,28,28,.12)}.photo-preview img{height:128px}.bottom{padding-left:9px;padding-right:9px}}
@media(prefers-reduced-motion:reduce){.app-header{backdrop-filter:none}.bottom{transition:none}}
