:root{color:#f6f8fb;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at top,#73b6ff2e,#0000 34%),linear-gradient(#07111f 0%,#091524 48%,#0c1828 100%);font-family:SF Pro Display,Avenir Next,Segoe UI,sans-serif;font-weight:400;line-height:1.35}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}body:before{content:"";pointer-events:none;background:radial-gradient(circle at 14% 14%,#5cbcff29,#0000 26%),radial-gradient(circle at 84% 10%,#75f8d21f,#0000 28%);position:fixed;inset:0}.app-shell{min-height:100vh;padding:14px 12px 36px;position:relative}.app-version{z-index:2;color:#dbe5f26b;letter-spacing:0;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.72rem;line-height:1;position:fixed;bottom:10px;right:14px}.screen-glow{filter:blur(64px);opacity:.5;pointer-events:none;border-radius:999px;width:220px;height:220px;position:fixed}.screen-glow--top{background:#5bb2ff2e;animation:8s ease-in-out infinite drift;top:-80px;right:-60px}.screen-glow--bottom{background:#71f5d024;animation:10s ease-in-out infinite reverse drift;bottom:-110px;left:-70px}.screen{gap:8px;width:min(100%,430px);margin:0 auto;animation:.24s ease-out rise-in;display:grid;position:relative}.screen--connect{padding-top:24px}.wordmark{color:#f1f7ffe6;letter-spacing:.22em;text-transform:uppercase;align-items:center;gap:10px;font-size:.86rem;display:inline-flex}.wordmark__mark{background:linear-gradient(135deg,#7dc7ff 0%,#7cf4d7 100%);border-radius:999px;width:12px;height:12px;position:relative;box-shadow:0 0 0 6px #7dc7ff17}.wordmark__mark:after{content:"";border-radius:inherit;border:1px solid #7dc7ff2e;animation:2.6s ease-out infinite pulse-ring;position:absolute;inset:-6px}.connect-header{gap:8px;padding:12px 2px 10px;display:grid}.connect-title{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,8vw,2.6rem);font-weight:700}.connect-copy{color:#dbe5f2bd;margin:0;font-size:.98rem}.panel{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#08111ed1;border:1px solid #9ab5d324;border-radius:24px;width:100%}.panel--compact{padding:12px}.connect-panel{gap:10px;display:grid}.session-picker{background:#7dc7ff14;border:1px solid #7dc7ff2e;border-radius:16px;gap:8px;padding:10px;display:grid}.session-picker__label{color:#dbe5f2b8;font-size:.82rem;font-weight:600}.session-picker__codes{flex-wrap:wrap;gap:8px;display:flex}.session-picker__code{color:#d6efff;min-height:36px;font:inherit;letter-spacing:0;cursor:pointer;background:#7dc7ff24;border:1px solid #7dc7ff5c;border-radius:999px;padding:0 12px;font-weight:700}.session-picker__code:hover{background:#7dc7ff38}.helper-text{color:#dbe5f2a3;margin:0;font-size:.88rem}.field{gap:6px;display:grid}.field__label{color:#dbe5f2bd;letter-spacing:.03em;font-size:.84rem}.field__input{color:#f6f8fb;background:#ffffff08;border:1px solid #9ab5d324;border-radius:18px;outline:none;width:100%;min-height:52px;padding:0 16px}.field__input:focus{border-color:#85c3ff8a;box-shadow:0 0 0 4px #6bb8ff1f}.actions-stack{gap:8px;display:grid}.action-button{border:0;border-radius:18px;width:100%;min-height:52px;padding:0 16px;font-weight:600;transition:transform .16s,opacity .16s,background .16s}.action-button:active{transform:scale(.985)}.action-button:disabled{opacity:.55;cursor:not-allowed}.action-button--primary{color:#07111f;background:linear-gradient(135deg,#7dc7ff 0%,#7cf4d7 100%)}.action-button--secondary{color:#eef4fb;background:#ffffff0d;border:1px solid #9ab5d31f}.action-button--danger{color:#ffe7e3;background:linear-gradient(135deg,#ff6b6b4d 0%,#ff9f7642 100%);border:1px solid #ff85782e}.inline-error{color:#ffdfe0;background:#ec485b1f;border:1px solid #ff778829;border-radius:18px;padding:12px 14px;font-size:.9rem}.scanner-modal{z-index:20;background:#03080fbd;place-items:end center;padding:12px;display:grid;position:fixed;inset:0}.scanner-sheet,.confirm-sheet{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#08111ef5;border:1px solid #9ab5d324;border-radius:24px;width:min(100%,430px);padding:12px;animation:.18s ease-out rise-in}.scanner-sheet{gap:10px;display:grid}.scanner-row,.top-bar{justify-content:space-between;align-items:center;gap:10px;display:flex}.top-bar{min-height:48px;padding:4px 2px}.top-bar__title{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:600}.top-bar__title span{color:#dbe5f2a3;font-weight:500}.logout-button{color:#eef4fb;background:#ffffff0a;border:1px solid #9ab5d31f;border-radius:16px;min-height:40px;padding:0 14px}.status-bar{color:#ecf3fbd6;background:#ffffff08;border-radius:18px;align-items:center;gap:8px;padding:10px 12px;font-size:.9rem;display:flex;overflow-x:auto}.status-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.status-dot{border-radius:999px;flex:none;width:8px;height:8px}.status-dot--green{background:#3ddc84}.status-dot--red{background:#ff6b6b}.status-dot--yellow{background:#fbbf24}.status-divider{color:#dbe5f24d}.control-panel{gap:8px;display:grid}.control-block{gap:10px;padding:12px;display:grid}.control-block__label{color:#dbe5f2ad;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:10px;font-size:.82rem;display:flex}.control-block__value{color:#f6f8fb;font-size:1rem;font-weight:600}.segmented-control{background:#ffffff08;border-radius:20px;gap:6px;padding:4px;display:flex}.segmented-control--stacked{flex-wrap:wrap}.segmented-control__button{color:#ecf3fbd1;background:0 0;border:0;border-radius:16px;flex:1 1 0;min-height:48px;padding:0 12px;transition:background .16s,color .16s,transform .16s}.segmented-control__button.is-active{color:#f8fbff;background:#7dc7ff33}.segmented-control__button:disabled{opacity:.45}.system-actions{gap:8px;display:grid}.confirm-sheet{gap:10px;display:grid}.confirm-title{margin:0;font-size:1.08rem}.confirm-copy{color:#dbe5f2bd;margin:0}.pending-note{color:#dbe5f29e;font-size:.82rem}.screen--dashboard{width:min(100%,920px)}.tab-bar{background:#ffffff08;border:1px solid #9ab5d31a;border-radius:20px;gap:4px;padding:4px;display:flex}.tab-bar--scrollable{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow-x:auto}.tab-bar--scrollable .tab-bar__tab{white-space:nowrap;flex:none}.tab-bar__tab{color:#ecf3fba3;background:0 0;border:0;border-radius:16px;flex:1 1 0;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:.9rem;font-weight:500;transition:background .16s,color .16s;display:inline-flex}.tab-bar__tab--active{color:#f0f6ff;background:#7dc7ff29}.tab-bar__badge{color:#c8e8ff;background:#7dc7ff47;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.74rem;font-weight:700;line-height:1;display:inline-flex}.qr-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.qr-card{gap:12px;padding:14px;display:grid;overflow:hidden}.qr-card__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.qr-card__room-id{letter-spacing:-.01em;font-size:.9rem;font-weight:600}.qr-card__session-code{color:#d6efff;letter-spacing:0;font-size:.9rem;font-weight:800}.qr-card__age{color:#dbe5f27a;white-space:nowrap;font-size:.78rem}.qr-card__image-wrap{aspect-ratio:1;background:#fff;border-radius:18px;place-items:center;width:100%;max-width:256px;margin:0 auto;padding:12px;display:grid}.qr-card__image{object-fit:contain;width:100%;height:100%;display:block}.qr-card__meta{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.qr-card__session{color:#dbe5f27a;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.76rem;overflow:hidden}.qr-card__link{color:#7dc7ffe6;white-space:nowrap;flex:none;font-size:.8rem;text-decoration:none}.qr-card__link:hover{color:#a8d8ff;text-decoration:underline}.qr-empty{background:#08111e66;border:1px dashed #9ab5d333;border-radius:24px;place-items:center;min-height:200px;padding:24px;display:grid}.qr-empty__text{color:#dbe5f280;text-align:center;max-width:320px;margin:0;font-size:.92rem}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%,to{transform:translate(0,0)}50%{transform:translate(14px,10px)}}@keyframes pulse-ring{0%{opacity:.75;transform:scale(.72)}to{opacity:0;transform:scale(1.28)}}
