/* Stamped Railway Ticket / Tokyo Field Ledger */
:root{--ledger:#dfe6e3;--ticket:#fbf8f0;--ink2:#162b2b;--quiet:#53645e;--rule:#aebcb6;--stamp:#a74231;--teal:#006b64;--signal2:#f3ca4f;--ticket-shadow:0 14px 28px rgba(22,43,43,.12)}
body{background:var(--ledger);color:var(--ink2);font-family:Tahoma,"Noto Sans Thai",system-ui,sans-serif}
body:before{content:"";display:block;position:fixed;inset:0;pointer-events:none;border:10px solid rgba(22,43,43,.04);z-index:30}
.app-header{max-width:none;margin:0;padding:13px clamp(16px,5vw,56px);background:var(--ink2);border:0;position:sticky;top:0;z-index:10}.app-header button{color:#fff;background:transparent;border-color:rgba(255,255,255,.45)}.app-header button:hover{background:#294542;color:#fff}.brand{color:#fff;font-size:14px;letter-spacing:.14em;text-transform:uppercase}.brand b{color:var(--signal2)}.brand small{color:#dbe5e1;letter-spacing:.04em}
main{max-width:1220px;padding:16px clamp(16px,5vw,56px) 170px}.day-head{border:0;align-items:flex-end;gap:24px}.day-head h1{font-size:32px;letter-spacing:-.035em}.day-head h1 span{color:var(--quiet)}.day-head>a{color:var(--stamp);font-weight:bold;text-decoration:none;border-bottom:2px solid var(--stamp);padding-bottom:4px}
.day-status{border:0;border-bottom:1px dashed var(--rule);padding:2px 0 12px}.day-status button{color:var(--teal)}.day-status span{color:var(--quiet)}
.view-tabs{max-width:760px;margin:15px 0 24px;border:0;gap:6px}.view-tabs button{background:var(--ticket);border:1px solid var(--rule);border-radius:0;color:var(--quiet);font-size:13px;letter-spacing:.04em;text-transform:uppercase}.view-tabs button[aria-current=page]{background:var(--ink2);color:#fff;border-color:var(--ink2)}.view-tabs button[aria-current=page]:after{display:none}
.workspace{gap:28px}.desktop-timeline{border-right:0;padding-right:24px}.desktop-timeline h2{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet)}.desktop-timeline>p{font-size:13px}.desktop-timeline ol{border-top:1px solid var(--rule);padding-top:6px}.desktop-timeline button{border-bottom:1px dashed var(--rule);border-radius:0;padding:12px 4px}.desktop-timeline button[aria-current=true]{background:var(--signal2);font-weight:bold}
.work-area{min-width:0}.step-picker{border:0;padding:0 0 12px;margin-bottom:14px}.step-picker label{font-size:12px;color:var(--quiet);letter-spacing:.08em;text-transform:uppercase}.step-picker select{border:1px solid var(--ink2);border-radius:0;background:var(--ticket);font-weight:bold}
#route{background:var(--ticket);border:1px solid var(--ink2);padding:20px clamp(16px,3vw,28px);box-shadow:none;position:relative}#route:after{content:"FIELD TICKET";position:absolute;top:16px;right:20px;color:var(--stamp);font-size:10px;letter-spacing:.15em;font-weight:bold}.card-top{padding-right:95px;color:var(--quiet)}.route-title{font-size:30px;letter-spacing:-.035em;margin:8px 0 14px}.route-context{background:var(--ink2);margin:0 -1px 18px;padding:11px 14px;color:#fff;border-radius:0}.station-pair{border-bottom:1px dashed var(--rule);padding-bottom:16px}.station-pair strong{border:2px solid var(--ink2);border-radius:0;padding:4px 8px;background:transparent;font-size:15px}
.next-action{background:var(--signal2);border:2px solid var(--ink2);border-radius:0;box-shadow:none;padding:18px 20px;margin:18px 0}.next-action .field-label{color:var(--ink2);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.next-action strong{font-size:25px;line-height:1.35}.instruction{margin-bottom:0}.arrival-row{border-bottom:1px solid var(--ink2);padding:18px 0}.arrival-row strong{font-size:19px}.arrival-row .field-label{color:var(--quiet);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.check{padding:15px 0;border-bottom:1px dashed var(--rule)}.check b{color:var(--teal)}
.route-actions{margin:16px 0}.route-actions a.primary{background:var(--teal);border-color:var(--teal);border-radius:0}.route-actions button{border:1px solid var(--ink2);border-radius:0;background:var(--ticket)}.route-photos{border-top:1px solid var(--ink2);padding-top:16px}.photo-section-head h3{color:var(--quiet);font-size:12px;letter-spacing:.12em}.photo-preview{border:1px solid var(--rule);border-radius:0;background:var(--ticket);box-shadow:none;padding-bottom:8px}.photo-preview img{border-radius:0;background:#d8e0db}.photo-preview.scene-photo img{object-fit:cover}.photo-preview strong{font-size:13px}.photo-preview small{font-size:11px}
.warning{border-radius:0;background:#f5e0d8;border:1px solid var(--stamp);padding:14px 16px}.warning summary{color:var(--stamp)}.route-detail{border-color:var(--rule)}.route-nav{border-top:1px solid var(--ink2);padding-top:15px}
.pass-benefits{background:var(--ticket);border:1px dashed var(--ink2);border-top:1px dashed var(--stamp);border-radius:0;box-shadow:none}.pass-benefits h3{letter-spacing:-.02em}.pass-benefits details{border-color:var(--rule)}
.home-head h1{font-size:42px;letter-spacing:-.05em}.home-head p{color:var(--quiet)}.home-start{background:var(--ticket);color:var(--ink2);border:1px solid var(--ink2);border-radius:0;box-shadow:none;padding:24px;margin-bottom:30px;position:relative}.home-start:before{content:"DEPARTURE SHEET";display:block;color:var(--stamp);font-size:11px;letter-spacing:.16em;font-weight:bold;margin-bottom:18px}.home-start p{color:var(--quiet)}.home-start h2{font-size:25px}.home-start .primary{background:var(--signal2);border:2px solid var(--ink2);border-radius:0;color:var(--ink2)}.home-start button:not(.primary){border:1px solid var(--ink2);border-radius:0;color:var(--ink2);background:transparent}.home-start button:not(.primary):hover{background:var(--ink2);color:#fff}
.home-day-list{border-top:2px solid var(--ink2)}.home-day-list li{border-bottom:1px dashed var(--rule)}.home-day-list button{border:0;border-radius:0;padding:18px 8px;background:transparent}.home-day-list button:hover{background:var(--ticket)}.home-date{font-size:30px;color:var(--stamp)}.home-day-list strong{font-size:16px}.home-day-list small{color:var(--quiet)}
.match-info{border-top:2px solid var(--ink2)}.luggage{background:var(--ticket);border:1px solid var(--rule);border-radius:0}.flight-links a{border-radius:0;background:var(--ticket);border-color:var(--rule)}
.packing-group{margin:18px 0;border-top:1px solid var(--rule)}.packing-group h4{margin:14px 0 2px;font-size:16px;color:var(--stamp)}.packing-group .check-item{background:var(--ticket);padding:11px 8px}.packing-group .check-item:last-child{border-bottom:1px solid var(--rule)}
.bottom{background:var(--ink2);border:0;box-shadow:0 -8px 20px rgba(22,43,43,.2)}.bottom>*{border-radius:0}.bottom .primary{background:var(--signal2);border-color:var(--signal2);color:var(--ink2)}.bottom .help-button{border-color:#e6b6a9;color:#f2c3b5;background:transparent}.bottom.view-hidden,.bottom.scroll-hidden{transform:translateY(130%)}
.photo-gallery{gap:14px}.photo-gallery .photo-preview{box-shadow:none}.finish{background:var(--ticket);border-top:2px solid var(--teal);border-radius:0}
@media(min-width:850px){main{padding-top:24px}.workspace{grid-template-columns:260px minmax(0,760px)}.desktop-timeline{position:sticky;top:86px;align-self:start}.photo-preview img{height:190px}.photo-gallery .photo-preview img{height:180px}}
@media(max-width:430px){body:before{border-width:5px}.app-header{padding-left:14px;padding-right:14px}.brand{font-size:12px}.day-head{gap:8px}.day-head h1{font-size:27px}.day-head>a{font-size:12px;max-width:150px}.view-tabs{gap:4px}.view-tabs button{font-size:12px;padding:8px 3px}.view-tabs span{display:none}.day-status span,.card-top{font-size:12px}.home-head h1{font-size:34px}.home-start{padding:19px}.home-start h2{font-size:22px}#route{padding:17px 14px}#route:after{top:12px;right:14px;font-size:9px}.route-title{font-size:26px}.next-action{padding:16px}.next-action strong{font-size:22px}.photo-preview img{height:128px}.photo-preview strong{font-size:12px}.photo-preview small{font-size:11px}.bottom{padding-left:9px;padding-right:9px}.bottom>*{font-size:12px}}
@media(prefers-reduced-motion:reduce){.bottom{transition:none}}
