@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:100 900;font-display:swap;src:url("thai.woff2") format("woff2");unicode-range:U+0E00-0E7F}
:root{--bg:#f7f7f2;--card:#fff;--text:#192d26;--muted:#7a867f;--line:#e8ece7;--accent:#2e6250;--soft:#eaf2ed;--shadow:0 12px 38px #203c2210;--danger:#b44242;color-scheme:light}html[data-theme=dark]{--bg:#171c1a;--card:#222b26;--text:#eef5ef;--muted:#a2aea6;--line:#354239;--accent:#92cbb0;--soft:#304137;--shadow:0 12px 38px #0002;--danger:#ff9c9c;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans Thai",system-ui,-apple-system,"Tahoma",sans-serif;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #e1aa6a;outline-offset:3px}.app{max-width:720px;margin:auto;padding:0 22px 120px}.top{height:96px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:12px;align-items:center;font-size:11px;font-weight:750;letter-spacing:2px}.brand small{display:block;font-size:9px;color:var(--muted);font-weight:400;letter-spacing:1px;margin-top:2px}.logo{width:42px;height:42px;border-radius:15px;background:var(--accent);color:var(--bg);font:700 28px Georgia;text-align:center;line-height:42px;letter-spacing:0}.logo span{color:#e9b69a;font-size:18px}.icon-btn{background:var(--card);color:var(--text);width:44px;height:44px;border-radius:50%;font-size:24px;border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0}.heading{margin:12px 0 26px}.eyebrow{font-size:10px;letter-spacing:2.2px;color:var(--accent);font-weight:700;margin:0 0 10px}h1{font-size:28px;line-height:1.35;letter-spacing:-.7px;margin:0 0 9px}h2{font-size:16px;line-height:1.5;margin:0 0 10px}p{margin:8px 0}.muted,small{color:var(--muted)}.hero{position:relative;overflow:hidden;background:#254e40;color:#fff;padding:25px;border-radius:26px;box-shadow:var(--shadow)}.hero-top{display:flex;justify-content:space-between;gap:12px;align-items:center;position:relative;z-index:1;font-size:14px}.badge{font-size:9px;border:1px solid #ffffff40;border-radius:16px;padding:5px 10px;letter-spacing:1px;white-space:nowrap}.hero p{font-size:12px;color:#c5d8ce;margin:27px 0 3px}.hero-total{font-size:41px;font-weight:650;letter-spacing:-1.5px;position:relative;z-index:1;overflow-wrap:anywhere}.hero small{color:#c5d8ce;font-size:10px;position:relative;z-index:1}.mountain{font:230px Georgia;position:absolute;right:-20px;bottom:20px;color:#ffffff09;transform:rotate(-8deg);pointer-events:none}.hero-foot{margin-top:28px;display:flex;justify-content:space-between;font-size:11px;position:relative;z-index:1;gap:10px}.track{height:5px;background:var(--line);border-radius:8px;overflow:hidden;margin-top:9px}.track span{display:block;height:100%;background:var(--accent);border-radius:8px}.hero .track{background:#ffffff20}.hero .track span{background:#d8bb97}.quick{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}.quick>div{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px}.quick small{font-size:10px;display:block}.quick strong{display:block;font-size:18px;margin-top:5px;overflow-wrap:anywhere}.primary,.secondary,.danger{min-height:48px;padding:12px 18px;border-radius:14px;font-weight:600;transition:filter .15s}.primary:hover,.secondary:hover{filter:brightness(.96)}.primary{background:var(--accent);color:var(--bg)}.secondary{background:var(--card);color:var(--text);border:1px solid var(--line)}.danger{background:transparent;color:var(--danger);margin-top:8px}.wide,.add-main{width:100%}.add-main{margin-bottom:9px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px;gap:12px}.section-title h2{margin:0}.text-btn{color:var(--accent);background:transparent;padding:7px;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden}.pad{padding:22px;margin-bottom:17px}.expense{display:flex;gap:12px;align-items:center;width:100%;padding:17px 16px;background:transparent;color:var(--text);text-align:left;border-bottom:1px solid var(--line)}.expense:last-child{border-bottom:0}.category{display:grid;place-items:center;width:43px;height:43px;flex-shrink:0;border-radius:15px;font-size:21px;background:var(--soft)}.c0{background:#f9ecdb;color:#9d5c36}.c1{background:#e7eff9;color:#426bb0}.c2{background:#ece8f5;color:#7e64a5}.c3{background:#f6e8e8;color:#ab6666}.c4{background:#e5eee2;color:#638252}.c5{background:#eef0e9;color:#6b7862}.expense-text{flex:1;min-width:0}.expense strong{font-size:13px;display:block}.expense-text strong{overflow-wrap:anywhere}.expense small{font-size:10px;display:block;margin-top:3px}.amount{text-align:right;flex-shrink:0;max-width:43%}.amount strong{overflow-wrap:anywhere}.travel-note{text-align:center;margin:28px 0;color:var(--muted);font-size:11px}.bottom{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,720px);display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--line);padding:10px 10px calc(10px + env(safe-area-inset-bottom));z-index:10}.bottom button{background:transparent;color:var(--muted);font-size:10px;min-height:51px;border-radius:14px}.bottom button span{display:block;font-size:24px;line-height:27px;margin-bottom:3px}.bottom .active{color:var(--accent);background:var(--soft);font-weight:700}.empty{text-align:center;padding:34px 20px;color:var(--muted)}.empty>span{font-size:34px}.empty h3{font-size:15px;color:var(--text)}.empty .primary{margin-top:12px}.filters{display:grid;gap:10px}.date-filter,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;color:var(--muted);font-size:12px;margin:12px 0}input,select,textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:12px;border-radius:12px;outline:none;font-size:16px;margin-top:5px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.filters input,.filters select{margin:0}.summary-total{text-align:center;padding:30px 15px}.summary-total h2{font-size:34px;margin:8px 0;overflow-wrap:anywhere}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.break-row{margin-bottom:20px}.break-row:last-child{margin-bottom:0}.break-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px}.bar.c0{background:#d7a467}.bar.c1{background:#83a0cd}.bar.c2{background:#aa94cc}.bar.c3{background:#d99898}.bar.c4{background:#8eaf7b}.bar.c5{background:#99a383}.day-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;gap:12px}.day-row:last-child{border:0}.footnote{font-size:11px;margin-top:20px}.theme-options{display:flex;gap:8px;flex-wrap:wrap}.theme-options button{flex:1;white-space:nowrap;font-size:12px;padding:10px}.selected{border-color:var(--accent);background:var(--soft)}.pad>.secondary,.pad>.primary{margin-top:10px;display:block;width:100%}.version{text-align:center;color:var(--muted);font-size:11px;margin-top:30px}.notice{background:var(--soft);color:var(--text);border-radius:12px;padding:12px;font-size:12px}.error{color:var(--danger);font-size:13px}dialog{border:1px solid var(--line);border-radius:25px;background:var(--card);color:var(--text);width:calc(100% - 24px);max-width:540px;padding:24px;max-height:88dvh;overflow-y:auto;box-shadow:var(--shadow)}dialog::backdrop{background:#0c211c88;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.dialog-head h2{font-size:20px;margin:0}.conversion{background:var(--soft);border-radius:16px;padding:5px 15px;margin:10px 0}.conversion p{color:var(--accent);font-weight:700}.auth{max-width:430px;margin:7vh auto;padding:25px}.auth-illustration{font-size:65px;margin-bottom:22px}.auth h1{font-size:30px}.auth form{margin-top:25px}.pin-input{letter-spacing:12px;font-size:26px;text-align:center}#toast{position:fixed;bottom:105px;left:50%;transform:translate(-50%,20px);padding:12px 18px;background:var(--text);color:var(--bg);max-width:calc(100% - 32px);border-radius:14px;opacity:0;pointer-events:none;z-index:100;transition:.2s;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:750px){.app{padding-top:15px}.hero{padding:32px}.hero-total{font-size:52px}.expense{padding:20px}.top{height:85px}.bottom{border-radius:22px 22px 0 0;box-shadow:var(--shadow)}h1{font-size:34px}}@media(max-width:360px){.app{padding-left:14px;padding-right:14px}.hero{padding:20px}.hero-total{font-size:34px}.quick strong{font-size:15px}.expense{gap:8px;padding:14px 10px}.category{width:34px;height:36px}.expense strong{font-size:12px}.form-grid{gap:8px}dialog{padding:16px}.brand{letter-spacing:1px}.hero-top{font-size:12px}}

/* Explicit mobile sheet; avoid native-dialog backdrop and viewport bugs. */
.editor-overlay[hidden]{display:none!important}.editor-overlay{position:fixed;inset:0;z-index:1000;background:#0c211c99;display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden;isolation:isolate}.editor-sheet{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);width:100%;max-width:540px;padding:24px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;position:relative;pointer-events:auto;-webkit-overflow-scrolling:touch}input,textarea,select{pointer-events:auto!important;touch-action:manipulation;-webkit-user-select:text;user-select:text}input,textarea{-webkit-appearance:none}select{touch-action:manipulation}@media(max-width:540px){.editor-overlay{align-items:flex-end;padding:0}.editor-sheet{border-radius:24px 24px 0 0;max-height:94dvh;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}}
/* Lemon / Black v1.2 — all interface colors use the editable palette. */
:root{--accent-text:#111609;--nav:#171c18}.primary,.logo{color:var(--accent-text)}.logo span{color:var(--accent-text);opacity:.55}.hero{background:var(--card);color:var(--text);border:1px solid var(--line);box-shadow:none}.hero p,.hero small{color:var(--muted)}.hero-total{color:var(--accent)}.hero .badge{border-color:var(--line);color:var(--muted)}.hero .track{background:var(--soft)}.hero .track span{background:var(--accent)}.mountain{display:none}.hero-top{font-weight:600}.hero-foot{color:var(--text)}.track{background:var(--soft)}.category{background:var(--soft);color:var(--accent)}.bar.c0,.bar.c1,.bar.c2,.bar.c3,.bar.c4,.bar.c5{background:var(--accent)}.bar.c1{opacity:.85}.bar.c2{opacity:.7}.bar.c3{opacity:.6}.bar.c4{opacity:.5}.bar.c5{opacity:.4}.eyebrow{display:none}.heading{margin:18px 0 24px}h1{font-size:30px;letter-spacing:-.5px}.brand small{font-size:9px;letter-spacing:0}.hero-total{font-size:46px}.hero p{margin-top:25px}.travel-note{font-size:11px}.app{padding-bottom:135px}.card{box-shadow:none}.icon-btn{background:var(--card)}.bottom{bottom:calc(18px + env(safe-area-inset-bottom));width:min(calc(100% - 44px),440px);background:var(--nav);border:1px solid var(--line);border-radius:999px;padding:8px;gap:6px;box-shadow:0 12px 36px #0005;align-items:center}.bottom button{height:52px;min-height:52px;border-radius:999px;display:grid;place-items:center;padding:0;color:var(--muted);font-size:0}.bottom button.active{background:var(--accent);color:var(--accent-text)}.bottom svg{width:25px;height:25px}.theme-options{margin:15px 0}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.color-control{margin:0;display:grid;grid-template-columns:1fr 34px;align-items:center;gap:8px;padding:12px;background:var(--soft);border:1px solid var(--line);border-radius:14px;color:var(--text);font-size:11px}.color-control code{grid-column:1/-1;font-size:10px;color:var(--muted);letter-spacing:.5px}.color-control input[type=color]{width:34px;height:34px;padding:2px;margin:0;border-radius:9px;cursor:pointer;min-height:0;background:transparent}.color-control input::-webkit-color-swatch-wrapper{padding:0}.color-control input::-webkit-color-swatch{border:0;border-radius:6px}.color-actions{display:flex;gap:10px}.color-actions button{flex:1}.theme-options .selected{border-color:var(--accent);background:var(--soft)}.notice{border:1px solid var(--line)}#toast{bottom:115px;background:var(--accent);color:var(--accent-text)}input:focus,textarea:focus,select:focus{border-color:var(--accent)}@media(min-width:750px){.bottom{border-radius:999px}.hero-total{font-size:56px}.heading h1{font-size:34px}}@media(max-width:360px){.hero-total{font-size:38px}.color-control{padding:10px;gap:6px}.bottom{width:calc(100% - 28px)}.color-actions button{padding:10px;font-size:12px}}

:root{--bg:#080a09;--card:#151917;--text:#ffffff;--muted:#9ba39e;--accent:#d5ff70;--accent-text:#111609;--line:#2b312c;--soft:#20261e;--nav:#171c18;--danger:#ff9292}html[data-theme=light]{color-scheme:light}

.bottom{grid-template-columns:repeat(5,minmax(0,1fr))}.bottom .nav-add{background:var(--accent);color:var(--accent-text);width:56px;height:56px;min-height:56px;justify-self:center;box-shadow:0 0 0 4px var(--nav)}.bottom .active{background:var(--soft);color:var(--accent)}.bottom .nav-add svg{width:28px;height:28px}
/* Rail Ticket */
.app{position:relative;isolation:isolate}.app:before{content:'';position:absolute;inset:85px 0 0;z-index:-1;opacity:.12;pointer-events:none;background:url('rail-map.svg') top center/680px auto repeat-y}.rail-ticket{position:relative;aspect-ratio:1.14;background:var(--accent);color:var(--accent-text);border-radius:18px;margin:20px 0 24px;box-shadow:0 18px 40px #0003;overflow:hidden}.rail-ticket:before,.rail-ticket:after{content:'';position:absolute;width:26px;height:26px;background:var(--bg);border-radius:50%;top:71%;transform:translateY(-50%)}.rail-ticket:before{left:-13px}.rail-ticket:after{right:-13px}.ticket-perforation{position:absolute;left:18px;right:18px;top:71%;border-top:2px dashed currentColor;opacity:.4;pointer-events:none}.ticket-code{position:absolute;right:7%;top:31%;height:31%;width:12%;background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px,currentColor 5px 6px,transparent 6px 9px);opacity:.65;pointer-events:none}.ticket-piece{position:absolute;background:transparent;color:inherit;padding:0;border:0;line-height:1.25;max-width:85%;overflow-wrap:anywhere;font-weight:650;text-align:left}.editing .ticket-piece{touch-action:none;border:1px dashed transparent;cursor:move}.editing .ticket-piece.selected{border-color:currentColor;outline:2px solid #0003;background:#ffffff25}.editing{user-select:none}.expense-photo{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0}.expense{margin-bottom:10px;border:1px solid var(--line)!important;background:var(--card);border-radius:8px;position:relative}.expense:after{content:'';position:absolute;right:25%;top:8px;bottom:8px;border-right:1px dashed var(--line);pointer-events:none}.expense .amount{position:relative;padding-left:8px}.card:has(>.expense){background:transparent;border:0;border-radius:0}.settings-menu{display:grid;gap:10px;margin-bottom:20px}.settings-menu button{display:flex;justify-content:space-between;align-items:center;text-align:left}#photoPreview img{width:100%;max-height:250px;object-fit:contain;border-radius:14px}.quick>div{border-radius:8px}.rail-ticket .ticket-piece[data-piece=route]{font-family:system-ui,sans-serif;font-weight:800}.rail-ticket .ticket-piece[data-piece=total]{letter-spacing:-1px}@media(min-width:600px){.rail-ticket{max-width:460px;margin-left:auto;margin-right:auto}}@media(max-width:360px){.rail-ticket{aspect-ratio:1}.expense:after{display:none}}
/* v1.3.1: match the supplied Boarding Pass reference. */
.app{max-width:560px;padding:0 20px 125px}.app:before{display:none}.boarding-home .top{position:absolute;right:26px;top:15px;width:36px;height:36px;z-index:2}.boarding-home .top .brand{display:none}.boarding-home .top .icon-btn{width:32px;height:32px;font-size:18px;background:#1119}.journey-header{position:relative;height:255px;margin:0 -20px;padding:34px 26px 0;overflow:hidden;background:linear-gradient(90deg,var(--bg),transparent 80%),linear-gradient(0deg,var(--bg),transparent 70%),url('japan-scene.jpg') center/cover}.journey-header h1{font-family:Arial,system-ui,sans-serif;line-height:.89;font-size:49px;font-weight:800;letter-spacing:-2px;margin:0 0 10px}.journey-header h1 span{color:var(--accent)}.journey-header p{font-size:12px;color:var(--muted);margin:10px 0 20px;max-width:80%}.journey-header>small{font-size:8px;letter-spacing:3px;line-height:1.7;color:var(--muted)}.japan-mark{position:absolute;right:30px;bottom:38px;color:var(--text);font-size:15px;line-height:1.4}.japan-mark i{display:block;background:#bd4141;border-radius:50%;width:10px;height:10px;margin-top:8px}.boarding-ticket{position:relative;display:flex;aspect-ratio:1.95;margin:0 -8px 22px;--ticket-scale:1;filter:drop-shadow(0 10px 18px #0003)}.boarding-ticket .rail-ticket{position:relative;flex:1;min-width:0;aspect-ratio:auto;margin:0;border-radius:15px;box-shadow:none;background:linear-gradient(115deg,#ffffff12,transparent),var(--accent);color:var(--accent-text)}.boarding-ticket .rail-ticket:before,.boarding-ticket .rail-ticket:after{left:-10px;right:auto;width:20px;height:20px;top:30%;background:var(--bg)}.boarding-ticket .rail-ticket:after{top:80%}.boarding-ticket .ticket-perforation{left:7%;right:7%;top:74%;border-top:1px solid currentColor;opacity:.3}.boarding-ticket .ticket-watermark{position:absolute;right:0;top:28%;width:47%;height:43%;background:url('japan-scene.jpg') 68% 20%/cover;mix-blend-mode:multiply;opacity:.14;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000)}.boarding-ticket .ticket-piece[data-piece=route]{font-family:monospace;font-weight:800;max-width:56%;white-space:nowrap}.boarding-ticket .ticket-piece[data-piece=total]{font-family:Arial,system-ui,sans-serif;letter-spacing:-2px;font-weight:800;max-width:92%;white-space:nowrap}.boarding-ticket .ticket-piece[data-piece=trip]{max-width:34%;line-height:1.1}.boarding-ticket .ticket-piece[data-piece=budget],.boarding-ticket .ticket-piece[data-piece=remaining]{font-family:Arial,system-ui,sans-serif;max-width:36%;letter-spacing:-.5px;white-space:nowrap}.ticket-budget-label,.ticket-remaining-label{position:absolute;top:76%;font-size:calc(9px * var(--ticket-scale));font-weight:650}.ticket-budget-label{left:15%}.ticket-remaining-label{left:62%}.ticket-wallet,.ticket-chart{position:absolute;top:79%;width:calc(22px * var(--ticket-scale));height:calc(22px * var(--ticket-scale))}.ticket-wallet{left:6%}.ticket-chart{left:52%}.ticket-wallet svg,.ticket-chart svg{width:100%;height:100%}.ticket-stub{width:22%;flex-shrink:0;border:1px solid var(--line);border-left:2px dashed var(--muted);border-radius:13px;background:linear-gradient(120deg,var(--card),var(--nav));display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:10px 5px;color:var(--text)}.ticket-stub:before,.ticket-stub:after{content:'';position:absolute;right:-1px;width:12px;height:20px;border-radius:15px 0 0 15px;background:var(--bg);top:25%}.ticket-stub:after{top:76%}.ticket-stub small{font-size:calc(8px * var(--ticket-scale));letter-spacing:2px;color:var(--text);line-height:1.7}.ticket-stub strong{font-family:Arial,sans-serif;font-size:calc(34px * var(--ticket-scale));line-height:1.1}.ticket-stub>i{width:16px;border-top:2px solid var(--accent);margin:8px 0 14px}.ticket-stub>span{font-size:calc(11px * var(--ticket-scale));letter-spacing:2px;color:var(--muted)}.stub-code{height:26px;width:62%;background:repeating-linear-gradient(90deg,var(--text) 0 2px,transparent 2px 4px,var(--text) 4px 5px,transparent 5px 8px);opacity:.65;margin:12px 0}.expense{display:flex;padding:0;gap:0;margin-bottom:10px;border:0!important;background:transparent;border-radius:0;overflow:visible;min-height:78px}.expense:after{display:none}.expense-main{position:relative;display:flex;align-items:center;gap:12px;width:72%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(110deg,var(--card),var(--nav));overflow:hidden;isolation:isolate}.expense-main.with-photo:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--card) 40%,transparent),var(--expense-image) right center/auto 100% no-repeat;opacity:.4;z-index:-1}.expense-photo{position:absolute;right:0;top:0;width:40%;height:100%;border-radius:0;opacity:.25;object-fit:cover;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000)}.expense .category{width:35px;height:40px;border-radius:0;background:transparent;color:var(--text);border-right:1px solid var(--line);padding-right:8px;flex-shrink:0}.category svg{width:27px;height:32px}.expense-text strong{font-size:15px;line-height:1.3}.expense small{font-size:10px}.expense .amount{align-self:stretch;display:flex;flex-direction:column;justify-content:center;width:28%;max-width:none;flex-shrink:0;text-align:left;padding:10px 16px 10px 12px;border:1px solid var(--line);border-left:1px dashed var(--muted);border-radius:9px;background:var(--card);position:relative;gap:2px}.expense .amount strong{font-size:17px;line-height:1.2;letter-spacing:-.7px;white-space:nowrap}.expense .amount small{font-size:8px}.row-arrow{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:19px;color:var(--text)}.expense .amount:before,.expense .amount:after{content:'';position:absolute;width:9px;height:9px;background:var(--bg);border-radius:50%;left:-5px;top:-5px}.expense .amount:after{top:auto;bottom:-5px}.section-title{margin:16px 0 10px}.section-title h2{font-size:19px}.travel-note{display:none}.bottom{width:min(calc(100% - 44px),460px);height:65px;padding:7px 12px;background:linear-gradient(120deg,var(--nav),var(--bg));border:1px solid var(--muted)}.bottom button{color:var(--text);height:44px;min-height:44px}.bottom button.active{background:transparent;color:var(--accent)}.bottom .nav-add{width:50px;height:50px;min-height:50px;box-shadow:0 0 18px #d5ff7020}.bottom svg{width:25px;height:25px}.bottom button.active svg{fill:var(--accent)}.bottom button.active svg circle{fill:none}.editing .ticket-piece.selected{background:#ffffff30;outline:1px solid var(--accent-text)}.editing .ticket-stub{pointer-events:none}.editing{margin:18px 0}.editing .ticket-piece{font-size:inherit}.boarding-home .card:has(>.expense){overflow:visible}.boarding-home .empty{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}html[data-theme=light] .journey-header{background:linear-gradient(90deg,var(--bg),transparent),linear-gradient(0deg,var(--bg),transparent),url('japan-scene.jpg') center/cover}@media(max-width:360px){.app{padding-left:15px;padding-right:15px}.journey-header{margin:0 -15px;height:235px;padding-left:22px}.journey-header h1{font-size:45px}.boarding-ticket{--ticket-scale:.85}.expense-main{gap:8px;padding:9px;width:67%}.expense .amount{width:33%;padding-left:9px}.expense-text strong{font-size:13px}.expense small{font-size:8px}.category svg{width:22px}.expense .category{width:29px}.bottom{width:calc(100% - 30px)}}@media(min-width:500px){.journey-header{height:300px;padding-top:40px}.journey-header h1{font-size:66px}.boarding-ticket{--ticket-scale:1.35}.expense{min-height:92px}.expense-text strong{font-size:18px}.expense .amount strong{font-size:23px}.bottom{height:76px}.bottom .nav-add{width:58px;height:58px}}
.expense .amount{width:30%;padding-right:20px}.expense-main{width:70%}.expense .amount strong{font-size:16px;letter-spacing:-.8px}.scenic-row:not(.with-photo):before{content:'';position:absolute;inset:0;background-image:linear-gradient(90deg,var(--card) 28%,transparent),url('expense-scenes.jpg');background-size:100% 100%,100% 300%;background-position:center,center top;background-repeat:no-repeat;opacity:.32;z-index:-1}.scenic-1:not(.with-photo):before{background-position:center,center center}.scenic-3:not(.with-photo):before{background-position:center,center bottom}.with-photo .expense-photo{opacity:.45}.ticket-piece[data-piece=budget],.ticket-piece[data-piece=remaining]{font-weight:750}@media(max-width:360px){.expense-main{width:65%}.expense .amount{width:35%;padding-right:17px}.expense .amount strong{font-size:15px}}@media(min-width:500px){.expense .amount strong{font-size:21px}}
/* v1.3.2 — one coordinate surface for home and editor. */
.reference-header{height:auto!important;aspect-ratio:849/315;padding:0!important;background:var(--bg)!important;position:relative;margin-bottom:0}.reference-header-image{position:absolute;inset:0 auto auto 0;width:100%;height:auto;max-width:none;display:block;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.boarding-home .top{top:13px;right:25px}.image-ticket{display:block;aspect-ratio:3227/1712;position:relative;filter:none;margin:0 -8px 18px;--ticket-scale:1;container-type:inline-size}.ticket-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}.image-ticket .rail-ticket{position:absolute;inset:0;margin:0;max-width:none;width:100%;height:100%;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden;display:block}.image-ticket .rail-ticket:before,.image-ticket .rail-ticket:after{display:none}.image-ticket .ticket-stub{position:absolute;left:78.5%;right:0;top:5%;height:31%;width:auto;padding:0;background:none;border:0;border-radius:0;justify-content:flex-start;gap:2px;pointer-events:none}.image-ticket .ticket-stub:before,.image-ticket .ticket-stub:after{display:none}.image-ticket .ticket-stub small{font-size:calc(9px * var(--ticket-scale));letter-spacing:2px;color:#fff}.image-ticket .ticket-stub strong{font-size:calc(34px * var(--ticket-scale));color:#fff}.image-ticket .ticket-piece{color:#080a09;max-width:74%;line-height:1.1}.image-ticket .ticket-piece[data-piece=route]{max-width:45%;font-family:monospace;font-weight:800;white-space:nowrap}.image-ticket .ticket-piece[data-piece=trip]{max-width:25%;font-weight:800}.image-ticket .ticket-piece[data-piece=total]{max-width:71%;letter-spacing:-2px;font-family:Arial,system-ui,sans-serif;font-weight:850}.image-ticket .ticket-piece[data-piece=budget],.image-ticket .ticket-piece[data-piece=remaining]{max-width:28%;font-weight:800;letter-spacing:-.5px}.ticket-editor-area{margin:0}.ticket-editor-area>h2{margin-bottom:4px}.ticket-editor-area>p{margin-bottom:12px}.ticket-editor-area .image-ticket{margin-bottom:20px}.ticket-editor-area .ticket-piece{touch-action:none}.image-ticket.editing .ticket-piece.selected{border:1px dashed #111;background:#fff3;outline:none}.image-ticket.editing{user-select:none}.expense-main.with-photo:before{display:none!important}.expense-main.with-photo .expense-photo{position:absolute;inset:0 0 0 auto;width:52%;height:100%;object-fit:cover;opacity:.75;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000 55%);border-radius:0}.expense-main.with-photo{background:var(--card)}.expense-main{width:74%;padding:10px 12px}.expense .amount{width:26%;padding:10px 17px 10px 11px}.expense{min-height:64px}.expense-text strong{font-size:15px}.expense .amount strong{font-size:17px}.expense .amount>small:last-of-type{display:none}.expense small{margin-top:2px;font-size:9px}.expense .category{width:44px;padding-right:12px;border-right:1px solid var(--muted)}.expense-main:not(.with-photo):before{opacity:.5}.bottom{border-color:var(--line)}.section-title{margin:15px 0 10px}.section-title h2{font-size:18px}.image-ticket .ticket-stub{max-width:none}@media(max-width:360px){.image-ticket{--ticket-scale:.87}.expense-main{width:71%;gap:7px;padding:9px}.expense .amount{width:29%;padding-left:8px}.expense .amount strong{font-size:14px}.expense .category{width:32px;padding-right:8px}.expense-text strong{font-size:13px}}@media(min-width:500px){.image-ticket{--ticket-scale:1.4}.expense{min-height:85px}.expense-text strong{font-size:19px}.expense .amount strong{font-size:24px}.expense small{font-size:11px}}
.expense .amount{container-type:inline-size}.expense .amount strong{font-size:min(calc(17px * var(--row-scale,1)),calc(100cqw / (var(--amount-chars,7) * .6)));letter-spacing:-.4px}@media(min-width:500px){.expense{--row-scale:1.4}}
.image-ticket [data-piece=route]{display:flex;gap:10px;align-items:flex-start}.route-city{display:block;line-height:1;letter-spacing:-.5px}.route-city small{display:block;font:calc(6px * var(--ticket-scale,1)) Arial,sans-serif;letter-spacing:1px;color:#323820;margin-top:5px}.route-plane{width:calc(24px * var(--ticket-scale,1));height:calc(24px * var(--ticket-scale,1));flex-shrink:0;margin-top:-3px}.expense .category{position:relative;padding-right:16px}.expense .category:after{content:attr(data-jp);position:absolute;right:2px;top:0;writing-mode:vertical-rl;font-size:9px;line-height:1;color:#b54d3e;letter-spacing:1px}.expense-main:after{content:'';position:absolute;left:-5px;top:50%;transform:translateY(-50%);width:10px;height:13px;border-radius:50%;background:var(--bg);z-index:2}.bottom button[data-page=settings].active svg{fill:none;stroke:var(--accent)}
/* v1.3.3 — live header and borderless expenses. */
.live-header{height:auto!important;aspect-ratio:849/315;margin:0 -20px;padding:22px 32px 0!important;background:linear-gradient(90deg,var(--bg) 3%,transparent 75%),linear-gradient(0deg,var(--bg),transparent 38%),url('japan-scene.jpg') center 38%/cover;container-type:inline-size}.live-header h1{font-family:Arial,system-ui,sans-serif;font-size:clamp(35px,10.5cqw,58px);line-height:.86;letter-spacing:-1.7px;margin:0 0 6px;font-weight:800}.live-header h1 span{color:var(--accent)}.live-header p{font-size:clamp(9px,2.8cqw,14px);line-height:1.3;margin:7px 0 15px;color:var(--muted);max-width:83%}.live-header>small{display:block;font-size:clamp(6px,1.7cqw,9px);line-height:1.5;letter-spacing:2px;margin-top:8px}.live-header>small:before{content:'';display:block;width:15px;border-top:1px solid var(--muted);margin-bottom:5px}.live-header .japan-mark{right:31px;bottom:24px;font-size:12px;line-height:1.3}.live-header .japan-mark i{width:8px;height:8px;margin-top:5px}.expense-main,.expense .amount{border:0!important;box-shadow:none}.expense .amount .amount-thb{display:block!important;color:var(--muted);font-size:9px;line-height:1.4;white-space:nowrap;margin-top:4px}.expense .amount{padding-right:14px}.expense .amount>small:first-child{font-size:8px}.expense-main{border-radius:9px}.expense .amount{border-radius:9px}.expense .category{border-right:0}.expense{min-height:76px}.expense-main:after{display:none}.expense .amount:before,.expense .amount:after{display:none}.expense .category:after{opacity:.75}html[data-theme=light] .live-header{background:linear-gradient(90deg,var(--bg),transparent 85%),linear-gradient(0deg,var(--bg),transparent 38%),url('japan-scene.jpg') center 38%/cover}@media(max-width:360px){.live-header{margin:0 -15px;padding:17px 26px 0!important}.live-header p{margin-bottom:8px}.live-header .japan-mark{right:25px;bottom:18px}.expense .amount .amount-thb{font-size:8px}}@media(min-width:500px){.live-header{padding-top:30px!important}.live-header p{margin-bottom:18px}.expense .amount .amount-thb{font-size:11px}}
.live-header h1{position:absolute;left:8%;top:14%;font-size:clamp(35px,11vw,60px);margin:0}.live-header p{position:absolute;left:8%;top:68%;margin:0;font-size:clamp(9px,2.6vw,14px)}.live-header>small{position:absolute;left:8%;top:82%;margin:0;font-size:clamp(5px,1.5vw,8px);letter-spacing:1.8px}.live-header>small:before{margin-bottom:3px}
.sync-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;font-size:10px;color:var(--muted);padding:2px 0;margin-bottom:6px}.sync-bar .text-btn{padding:4px 8px;font-size:10px}.boarding-home .sync-bar{position:relative;z-index:3;margin:0;min-height:25px;background:var(--bg)}.boarding-home .live-header{margin-top:0}
/* v1.4.1 — sync beside BIG MEMORIES. */
.live-header .hero-caption{position:absolute;left:8%;right:8%;bottom:5%;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.hero-caption>small{font-size:clamp(5px,1.5vw,8px);letter-spacing:1.8px;line-height:1.5;color:var(--muted);white-space:nowrap}.hero-caption>small:before{content:'';display:block;width:15px;border-top:1px solid var(--muted);margin-bottom:3px}.header-sync{max-width:62%;min-width:0;flex-shrink:1}.header-sync button{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:0;min-height:12px;background:transparent;color:var(--muted);font-size:clamp(8px,2vw,10px);line-height:1.2;max-width:100%;text-align:right}.header-sync [data-sync-text]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-dot{width:7px;height:7px;flex-shrink:0;display:block;border-radius:50%;background:#ef6666}.header-sync[data-online=true] .connection-dot{background:#8ddd67}.header-sync button:disabled{opacity:1}.header-sync button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
