body{background:#203330;font-size:14px;line-height:1.6;padding:24px 20px 30px}button{font:inherit;color:inherit}button:focus-visible,[tabindex]:focus-visible{outline:3px solid #b58a48;outline-offset:3px}button:disabled{cursor:default}.stage-note{margin-bottom:20px}.stage-note h1{font-size:24px;letter-spacing:2px}.stage-note p{font-size:13px;line-height:1.8}
.phone{width:420px;height:min(860px,calc(100dvh - 132px));min-height:620px;flex:none;padding:11px;background:#122420;box-shadow:0 24px 65px #0005,0 0 0 1px #52635b}.device-screen{height:100%;min-width:0;border-radius:33px;background:var(--paper);overflow:hidden;display:flex;flex-direction:column;position:relative}.statusbar{height:30px;padding:0 24px;font-size:11px;font-weight:500}.topbar{gap:12px;padding:11px 20px 14px}.topbar .brand{font-size:19px;line-height:1.3;white-space:nowrap}.topbar .brand small{font-size:9px;line-height:1.5;margin-top:5px}.lang{flex-shrink:0}.lang button{min-width:37px;min-height:30px;padding:4px 7px;font-size:12px}.screen{min-height:0;min-width:0;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#c1baa9 transparent;overscroll-behavior:contain}.tabbar{height:auto;min-height:70px;padding:6px 8px 9px;background:#faf9f5;gap:4px}.tabbar button{min-width:0;border-radius:12px;font-size:12px;line-height:1.3;gap:5px}.tabbar button.on{color:var(--river);background:#e7eee8}.view{padding:22px 20px 26px}.chip{display:inline-flex;align-items:center;font-size:11px;line-height:1.5;padding:3px 8px;margin:0;white-space:nowrap}.btn{min-height:46px;font-size:14px;padding:11px 15px;line-height:1.6}.btn.done{background:#e1ebe1;color:#39614a}.btn:hover:not(:disabled){filter:brightness(1.06)}.toast{left:20px;right:20px;bottom:83px;transform:none;text-align:center;white-space:normal;line-height:1.6}
.map-title{font-size:22px;line-height:1.5;margin-bottom:8px}.map-sub{font-size:12px;line-height:1.8;margin-bottom:20px}.corridor{padding-left:30px}.corridor:before{left:10px;top:34px;bottom:34px;width:2px}.mrow{padding:0;margin-bottom:13px;border-radius:12px}.mrow:last-child{margin-bottom:0}.mdot{left:-29px;top:23px;border-width:2px;font-size:12px}.mcard{background:#fffcf5;border-radius:12px;padding:13px 14px;min-height:72px}.mrow:hover .mcard{border-color:#91aaa0;background:#fff}.mname{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;line-height:1.6}.mname .chip{font-size:10px;margin:0!important}.mrole{font-size:12px;margin-top:4px}.legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px!important}
.g-back{border:0;background:transparent;font-size:13px;margin-bottom:14px;padding:4px 0}.g-hero{height:auto;min-height:136px;padding:20px}.g-hero h2{font-size:24px;line-height:1.5;overflow-wrap:anywhere}.g-hero .role{font-size:12px;letter-spacing:1px;margin-bottom:5px}.badges{margin:12px 0 20px}.badge{font-size:12px;padding:4px 9px}.sec{margin-bottom:18px}.sec h3{font-size:14px;margin-bottom:8px}.sec p{font-size:14px;line-height:1.9}.childtoggle{justify-content:space-between;gap:18px;font-size:13px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.childtoggle span{font-size:13px!important;line-height:1.8;min-width:0}.switch{border:0;flex:none;width:42px;height:24px}.switch:after{top:3px;left:3px}.switch.on:after{left:21px}.taskcard{background:#fffaf0;border:1px solid #dac197;padding:15px}.taskcard .t{font-size:14px;color:#926826;margin-bottom:6px}.taskcard .d{font-size:13px;line-height:1.9}
.passport-view{padding:20px 16px 24px}.passport-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 4px 16px}.passport-heading h2{font:900 22px/1.4 "Noto Serif SC",serif;color:var(--river)}.passport-heading p{font-size:12px;color:var(--ink2);margin-top:5px}.passport-number{font:11px/1.5 ui-monospace,monospace;letter-spacing:1px;color:var(--ink2);white-space:nowrap}
.passport-cover{position:relative;width:100%;min-height:372px;border:0;border-radius:6px 17px 17px 6px;padding:34px 24px 28px 32px;background:linear-gradient(115deg,#103f43,#18575b);color:#e8cb8a;box-shadow:inset 5px 0 7px #0004,inset -1px 0 0 #85a69c55,0 10px 20px #163f3226;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;transition:transform .2s}.passport-cover:hover{transform:translateY(-2px)}.passport-cover:before{content:"";position:absolute;inset:14px 14px 14px 22px;border:1px solid #c3a46366;border-radius:2px 9px 9px 2px;pointer-events:none}.passport-cover:after{content:"";position:absolute;left:13px;top:10px;bottom:10px;border-left:1px solid #c3a46333}.cover-kicker{font-size:11px;letter-spacing:3px}.passport-emblem{width:84px;height:84px;margin:29px 0 21px}.cover-title{font:900 31px/1.5 "Noto Serif SC",serif;letter-spacing:6px;margin-left:6px}.cover-english{font-size:11px;letter-spacing:4px;margin-top:5px}.cover-route{font-size:12px;margin-top:20px;opacity:.8}.cover-open{font-size:13px;letter-spacing:1px;margin-top:27px;border-top:1px solid #c3a46366;padding-top:14px;align-self:stretch}.cover-edition{font:10px/1.4 ui-monospace,monospace;letter-spacing:2px;opacity:.7;margin-top:13px}
.passport-progress{padding:18px 4px 6px}.progress-label{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink2)}.progress-label strong{color:var(--river);white-space:nowrap}.passport-progress .progress{height:5px}.passport-hint{font-size:12px;line-height:1.8;color:var(--ink2);margin:9px 4px 0}.passport-actions{display:flex;gap:10px;margin:12px 4px 0}.passport-actions button{flex:1;min-width:0;background:none;border:1px solid #c9c6b3;border-radius:10px;min-height:42px;padding:8px 9px;font-size:13px;color:var(--river)}
.book-toolbar{display:flex;justify-content:space-between;gap:8px;padding:0 4px 13px}.book-close{border:0;background:none;color:var(--river);font-size:12px;padding:4px 0;cursor:pointer}.book-label{font:10px/1.5 ui-monospace,monospace;color:var(--ink2);letter-spacing:1px}.book-tabs{display:flex;gap:2px;padding:0 5px}.book-tabs button{flex:1;min-width:0;border:1px solid #d1c7b0;border-bottom:0;border-radius:7px 7px 0 0;padding:8px 5px;color:#7b7867;background:#e5ddc9;font-size:12px;line-height:1.5;cursor:pointer}.book-tabs button.on{background:#fffcf2;color:var(--river);font-weight:700;z-index:1}
.passport-page{min-height:474px;position:relative;border:1px solid #d5c9ab;border-radius:5px 9px 9px 5px;background:linear-gradient(90deg,#e8dfc9,#f8f2e3 13px,#fffcf2 30px);box-shadow:3px 3px 0 #e5dac5,5px 5px 0 #d7cab0,0 8px 20px #544d3212;padding:22px 20px 17px 25px;animation:page-in .25s ease-out}.passport-page:before{content:"";position:absolute;top:18px;bottom:18px;left:12px;border-left:1px dashed #b6a98966;pointer-events:none}.page-header{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #d5c9ab;padding-bottom:11px;margin-bottom:18px}.page-header h3{font:700 18px/1.4 "Noto Serif SC",serif;color:var(--river)}.page-header p{font-size:9px;letter-spacing:2px;color:#8c927c;margin-top:5px}.page-header>span{font:12px/1.5 ui-monospace,monospace;color:var(--gold)}
.identity-top{display:grid;grid-template-columns:80px minmax(0,1fr);gap:17px;align-items:center;margin-bottom:20px}.portrait{height:106px;border:1px solid #cfc5ad;background:#e3e9db;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--river)}.portrait strong{font:700 35px/1.4 "Noto Serif SC",serif}.portrait span{font-size:9px;letter-spacing:2px;margin-top:6px}.identity-name{font:900 25px/1.4 "Noto Serif SC",serif;letter-spacing:2px}.identity-latin{font:12px/1.6 ui-monospace,monospace;letter-spacing:2px;color:var(--ink2);margin-top:4px}.identity-category{font-size:12px;color:var(--ink2);margin-top:12px}.passport-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px 15px}.passport-field{min-width:0}.passport-field dt{font-size:10px;line-height:1.6;color:#83866f;margin-bottom:4px}.passport-field dd{font-size:13px;line-height:1.7;overflow-wrap:anywhere;font-weight:500}.passport-field.wide{grid-column:1/-1}.signature{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:12px;border-top:1px solid #d5c9ab;color:#83866f;font-size:10px}.signature strong{font:700 20px/1.4 "Noto Serif SC",serif;color:var(--ink)}.machine-code{margin-top:15px;padding:10px 7px;background:#ede9d8;border:1px solid #e1dbc8;color:#647463;font:9px/1.7 ui-monospace,monospace;letter-spacing:1px;overflow-wrap:anywhere}.page-bottom{display:flex;justify-content:space-between;gap:12px;font-size:9px;color:#9a9580;margin-top:17px;letter-spacing:1px}
.visa-entry{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:13px;padding:13px 0;border-bottom:1px dashed #ddd3bd;min-height:118px}.visa-entry:last-child{border-bottom:0}.visa-stamp{height:92px;border:2px solid #d0c6ae;border-radius:50%;color:#9d9c88;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;width:100%;font-family:inherit;cursor:pointer}.stamp-country{font:8px/1.4 ui-monospace,monospace;letter-spacing:1px}.stamp-city{font:700 17px/1.4 "Noto Serif SC",serif}.stamp-date{font:9px/1.5 ui-monospace,monospace;letter-spacing:.6px}.visa-stamp.have{color:var(--seal);border-color:var(--seal);box-shadow:inset 0 0 0 3px #fffcf2,inset 0 0 0 4px #ad403744;transform:rotate(-5deg)}.visa-entry:nth-child(2) .visa-stamp.have{transform:rotate(4deg)}.visa-stamp.rect{border-radius:5px;height:80px}.visa-stamp:hover{background:#ede5d13d}.visa-meta h4{font-size:13px;line-height:1.7}.visa-meta p{font-size:11px;color:var(--ink2);margin-top:3px;line-height:1.7}.visa-link{border:0;border-bottom:1px solid #c8b992;background:none;color:#956c2b;padding:3px 0;margin-top:5px;font-size:11px;cursor:pointer}.visa-note{font-size:11px;color:var(--ink2);line-height:1.8;margin-top:12px}.book-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 4px 4px}.book-pagination button{background:#fffcf2;border:1px solid #cfc6af;border-radius:9px;min-height:40px;padding:8px 13px;font-size:12px;color:var(--river);cursor:pointer}.book-pagination button:disabled{opacity:.38}.book-pagination span{font:12px/1.5 ui-monospace,monospace;color:#7c806f}.cert{display:block;background:#eee4ce;border:1px solid #d5b77f;padding:17px;margin:17px 4px 0}.cert p{font-size:12px;color:var(--ink2);line-height:1.8;margin-top:6px}
.stamp-dialog{border:1px solid #c9bb9e;border-radius:16px;padding:24px;width:min(340px,calc(100vw - 36px));margin:auto;background:#fffcf2;color:var(--ink);box-shadow:0 15px 60px #0004}.stamp-dialog::backdrop{background:#112c28a6}.dialog-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:24px;padding:6px;color:var(--ink2)}.dialog-eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:13px}.stamp-dialog h3{font:700 23px/1.5 "Noto Serif SC",serif;color:var(--river);margin-bottom:13px}.stamp-dialog dl{display:grid;grid-template-columns:70px 1fr;gap:10px;font-size:13px;line-height:1.8}.stamp-dialog dt{color:var(--ink2)}.dialog-task{border-top:1px solid var(--line);padding-top:14px;margin-top:17px;font-size:13px;line-height:1.9;color:var(--ink2)}
#print-root{display:none}@keyframes page-in{from{opacity:.3;transform:translateX(5px)}to{opacity:1;transform:none}}
@media(max-width:520px){body{padding:0;background:var(--paper)}.stage-note{display:none}.phone{width:100%;height:100dvh;min-height:0;padding:0;border-radius:0;box-shadow:none;background:var(--paper)}.device-screen{border-radius:0}.statusbar{height:27px;padding:0 22px}.tabbar{padding-bottom:max(10px,env(safe-area-inset-bottom))}.view{padding:20px 20px 26px}.passport-view{padding:20px 16px 24px}.passport-cover{min-height:365px}}
@media(max-width:350px){.topbar{padding-left:15px;padding-right:15px;gap:8px}.topbar .brand{font-size:17px}.lang button{min-width:32px;padding:4px 5px}.view{padding-left:15px;padding-right:15px}.passport-view{padding-left:12px;padding-right:12px}.passport-heading{display:block}.passport-number{margin-top:5px}.passport-page{padding-right:15px;padding-left:22px}.visa-entry{grid-template-columns:96px minmax(0,1fr);gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{@page{size:A5;margin:12mm}body{padding:0;background:white;display:block}.stage-note,.phone,[data-custom-element]{display:none!important}#print-root{display:block}.print-sheet{break-after:page;padding:12px;min-height:160mm}.print-sheet:last-child{break-after:auto}.print-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #9f8247;text-align:center}.print-cover h1{font:900 38px/1.8 "Noto Serif SC",serif;letter-spacing:8px}.print-cover p{margin-top:22px;line-height:2}.print-sheet h2{font:700 24px/1.5 "Noto Serif SC",serif;margin-bottom:20px}.print-sheet .passport-fields{gap:24px}.print-sheet .visa-entry{grid-template-columns:120px 1fr;min-height:145px}.print-sheet .visa-link{display:none}.print-sheet .visa-stamp{height:102px}.print-note{margin-top:30px;font-size:12px;color:#7a7a62}}
