.signature-box{margin-top:18px}
.signature-box label{margin:0 0 8px}
.signature-box canvas{display:block;width:100%;height:clamp(110px,18vh,150px);background:#fff;border-radius:10px;touch-action:none;cursor:crosshair}
.link-button{display:block;margin:7px 0 0 auto;border:0;background:transparent;color:#aeb4c0;text-decoration:underline;cursor:pointer}
.guided-card{padding:16px;max-width:620px;margin-left:auto}
.capture-progress{display:flex;align-items:center;justify-content:center;margin:3px 0 14px}
.capture-progress span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#252a34;color:#737b89;font-size:10px;font-weight:800;transition:.3s}
.capture-progress span.active{background:#e30620;color:#fff;box-shadow:0 0 0 5px rgba(227,6,32,.12)}
.capture-progress i{width:42px;height:1px;background:#303541}
.capture-title{text-align:center;margin-bottom:13px}.capture-title strong,.capture-title small{display:block}.capture-title strong{font-size:18px}.capture-title small{color:#9299a8;margin-top:3px;font-size:11px}
.guided-card .camera-stage{aspect-ratio:10/13;width:min(100%,470px,45.38dvh);margin:auto;border-radius:24px;background:#030407}
.guided-card .camera-stage video,.guided-card .camera-stage canvas{position:absolute;inset:0;object-position:center center}
#face-mesh{z-index:1;pointer-events:none;background:transparent;opacity:.72}#canvas{z-index:1}
.face-overlay{position:absolute;inset:0;z-index:2;pointer-events:none}.face-overlay svg{width:100%;height:100%}.face-overlay .shade{fill:rgba(2,4,8,.62)}
.oval-track,.oval-progress{fill:none;vector-effect:non-scaling-stroke}.adaptive-oval,#face-cutout{transition:rx .22s ease-out,ry .22s ease-out}.oval-track{stroke:rgba(255,255,255,.36);stroke-width:3;stroke-dasharray:7 8}.oval-progress{stroke:#ffb84d;stroke-width:5;stroke-linecap:round;stroke-dasharray:12 7;filter:drop-shadow(0 0 7px rgba(255,184,77,.7));transition:rx .22s ease-out,ry .22s ease-out,stroke .3s}
.face-ready .oval-progress{stroke:#31d39b;stroke-dasharray:12 7;filter:drop-shadow(0 0 8px rgba(49,211,155,.9))}.face-warning .oval-progress{stroke:#ffb84d;stroke-dasharray:12 7}.face-pending .oval-progress{stroke:#8d94a1;stroke-dasharray:12 7}.capture-complete .oval-progress{stroke:#31d39b;stroke-dasharray:12 7}.capture-complete .oval-track{stroke:rgba(255,255,255,.5)}
.oval-scan{fill:none;stroke:rgba(80,236,198,.92);stroke-width:4;stroke-linecap:round;stroke-dasharray:1 17;vector-effect:non-scaling-stroke;opacity:0;filter:drop-shadow(0 0 5px rgba(49,211,155,.85));transition:rx .22s ease-out,ry .22s ease-out,opacity .25s;animation:face-scan-dots 1.15s linear infinite}.face-tracked .oval-scan{opacity:.9}.face-ready .oval-scan{stroke:#72f5d1;opacity:1}.capture-complete .oval-scan{opacity:0;animation:none}@keyframes face-scan-dots{to{stroke-dashoffset:-72}}
.camera-quality{position:absolute;z-index:3;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;gap:8px}.camera-quality span{background:rgba(5,7,11,.72);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:7px 9px;font-size:9px;color:#d9dce2}
.camera-instruction{text-align:center;min-height:52px;padding:12px 5px 4px}.camera-instruction b,.camera-instruction small{display:block}.camera-instruction b{font-size:16px}.camera-instruction small{color:#9299a8;margin-top:2px;font-size:11px}.face-ready+.camera-instruction b{color:#31d39b}
.camera-fallback{width:min(100%,470px);margin:4px auto 10px;display:block;min-height:44px}.camera-fallback:disabled{opacity:.5}.camera-fallback[hidden]{display:none}
.customer-records{display:grid;gap:7px;margin-top:8px}.customer-records>div{padding:9px 11px;border:1px solid #292f3a;border-radius:9px;background:#0d1016}.customer-records b,.customer-records small{display:block}.customer-records small{color:#9299a8;margin-top:2px}.customer-records .error-text{color:#ff8b98}
.capture-button:disabled{background:#343944;cursor:not-allowed}.capture-experience{align-items:start;min-width:0}.capture-experience>*{min-width:0}
@media(max-width:850px){.public-page .public-main{max-width:680px}.capture-experience{grid-template-columns:1fr;gap:24px}.guided-card{margin:auto;width:min(100%,620px)}.capture-info{text-align:center}.capture-info h1{font-size:clamp(38px,8vw,54px)}.capture-info dl{text-align:left}.privacy{text-align:left}}
@media(max-width:520px){
  html,body.public-page{width:100%;max-width:100%;overflow-x:hidden}.public-page .public-head{position:sticky;top:0;z-index:20;padding:env(safe-area-inset-top) 12px 0;height:calc(58px + env(safe-area-inset-top));gap:10px}.public-page .public-head img{width:92px}.public-page .public-head>span{font-size:16px;padding-left:8px}.public-page .public-head>div{font-size:8px;white-space:nowrap}.public-page .public-main{width:100%;max-width:none;padding:10px 8px calc(28px + env(safe-area-inset-bottom))}
  .capture-experience{gap:12px}.capture-info{display:block;text-align:left}.capture-info .eyebrow,.capture-info>p,.capture-info .privacy{display:none}.capture-info h1{font-size:27px;margin:0 0 8px}.capture-info dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border:0;gap:6px}.capture-info dl div{display:block;min-width:0;padding:8px 10px;border:1px solid #252a34;border-radius:10px;background:#10131a}.capture-info dl div:first-child{grid-column:1/-1}.capture-info dt{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.capture-info dd{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .guided-card{border:0;background:transparent;padding:0;width:100%;max-width:100%;overflow:hidden}.capture-progress{margin-bottom:9px}.capture-title{margin-bottom:9px}.capture-title strong{font-size:16px}.capture-title small{padding:0 8px;font-size:10px}.guided-card .camera-stage{width:min(100%,47.69svh);aspect-ratio:10/13;border-radius:16px}.camera-quality{left:7px;right:7px;bottom:7px;flex-wrap:wrap}.camera-quality span{font-size:8px;padding:5px 7px}.camera-start{min-height:46px;max-width:calc(100% - 24px);padding-inline:18px}.camera-instruction{min-height:43px;padding:7px 4px 2px}.camera-instruction b{font-size:14px}.camera-instruction small{font-size:10px}.signature-box{margin-top:10px}.signature-box canvas{height:105px}.consent{font-size:10px;line-height:1.35;margin-top:12px;overflow-wrap:anywhere}.consent input{min-width:20px;width:20px;height:20px}.capture-button,.secondary{min-height:48px}.capture-button{position:static;box-shadow:0 8px 28px rgba(227,6,32,.3)}.public-page footer{padding:20px 12px calc(24px + env(safe-area-inset-bottom));font-size:9px}
}
@media(max-width:380px){.public-page .public-head>div{display:none}.capture-info h1{font-size:23px}.capture-info dl{grid-template-columns:1fr}.capture-info dl div:first-child{grid-column:auto}.guided-card .camera-stage{width:min(100%,44.62svh)}.camera-quality{justify-content:center}.camera-quality span{padding:4px 6px}.signature-box canvas{height:92px}}
@media(max-height:520px) and (orientation:landscape){.public-page .public-main{padding-top:12px}.capture-experience{grid-template-columns:minmax(210px,.8fr) minmax(330px,1.2fr);gap:18px}.capture-info{display:block}.capture-info h1{font-size:30px}.capture-info>p,.capture-info .privacy{display:none}.capture-info dl{margin-top:12px}.guided-card .camera-stage{height:52dvh;width:auto;max-height:none}.signature-box canvas{height:88px}.capture-button{position:static}}
.users-grid{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:20px;align-items:start}.user-list{padding-bottom:10px}.user-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:13px;padding:15px 0;border-top:1px solid #242933}.avatar{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#303641,#161a22);display:grid;place-items:center;font-weight:800}.user-data{display:flex;flex-direction:column;min-width:0}.user-data span,.user-data small{color:#9299a8;overflow:hidden;text-overflow:ellipsis}.user-data small{font-size:10px;margin-top:3px}.inline-form{margin:5px 0 0}.alert.success{border:1px solid rgba(49,211,155,.35);background:rgba(49,211,155,.09);color:#73e5ba}@media(max-width:850px){.users-grid{grid-template-columns:1fr}}@media(max-width:520px){.user-row{grid-template-columns:38px 1fr}.user-row>div:last-child{grid-column:2}.users-page .hero h1{font-size:40px}}
