.face-attendance .fa-stats{margin-bottom:var(--ds-space-2)}.fa-muted{color:var(--ds-text-secondary);font-size:var(--ds-text-sm);margin:0}.fa-field{display:flex;flex-direction:column;gap:var(--ds-space-1);font-size:var(--ds-text-sm);color:var(--ds-text-secondary);min-width:0}.fa-field>span{font-weight:var(--ds-weight-medium);color:var(--ds-text)}.fa-field>small{color:var(--ds-text-tertiary);font-size:var(--ds-text-xs);line-height:var(--ds-leading-normal)}.fa-field input,.fa-field select{min-height:2.5rem;padding:0 var(--ds-space-3);border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);background:var(--ds-surface);color:var(--ds-text);font:inherit}.fa-field input:focus-visible,.fa-field select:focus-visible,.fa-search:focus-visible{outline:none;box-shadow:var(--ds-focus-ring)}.fa-field--inline{min-width:11rem}.fa-check{display:flex;gap:var(--ds-space-3);align-items:flex-start;font-size:var(--ds-text-sm);color:var(--ds-text-secondary);line-height:var(--ds-leading-normal);cursor:pointer}.fa-check input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--ds-primary-600);flex:none}.fa-check--inline{align-items:center;white-space:nowrap}.fa-check--inline input{margin-top:0}.fa-search{width:100%;min-height:2.5rem;padding:0 var(--ds-space-3);border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);background:var(--ds-surface);color:var(--ds-text);font:inherit}.fa-pill{display:inline-flex;align-items:center;gap:var(--ds-space-2);padding:.25rem .65rem;border-radius:var(--ds-radius-full);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-semibold);background:#0f172aa6;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:normal;word-spacing:.06em}.fa-pill:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--ds-text-tertiary)}.fa-pill--ready:before{background:var(--ds-success-500);box-shadow:0 0 0 4px #22c55e40}.fa-pill--loading:before{background:var(--ds-warning-500);animation:fa-pulse 1.2s ease-in-out infinite}.fa-pill--error:before{background:var(--ds-danger-500)}.fa-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-2)}.fa-list--scroll{max-height:22rem;overflow:auto;padding-right:var(--ds-space-1)}.fa-list__item{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.fa-list__main{display:flex;flex-direction:column;min-width:0}.fa-list__main strong{font-size:var(--ds-text-sm);color:var(--ds-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fa-list__main small{color:var(--ds-text-tertiary);font-size:var(--ds-text-xs)}.fa-list__actions{display:flex;gap:var(--ds-space-1);flex-wrap:wrap;justify-content:flex-end}.fa-student{display:flex;align-items:center;gap:var(--ds-space-3)}.fa-student small{display:block;color:var(--ds-text-tertiary);font-size:var(--ds-text-xs)}.fa-avatar{width:2.25rem;height:2.25rem;border-radius:50%;display:grid;place-items:center;background:var(--ds-primary-100);color:var(--ds-primary-800);font-weight:var(--ds-weight-semibold);font-size:var(--ds-text-xs);flex:none}.fa-table__actions{text-align:right;white-space:nowrap}.fa-quality{font-variant-numeric:tabular-nums;font-weight:var(--ds-weight-semibold)}.fa-quality--high{color:var(--ds-success-700)}.fa-quality--ok{color:var(--ds-text)}.fa-quality--low{color:var(--ds-warning-700)}.fa-stage{display:flex;flex-direction:column;gap:var(--ds-space-3)}.fa-stage__viewport{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:var(--ds-radius-xl);overflow:hidden;background:#0b1220;box-shadow:var(--ds-shadow-lg);isolation:isolate}.fa-stage--enroll .fa-stage__viewport{aspect-ratio:4 / 3}.fa-stage__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.fa-stage__guide{position:absolute;left:50%;top:50%;width:38%;aspect-ratio:3 / 4;transform:translate(-50%,-50%);border-radius:50%;border:3px solid rgba(255,255,255,.75);box-shadow:0 0 0 9999px #0b122059;transition:border-color var(--ds-transition-normal),box-shadow var(--ds-transition-normal);pointer-events:none}.fa-stage--kiosk .fa-stage__guide{width:30%}.fa-stage--good .fa-stage__guide{border-color:var(--ds-success-500)}.fa-stage--warn .fa-stage__guide{border-color:var(--ds-warning-500)}.fa-stage--bad .fa-stage__guide{border-color:var(--ds-danger-500)}.fa-stage--scanning .fa-stage__guide{border-color:var(--ds-primary-300);animation:fa-breathe 2.2s ease-in-out infinite}.fa-stage__facebox{position:absolute;border:2px solid rgba(45,212,191,.9);border-radius:var(--ds-radius-md);box-shadow:0 0 0 1px #00000059;transition:all 90ms linear;pointer-events:none}.fa-stage--good .fa-stage__facebox{border-color:var(--ds-success-500)}.fa-stage--warn .fa-stage__facebox{border-color:var(--ds-warning-500)}.fa-stage--bad .fa-stage__facebox{border-color:var(--ds-danger-500)}.fa-stage__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ds-space-3);color:#fff;text-align:center;padding:var(--ds-space-6);background:#0b1220c7}.fa-stage__overlay p{margin:0;font-size:var(--ds-text-sm);max-width:28rem}.fa-stage__overlay-title{font-weight:var(--ds-weight-semibold);font-size:var(--ds-text-lg)!important}.fa-stage__overlay--error{background:#7f1d1dd1}.fa-stage__pill{position:absolute;top:var(--ds-space-3);left:var(--ds-space-3)}.fa-stage__flash{position:absolute;inset:0;background:#fff;animation:fa-flash .22s ease-out forwards;pointer-events:none}.fa-stage__spinner{width:2rem;height:2rem;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:var(--ds-primary-300);animation:fa-spin .9s linear infinite}.fa-kiosk--loading .fa-stage__spinner{border-color:var(--ds-border);border-top-color:var(--ds-primary-600)}.fa-stage__caption{min-height:2.2rem;text-align:center;font-size:var(--ds-text-md, 1rem);line-height:1.35;font-weight:var(--ds-weight-semibold);color:var(--ds-text);transition:color var(--ds-transition-fast)}.fa-stage--good .fa-stage__caption{color:var(--ds-success-700)}.fa-stage--warn .fa-stage__caption{color:var(--ds-warning-700)}.fa-stage--bad .fa-stage__caption{color:var(--ds-danger-600)}.fa-stage__device{display:flex;align-items:center;gap:var(--ds-space-2);font-size:var(--ds-text-xs);color:var(--ds-text-secondary);justify-content:center}.fa-stage__device select{font:inherit;padding:.25rem .5rem;border-radius:var(--ds-radius-sm);border:1px solid var(--ds-border);background:var(--ds-surface);color:var(--ds-text)}.fa-match{position:absolute;left:50%;bottom:var(--ds-space-5);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:var(--ds-space-3) var(--ds-space-6);border-radius:var(--ds-radius-lg);color:#fff;text-align:center;max-width:90%;animation:fa-rise .22s ease-out;box-shadow:var(--ds-shadow-lg)}.fa-match--matched{background:var(--ds-success-600)}.fa-match--review{background:var(--ds-warning-600)}.fa-match--unknown{background:var(--ds-danger-600)}.fa-match__name{font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-bold);line-height:var(--ds-leading-tight)}.fa-match__meta{font-size:var(--ds-text-sm);opacity:.92}.fa-kiosk{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-kiosk--loading{align-items:center;justify-content:center;min-height:16rem;color:var(--ds-text-secondary)}.fa-kiosk--fullscreen{background:var(--ds-bg);padding:var(--ds-space-6);min-height:100vh;overflow:auto}.fa-kiosk__topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-4);flex-wrap:wrap;padding:var(--ds-space-3) var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface)}.fa-kiosk__scope{margin:0;font-weight:var(--ds-weight-semibold);color:var(--ds-text)}.fa-kiosk__date{margin:0;font-size:var(--ds-text-xs);color:var(--ds-text-tertiary)}.fa-kiosk__counters{display:flex;gap:var(--ds-space-2);flex-wrap:wrap}.fa-counter{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:var(--ds-radius-full);background:var(--ds-bg-alt);color:var(--ds-text-secondary);font-size:var(--ds-text-xs)}.fa-counter strong{color:var(--ds-text);font-size:var(--ds-text-sm);font-variant-numeric:tabular-nums}.fa-counter--present{background:var(--ds-success-50);color:var(--ds-success-800)}.fa-counter--present strong{color:var(--ds-success-800)}.fa-counter--review{background:var(--ds-warning-50);color:var(--ds-warning-800)}.fa-counter--review strong{color:var(--ds-warning-800)}.fa-counter--pending{background:var(--ds-info-50);color:var(--ds-info-600)}.fa-counter--pending strong{color:var(--ds-info-600)}.fa-kiosk__controls{display:flex;gap:var(--ds-space-2);align-items:center;flex-wrap:wrap}.fa-kiosk__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(18rem,1fr);gap:var(--ds-space-5);align-items:start}.fa-kiosk__stage{display:flex;flex-direction:column;gap:var(--ds-space-3)}.fa-kiosk__side{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-privacy{margin:0;text-align:center;font-size:var(--ds-text-xs);color:var(--ds-text-tertiary)}.fa-panel{padding:var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);display:flex;flex-direction:column;gap:var(--ds-space-3)}.fa-panel h3{margin:0;font-size:var(--ds-text-sm);font-weight:var(--ds-weight-semibold);color:var(--ds-text);display:flex;align-items:center;gap:var(--ds-space-2)}.fa-panel--review{border-color:var(--ds-warning-500);background:var(--ds-warning-50)}.fa-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-1)}.fa-feed__item{display:flex;align-items:center;gap:var(--ds-space-2);font-size:var(--ds-text-sm);padding:.25rem 0;animation:fa-rise .18s ease-out}.fa-feed__dot{width:.55rem;height:.55rem;border-radius:50%;flex:none;background:var(--ds-text-tertiary)}.fa-feed__item--matched .fa-feed__dot{background:var(--ds-success-500)}.fa-feed__item--review .fa-feed__dot{background:var(--ds-warning-500)}.fa-feed__item--unknown .fa-feed__dot{background:var(--ds-danger-500)}.fa-feed__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-text)}.fa-feed__time{color:var(--ds-text-tertiary);font-size:var(--ds-text-xs);font-variant-numeric:tabular-nums}.fa-cancel-link{align-self:flex-start;background:none;border:none;padding:0;color:var(--ds-danger-600);font-size:var(--ds-text-xs);cursor:pointer;text-decoration:underline}.fa-finalized{text-align:center;padding:var(--ds-space-6);border:1px solid var(--ds-success-500);border-radius:var(--ds-radius-lg);background:var(--ds-success-50);color:var(--ds-success-800)}.fa-finalized h3{margin:var(--ds-space-2) 0 var(--ds-space-1)}.fa-finalized p{margin:0}.fa-wizard{width:min(64rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.fa-detail{width:min(56rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.fa-wizard__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ds-space-4);padding:var(--ds-space-5) var(--ds-space-6) 0}.fa-wizard__eyebrow{margin:0;font-size:var(--ds-text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ds-primary-700);font-weight:var(--ds-weight-semibold)}.fa-wizard__title{margin:.15rem 0 0;font-size:var(--ds-text-xl);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ds-space-3)}.fa-wizard__code{font-size:var(--ds-text-sm);color:var(--ds-text-tertiary);font-weight:var(--ds-weight-normal)}.fa-wizard__body{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-wizard__actions{display:flex;justify-content:flex-end;gap:var(--ds-space-2);flex-wrap:wrap;margin-top:var(--ds-space-2)}.fa-steps{list-style:none;margin:var(--ds-space-4) var(--ds-space-6) 0;padding:0;display:flex;gap:var(--ds-space-2)}.fa-steps__item{flex:1;display:flex;align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);background:var(--ds-bg-alt);color:var(--ds-text-secondary);font-size:var(--ds-text-sm)}.fa-steps__num{width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;background:var(--ds-surface);border:1px solid var(--ds-border-strong);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-semibold)}.fa-steps__item.is-active{background:var(--ds-primary-50);color:var(--ds-primary-800);font-weight:var(--ds-weight-semibold)}.fa-steps__item.is-active .fa-steps__num{background:var(--ds-primary-600);border-color:var(--ds-primary-600);color:#fff}.fa-steps__item.is-done .fa-steps__num{background:var(--ds-success-500);border-color:var(--ds-success-500);color:#fff}.fa-consent{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-capture{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(16rem,1fr);gap:var(--ds-space-5);align-items:start}.fa-capture__side{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-capture__tip{margin:0;font-size:var(--ds-text-xs);color:var(--ds-text-tertiary);line-height:var(--ds-leading-normal)}.fa-poses{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-2)}.fa-poses__item{display:flex;gap:var(--ds-space-3);align-items:center;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);border:1px solid var(--ds-border);color:var(--ds-text-secondary)}.fa-poses__item strong{display:block;font-size:var(--ds-text-sm);color:var(--ds-text)}.fa-poses__item small{font-size:var(--ds-text-xs);color:var(--ds-text-tertiary)}.fa-poses__icon{width:1.75rem;height:1.75rem;border-radius:50%;display:grid;place-items:center;background:var(--ds-bg-alt);font-size:var(--ds-text-xs);font-weight:var(--ds-weight-semibold);flex:none}.fa-poses__item.is-active{border-color:var(--ds-primary-500);background:var(--ds-primary-50)}.fa-poses__item.is-active .fa-poses__icon{background:var(--ds-primary-600);color:#fff}.fa-poses__item.is-done .fa-poses__icon{background:var(--ds-success-500);color:#fff}.fa-liveness{margin:0;font-size:var(--ds-text-sm);color:var(--ds-warning-700);font-weight:var(--ds-weight-medium)}.fa-liveness.is-ok{color:var(--ds-success-700)}.fa-review{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-review__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ds-space-3)}.fa-review__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:var(--ds-space-2)}.fa-review__list li{display:flex;justify-content:space-between;padding:var(--ds-space-2) var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);font-size:var(--ds-text-sm)}.fa-done{text-align:center;padding:var(--ds-space-8) var(--ds-space-4)}.fa-done h3{margin:var(--ds-space-3) 0 var(--ds-space-1)}.fa-done p{margin:0;color:var(--ds-text-secondary)}.fa-done__icon{width:3.5rem;height:3.5rem;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--ds-success-500);color:#fff;font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-bold)}.fa-roster,.fa-sessions{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-roster__summary{display:flex;flex-direction:column;gap:var(--ds-space-3)}.fa-roster__coverage{padding:var(--ds-space-4);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);display:flex;flex-direction:column;gap:var(--ds-space-2)}.fa-roster__filters{display:flex;gap:var(--ds-space-1);flex-wrap:wrap}.fa-roster__toolbar{display:flex;gap:var(--ds-space-3);align-items:flex-end;flex-wrap:wrap}.fa-roster__toolbar .fa-search{flex:1;min-width:14rem}.fa-settings{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-settings__group{padding:var(--ds-space-5);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-settings__group h3{margin:0;font-size:var(--ds-text-base)}.fa-settings__group--meta{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;background:var(--ds-bg-alt)}.fa-settings__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--ds-space-4)}@keyframes fa-spin{to{transform:rotate(360deg)}}@keyframes fa-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fa-flash{0%{opacity:.9}to{opacity:0}}@keyframes fa-rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes fa-breathe{0%,to{box-shadow:0 0 0 9999px #0b122059,0 0 #5eead459}50%{box-shadow:0 0 0 9999px #0b122059,0 0 0 10px #5eead400}}.fa-feed__item{animation-name:fa-fade}@keyframes fa-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.fa-stage--scanning .fa-stage__guide,.fa-pill--loading:before,.fa-match,.fa-feed__item{animation:none}}@media(max-width:960px){.fa-kiosk__grid,.fa-capture,.fa-review__stats{grid-template-columns:1fr}.fa-steps{margin-left:var(--ds-space-4);margin-right:var(--ds-space-4)}.fa-wizard__header{padding-left:var(--ds-space-4);padding-right:var(--ds-space-4)}}[data-theme=dark] .fa-counter--present,[data-theme=dark] .fa-panel--review,[data-theme=dark] .fa-finalized,[data-theme=dark] .fa-steps__item.is-active,[data-theme=dark] .fa-poses__item.is-active{background:var(--ds-surface-hover)}[data-theme=dark] .fa-avatar{background:var(--ds-primary-900);color:var(--ds-primary-200)}.fa-gate{--fa-gate-accent: var(--ds-primary-600);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;letter-spacing:normal;word-spacing:normal;background:radial-gradient(1200px 600px at 80% -10%,color-mix(in srgb,var(--fa-gate-accent) 18%,transparent),transparent 60%),var(--ds-bg, #0b1220);color:var(--ds-text);transition:--fa-gate-accent .3s ease}.fa-gate--good{--fa-gate-accent: var(--ds-success-600)}.fa-gate--warn{--fa-gate-accent: var(--ds-warning-600)}.fa-gate--bad{--fa-gate-accent: var(--ds-danger-600)}.fa-gate--info{--fa-gate-accent: var(--ds-info-600, var(--ds-primary-600))}.fa-gate__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--ds-space-4);padding:var(--ds-space-4) var(--ds-space-6)}.fa-gate__school{margin:0;font-size:var(--ds-text-lg);font-weight:var(--ds-weight-bold);letter-spacing:normal;word-spacing:.04em}.fa-gate__device{margin:0;font-size:var(--ds-text-sm);color:var(--ds-text-secondary);letter-spacing:normal;word-spacing:.04em}.fa-gate__clock{display:flex;flex-direction:column;align-items:center;line-height:1.05}.fa-gate__time{font-size:clamp(2rem,5vw,3.25rem);font-weight:var(--ds-weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.fa-gate__date{font-size:var(--ds-text-sm);color:var(--ds-text-secondary)}.fa-gate__stats{display:flex;flex-direction:column;align-items:flex-end;line-height:1.05}.fa-gate__stat-value{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:var(--ds-weight-bold);color:var(--fa-gate-accent);font-variant-numeric:tabular-nums}.fa-gate__stat-label{font-size:var(--ds-text-xs);color:var(--ds-text-secondary);text-transform:uppercase;letter-spacing:.04em;word-spacing:.12em}.fa-gate__main{flex:1;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:var(--ds-space-6);padding:0 var(--ds-space-6) var(--ds-space-4);min-height:0}.fa-gate__main .fa-stage--kiosk .fa-stage__viewport{aspect-ratio:4 / 3;max-height:calc(100vh - 220px)}.fa-gate__main .fa-stage__caption{font-size:var(--ds-text-xl);letter-spacing:normal;word-spacing:.06em}.fa-gate__greeting{position:absolute;left:50%;bottom:6%;transform:translate(-50%);min-width:min(80%,34rem);padding:var(--ds-space-4) var(--ds-space-6);border-radius:var(--ds-radius-xl, 1.25rem);color:#fff;text-align:center;background:var(--fa-gate-accent);box-shadow:0 18px 50px #00000059;animation:fa-gate-pop .26s cubic-bezier(.2,.9,.3,1.2)}.fa-gate__greeting--good{background:var(--ds-success-600)}.fa-gate__greeting--warn{background:var(--ds-warning-600)}.fa-gate__greeting--bad{background:var(--ds-danger-600)}.fa-gate__greeting--info{background:var(--ds-info-600, var(--ds-primary-600))}.fa-gate__greeting-title{margin:0;font-size:clamp(1.5rem,3.6vw,2.5rem);font-weight:var(--ds-weight-bold);line-height:1.1;letter-spacing:normal;word-spacing:.04em}.fa-gate__greeting-sub{margin:.25rem 0 0;font-size:var(--ds-text-lg);opacity:.95}.fa-gate__greeting-detail{margin:.35rem 0 0;font-size:var(--ds-text-sm);opacity:.85}@keyframes fa-gate-pop{0%{transform:translate(-50%) translateY(12px) scale(.96);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}.fa-gate__side{display:flex;flex-direction:column;gap:var(--ds-space-3);padding:var(--ds-space-4);border-radius:var(--ds-radius-lg);background:var(--ds-surface);border:1px solid var(--ds-border);min-height:0}.fa-gate__side h2{margin:0;font-size:var(--ds-text-sm);text-transform:uppercase;letter-spacing:.04em;word-spacing:.12em;color:var(--ds-text-secondary)}.fa-gate__empty{margin:0;color:var(--ds-text-tertiary);font-size:var(--ds-text-sm)}.fa-gate__recent{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-2);overflow:auto}.fa-gate__recent-item{display:flex;flex-direction:column;padding:var(--ds-space-2) var(--ds-space-3);border-left:4px solid var(--ds-border);border-radius:var(--ds-radius-sm);background:var(--ds-surface-hover)}.fa-gate__recent-item--good{border-left-color:var(--ds-success-500)}.fa-gate__recent-item--warn{border-left-color:var(--ds-warning-500)}.fa-gate__recent-item--bad{border-left-color:var(--ds-danger-500)}.fa-gate__recent-item--info{border-left-color:var(--ds-info-500, var(--ds-primary-500))}.fa-gate__recent-name{font-weight:var(--ds-weight-semibold)}.fa-gate__recent-meta{font-size:var(--ds-text-xs);color:var(--ds-text-secondary)}.fa-gate__footer{position:relative;display:flex;gap:var(--ds-space-2);justify-content:flex-end;padding:var(--ds-space-2) var(--ds-space-6) var(--ds-space-4)}.fa-gate__settings{position:absolute;right:var(--ds-space-6);bottom:calc(100% - var(--ds-space-1));width:min(92vw,22rem);padding:var(--ds-space-4);border-radius:var(--ds-radius-lg);background:var(--ds-surface);border:1px solid var(--ds-border);box-shadow:var(--ds-shadow-lg, 0 12px 40px rgba(0, 0, 0, .3));font-size:var(--ds-text-sm)}.fa-gate__settings p{margin:0 0 var(--ds-space-3)}.fa-gate__settings-actions{display:flex;gap:var(--ds-space-2);flex-wrap:wrap}.fa-gate__error{margin:0;color:var(--ds-danger-600);font-size:var(--ds-text-sm)}.fa-gate--pairing,.fa-gate--message{align-items:center;justify-content:center;padding:var(--ds-space-6);text-align:center}.fa-gate__pair{width:min(100%,26rem);display:flex;flex-direction:column;gap:var(--ds-space-4);padding:var(--ds-space-6);border-radius:var(--ds-radius-xl, 1.25rem);background:var(--ds-surface);border:1px solid var(--ds-border);text-align:left}.fa-gate__pair h1{margin:0;font-size:var(--ds-text-2xl)}.fa-gate__pair-help,.fa-gate__pair-foot{margin:0;font-size:var(--ds-text-sm);color:var(--ds-text-secondary)}.fa-gate__pair .fa-field input{padding:.7rem .9rem;border-radius:var(--ds-radius-md);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--ds-text-md, 1rem)}.fa-gate__code-input{font-size:2rem!important;letter-spacing:.45em;text-align:center;font-variant-numeric:tabular-nums}@media(max-width:900px){.fa-gate__main{grid-template-columns:1fr}.fa-gate__side{max-height:30vh}.fa-gate__header{grid-template-columns:1fr auto}.fa-gate__stats{grid-column:1 / -1;align-items:flex-start;flex-direction:row;gap:var(--ds-space-2);align-items:baseline}}.fa-devices{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-devices__steps{margin:var(--ds-space-3) 0 var(--ds-space-4);padding-left:1.25rem;display:flex;flex-direction:column;gap:var(--ds-space-2);font-size:var(--ds-text-sm);color:var(--ds-text-secondary)}.fa-devices__meta{font-size:var(--ds-text-xs);color:var(--ds-text-secondary)}.fa-devices__hint{margin:0;font-size:var(--ds-text-sm);color:var(--ds-text-secondary)}.fa-devices__code-wrap{text-align:center;margin:var(--ds-space-4) 0}.fa-devices__pairing{display:flex;flex-direction:column;gap:var(--ds-space-4)}.fa-devices-dialog{width:min(40rem,calc(100vw - 2rem));max-width:40rem;max-height:calc(100vh - 2rem);letter-spacing:.01em;word-spacing:.12em;overflow:hidden}.fa-devices-dialog,.fa-devices-dialog :is(h3,p,span,label,legend,dt,dd,button,input,select,option){letter-spacing:.01em;word-spacing:.12em;white-space:normal}.fa-devices-dialog .fa-devices__code{letter-spacing:.28em;word-spacing:.12em;white-space:nowrap}.fa-devices-dialog__lede{margin:var(--ds-space-1) 0 0;font-size:var(--ds-text-sm);color:var(--ds-text-secondary);line-height:1.45;max-width:none}.fa-devices-dialog .ds-modal__header{align-items:flex-start}.fa-devices-dialog .ds-modal__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:var(--ds-space-8)}.fa-devices-dialog__body{display:flex;flex-direction:column;gap:var(--ds-space-5);flex:0 0 auto}.fa-devices-dialog__body>*{flex-shrink:0}.fa-devices-dialog__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--ds-space-4)}.fa-devices-dialog__field{display:flex;flex-direction:column;gap:var(--ds-space-2);min-width:0}.fa-devices-dialog__label{margin:0;font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);color:var(--ds-text)}.fa-devices-dialog__hint{margin:0;font-size:var(--ds-text-xs);color:var(--ds-text-secondary);line-height:1.4}.fa-devices-dialog__segments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);overflow:hidden;background:var(--ds-surface)}.fa-devices-dialog__segment{display:flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.55rem .75rem;margin:0;border:0;border-right:1px solid var(--ds-border);background:transparent;color:var(--ds-text);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);text-align:center;cursor:pointer;white-space:nowrap}.fa-devices-dialog__segment:last-child{border-right:0}.fa-devices-dialog__segment input{position:absolute;opacity:0;pointer-events:none}.fa-devices-dialog__segment.is-selected{background:var(--ds-primary-600);color:#fff}.fa-devices-dialog__section-picker{display:flex;flex-direction:column;gap:var(--ds-space-2);flex:0 0 auto}.fa-devices-dialog__section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--ds-space-3)}.fa-devices-dialog__section-list{display:flex;flex-direction:column;gap:var(--ds-space-4);flex:0 0 auto;min-height:16rem;overflow:visible;padding:var(--ds-space-3) var(--ds-space-3) var(--ds-space-5);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-bg)}.fa-devices-dialog__section-group{display:flex;flex-direction:column;gap:var(--ds-space-2);flex:0 0 auto}.fa-devices-dialog__section-class{margin:0;font-size:var(--ds-text-sm);font-weight:var(--ds-weight-semibold);color:var(--ds-text)}.fa-devices-dialog__scope{margin:0;padding:0;border:0;min-width:0}.fa-devices-dialog__scope legend{padding:0;margin:0 0 var(--ds-space-2);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);color:var(--ds-text)}.fa-devices-dialog__scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ds-space-3)}.fa-devices-dialog__choice{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:var(--ds-space-3);row-gap:.15rem;align-items:start;padding:var(--ds-space-3) var(--ds-space-4);border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-lg);background:var(--ds-surface);cursor:pointer;min-width:0}.fa-devices-dialog__choice input{grid-row:1 / span 2;margin:.2rem 0 0;accent-color:var(--ds-primary-600)}.fa-devices-dialog__choice-title{font-weight:var(--ds-weight-semibold);color:var(--ds-text);font-size:var(--ds-text-sm)}.fa-devices-dialog__choice-copy{grid-column:2;font-size:var(--ds-text-xs);color:var(--ds-text-secondary);line-height:1.4}.fa-devices-dialog__choice.is-selected{border-color:var(--ds-primary-500);background:var(--ds-primary-50);box-shadow:inset 0 0 0 1px var(--ds-primary-500)}[data-theme=dark] .fa-devices-dialog__choice.is-selected{background:var(--ds-primary-900)}.fa-devices-dialog__section{display:flex;align-items:center;gap:var(--ds-space-2);min-height:2.25rem;padding:.4rem .65rem;border-radius:var(--ds-radius-md);font-size:var(--ds-text-sm);line-height:1.35;cursor:pointer;background:var(--ds-surface);border:1px solid var(--ds-border)}.fa-devices-dialog__section.is-selected{border-color:var(--ds-primary-500);background:var(--ds-primary-50)}.fa-devices-dialog__section input{margin:0;flex:none}.fa-devices__facts{display:grid;gap:var(--ds-space-3);margin:0}.fa-devices__facts>div{display:grid;gap:.2rem}.fa-devices__facts dt{margin:0;font-size:var(--ds-text-xs);color:var(--ds-text-secondary);text-transform:uppercase;letter-spacing:.04em}.fa-devices__facts dd{margin:0;font-size:var(--ds-text-sm);color:var(--ds-text);font-weight:var(--ds-weight-medium)}@media(max-width:640px){.fa-devices-dialog__row,.fa-devices-dialog__scope-grid,.fa-devices-dialog__segments{grid-template-columns:1fr}.fa-devices-dialog__segment{border-right:0;border-bottom:1px solid var(--ds-border)}.fa-devices-dialog__segment:last-child{border-bottom:0}}.fa-table__buttons{display:flex;gap:var(--ds-space-1);flex-wrap:wrap;justify-content:flex-end}.fa-devices__code{display:inline-block;padding:var(--ds-space-3) var(--ds-space-5);border-radius:var(--ds-radius-lg);background:var(--ds-primary-50);color:var(--ds-primary-800);font-size:2.5rem;font-weight:var(--ds-weight-bold);letter-spacing:.35em;font-variant-numeric:tabular-nums}[data-theme=dark] .fa-devices__code{background:var(--ds-primary-900);color:var(--ds-primary-100)}.fa-devices__url{font-family:var(--ds-font-mono, ui-monospace, monospace);font-size:var(--ds-text-sm);word-break:break-all;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);background:var(--ds-surface-hover)}.fa-devices__sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--ds-space-1) var(--ds-space-3);max-height:14rem;overflow:auto;padding:var(--ds-space-2);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md)}.face-attendance,.face-attendance *,.face-attendance .ds-page-header,.face-attendance .ds-card,.face-attendance .ds-card__title,.face-attendance .ds-tab,.face-attendance .fa-muted,.face-attendance .fa-field,.face-attendance .fa-field>span,.fa-security,.fa-security *,.fa-meeting-apps,.fa-meeting-apps *{letter-spacing:0!important;word-spacing:normal!important}.face-attendance .ds-tabs{gap:.25rem;flex-wrap:wrap}.face-attendance .ds-tab{font-size:.95rem;padding:.7rem 1rem;white-space:nowrap}.fa-security{display:flex;flex-direction:column;gap:var(--ds-space-5)}.fa-security .ds-card,.fa-meeting-apps{padding:1.25rem 1.5rem}.fa-meeting-apps{display:flex;flex-direction:column;gap:1.25rem}.fa-meeting-apps__header{display:flex;flex-direction:column;gap:.5rem}.fa-meeting-apps__eyebrow{margin:0;font-size:.75rem;font-weight:600;color:var(--ds-text-secondary)}.fa-meeting-apps__steps{margin:0;padding:.85rem .85rem .85rem 1.75rem;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md, .75rem);background:var(--ds-surface-muted, #f8fafc);display:flex;flex-direction:column;gap:.35rem}.fa-meeting-apps__steps li{color:var(--ds-text-secondary);font-size:.95rem}.fa-meeting-apps__chip{margin:0;font-size:.75rem;font-weight:650;color:var(--ds-text-secondary)}.fa-meeting-apps__redirect-row{display:flex;gap:.5rem;align-items:center}.fa-meeting-apps__redirect-row input{flex:1 1 auto;min-width:0;font-size:.8rem}.fa-meeting-apps__redirect small{display:block;margin-top:.35rem}.fa-meeting-apps__status{margin:0;color:var(--ds-success-700, #15803d);font-size:var(--ds-text-sm)}.fa-meeting-apps__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.fa-meeting-apps__provider{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md, .75rem);background:var(--ds-surface)}.fa-meeting-apps__provider h4{margin:0;font-size:1rem;font-weight:650}.fa-meeting-apps__footer{display:flex;flex-direction:column;gap:.75rem}.fa-meeting-apps__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.fa-security__alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-3)}.fa-security__alert{display:flex;justify-content:space-between;gap:var(--ds-space-3);padding:var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.fa-security__alert p,.fa-security__alert small{display:block;margin:var(--ds-space-1) 0 0;color:var(--ds-text-secondary)}.fa-security__alert--critical{border-color:var(--ds-danger)}.fa-security__alert--warning{border-color:var(--ds-warning, #d97706)}.fa-security__tag{display:inline-block;margin-left:var(--ds-space-2);font-size:var(--ds-text-xs);color:var(--ds-text-tertiary)}.fa-security__alert-actions{display:flex;flex-direction:column;gap:var(--ds-space-1);flex-shrink:0}.fa-security__connect{grid-column:1 / -1}.fa-security__provider{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--ds-space-3);padding:var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md, .75rem);align-items:end}.fa-security__provider h4{grid-column:1 / -1;margin:0;font-size:var(--ds-text-sm)}.fa-security__settings-actions{display:flex;flex-wrap:wrap;gap:var(--ds-space-2)}.fa-security__issue,.fa-security__wa,.fa-security__settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--ds-space-3);align-items:end;margin-bottom:var(--ds-space-3)}.fa-field--grow{grid-column:1 / -1}.fa-check{display:flex;align-items:center;gap:var(--ds-space-2);font-size:var(--ds-text-sm)}.fa-table{width:100%;border-collapse:collapse}.fa-table th,.fa-table td{text-align:left;padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--ds-border);vertical-align:top}.fa-table small{display:block;color:var(--ds-text-tertiary)}.fa-gate__rfid{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
