:root{--paper: #f5f4f8;--card-gray: #ededf0;--card-blue: #2f7cf6;--card-dark: #0a0c12;--hero-base: #04070f;--hero-stage: #1246e2;--hero-glow: #2ad4ff;--accent-blue: #2e9bff;--accent-lime: #b6f13a;--wn-navy: #000d37;--wn-blue: #0a2ea4;--muted: #9aa1ad;--primary: var(--card-blue);--primary-soft: #e6effd;--primary-ink: #1d4ed8;--success: #15803d;--success-soft: #e6f6ec;--warning: #b45309;--warning-soft: #fdf1e0;--error: #b91c1c;--error-soft: #fdeaea;--neutral-soft: var(--card-gray);--r-card: 24px;--r-media: 16px;--r-overlay: 12px;--r-pill: 9999px;--shadow-sm: 0 1px 2px #0000000f;--shadow-lg: 0 20px 40px #0000002e;--shadow-2xl: 0 25px 50px -12px #00000040;--z-header: 50;--z-sheet: 100;--z-toast: 110;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--font-sans: "Poppins", "Prompt", "Sukhumvit Set", "Thonburi", "Noto Sans Thai", ui-sans-serif, system-ui, sans-serif;--fs-sub: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);--fs-block: clamp(2rem, 1.2rem + 2.6vw, 3.5rem);--fs-title: 1.375rem;--fs-lead: 1.125rem;--fs-body: 1rem;--fs-small: .875rem;--fs-xs: .75rem;--lh-body: 1.6;--app-nav-h: 64px;--touch: 48px;--touch-lg: 3.5rem;--content-max: 720px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px;scroll-padding-top:6rem;scroll-padding-bottom:6rem}body{background:var(--paper);color:#000;min-height:100vh;min-height:100dvh;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,svg,video,canvas{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4{font-weight:500;line-height:1.3}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:-100%;left:1rem;z-index:200;background:#000;color:#fff;border-radius:var(--r-pill);padding:.75rem 1.25rem;font-size:var(--fs-small)}.skip-link:focus{top:1rem}.stack{display:flex;flex-direction:column;gap:1rem}.stack--sm{gap:.5rem}.stack--lg{gap:1.5rem}.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.row--between{justify-content:space-between}.title{font-size:var(--fs-title);line-height:1.3}.muted{color:#0000008c}.small{font-size:var(--fs-small)}.xs{font-size:var(--fs-xs)}.center{text-align:center}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:.01em}.tnum{font-variant-numeric:tabular-nums}.link{text-decoration:underline;text-underline-offset:4px}.link:hover{opacity:.75}.break{overflow-wrap:anywhere}.divider{height:1px;background:#00000014}.icon{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon--sm{width:1rem;height:1rem}.icon--lg{width:1.75rem;height:1.75rem}.icon--xl{width:2.5rem;height:2.5rem}.spinner{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-dasharray:40 60;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:.75rem 1.5rem;border-radius:var(--r-pill);border:1px solid transparent;font-size:var(--fs-body);font-weight:500;line-height:1.2;text-align:center;white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s,opacity .15s;position:relative}.btn--fill{background:#000;color:#fff}.btn--fill:hover{background:#000000e0}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover{background:var(--hero-stage)}.btn--success{background:var(--success);color:#fff}.btn--success:hover{background:#116632}.btn--outline{background:transparent;color:#000;border-color:#0000004d}.btn--outline:hover{background:#000;color:#fff}.btn--ghost{background:transparent;color:#000}.btn--ghost:hover{background:#0000000f}.btn--soft{background:var(--card-gray);color:#000}.btn--soft:hover{background:#e2e2e6}.btn--danger{background:var(--error);color:#fff}.btn--danger:hover{background:#991b1b}.btn--lg{min-height:var(--touch-lg);padding:.9rem 1.75rem}.btn--sm{min-height:2.5rem;padding:.5rem 1.1rem;font-size:var(--fs-small)}.btn--block{width:100%}.btn--icon{width:var(--touch);height:var(--touch);min-height:0;padding:0;border-radius:50%}.btn--wrap{white-space:normal}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn.is-busy{color:transparent!important;pointer-events:none}.btn.is-busy:after{content:"";position:absolute;width:1.25rem;height:1.25rem;border-radius:50%;border:2.5px solid #fff;border-right-color:transparent;animation:spin .7s linear infinite}.btn--outline.is-busy:after,.btn--soft.is-busy:after,.btn--ghost.is-busy:after{border-color:#000;border-right-color:transparent}.card{position:relative;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;border-radius:var(--r-card);background:var(--card-gray);color:#000}.card--white{background:#fff;border:1px solid #00000014}.card--dark{background:var(--card-dark);color:#fff}.card--compact{border-radius:var(--r-media);gap:1rem;padding:1.25rem}.card__title{font-size:var(--fs-title);line-height:1.3}@media (min-width: 640px){.card{padding:1.75rem}.card--compact{padding:1.25rem 1.5rem}}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;line-height:1.2;white-space:nowrap;background:var(--neutral-soft);color:#000000a6}.badge .icon{width:.85rem;height:.85rem}.badge--success{background:var(--success-soft);color:var(--success)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--error{background:var(--error-soft);color:var(--error)}.badge--primary{background:var(--primary-soft);color:var(--primary-ink)}.badge--dark{background:#000;color:#fff}.badge--lime{background:var(--accent-lime);color:#000}.badge--outline{background:transparent;border:1px solid #0003;color:#000000b3}.badge--demo{background:#fff4c2;color:#6b4e00;letter-spacing:.04em}.badge--lg{font-size:var(--fs-small);padding:.45rem .9rem}.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border-radius:var(--r-pill);background:#fff;border:1px solid #0000001f;font-size:var(--fs-xs)}.chip-row{display:flex;gap:.5rem;overflow-x:auto;padding-block:.25rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{display:none}.chip{flex:none;display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;padding:.55rem 1.1rem;border-radius:var(--r-pill);background:#fff;border:1px solid #00000026;white-space:nowrap;font-size:var(--fs-small)}.chip:hover{border-color:#0006}.chip[aria-pressed=true],.chip.is-selected{background:#000;color:#fff;border-color:#000}.chip__count{font-size:var(--fs-xs);opacity:.7}.tabs{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:var(--r-pill);background:var(--card-gray);max-width:100%;overflow-x:auto;scrollbar-width:none}.tabs--block{display:flex;width:100%}.tabs--block .tab{flex:1}.tab{min-height:2.75rem;padding:.5rem 1rem;border-radius:var(--r-pill);font-size:var(--fs-small);font-weight:500;white-space:nowrap}.tab[aria-selected=true]{background:#000;color:#fff}.form{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.4rem}.field__label{font-size:var(--fs-body);font-weight:500;color:#000c}.field__label .req{color:var(--error);margin-left:.15rem}.field__label .opt{color:#0000008c;font-weight:400;font-size:var(--fs-small);margin-left:.25rem}.field__hint{font-size:var(--fs-xs);color:#0000008c}.field__control{width:100%;min-height:3.25rem;padding:.7rem 1rem;border-radius:var(--r-overlay);border:1px solid #0003;background:#fff;color:#000;font-size:var(--fs-body);outline:none}.field__control::placeholder{color:#0006}.field__control:focus{border-color:#000;box-shadow:0 0 0 1px #000}select.field__control{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right .75rem center / 1.25rem}.field__error{display:none;align-items:flex-start;gap:.35rem;font-size:var(--fs-small);color:var(--error)}.field.is-invalid .field__error{display:flex}.field.is-invalid .field__control,.field.is-invalid .picker{border-color:var(--error);box-shadow:0 0 0 1px var(--error)}.field-row{display:grid;gap:1.25rem}@media (min-width: 640px){.field-row--2{grid-template-columns:1fr 1fr}}.picker{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:3.25rem;padding:.7rem 1rem;text-align:left;border-radius:var(--r-overlay);border:1px solid #0003;background:#fff}.picker:hover{border-color:#0006}.picker__value{flex:1;min-width:0}.picker__value.is-placeholder{color:#0006}.form-alert{display:flex;align-items:flex-start;gap:.6rem;padding:.9rem 1rem;border-radius:var(--r-overlay);background:var(--error-soft);color:var(--error);font-size:var(--fs-small)}.form-alert .icon{margin-top:.1rem}.notice{display:flex;align-items:flex-start;gap:.6rem;padding:.9rem 1rem;border-radius:var(--r-overlay);background:var(--card-gray);font-size:var(--fs-small);color:#000000b3}.notice .icon{margin-top:.15rem}.notice--info{background:var(--primary-soft);color:#0f2f80}.notice--warning{background:var(--warning-soft);color:var(--warning)}details.more{border-radius:var(--r-overlay)}details.more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;min-height:var(--touch);font-weight:500}details.more>summary::-webkit-details-marker{display:none}details.more>summary .icon:last-child{margin-left:auto;transition:transform .2s}details.more[open]>summary .icon:last-child{transform:rotate(180deg)}.select-list{display:flex;flex-direction:column;gap:.6rem}.select-card{position:relative;display:flex;align-items:center;gap:1rem;min-height:var(--touch);padding:1rem 3rem 1rem 1rem;text-align:left;width:100%;border-radius:var(--r-media);border:1.5px solid #0000001f;background:#fff;cursor:pointer}.select-card:hover{border-color:#0006}.select-card input{position:absolute;opacity:0;pointer-events:none}.select-card__body{min-width:0;flex:1}.select-card__title{display:block;font-weight:500}.select-card__sub{display:block;font-size:var(--fs-small);color:#0009}.select-card__row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}.select-card__check{position:absolute;top:50%;right:.9rem;transform:translateY(-50%);width:1.5rem;height:1.5rem;border-radius:50%;border:1.5px solid #0003;display:grid;place-items:center;color:transparent}.select-card:has(input:checked),.select-card.is-selected{border-color:#000;box-shadow:0 0 0 1px #000}.select-card:has(input:checked) .select-card__check,.select-card.is-selected .select-card__check{background:#000;border-color:#000;color:#fff}.select-card:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:3px}.dl{display:grid;grid-template-columns:minmax(7.5rem,auto) 1fr;gap:.65rem 1.25rem;font-size:var(--fs-body)}.dl dt{color:#0000008c}.dl dd{font-weight:500;min-width:0;overflow-wrap:anywhere}@media (max-width: 400px){.dl{grid-template-columns:1fr;gap:.1rem}.dl dt{margin-top:.6rem;font-size:var(--fs-small)}.dl dt:first-child{margin-top:0}}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-header{position:sticky;top:0;z-index:var(--z-header);display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:4rem;padding:calc(.6rem + var(--safe-t)) 1rem .6rem;background:#f5f4f8eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #0000000f}.app-header__brand{display:inline-flex;align-items:center;gap:.6rem;flex:0 1 auto;min-width:0;font-weight:500}.brand-mark{height:2rem;width:auto;flex:none}.staff-header__text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.staff-header__text>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.staff-header__text small{font-size:var(--fs-xs);color:#0000008c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}.app-header__actions{display:flex;align-items:center;gap:.4rem;flex:none}.staff-header__meta{display:flex;flex-direction:column;align-items:flex-end;min-width:0;line-height:1.25;font-size:var(--fs-small);text-align:right}.staff-header__counter{font-weight:500;white-space:nowrap}.staff-header__name{color:#0009;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:12rem}.app-header__btn{position:relative;width:var(--touch);height:var(--touch);border-radius:50%;display:inline-grid;place-items:center;color:#000;flex:none}.app-header__btn:hover{background:#0000000f}.avatar{width:2.25rem;height:2.25rem;border-radius:50%;display:grid;place-items:center;background:var(--card-blue);color:#fff;font-size:var(--fs-xs);font-weight:600}.avatar--sup{background:#000;color:var(--accent-lime)}@media (max-width: 599px){.staff-header__text,.staff-header__name{display:none}}@media (max-width: 359px){.staff-header .conn-badge{padding-inline:.6rem}.staff-header .conn-badge>span:not(.conn-badge__dot){display:none}}.conn-badge{display:inline-flex;align-items:center;gap:.4rem;min-height:2.25rem;padding:.35rem .75rem;border-radius:var(--r-pill);background:var(--success-soft);color:var(--success);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.conn-badge__dot{width:.55rem;height:.55rem;border-radius:50%;background:currentColor}.conn-badge--offline{background:var(--error-soft);color:var(--error)}.offline-banner{margin:.75rem 1rem 0}@media (min-width: 640px){.offline-banner{margin-inline:auto;width:calc(100% - 3rem);max-width:var(--content-max)}}.app-main{flex:1;display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:calc(var(--content-max) + 3rem);margin-inline:auto;padding:1.25rem 1rem calc(var(--app-nav-h) + var(--safe-b) + 2.5rem)}@media (min-width: 640px){.app-main{padding-inline:1.5rem}}.app-main--no-nav{padding-bottom:calc(var(--safe-b) + 2rem)}.app-section{display:flex;flex-direction:column;gap:.9rem}.app-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.app-section__title{font-size:var(--fs-title);font-weight:400}.app-section__link{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--fs-small);font-weight:500}.staff-back{display:inline-flex;align-items:center;gap:.35rem;align-self:flex-start;min-height:var(--touch);margin:-.5rem 0 -1rem -.5rem;padding:0 .75rem 0 .5rem;border-radius:var(--r-pill);font-size:var(--fs-small);font-weight:500;color:#000000b3}.staff-back:hover{background:#0000000f;color:#000}.page-head{display:flex;flex-direction:column;gap:.25rem}.page-head h1{font-size:var(--fs-sub);font-weight:300;line-height:1.2}.page-head p{color:#0009}.page-head__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:var(--z-header);width:100%;max-width:calc(var(--content-max) + 3rem);min-height:var(--app-nav-h);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;padding:.4rem .5rem calc(.4rem + var(--safe-b));background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #00000014}@media (min-width: 772px){.bottom-nav{border:1px solid #00000014;border-bottom:0;border-radius:var(--r-card) var(--r-card) 0 0}}.bottom-nav__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:3.25rem;border-radius:var(--r-overlay);font-size:var(--fs-xs);font-weight:500;color:#00000080;text-align:center;line-height:1.2}.bottom-nav__item:hover,.bottom-nav__item[aria-current=page]{color:#000}.bottom-nav__item[aria-current=page] .icon{color:var(--primary)}.bottom-nav__circle{display:grid;place-items:center;width:3.5rem;height:3.5rem;margin-top:-1.9rem;border-radius:50%;border:4px solid #fff;background:var(--primary);color:#fff;box-shadow:0 10px 24px #2f7cf673}.bottom-nav__qr .icon{color:#fff!important}.bottom-nav__qr[aria-current=page] .bottom-nav__circle{background:#000;box-shadow:0 10px 24px #00000059}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:none}.sheet.is-open{display:block}.sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .2s ease}.sheet__panel{position:absolute;left:0;right:0;bottom:0;max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;padding:1rem 1.25rem calc(1.5rem + var(--safe-b));border-radius:var(--r-card) var(--r-card) 0 0;background:#fff;color:#000;box-shadow:var(--shadow-2xl);animation:sheet-up .25s cubic-bezier(.2,.8,.2,1)}.sheet__handle{width:2.5rem;height:4px;margin:0 auto 1rem;border-radius:2px;background:#00000026}.sheet__title{font-size:var(--fs-title);font-weight:500;margin-bottom:1rem;padding-right:3rem}.sheet__close{position:absolute;top:.75rem;right:.75rem}.sheet__body{display:flex;flex-direction:column;gap:1rem}.sheet__actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.5rem}.sheet__actions .btn{min-height:3.25rem}@media (min-width: 768px){.sheet__panel{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(560px,100vw - 3rem);max-height:calc(100vh - 4rem);padding:2rem;border-radius:var(--r-card);animation:pop .2s ease}.sheet__handle{display:none}.sheet__actions{flex-direction:row-reverse;flex-wrap:wrap}.sheet__actions .btn{flex:1 1 auto}}@keyframes fade{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%) scale(.98)}}body.has-sheet{overflow:hidden}.toast-host{position:fixed;left:1rem;right:1rem;bottom:calc(var(--app-nav-h) + 1rem + var(--safe-b));z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:.5rem;max-width:32rem;padding:.75rem 1.1rem;border-radius:var(--r-pill);background:#000;color:#fff;font-size:var(--fs-small);box-shadow:var(--shadow-lg);animation:sheet-up .2s ease;pointer-events:auto}.toast--success .icon{color:var(--accent-lime)}.toast--error{background:var(--error)}.toast--warning{background:var(--warning)}.status-card{display:flex;flex-direction:column;gap:.9rem;padding:1.25rem 1.5rem;border-radius:var(--r-media);background:var(--card-gray);border:1px solid #0000000f}.status-card__title{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-lead);font-weight:500}.status-card--success{background:var(--success-soft);border-color:#15803d33}.status-card--success .status-card__title{color:var(--success)}.status-card--warning{background:var(--warning-soft);border-color:#b4530933}.status-card--warning .status-card__title{color:var(--warning)}.status-card--error{background:var(--error-soft);border-color:#b91c1c33}.status-card--error .status-card__title{color:var(--error)}.status-card--info{background:var(--primary-soft);border-color:#2f7cf633}.status-card--info .status-card__title{color:var(--primary-ink)}.status-card__code{font-size:var(--fs-xs);letter-spacing:.06em;opacity:.8}.empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1rem;text-align:center;color:#0009}.empty__icon{width:4rem;height:4rem;border-radius:50%;display:grid;place-items:center;background:var(--card-gray);color:#000}.empty__title{font-size:var(--fs-lead);font-weight:500;color:#000}.empty__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:.5rem}.loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;color:#0009}.login-main{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:calc(2rem + var(--safe-t)) 1rem calc(2rem + var(--safe-b))}.login-wrap{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:28rem}.login-brand{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.login-brand .brand-mark{height:3.5rem}.login-brand__title{margin-top:.5rem;font-size:var(--fs-title);font-weight:500}.login-brand__sub{font-size:var(--fs-lead);color:#000000a6}.login-brand__meta{font-size:var(--fs-small);color:#0000008c}.login-card{gap:1.25rem}.login-demo{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--fs-small);color:#0009}.login-demo .chip{min-height:2.25rem;padding:.35rem .85rem;font-size:var(--fs-small)}.home-hero{position:relative;overflow:hidden;color:#fff;gap:1rem;background:radial-gradient(120% 90% at 100% 0%,#2ad4ff55 0%,transparent 55%),radial-gradient(90% 80% at 0% 100%,#1246e2aa 0%,transparent 60%),linear-gradient(140deg,var(--wn-navy) 0%,var(--wn-blue) 100%);border:0}.home-hero:after{content:"";position:absolute;right:-4rem;top:-4rem;width:14rem;height:14rem;border-radius:50%;border:1px solid #ffffff1f;box-shadow:0 0 0 2.5rem #ffffff08,0 0 0 5rem #ffffff05;pointer-events:none}.home-hero>*{position:relative;z-index:1}.home-hero__wordmark{width:min(190px,52vw);height:auto}.home-hero__title{font-size:var(--fs-lead);font-weight:400;color:#ffffffe6}.home-hero__date{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-small);color:#ffffffb3}.home-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:1rem;border-top:1px solid #ffffff26;font-size:var(--fs-small)}.home-hero__meta .sep{opacity:.45}.home-hero .conn-badge{background:#ffffff1f;color:var(--accent-lime);min-height:1.85rem}.home-hero .conn-badge--offline{background:#b91c1c;color:#fff}.mode-list{display:flex;flex-direction:column;gap:1rem}.mode-card{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.9rem 1.1rem;padding:1.35rem;border-radius:var(--r-card);background:#fff;border:1px solid #00000014;transition:border-color .15s,box-shadow .15s,transform .1s}.mode-card:hover{border-color:#00000040;box-shadow:0 8px 24px #0000000f}.mode-card:active{transform:scale(.99)}.mode-card__icon{width:3.5rem;height:3.5rem;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.mode-card__icon .icon{width:1.75rem;height:1.75rem}.mode-card--walkin .mode-card__icon{background:var(--card-dark);color:var(--accent-lime)}.mode-card--qr .mode-card__icon{background:var(--primary);color:#fff}.mode-card--list .mode-card__icon{background:var(--card-gray);color:#000}.mode-card__body{min-width:0}.mode-card__step,.mode-card__title,.mode-card__desc{display:block}.mode-card__step{font-size:var(--fs-xs);letter-spacing:.1em;color:#00000080}.mode-card__title{font-size:var(--fs-title);font-weight:500;line-height:1.3}.mode-card__desc{color:#0009;margin-top:.2rem}.mode-card__cta{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.25rem;padding:.6rem .75rem .6rem 1.25rem;border-radius:var(--r-pill);background:#000;color:#fff;font-weight:500}.mode-card__cta .icon{width:2.1rem;height:2.1rem;padding:.45rem;border-radius:50%;background:#ffffff26}.mode-card--qr .mode-card__cta{background:var(--primary)}@media (min-width: 640px){.mode-card{grid-template-columns:auto 1fr auto;align-items:center;padding:1.5rem 1.75rem}.mode-card__cta{grid-column:auto;min-width:12.5rem}}.stat-strip{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r-card);background:#fff;border:1px solid #00000014;overflow:hidden}.stat-strip__item{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem 1.25rem}.stat-strip__item+.stat-strip__item{border-left:1px solid #00000014}.stat-strip__label{font-size:var(--fs-small);color:#0009}.stat-strip__value{font-size:2.25rem;font-weight:300;line-height:1.05;letter-spacing:-.02em}.stat-strip__value--success{color:var(--success)}.stat-strip__hint{font-size:var(--fs-xs);color:#00000080}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}@media (min-width: 640px){.kpi-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.kpi{display:flex;flex-direction:column;gap:.3rem;padding:1.1rem 1.25rem;border-radius:var(--r-media);background:#fff;border:1px solid #00000014}.kpi__label{font-size:var(--fs-small);color:#0009}.kpi__value{font-size:2rem;font-weight:300;line-height:1.05;letter-spacing:-.02em}.kpi__hint{font-size:var(--fs-xs);color:#00000080}.kpi--primary .kpi__value{color:var(--primary)}.kpi--success .kpi__value{color:var(--success)}.kpi--warning .kpi__value{color:var(--warning)}.pct-bar{display:flex;flex-direction:column;gap:.4rem}.pct-bar__track{height:10px;border-radius:var(--r-pill);background:var(--card-gray);overflow:hidden}.pct-bar__fill{height:100%;border-radius:inherit;background:var(--success);transition:width .4s ease}.search-bar{position:sticky;top:calc(4rem + var(--safe-t));z-index:5;margin:-.25rem -1rem 0;padding:.5rem 1rem .75rem;background:var(--paper);display:flex;flex-direction:column;gap:.6rem}@media (min-width: 640px){.search-bar{margin-inline:-1.5rem;padding-inline:1.5rem}}.search-bar__field{position:relative;display:flex;align-items:center}.search-bar__icon{position:absolute;left:1rem;color:#00000080;pointer-events:none}.search-bar__input{min-height:var(--touch-lg);padding-left:3rem;padding-right:3.25rem;border-radius:var(--r-media);font-size:var(--fs-lead);box-shadow:var(--shadow-sm)}.search-bar__input::-webkit-search-cancel-button{display:none}.search-bar__clear{position:absolute;right:.35rem;width:var(--touch);height:var(--touch);border-radius:50%;display:grid;place-items:center;color:#0009}.search-bar__clear:hover{background:#0000000f}.filter-bar{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.filter-bar .field__control{min-height:2.9rem;font-size:var(--fs-small)}.result-count{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:var(--fs-small);color:#0009}.pname{font-size:var(--fs-lead);font-weight:500;line-height:1.35;overflow-wrap:anywhere}.pname__title{display:block;font-size:var(--fs-xs);font-weight:400;color:#0000008c;letter-spacing:.01em}.pcard__org{color:#000000b3;margin-top:.15rem;overflow-wrap:anywhere}.pcard__pos{font-size:var(--fs-small);color:#0000008c;overflow-wrap:anywhere}@media (min-width: 1024px){.app-main--wide{max-width:82rem}}.ptable-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:var(--r-media);background:#fff;border:1px solid #00000014}.ptable{width:max(100%,115.5rem);table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--fs-small)}.ptable__col--date{width:8.5rem}.ptable__col--title{width:6.5rem}.ptable__col--name{width:16.5rem}.ptable__col--org{width:13rem}.ptable__col--pos{width:10rem}.ptable__col--email{width:11rem}.ptable__col--phone,.ptable__col--has{width:8rem}.ptable__col--note{width:13rem}.ptable__col--role,.ptable__col--assist{width:10.5rem}.ptable th,.ptable td{padding:.85rem 1rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}.ptable thead th{vertical-align:bottom;font-size:var(--fs-xs);font-weight:500;line-height:1.35;color:#000000a6;background:#fafafb;border-bottom:1px solid #00000014}.ptable tbody th{font-weight:400}.ptable tbody tr+tr>*{border-top:1px solid #0000000f}.ptable tbody tr.is-checked>*{background:#fbfdfb}.ptable tbody tr.is-blocked>*{opacity:.75}.ptable__name{display:block;font-size:var(--fs-body);font-weight:500;line-height:1.35}.ptable__status{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.ptable__time{display:flex;align-items:center;gap:.3rem;margin-top:.35rem;font-size:var(--fs-xs);color:var(--success)}.ptable__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.ptable__actions .btn{min-height:2.75rem;padding-inline:.9rem}.ptable__sub{display:block;font-size:var(--fs-xs);color:#0000008c}.ptable__note{color:var(--error);white-space:pre-wrap;overflow-wrap:anywhere}.pager{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.pager .btn{min-height:2.75rem}.pager__status{font-size:var(--fs-small);color:#000000b3;text-align:center;white-space:nowrap}.rlist{display:flex;flex-direction:column;border-radius:var(--r-media);background:#fff;border:1px solid #00000014;overflow:hidden}.rrow{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.75rem;min-height:4.25rem;padding:.85rem 1rem .85rem 1.25rem;text-align:left;width:100%;border-top:1px solid #0000000f}.rrow:first-child{border-top:0}.rrow:hover{background:#00000005}.rrow__name{font-weight:500;overflow-wrap:anywhere}.rrow__sub{display:block;font-size:var(--fs-small);color:#0009;overflow-wrap:anywhere}.rrow__end{display:flex;align-items:center;gap:.5rem;color:#00000073}.verify{display:flex;flex-direction:column;gap:1.25rem}.verify__name{font-size:clamp(1.4rem,1.1rem + 1.2vw,1.85rem);font-weight:500;line-height:1.3;overflow-wrap:anywhere}.verify__source{display:flex;flex-wrap:wrap;gap:.4rem}.detail-head{display:flex;flex-direction:column;gap:.5rem}.qr-box{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;border-radius:var(--r-media);background:#fff;border:1px solid #00000014;text-align:center}.qr-box__code{width:min(220px,60vw);aspect-ratio:1}.qr-box__code svg{width:100%;height:100%;shape-rendering:crispEdges}.qr-box__payload{font-size:var(--fs-xs);color:#0009;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.staff-success{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:40rem;margin-inline:auto;padding-top:1rem;text-align:center}.success-icon{width:6.5rem;height:6.5rem;border-radius:50%;display:grid;place-items:center;background:var(--success-soft);color:var(--success);animation:pop-in .35s cubic-bezier(.2,.9,.3,1.3)}.success-icon .icon{width:3.25rem;height:3.25rem;stroke-width:2.25}@keyframes pop-in{0%{transform:scale(.6);opacity:0}}.staff-success__title{font-size:var(--fs-sub);font-weight:300;line-height:1.2}.staff-success__card{width:100%;text-align:left}.staff-success__time{font-size:var(--fs-block);font-weight:300;letter-spacing:-.02em;line-height:1}.staff-success__actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.scanner{position:relative;width:100%;aspect-ratio:1 / 1;max-height:62vh;border-radius:var(--r-card);background:var(--card-dark);overflow:hidden;color:#fff;isolation:isolate}@media (min-width: 640px){.scanner{aspect-ratio:4 / 3}}.scanner__reader{position:absolute;top:0;right:0;bottom:0;left:0}.scanner__reader video{width:100%!important;height:100%!important;object-fit:cover}.scanner__reader #qr-shaded-region{border-color:#0000008c!important}.scanner__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;text-align:center;background:radial-gradient(80% 70% at 50% 40%,#1246e255,transparent 70%),var(--card-dark)}.scanner__overlay p{color:#ffffffb3;max-width:22rem}.scanner__frame{position:absolute;z-index:3;left:50%;top:50%;width:64%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.scanner__frame:before,.scanner__frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px}.scanner__frame:before{background:linear-gradient(var(--accent-lime),var(--accent-lime)) top left / 2.25rem 4px no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) top left / 4px 2.25rem no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) top right / 2.25rem 4px no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) top right / 4px 2.25rem no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) bottom left / 2.25rem 4px no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) bottom left / 4px 2.25rem no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) bottom right / 2.25rem 4px no-repeat,linear-gradient(var(--accent-lime),var(--accent-lime)) bottom right / 4px 2.25rem no-repeat}.scanner__frame:after{top:8%;right:6%;bottom:8%;left:6%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent-lime),transparent);box-shadow:0 0 12px var(--accent-lime);animation:scanline 2.2s ease-in-out infinite}@keyframes scanline{0%,to{top:10%}50%{top:88%}}.scanner.is-paused .scanner__frame:after{animation-play-state:paused;opacity:.3}.scanner__badge{position:absolute;z-index:4;top:.9rem;left:.9rem}.scanner__badge .badge{background:#000000a6;color:#fff}.scanner__live-dot{width:.5rem;height:.5rem;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef444499;animation:live 1.4s infinite}@keyframes live{70%{box-shadow:0 0 0 8px #ef444400}}.scan-status{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:1.6rem;font-size:var(--fs-small);color:#0009;text-align:center}.scan-controls{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.scan-fallback{display:grid;gap:.6rem}@media (min-width: 640px){.scan-fallback{grid-template-columns:1fr 1fr}}.demo-panel{border-radius:var(--r-media);border:1.5px dashed #b4530966;background:#fffbeb;padding:0 1.1rem}.demo-panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.6rem;min-height:3.5rem;font-weight:500}.demo-panel>summary::-webkit-details-marker{display:none}.demo-panel>summary .icon:last-child{margin-left:auto;transition:transform .2s}.demo-panel[open]>summary .icon:last-child{transform:rotate(180deg)}.demo-panel__body{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1.1rem}.demo-grid{display:grid;gap:.5rem}@media (min-width: 640px){.demo-grid{grid-template-columns:1fr 1fr}}.demo-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-height:var(--touch);padding:.7rem 1rem;border-radius:var(--r-overlay);background:#fff;border:1px solid #0000001f;text-align:left}.demo-btn:hover{border-color:#0006}.demo-btn__title{font-weight:500;font-size:var(--fs-small)}.demo-btn__payload{font-size:var(--fs-xs);color:#0009;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.log-list{display:flex;flex-direction:column}.log-row{display:grid;grid-template-columns:5.25rem 1fr auto;align-items:center;gap:.5rem 1rem;padding:.85rem 0;border-top:1px solid #00000014}.log-row:first-child{border-top:0}.log-row__time{color:#0009;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:var(--fs-small)}.log-row__who{min-width:0}.log-row__name{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-row__sub{display:block;font-size:var(--fs-small);color:#0000008c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 479px){.log-row{grid-template-columns:4.25rem 1fr}.log-row .badge{grid-column:2;justify-self:start}}.user-card{display:flex;align-items:center;gap:.9rem}.user-card .avatar{width:3rem;height:3rem;font-size:var(--fs-small)}.menu-list{display:flex;flex-direction:column}.menu-link{display:flex;align-items:center;gap:.9rem;width:100%;min-height:var(--touch-lg);padding:.5rem .25rem;border-top:1px solid #00000014;text-align:left;font-weight:500}.menu-link:first-child{border-top:0}.menu-link__icon{width:2.5rem;height:2.5rem;border-radius:10px;display:grid;place-items:center;background:var(--card-gray);flex:none}.menu-link__text{flex:1;min-width:0}.menu-link__text small{display:block;font-weight:400;font-size:var(--fs-xs);color:#0000008c}.menu-link>.icon:last-child{color:#0006}.menu-link[aria-disabled=true]{opacity:.5;pointer-events:none}.footer-note{font-size:var(--fs-xs);color:#00000073;text-align:center;padding-top:.5rem}.more .field-row{padding-top:.75rem}.form-alert--warning{background:var(--warning-soft);color:var(--warning)}.form-alert--info{background:var(--primary-soft);color:var(--primary-ink)}.form-alert--success{background:var(--success-soft);color:var(--success)}.search-bar__field>.field__control{padding-left:3rem}.scanner__overlay .stack{align-items:center}.spinner--lg{width:2.5rem;height:2.5rem}.legend{font-size:var(--fs-lead);font-weight:500;line-height:1.35}.field-row--end{align-items:end}.row--center{justify-content:center}.row--end{align-items:flex-end}.note-item{display:flex;align-items:flex-start;gap:.5rem}.note-item .icon{margin-top:.25rem;color:#00000073}a.log-row:hover{background:#00000005}.attendance{display:flex;flex-direction:column;gap:1.25rem}.verify+.attendance,.verify+.attendance-summary,#verify-attendance{padding-top:1.25rem;border-top:1px solid #00000014}.stepper{display:inline-flex;align-items:center;gap:.75rem;align-self:flex-start}.stepper__value{min-width:4.5rem;text-align:center;font-size:var(--fs-lead);font-weight:500;white-space:nowrap}.stepper__value output{font-size:var(--fs-title)}textarea.field__control{min-height:auto;resize:vertical;line-height:var(--lh-body)}.field__control:disabled{background:var(--paper);color:#0009}.note-text{white-space:pre-wrap}.sheet--sticky-actions .sheet__panel{padding-bottom:0}.sheet--sticky-actions .sheet__actions{position:sticky;bottom:0;z-index:1;margin:1.5rem -1.25rem 0;padding:.9rem 1.25rem calc(1.25rem + var(--safe-b));background:#fff;border-top:1px solid #00000014}@media (min-width: 768px){.sheet--sticky-actions .sheet__actions{margin-inline:-2rem;padding:1rem 2rem 2rem}}.headcount{display:flex;flex-direction:column;gap:.75rem}.hc-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.hc-table th,.hc-table td{padding:.65rem .5rem;text-align:right;vertical-align:top;border-top:1px solid #00000014}.hc-table th:first-child{padding-left:0;text-align:left}.hc-table tr>:last-child{padding-right:0}.hc-table thead th{border-top:0;padding-top:0;font-size:var(--fs-xs);font-weight:500;line-height:1.35;color:#000000a6;vertical-align:bottom}.hc-table tbody th{font-weight:500}.hc-table td{font-size:var(--fs-lead)}.hc-table__sub{display:block;font-size:var(--fs-xs);font-weight:400;color:#0000008c}.hc-table__ok{color:var(--success)}.hc-table__total>*{font-weight:600;border-top-color:#0003}
