:root{--canvas: #f5f0e6;--surface: #fcfaf6;--text: #29261f;--muted: #625b50;--ink: var(--text);--muted-ink: var(--muted);--accent: #af321f;--accent-hover: #922919;--on-accent: #ffffff;--accent-contrast: var(--on-accent);--border: #d6cec0;--control-border: #82796a;--focus: #29261f;--warning-bg: #f8ebcd;--warning: #6c4b16;--warning-border: #e5c982;--danger-bg: #f9e8e3;--danger: #8e261c;--destructive-button-background: var(--danger);--destructive-button-hover-background: color-mix(in oklab, var(--destructive-button-background) 95%, black);--destructive-button-active-background: color-mix(in oklab, var(--destructive-button-background) 90%, black);--destructive-button-disabled-background: color-mix(in oklab, var(--destructive-button-background) 75%, black);--destructive-button-foreground: #ffffff;--success-bg: #e8eee3;--success: #35523b;--success-border: #abc0a9;--camera-bg: #171713;--surface-disabled: #eee9df;--accent-disabled: #e6dfd4;--control-border-disabled: #bdb3a5;--surface-hover: #eee8dc;--overlay: #171713cc;--camera-overlay: #171713dd;--camera-panel: #171713ee;--camera-scrim: #0008;--camera-glow: #ff7966;--camera-border: #ffffff66;--camera-border-soft: #ffffff55;--camera-wash: #ffffff18;--muted-border: #d6cec0;--admin-dark-canvas: #171713;--admin-dark-surface: #24231f;--admin-dark-surface-muted: #302e28;--admin-dark-text: #f5f0e6;--admin-dark-muted: #b4ac9e;--admin-dark-border: #4e493f;--admin-dark-control-border: #9f9584;--admin-dark-accent: #df604d;--admin-dark-accent-hover: #f27764;--admin-dark-success: #a9c5a7;--admin-dark-success-bg: #26352b;--admin-dark-warning: #e9c47d;--admin-dark-warning-bg: #3c321f;--admin-dark-danger: #efaa9e;--admin-dark-danger-bg: #3c2724;--radius-control: 2px;--radius-surface: 2px;--font-sans: Arial, "PingFang SC", "Microsoft YaHei", "Nirmala UI", Vrinda, sans-serif;--font-serif: Georgia, "Times New Roman", "Noto Serif CJK SC", "Songti SC", SimSun, "Nirmala UI", Vrinda, serif;--elevation-none: none;--elevation-scrim: 0 0 0 100vmax var(--camera-scrim);--elevation-camera-glow: 0 0 14px 3px var(--camera-glow);font-family:var(--font-sans);color:var(--text);font-size:15px;line-height:1.55}:where(html:not([data-console-theme])){background:var(--canvas);color-scheme:light}html[data-console-theme=dark]{color-scheme:dark}*{box-sizing:border-box}:where(html:not([data-console-theme])) body{min-width:0;margin:0;color:var(--text);background:var(--canvas);font-family:var(--font-sans)}html:not([data-console-theme]){scrollbar-gutter:stable}html.camera-open{overflow:hidden;scrollbar-gutter:auto}html.camera-open body{width:var(--camera-page-width, auto)}:where(html:not([data-console-theme])) :is(button,input,select,textarea){font:inherit}:where(html:not([data-console-theme])) button{cursor:pointer}:where(html:not([data-console-theme])) button:disabled{cursor:not-allowed;opacity:1}:where(html:not([data-console-theme])) :is(button,summary,input,select,textarea):focus-visible{outline-width:3px;outline-style:solid;outline-color:var(--focus);outline-offset:3px}:where(html:not([data-console-theme])) :is(h1,h2,h3){font-family:var(--font-serif);font-weight:400}:where(html:not([data-console-theme])) p{margin:0 0 14px}:where(html:not([data-console-theme])) h2:focus{outline:none}.public-entry{min-height:100dvh;display:flex;flex-direction:column;padding:0 24px}.public-entry-header{display:flex;align-items:center;gap:16px;width:min(100%,1080px);margin:0 auto;padding:24px 0;border-bottom:2px solid var(--text)}.public-entry-brand{font-family:var(--font-serif);font-size:24px}.public-entry-main{width:min(100%,720px);margin:auto;padding:72px 0}.public-entry-overline{margin-bottom:24px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em}.public-entry-main h1{margin:0 0 24px;font-size:clamp(40px,9vw,88px);line-height:1.15;overflow-wrap:anywhere}.public-entry-description{max-width:520px;color:var(--muted);font-size:17px;line-height:1.65}.public-entry-rule{display:block;width:64px;margin-top:40px;border-top:4px solid var(--accent)}.public-entry-footer{width:min(100%,1080px);margin:0 auto;padding:24px 0;color:var(--muted);border-top:1px solid var(--border);font-size:13px}.public-entry-action{max-width:360px;text-align:center;text-decoration:none}.public-entry a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.passport-import-account{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;max-width:520px;margin:0 auto;padding:4px 16px;font-size:13px}.passport-import-account p{margin:0;overflow-wrap:anywhere}.passport-import-account a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-underline-offset:4px}.passport-import-account a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media(max-width:390px){.public-entry{padding:0 16px}.public-entry-header{gap:12px}.public-entry-brand{font-size:21px}.public-entry-main{padding:48px 0}}.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:13px;padding:18px 20px 14px;color:var(--text);background:var(--canvas);border-bottom:2px solid var(--text)}.logo{display:flex;flex:none;align-items:center;justify-content:center;width:42px;height:42px;object-fit:contain;padding:2px;color:var(--text);background:transparent;border:0}.top h1{margin:0;font-family:var(--font-serif);font-size:19px;line-height:1.3}.top small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.langselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:124px;min-height:44px;margin-left:auto;padding:7px 38px 7px 14px;color:var(--text);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%2329261f' stroke-width='1.7' stroke-linecap='square'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:12px 8px;border:1px solid var(--control-border);border-radius:2px;font-size:13px;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.langselect:hover:not(:disabled){background-color:var(--surface);border-color:var(--text)}.langselect:disabled{color:var(--muted);background-color:var(--surface-disabled);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%23625b50' stroke-width='1.7' stroke-linecap='square'/%3E%3C/svg%3E");border-color:var(--border);cursor:not-allowed}.langselect:focus-visible{border-color:var(--text);outline-width:3px;outline-style:solid;outline-color:var(--focus);outline-offset:3px}.steps{display:flex;gap:16px;max-width:520px;margin:0 auto;padding:18px 16px 0;background:var(--canvas)}.step{display:block;flex:1;min-width:0;color:var(--muted)}.step b{display:block;margin-bottom:7px;overflow:visible;font-size:11px;font-weight:700;letter-spacing:normal;line-height:1.6;white-space:normal}.step i{display:block;height:2px;background:var(--border)}.step.on{color:var(--accent)}.step.on i{background:var(--accent)}.wrap{max-width:520px;margin:0 auto;padding:28px 16px 48px}.card{margin-bottom:20px;padding:24px;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--text);border-radius:2px}:where(html:not([data-console-theme])) h2{margin:0 0 10px;font-size:clamp(2rem,7vw,2.5rem);line-height:1.3;letter-spacing:normal;scroll-margin-top:110px}.sub{margin-bottom:24px;color:var(--muted);font-size:15px;line-height:1.6}.btn{display:block;width:100%;min-height:48px;margin-top:18px;padding:13px 15px;color:var(--on-accent);background:var(--accent);border:2px solid transparent;border-radius:2px;font-size:15px;font-weight:700;line-height:1.6}.btn:hover:not(:disabled){background:var(--accent-hover);border-color:transparent}.btn:disabled{color:var(--muted);background:var(--accent-disabled);border-color:var(--control-border-disabled)}.btn.sec{margin-top:10px;color:var(--text);background:var(--surface);border-color:var(--control-border)}.btn.sec:hover:not(:disabled){color:var(--text);background:var(--surface-hover);border-color:var(--text)}.btn.sec:disabled{color:var(--muted);background:var(--surface-disabled);border-color:var(--border)}.guide{display:block;width:100%;margin:0 0 20px;border:1px solid var(--border);border-radius:2px}.passport-guide{position:relative;container-type:inline-size;margin:0 0 20px;--guide-ink: #06264d;--guide-blue: #216b9e;--guide-red: #a00c0d}.passport-guide .guide{margin:0}.passport-guide-labels{position:absolute;top:0;right:0;bottom:0;left:0;font-family:var(--font-sans);font-weight:800;line-height:1.15}.passport-guide-labels>span{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center}.passport-guide-title{top:2%;left:8%;width:84%;height:9.5%;color:var(--guide-ink);font-size:8cqw}.passport-guide-subtitle{top:11.6%;left:22%;width:56%;height:5.8%;color:var(--guide-blue);font-size:5.7cqw}.passport-guide-tip{top:75.8%;width:21.2%;height:7%;color:var(--guide-ink);font-size:2.5cqw}.passport-guide-glare{left:3.9%}.passport-guide-lighting{left:27.3%}.passport-guide-portrait{left:51.5%}.passport-guide-mrz{left:75.7%;font-size:2.2cqw}.passport-guide-warning{top:87.6%;width:29%;height:6%;color:var(--guide-red);font-size:2.6cqw;text-align:left!important;justify-content:flex-start!important}.passport-guide-screen{left:22.5%}.passport-guide-copy{left:69.6%}.hint{margin-top:16px;padding:2px 0 2px 12px;color:var(--muted);border-left:3px solid var(--accent);font-size:14px;line-height:1.55}.hint b{display:block;margin-bottom:3px;color:var(--text);font-weight:700}.hint.rules,.preview-note{padding:12px 14px;color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-left:3px solid var(--accent);border-radius:2px}.hint.rules,.preview-note{margin:0 0 20px}.hint.rules b,.preview-note b{color:var(--warning)}.hint.err{padding:12px 14px;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger);border-left-width:3px;border-radius:2px}.hint.err b{color:var(--danger)}.face-error{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;color:var(--text);background:var(--surface);border:1px solid var(--text);border-radius:2px}.face-error::backdrop{background:var(--overlay)}.face-error h2{margin-bottom:14px;color:var(--danger);font-size:29px}.scan-reminder h2{color:var(--accent)}.ocr-debug{margin:16px 0;padding:10px 12px;border:1px solid var(--control-border);border-radius:2px;font-size:13px}.ocr-debug pre{margin:10px 0 0;overflow-x:auto;white-space:pre;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.file-input{display:none}.file-hint{margin:8px 0 0;color:var(--muted);font-size:12px;text-align:center}.media-preview{display:block;width:100%;max-height:440px;object-fit:contain;background:var(--surface-hover);border:1px solid var(--border);border-radius:2px}.shot{padding:30px 16px;color:var(--muted);text-align:center;background:var(--surface);border:1px dashed var(--control-border);border-radius:2px}.shot b{display:block;margin-bottom:5px;color:var(--text);font-family:var(--font-serif);font-size:21px;font-weight:400}.shot small{font-size:12px}.chk{display:flex;align-items:flex-start;gap:10px;margin-top:20px;color:var(--muted);font-size:14px;cursor:pointer}.chk input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--accent)}.foot{padding:8px 0 20px;color:var(--muted);font-size:11px;text-align:center}.privacy{padding-top:8px;color:var(--muted);border-top:1px solid var(--border);font-size:13px}.privacy summary{min-height:44px;padding:10px 0;color:var(--text);font-family:var(--font-serif);cursor:pointer}.privacy p{margin:0 0 14px}.review-media{display:grid;grid-template-columns:1fr 1fr;gap:16px}.review-details{margin:0 0 20px;padding:16px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px}.review-details h3{margin:0 0 12px;font-size:22px}.review-details dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:0}.review-details dl>div{min-width:0}.review-details dt{margin-bottom:2px;color:var(--muted);font-size:12px}.review-details dd{margin:0;overflow-wrap:anywhere;font-size:14px;font-weight:700}.review-hint{margin-top:0;margin-bottom:20px}.review-media figure{min-width:0;margin:0}.review-media figcaption{margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:normal;text-transform:uppercase}.review-media img,.review-media video{width:100%;height:180px;object-fit:contain;background:var(--surface-hover);border:1px solid var(--border);border-radius:2px}progress{width:100%;margin-top:16px;accent-color:var(--accent)}.dialog-actions{display:flex;gap:10px}.dialog-actions .btn{flex:1;margin-top:8px}.done{padding:24px 0;text-align:center}.done p:first-child{margin-bottom:8px;font-family:var(--font-serif);font-size:30px}.done p:nth-child(2){color:var(--success)}.receipt{display:block;padding:12px;overflow-wrap:anywhere;color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);border-radius:2px;font-size:14px}.camera{position:fixed;top:0;right:0;bottom:0;left:0;width:var(--camera-viewport-width, 100%);height:100dvh;min-height:100dvh;max-height:100dvh;z-index:120;display:flex;flex-direction:column;background:var(--camera-bg);overflow:hidden}.camera video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.mirrored{transform:scaleX(-1)}.camera-tip{position:absolute;top:7%;right:0;left:0;padding:12px 24px;color:#fff;text-align:center;background:var(--camera-overlay);border-bottom:1px solid var(--camera-border)}.passport-frame{position:absolute;top:50%;left:50%;width:min(63vw,55.025dvh,455px);aspect-ratio:1.55;transform:translate(-50%,-50%);border:3px solid white;border-radius:12px;box-shadow:0 0 0 100vmax var(--camera-scrim);pointer-events:none;overflow:hidden}.scan-line{position:absolute;right:0;left:0;top:0;height:100%;will-change:transform;animation:scan-sweep 1.8s ease-in-out infinite alternate}.scan-line:after{content:"";position:absolute;right:0;bottom:0;left:0;height:3px;background:var(--accent);box-shadow:0 0 14px 3px var(--camera-glow)}@keyframes scan-sweep{0%{transform:translateY(calc(-100% + 3px))}to{transform:translateY(0)}}.face-frame{position:absolute;top:46%;left:50%;width:min(82vw,520px);aspect-ratio:.74;transform:translate(-50%,-50%);border:3px solid white;border-radius:50%;box-shadow:0 0 0 100vmax var(--camera-scrim);pointer-events:none}.camera-status{position:absolute;right:16px;bottom:120px;left:16px;padding:12px;color:#fff;text-align:center;background:var(--camera-panel);border:1px solid var(--camera-border-soft);border-radius:2px}.camera-status:empty{display:none}.camera-actions{position:absolute;right:0;bottom:0;left:0;display:flex;gap:10px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:var(--camera-panel);border-top:1px solid var(--camera-border-soft)}.camera-actions button{flex:1;min-height:48px;padding:13px;color:#fff;background:transparent;border:1px solid white;border-radius:2px}.camera-actions button:first-child{color:var(--on-accent);background:var(--accent);border-color:transparent}.camera-actions button:hover:not(:disabled){background:var(--camera-wash)}.camera-actions button:first-child:hover:not(:disabled){background:var(--accent-hover);border-color:transparent}.camera button:focus-visible{outline-color:#fff}.gesture-camera .camera-status{position:relative;inset:auto;order:-1;flex-shrink:0;z-index:2;height:clamp(150px,28dvh,176px);overflow-y:auto;margin:calc(12px + env(safe-area-inset-top)) 16px 0;padding:10px 16px}.camera-view{display:contents}.gesture-camera .camera-view{position:relative;display:grid;place-items:center;flex:1;min-height:0;margin-top:12px;overflow:hidden;container-type:size}.camera-instruction{display:block;font-weight:inherit}.gesture-camera .camera-instruction{font-size:clamp(18px,2.4vw,24px);font-weight:700;line-height:1.35}.gesture-camera .camera-status.is-blink{background:var(--accent);color:var(--on-accent);border:2px solid white}.gesture-camera .is-blink .camera-instruction{font-size:clamp(22px,3vw,30px)}.blink-cue{display:block;margin:0 auto 8px}.camera-position-warning{font-size:14px;margin-bottom:8px}.gesture-camera .camera-actions{position:relative;inset:auto;z-index:1;flex-shrink:0;margin-top:12px}.camera-source{display:flex;flex-direction:column;flex-shrink:0;gap:4px;padding:8px 16px;color:#fff;background:var(--camera-panel);font-size:14px;line-height:1.4;text-align:center}.camera-actions button{min-width:0;overflow-wrap:anywhere}.gesture-camera .camera-tip{top:0;z-index:1}.gesture-camera .face-frame{position:relative;top:auto;left:auto;transform:none;width:min(82cqw,66.6cqh,380px);box-shadow:none}.photo-camera .face-frame{width:min(58.3cqw,47.36cqh,270px)}.photo-camera .face-frame.is-fit{border-color:var(--success-border)}.photo-camera .face-frame.is-front{width:min(82cqw,66.6cqh,380px)}@media(max-width:640px){.gesture-camera .camera-status{height:clamp(150px,28dvh,196px);padding:8px 12px}.gesture-camera .camera-instruction{font-size:18px;line-height:1.3}.gesture-camera .is-blink .camera-instruction{font-size:20px;line-height:1.25}.gesture-camera .blink-cue{height:22px;margin-bottom:4px}.gesture-camera .gesture-progress{margin-top:6px;gap:2px 16px;font-size:15px}}@media(max-height:480px){.gesture-camera .camera-status{height:36dvh;margin-top:calc(8px + env(safe-area-inset-top));padding:8px 12px}.gesture-camera .camera-instruction,.gesture-camera .is-blink .camera-instruction{font-size:18px}.gesture-camera .blink-cue{height:20px;margin-bottom:4px}.gesture-camera .gesture-progress{margin-top:6px;font-size:14px}}.gesture-progress{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-top:12px;font-weight:600}.gesture-camera button:disabled{color:var(--muted-border);background:var(--text)}@media(max-width:380px){.top{gap:10px;padding:14px 16px 12px}.top>div:nth-child(2){min-width:0}.langselect{width:96px;padding-right:30px;padding-left:10px}.top h1{font-size:17px}.steps{gap:9px;padding-top:14px}.step b{font-size:10px}.card{padding:18px}.review-media,.review-details dl{grid-template-columns:1fr}.review-media img,.review-media video{height:220px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media(prefers-reduced-motion:reduce){.scan-line{animation:none;transform:translateY(-50%)}}
