@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Dwzd0TKx.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal--EtKVqC7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BKTgBNmI.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-DDbeQdWO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DkTWoOHj.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-DXKoNrs9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-BriLmxM2.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-CVvOgo6s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-vietnamese-500-normal-FzY9NZwK.woff2) format("woff2"),url(/assets/bricolage-grotesque-vietnamese-500-normal-ACIdeXZc.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-ext-500-normal-DUJYDmsv.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-ext-500-normal-Z72nzVeJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-BHpYN_HW.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CWnmjKbn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2) format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-Bjgb6QqJ.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-BRATjt3U.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-CuS3XhgN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-C36XWx9h.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-C8eqsgJb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-vietnamese-800-normal-RJtJa6zl.woff2) format("woff2"),url(/assets/bricolage-grotesque-vietnamese-800-normal-CPHRL2kP.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-ext-800-normal-_yn0wLTj.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-ext-800-normal-C1cczxkI.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-800-normal-Aqts05cm.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-800-normal-6Cj4VTbn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-normal-B4aMDxGo.woff2) format("woff2"),url(/assets/courier-prime-latin-ext-400-normal-CLmhYgOR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-CDjTZLco.woff2) format("woff2"),url(/assets/courier-prime-latin-400-normal-Bi6GSK1X.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-ext-700-normal-DY0GsuGa.woff2) format("woff2"),url(/assets/courier-prime-latin-ext-700-normal-C-hBJTU0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-700-normal-CxaI4pPW.woff2) format("woff2"),url(/assets/courier-prime-latin-700-normal-_Z1Sm7yX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#EDF0F5;--surface:#FFFFFF;--surface-2:#F5F7FA;--ink:#14223D;--ink-2:#3A4865;--muted:#647089;--line:#D5DBE5;--brand:#1B3A6B;--primary:var(--brand);--on-primary:#FFFFFF;--primary-soft:color-mix(in srgb,var(--brand) 11%,#ffffff);--gold:#9C701A;--gold-soft:#F4E9CC;--maple:#C2352A;--ok:#1C7548;--ok-soft:#DCF0E4;--warn:#8F5600;--warn-soft:#FBEBCF;--err:#B42318;--err-soft:#FCE6E2;--focus:#2F6FDB;--st1:#1B3A6B;--st2:#B42318;--st3:#1C7548;--st4:#6E45A0;--st5:#9C701A;--shadow:0 1px 2px rgba(20,34,61,.06),0 8px 24px rgba(20,34,61,.08);--f-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--f-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:"Courier Prime","Courier New",ui-monospace,monospace;--r:14px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#0B1220;--surface:#131D31;--surface-2:#19263F;--ink:#E8EDF6;--ink-2:#C4CDDF;--muted:#909CB4;--line:#28365A;--primary:color-mix(in srgb,var(--brand) 42%,#ffffff);--on-primary:#0B1220;--primary-soft:color-mix(in srgb,var(--brand) 32%,#131D31);--gold:#E3B652;--gold-soft:#3A311E;--maple:#F2715F;--ok:#55C894;--ok-soft:#143326;--warn:#EDA846;--warn-soft:#38290F;--err:#FF8576;--err-soft:#3D1B19;--focus:#8AB6FF;--st1:#93B6FF;--st2:#FF8C80;--st3:#62D3A0;--st4:#C9A2FF;--st5:#E3B652;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);color-scheme:dark}}:root[data-theme=dark]{--bg:#0B1220;--surface:#131D31;--surface-2:#19263F;--ink:#E8EDF6;--ink-2:#C4CDDF;--muted:#909CB4;--line:#28365A;--primary:color-mix(in srgb,var(--brand) 42%,#ffffff);--on-primary:#0B1220;--primary-soft:color-mix(in srgb,var(--brand) 32%,#131D31);--gold:#E3B652;--gold-soft:#3A311E;--maple:#F2715F;--ok:#55C894;--ok-soft:#143326;--warn:#EDA846;--warn-soft:#38290F;--err:#FF8576;--err-soft:#3D1B19;--focus:#8AB6FF;--st1:#93B6FF;--st2:#FF8C80;--st3:#62D3A0;--st4:#C9A2FF;--st5:#E3B652;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);line-height:1.12;text-wrap:balance;margin:0;letter-spacing:-.01em}p{margin:0}.mono{font-family:var(--f-mono)}.wrap{max-width:620px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:12px 40px}.wrap.wide{max-width:1000px}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.top-in{display:flex;align-items:center;gap:12px;min-height:56px;max-width:1000px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.brand{display:flex;align-items:center;gap:10px;min-width:0;background:none;border:0;padding:0;text-align:left}.mark,.brand>.mark{min-width:32px;height:32px;padding:0 7px;border-radius:9px;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;font-family:var(--f-display);font-weight:800;font-size:12px;letter-spacing:.02em;flex:none}.brand b{font-family:var(--f-display);font-size:15px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand span{font-size:12px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spacer{flex:1}.save{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}.save i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}.save[data-s=pending] i{background:var(--warn)}.save[data-s=error] i{background:var(--err)}.save[data-s=local] i{background:var(--gold)}.menu{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.menu::-webkit-scrollbar{display:none}.menu .tab{flex:none}@media (max-width:560px){.menu .tab.wide-only{display:none}}.tab{border:0;background:none;padding:8px 10px;border-radius:10px;font-size:14px;color:var(--ink-2)}.tab[aria-current=page]{background:var(--primary-soft);color:var(--ink);font-weight:700}@media (max-width:560px){.tab{padding:8px}.brand>span:last-child span{display:none}}@media (max-width:440px){.brand>span:last-child{display:none}}@media (max-width:370px){.save b{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:16px;text-decoration:none}.btn.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.btn.ghost{background:none;border-color:transparent;color:var(--ink-2)}.btn.small{min-height:36px;padding:0 12px;font-size:14px;border-radius:10px}.btn.danger{color:var(--err)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.link{background:none;border:0;padding:0;color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px}:root[data-theme=dark] .link{color:var(--gold)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .link{color:var(--gold)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.gold{background:var(--gold-soft);color:var(--gold)}.hero{padding:28px 0 8px;display:grid;gap:14px}.hero h1{font-size:clamp(2rem,7vw,2.9rem);font-weight:800}.hero p{font-size:1.08rem;color:var(--ink-2);max-width:60ch}.need{display:grid;gap:10px;padding:18px;margin-top:18px}.need ul{margin:0;padding-left:20px;display:grid;gap:4px;color:var(--ink-2)}.consent{display:flex;gap:12px;align-items:flex-start;padding:16px;margin-top:16px}.consent input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--primary)}.stack{display:grid;gap:12px}.pass{position:relative;overflow:hidden;margin-top:8px}.pass-top{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 18px;background:var(--primary);color:var(--on-primary);font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.pass-route{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:18px 18px 8px}.iata{font-family:var(--f-display);font-weight:800;font-size:2.4rem;line-height:1;display:block;letter-spacing:.02em}.city{font-size:13px;color:var(--muted);display:block;max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.to{text-align:right}.to .city{margin-left:auto}.flight{position:relative;height:28px}.flight:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--line)}.flight .trail{position:absolute;left:0;top:50%;height:2px;margin-top:-1px;background:var(--gold);border-radius:2px}.flight svg{position:absolute;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;color:var(--gold);transition:left .6s ease}.pass-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:10px 18px 16px}.pass-grid div{min-width:0}.pass-grid b{display:block;font-family:var(--f-mono);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pass-stub{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-top:2px dashed var(--line);background:var(--surface-2)}.pass-stub:before,.pass-stub:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:var(--bg);margin-top:-10px}.pass-stub:before{left:-10px}.pass-stub:after{right:-10px}.pct{font-family:var(--f-display);font-weight:800;font-size:1.6rem}@media (min-width:700px){.pass-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.jhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:26px 0 12px;flex-wrap:wrap}.jhead h2{font-size:1.4rem}.route{display:grid;gap:10px}@media (min-width:760px){.route{grid-template-columns:repeat(2,minmax(0,1fr))}}.stop{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px 14px;text-align:left;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);min-height:76px}.stop:hover{border-color:var(--ink-2)}.stop .ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}.stop .ic svg{width:24px;height:24px}.stop .ic .stamp{width:56px;height:56px}.stop .h3{display:block;font-family:var(--f-display);font-weight:700;font-size:1.05rem;line-height:1.2}.stop .num{display:block}.stop small{color:var(--muted);font-size:13px}.stop .bar{height:5px;border-radius:5px;background:var(--surface-2);margin-top:6px;overflow:hidden}.stop .bar i{display:block;height:100%;background:var(--primary);border-radius:5px}.stop.next{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.stop .num{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.cta-bar{position:sticky;bottom:0;padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,transparent,var(--bg) 35%);display:flex;gap:10px;margin-top:16px}.cta-bar .btn.primary{flex:1}.chap{display:flex;align-items:center;gap:10px;margin:14px 0 10px}.chap .ic{width:34px;height:34px;border-radius:50%;background:var(--primary-soft);display:grid;place-items:center;color:var(--ink);flex:none}.chap .ic svg{width:18px;height:18px}.chap span{font-size:14px;color:var(--ink-2);font-weight:700}.chap .count{margin-left:auto;font-family:var(--f-mono);font-size:13px;color:var(--muted)}.segs{display:flex;gap:4px;margin-bottom:22px}.segs i{flex:1;height:5px;border-radius:5px;background:var(--line)}.segs i.d{background:var(--primary)}.segs i.c{background:var(--gold)}.qtitle{font-size:clamp(1.45rem,5.4vw,1.9rem);font-weight:700}.qsub{color:var(--ink-2);margin-top:10px;max-width:62ch}.forms{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.forms span{font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;padding:2px 8px;border-radius:6px;border:1px solid var(--line);color:var(--muted)}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin-top:22px}.fld{grid-column:1/-1;display:grid;gap:6px;min-width:0}.fld.half{grid-column:span 1}@media (max-width:340px){.fld.half{grid-column:1/-1}}.fld>label,.fld>.lbl{font-weight:700;font-size:15px}.fld .req{color:var(--maple);margin-left:2px}.help{font-size:13px;color:var(--muted)}.err{font-size:14px;color:var(--err);font-weight:700}.inp{width:100%;min-height:52px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);font-size:17px}.inp:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-soft)}.inp.mono,.inp.up{font-family:var(--f-mono);letter-spacing:.04em}.inp.up{text-transform:uppercase}textarea.inp{min-height:96px;resize:vertical}.fld.bad .inp{border-color:var(--err)}.yn{display:grid;grid-template-columns:1fr 1fr;gap:12px}.yn button,.opt{min-height:60px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px}.yn button[aria-pressed=true],.opt[aria-pressed=true],.opt[aria-checked=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.opts{display:grid;gap:10px}.opts.cols{grid-template-columns:repeat(2,minmax(0,1fr))}.opt{justify-content:flex-start;font-size:16px;text-align:left;min-height:54px}.opt .dot{width:20px;height:20px;border-radius:50%;border:2px solid currentColor;flex:none;opacity:.6;display:grid;place-items:center}.opt[aria-pressed=true] .dot,.opt[aria-checked=true] .dot{opacity:1}.opt[aria-pressed=true] .dot:after,.opt[aria-checked=true] .dot:after{content:"";width:10px;height:10px;border-radius:50%;background:currentColor}.opt.sq .dot{border-radius:5px}.opt.sq[aria-pressed=true] .dot:after{border-radius:2px}.check{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);font-weight:700}.check input{width:24px;height:24px;flex:none;accent-color:var(--primary)}.cb{position:relative}.cb-list{position:absolute;z-index:15;left:0;right:0;top:calc(100% + 4px);max-height:280px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px}.cb-list button{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 12px;border-radius:8px;font-size:16px}.cb-list button[aria-selected=true],.cb-list button:hover{background:var(--primary-soft)}.cb-list .grp{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 12px 4px}.note{padding:14px 16px;border-radius:12px;background:var(--gold-soft);color:var(--ink);font-size:15px;margin-top:18px}.actions{position:sticky;bottom:0;display:flex;gap:10px;padding:16px 0 calc(16px + env(safe-area-inset-bottom,0px));margin-top:26px;background:linear-gradient(to bottom,transparent,var(--bg) 30%)}.actions .btn.primary{flex:1}.items{display:grid;gap:10px;margin-top:22px}.item{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:14px 16px}.item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item small{color:var(--muted);display:block}.item .acts{display:flex;gap:6px}.add{min-height:58px;border:2px dashed var(--line);border-radius:14px;background:none;font-weight:700;color:var(--ink-2);font-size:16px}.add:hover{border-color:var(--primary);color:var(--ink)}.sheet{position:fixed;inset:0;z-index:40;background:#0a122073;display:flex;align-items:flex-end;justify-content:center}.sheet-in{width:100%;max-width:620px;max-height:calc(100% - env(safe-area-inset-top,0px) - 24px);overflow:auto;background:var(--bg);border-radius:20px 20px 0 0;padding:18px max(16px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}@media (min-width:700px){.sheet{align-items:center}.sheet-in{border-radius:20px;max-height:90%}}.sheet h2{font-size:1.35rem}.done{display:grid;justify-items:center;text-align:center;gap:14px;padding:30px 0 10px}.done .stamp{width:190px;height:190px;animation:thunk .55s cubic-bezier(.2,1.4,.4,1) both}.done h1{font-size:clamp(1.8rem,6vw,2.4rem);font-weight:800}@keyframes thunk{0%{transform:scale(1.9) rotate(var(--rot,0deg));opacity:0}55%{transform:scale(.9) rotate(var(--rot,0deg));opacity:1}to{transform:scale(1) rotate(var(--rot,0deg));opacity:1}}.stamp{transform:rotate(var(--rot,0deg));display:block}.stampbook{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;padding:16px;margin-top:12px}.stampbook .slot{aspect-ratio:1;max-width:100%;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;color:var(--muted);font-size:11px;text-align:center;padding:8px}.stampbook .stamp{width:100%;height:auto}.rsec{margin-top:18px;padding:6px 0}.rsec-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.rsec-h h2{font-size:1.1rem}.rrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 16px;border-bottom:1px solid var(--line)}.rrow:last-child{border-bottom:0}.rrow .q{font-size:14px;color:var(--muted)}.rrow .a{font-family:var(--f-mono);font-size:15px;overflow-wrap:anywhere;white-space:pre-line}.rrow .a.missing{font-family:var(--f-body);color:var(--warn);font-weight:700}.rrow button{grid-row:1/3;grid-column:2;align-self:center}.ftable{display:grid;gap:10px;margin-top:14px}.frow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center;padding:14px 16px}.frow h3{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frow .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);margin-top:4px}.frow .bar{height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden;margin-top:8px}.frow .bar i{display:block;height:100%;background:var(--primary)}.frow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}@media (max-width:560px){.frow{grid-template-columns:1fr}.frow .acts{justify-content:flex-start}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:14px}.stat{padding:14px 16px}.stat b{font-family:var(--f-display);font-size:1.8rem;display:block;font-variant-numeric:tabular-nums}.stat span{font-size:13px;color:var(--muted)}.newfile{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;padding:16px;margin-top:14px;align-items:end}.newfile .fld{grid-column:auto}details.card{padding:0;margin-top:12px}details.card summary{padding:14px 16px;cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}details.card summary::-webkit-details-marker{display:none}.mapt{overflow-x:auto;border-top:1px solid var(--line)}.mapt table{border-collapse:collapse;width:100%;font-size:14px;min-width:520px}.mapt td,.mapt th{padding:9px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.mapt th{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:400}.mapt td.path{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}.banner{padding:12px 16px;border-radius:12px;background:var(--warn-soft);color:var(--ink);font-size:14px;margin-top:12px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:700;z-index:50;max-width:calc(100% - 32px)}.skel{height:180px;border-radius:var(--r);background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));margin-top:24px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}#root{min-height:100%}a{color:inherit}.center{min-height:calc(100vh - 120px);display:grid;place-items:center}.auth{width:100%;max-width:440px;padding:28px 22px;display:grid;gap:16px}.auth h1{font-size:1.7rem;font-weight:800}.auth .brandrow{display:flex;align-items:center;gap:12px}.auth .logo{max-height:44px;max-width:180px;object-fit:contain}.otp{letter-spacing:.4em;font-family:var(--f-mono);font-size:22px;text-align:center}.msg{padding:12px 14px;border-radius:12px;font-size:15px}.msg.ok{background:var(--ok-soft);color:var(--ink)}.msg.err{background:var(--err-soft);color:var(--ink)}.msg.warn{background:var(--warn-soft);color:var(--ink)}.linkbox{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.linkbox input{flex:1 1 240px;min-width:0;font-family:var(--f-mono);font-size:14px}.panel{padding:18px;margin-top:14px;display:grid;gap:12px}.panel h3{font-size:1.15rem}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.swatch{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);padding:0;background:none}.tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--muted)}.brand img{height:28px;max-width:120px;object-fit:contain}.menu a.tab{text-decoration:none;display:inline-flex;align-items:center}.readonly-note{padding:12px 16px;border-radius:12px;background:var(--primary-soft);margin-top:12px}.audit{font-size:13px;color:var(--muted)}.auth .mark{flex:none}.stop:disabled{opacity:.6;cursor:not-allowed}.tab.icon{display:inline-grid;place-items:center;width:40px;height:40px;padding:0}.tab.icon svg{width:20px;height:20px}.doccard{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px 14px;text-align:left;width:100%;margin-top:14px;min-height:76px;border-style:dashed}.doccard:hover{border-color:var(--ink-2)}.doccard .ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);color:var(--gold)}.doccard .ic svg{width:24px;height:24px}.doccard .num{display:block;font-family:var(--f-mono);font-size:12px;color:var(--muted)}.doccard .h3{display:block;font-family:var(--f-display);font-weight:700;font-size:1.05rem;line-height:1.2}.doccard .bar{display:block;height:5px;border-radius:5px;background:var(--surface-2);margin-top:6px;overflow:hidden}.doccard .bar i{display:block;height:100%;background:var(--gold);border-radius:5px}.done.partial .stamp-ghost{width:120px;height:120px;border-radius:50%;border:3px dashed var(--line);display:grid;place-items:center;color:var(--muted)}.done.partial .stamp-ghost svg{width:44px;height:44px}.dbar{height:8px;border-radius:8px;background:var(--surface-2);overflow:hidden;margin:6px 0 10px}.dbar i{display:block;height:100%;background:var(--gold);border-radius:8px;transition:width .4s ease}.dsec{margin-top:22px;display:grid;gap:10px}.dsec h3{font-size:1.1rem}.ditem{padding:14px 16px;display:grid;gap:12px}.ditem.complete{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.dhead{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start}.dhead b{display:block;line-height:1.3}.dhead small{display:block;color:var(--muted);font-size:13px;margin-top:2px}.dhead .pill{margin-top:1px}.dtick{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:var(--on-primary)}.dtick.on{background:var(--ok);border-color:var(--ok);color:#fff}.dtick svg{width:16px;height:16px}.dcond{display:block;color:var(--gold)!important;font-weight:700}.dfiles{display:grid;gap:8px}.dfile{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px 10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--surface-2)}.dfile>svg{width:20px;height:20px;color:var(--muted)}.dfile .dname{min-width:0}.dfile .dname .link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-weight:600}.dfile small{display:block;color:var(--muted);font-size:12px}.dfile .dnote{color:var(--warn);font-weight:700;font-size:13px;margin-top:4px;white-space:normal}.dfile .acts{grid-column:2/-1;display:flex;gap:6px;flex-wrap:wrap}.dfile .acts:empty{display:none}.dfile .row{display:flex;gap:6px;flex-wrap:wrap}.dfile .row .inp{flex:1 1 180px;min-height:40px}.add.dup{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;width:100%}.add.dup svg{width:20px;height:20px}.add.dup:disabled{opacity:.6}.ckrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;align-items:center;padding:12px 14px}.ckrow b{display:block}.ckrow small{display:block;color:var(--muted);font-size:13px;margin-top:2px}.ckrow .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.ckrow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ckrow.muted-row{opacity:.75}.ckform{display:grid;gap:14px;margin:10px 0}.ckform select.inp{appearance:auto}@media (max-width:560px){.ckrow{grid-template-columns:1fr}.ckrow .acts{justify-content:flex-start}}@media (max-width:440px){.brand{flex:none}.save b{display:none}.top-in{gap:8px}.tab{padding:8px 6px;font-size:13.5px}.tab.icon{width:34px}}@media (max-width:350px){.menu .tab:not(.icon){font-size:12.5px;padding:8px 5px}}.grid2 .span2{grid-column:1/-1}.pk{margin-top:14px;display:grid;gap:12px}.pk-h{display:flex;gap:12px;align-items:flex-start}.pk-h h3{margin:0}.pk-h p{margin:4px 0 0}.pk-n{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font-weight:700;font-size:.9rem}.pk-files{display:grid;gap:8px}.pk-file{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.pk-file>svg{flex:none;width:20px;height:20px;color:var(--muted)}.pk-file>div:not(.acts){flex:1;min-width:0;display:grid;gap:2px}.pk-file b{overflow-wrap:anywhere}.pk-file small{color:var(--muted)}.pk-file .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pk-all{border-color:var(--primary)}.pk-notes{margin:0;padding-left:18px;display:grid;gap:4px;font-size:.92rem}.pk-plan{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.pk-sec{padding:10px 12px;border:1px dashed var(--line);border-radius:12px;display:grid;gap:2px}.pk-sec small{color:var(--muted)}.warn-t{color:var(--warn)}@media (max-width:520px){.pk-file{flex-wrap:wrap}.pk-file .acts{width:100%;justify-content:flex-start}}.foot{margin:22px 0 8px;text-align:center;font-size:13.5px;color:var(--muted)}.foot .link{font-size:inherit}
