*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Noto Sans Thai,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--bg:#f4f4f5;--surface:#fff;--surface-2:#f7f6f5;--line:#e7e5e4;--text:#18181b;--muted:#6b7280;--ink:#18181b;--brand:#f97316;--brand-ink:#ea580c;--brand-soft:#fff1e6;--ok:#16a34a;--ok-soft:#dcfce7;--warn:#d97706;--warn-soft:#fef3c7;--danger:#dc2626;--radius:14px;--radius-sm:10px}[data-theme=dark]{--bg:#0c0c0d;--surface:#19191b;--surface-2:#232325;--line:#2e2e31;--text:#f5f5f4;--muted:#a1a1aa;--ink:#f5f5f4;--brand:#fb8c3a;--brand-ink:#fdba74;--brand-soft:#2a1a0e;--ok:#34d399;--ok-soft:#123524;--warn:#fbbf24;--warn-soft:#3a2c0a;--danger:#f87171}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{font-family:Noto Sans Thai,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}h1{font-size:22px;font-weight:700;margin:0 0 6px}h2{font-size:19px;font-weight:600;margin:0}code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:13px}.muted{color:var(--muted);font-size:14px;margin:0}.muted.small,.small{font-size:12.5px}.app{min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:20px 12px;background:var(--bg)}.app,.phone{display:flex;flex-direction:column}.phone{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 18px 50px rgba(15,23,42,.12);min-height:720px}.phone-top{justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--line)}.brand,.phone-top{display:flex;align-items:center}.brand{gap:9px}.brand-logo{flex-shrink:0;display:block}.brand-word{font-weight:700;letter-spacing:1px;font-size:16px;color:var(--text)}.brand-plus{color:var(--brand)}.icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.icon{vertical-align:-.15em;flex-shrink:0}.progress-wrap{padding:14px 18px 4px}.progress-bar{height:5px;background:var(--surface-2);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--brand);border-radius:3px;transition:width .3s ease}.progress-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:7px}.phone-body{flex:1;padding:18px;overflow-y:auto}.env-note{margin-top:14px;font-size:12px;color:var(--muted);text-align:center;max-width:420px}.env-link{color:var(--brand-ink);text-decoration:none}.env-link:hover{text-decoration:underline}.step{display:flex;flex-direction:column;gap:14px;animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.step-head{display:flex;align-items:flex-start;gap:12px}.step-head-icon{width:42px;height:42px;border-radius:12px;flex-shrink:0;background:var(--brand-soft);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-size:21px}.step-hero{text-align:center;padding:8px 0 4px}.hero-logo{margin:0 auto 16px}.hero-icon,.hero-logo{display:flex;justify-content:center}.hero-icon{width:64px;height:64px;margin:0 auto 14px;border-radius:18px;background:var(--brand-soft);color:var(--brand-ink);align-items:center;font-size:30px}.card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;flex-direction:column;gap:10px}.card,.kv{display:flex}.kv{justify-content:space-between;gap:12px;font-size:14px}.kv.col{flex-direction:column;gap:2px}.kv .k{color:var(--muted);flex-shrink:0}.kv .v{font-weight:500}.kv .v,.summary .v{text-align:right}.checklist{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:10px}.checklist li{gap:12px;font-size:14px;color:var(--text)}.checklist li,.checklist span{display:flex;align-items:center}.checklist span{width:24px;height:24px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.secure-note{background:var(--surface-2);border:1px dashed var(--line);padding:10px 12px;font-size:13px;color:var(--muted);text-align:center}.edit-banner,.secure-note{border-radius:var(--radius-sm)}.edit-banner{display:flex;gap:10px;align-items:flex-start;background:var(--warn-soft);color:var(--warn);padding:12px 14px;font-size:13.5px;line-height:1.5}.edit-banner b{display:block;margin-bottom:2px}.btn-ghost,.btn-primary{font-family:inherit;font-size:15px;font-weight:600;padding:13px 18px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:transform .08s,opacity .15s}.btn-primary{background:var(--brand);color:#fff}.btn-primary:active{transform:scale(.985)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn-ghost.full,.btn-primary.full{width:100%}.shutter{letter-spacing:1px}.link-btn{background:none;border:none;color:var(--brand-ink);font-family:inherit;font-size:14px;cursor:pointer;padding:4px}.link-btn.center{align-self:center}.step-footer{display:flex;gap:10px;margin-top:6px}.step-footer .btn-ghost{flex:1}.step-footer .btn-primary{flex:2}.form-err{color:var(--danger);font-size:13.5px;text-align:center}.otp-row{display:flex;gap:9px;justify-content:space-between}.otp-box{flex:1;aspect-ratio:1;min-width:0;text-align:center;font-size:24px;font-weight:600;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-family:inherit}.otp-box:focus{outline:none;border-color:var(--brand)}.otp-box.err{border-color:var(--danger)}.otp-resend{display:flex;justify-content:space-between;align-items:center;font-size:13px}.otp-resend .ref{font-size:11px}.demo-hint{align-self:center;border:1px dashed var(--line);border-radius:20px;padding:7px 14px;font-size:12.5px;color:var(--muted);cursor:pointer;font-family:inherit}.demo-hint,.pdpa-doc{background:var(--surface-2)}.pdpa-doc{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;max-height:250px;overflow-y:auto;font-size:13.5px}.pdpa-doc p,.pdpa-doc ul{margin:0 0 10px}.pdpa-doc ul{padding-left:18px}.pdpa-doc li{margin-bottom:5px}.consent{display:flex;gap:11px;align-items:flex-start;font-size:14px;cursor:pointer;padding:4px 2px}.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--brand);flex-shrink:0}.cam{display:flex;flex-direction:column;gap:12px}.cam-stage{position:relative;width:100%;aspect-ratio:3/4;max-height:360px;background:#0b1220;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.cam-video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.cam-video.mirror{transform:scaleX(-1)}.cam-shot{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.cam-error,.cam-loading{position:absolute;color:#cbd5e1;font-size:14px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;padding:16px}.cam-error .link-btn{color:#93c5fd}.overlay-face{inset:12% 18%;border:2.5px dashed hsla(0,0%,100%,.6);border-radius:50% 50% 46% 46%}.overlay-card,.overlay-face{position:absolute;pointer-events:none}.overlay-card{inset:28% 8%;border:2.5px dashed hsla(0,0%,100%,.6);border-radius:12px}.cam-hint{font-size:13px;color:var(--muted);text-align:center}.cam-lock{font-size:12px;color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:7px 10px;text-align:center}.map-mock{position:relative;width:100%;height:190px;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}.map-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:26px 26px;opacity:.6}.map-pin{z-index:1;color:var(--muted);opacity:.5;transition:.3s}.map-pin.set{color:var(--brand);opacity:1;transform:translateY(-4px)}.map-empty{position:absolute;bottom:14px;font-size:12px;color:var(--muted)}.sign-wrap{position:relative;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);height:200px;overflow:hidden}.sign-pad{width:100%;height:100%;touch-action:none;display:block;cursor:crosshair}.sign-line{left:18px;right:18px;bottom:34px;border-bottom:1.5px dashed var(--line);text-align:center;font-size:11px;padding-bottom:3px}.sign-line,.sign-placeholder{position:absolute;color:var(--muted)}.sign-placeholder{inset:0;justify-content:center;font-size:15px;pointer-events:none}.sign-placeholder,.sign-tools{display:flex;align-items:center}.sign-tools{justify-content:space-between}.info-note{font-size:13px;color:var(--muted);background:var(--surface-2);border-radius:var(--radius-sm);padding:10px 12px}.doc-viewer{gap:14px;max-height:58vh;overflow-y:auto;padding:12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line)}.doc-page,.doc-viewer{display:flex;flex-direction:column}.doc-page{position:relative;background:#fff;color:#1a1a1a;border:1px solid #e6e6e6;border-radius:6px;padding:18px 16px 14px;aspect-ratio:1/1.414;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;font-size:12px;line-height:1.7}.doc-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;color:rgba(37,99,235,.06);transform:rotate(-24deg);pointer-events:none;white-space:nowrap;letter-spacing:2px}.doc-head{display:flex;justify-content:space-between;font-size:10.5px;color:#8a8a8a;border-bottom:1px solid #eee;padding-bottom:6px}.doc-title{font-size:14px;font-weight:700;text-align:center;margin:12px 0;color:#111}.doc-body{flex:1}.doc-body p{margin:0 0 8px}.doc-foot{text-align:center;font-size:10px;color:#aaa;border-top:1px solid #eee;padding-top:5px;margin-top:6px}.sign-block{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;margin-top:auto;padding-top:8px}.sign-block-box{width:96px;height:44px;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:center;overflow:hidden}.sign-block-box img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.sign-block-meta{display:flex;flex-direction:column;align-items:center;font-size:10.5px;color:#333;gap:1px;min-width:96px}.sign-block-meta .muted{color:#999!important}.idcopy-img{position:relative;flex:1;margin:10px 0;border:1px solid #eee;border-radius:6px;overflow:hidden;background:#f4f4f4;display:flex;align-items:center;justify-content:center}.idcopy-img>img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.idcopy-missing{color:#aaa;font-size:12px}.idcopy-stamp{position:absolute;left:8px;bottom:8px;right:8px;background:hsla(0,0%,100%,.86);border:1px solid rgba(220,38,38,.5);border-radius:5px;padding:6px 8px;display:flex;flex-direction:column;gap:1px}.stamp-purpose{font-size:10.5px;font-weight:700;color:#b91c1c;line-height:1.4}.stamp-sig{max-height:30px;align-self:flex-start;-o-object-fit:contain;object-fit:contain;margin:1px 0}.stamp-name{font-size:10px;color:#333}.stamp-date{font-size:9.5px;color:#777}.pdf-contract{gap:12px}.pdf-contract,.pdf-host{display:flex;flex-direction:column}.pdf-host{gap:14px;align-items:center}.pdf-page{position:relative;background:#fff;border:1px solid #e2e2e2;border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,.1);overflow:hidden;max-width:100%}.pdf-page canvas{display:block;max-width:100%;height:auto}.pdf-sig{position:absolute;pointer-events:none;opacity:.92;max-width:45%}.pdf-foot{background:#fff;display:flex;justify-content:flex-end;align-items:center;padding:6px 26px 12px}.pdf-foot-sig{height:40px;max-width:45%;-o-object-fit:contain;object-fit:contain}.pdf-error,.pdf-loading{font-size:13px;color:var(--muted);text-align:center;padding:18px;display:flex;align-items:center;justify-content:center;gap:8px}.pdf-error{color:var(--danger)}.pdf-note{font-size:11.5px;color:var(--muted);text-align:center}.spinner.small{width:18px;height:18px;border-width:3px;margin:0}.doc-divider{text-align:center;font-size:12px;color:var(--muted);margin:4px 0;padding-top:8px;border-top:1px solid var(--line)}.idcopy-doc{display:flex;flex-direction:column;align-items:center;gap:8px}.idcopy-canvas{width:100%;max-width:520px;height:auto;border:1px solid #e2e2e2;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.1);background:#fff}.idcopy-canvas.idcopy-loading{aspect-ratio:620/800;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.verify-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 14px;background:var(--bg)}.verify-card{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px 24px;box-shadow:0 18px 50px rgba(15,23,42,.1)}.verify-brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:1px;font-size:16px;margin-bottom:18px}.verify-brand b{color:var(--brand)}.verify-body.center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:24px 0}.verify-badge{display:flex;align-items:center;gap:12px;background:var(--ok-soft);color:var(--ok);border-radius:14px;padding:14px 16px}.verify-badge-title{font-weight:600;font-size:14.5px;color:var(--text)}.verify-badge-sub{font-size:12.5px;color:var(--muted);margin-top:1px}.verify-hash-block{margin-top:14px;background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius-sm);padding:12px 14px}.verify-hash-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);letter-spacing:.4px;margin-bottom:6px}.verify-hash-value{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;word-break:break-all;color:var(--text)}.verify-note{font-size:12px;color:var(--muted);margin:12px 2px 0;line-height:1.6}.center-step{align-items:center;text-align:center;padding-top:18px}.spinner{width:44px;height:44px;border:4px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:6px}@keyframes spin{to{transform:rotate(1turn)}}.result-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;color:#fff}.result-icon.ok{background:var(--ok)}.result-icon.err{background:var(--danger)}.result-icon.lock{background:var(--muted)}.result-card{width:100%;text-align:left}.badge-pending{background:var(--warn-soft);color:var(--warn);padding:2px 10px;border-radius:20px;font-size:12.5px}.evidence-row{display:flex;gap:8px;width:100%}.evi{flex:1;position:relative;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;opacity:.5}.evi.has{opacity:1;border-color:var(--ok)}.evi span{font-size:20px}.evi small{font-size:11px;color:var(--muted)}.evi-check{position:absolute;top:4px;right:5px;color:var(--ok);font-style:normal;font-size:12px}@media (min-width:768px){.phone{max-width:460px}.phone-body{padding:22px}}@media (max-width:440px){.app{padding:0}.phone{max-width:100%;min-height:100vh;min-height:100dvh;border-radius:0;border:none;box-shadow:none}.env-note{display:none}}