*{box-sizing:border-box;margin:0;padding:0;font-family:Poppins,system-ui,-apple-system,sans-serif}body{color:#f8fafc;background:#0b0e1a}.totem-login-container{background:radial-gradient(circle at top,#271569 0%,#0b0e1a 70%);place-items:center;min-height:100vh;padding:20px;display:grid}.totem-login-card{background:#15192b;border:1px solid #29304d;border-radius:20px;width:min(100%,440px);padding:36px 32px;box-shadow:0 24px 60px #00000073}.totem-brand{text-align:center;margin-bottom:24px}.totem-brand h1{font-size:32px;font-style:italic;font-weight:800}.totem-brand h1 span{color:#78d6ff}.totem-badge{letter-spacing:.06em;color:#a78bfa;background:#633df233;border-radius:999px;margin-top:8px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-block}.totem-subtitle{color:#94a3b8;margin-bottom:18px;font-size:13px;line-height:1.5}.totem-form{flex-direction:column;gap:16px;display:flex}.totem-form label{color:#cbd5e1;flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.totem-form input,.totem-form select{color:#fff;background:#0f1322;border:1px solid #2e3654;border-radius:10px;padding:12px 14px;font-size:14px}.totem-form input:focus,.totem-form select:focus{outline:2px solid #633df2}.totem-erro{color:#fca5a5;background:#ef444426;border:1px solid #ef444466;border-radius:10px;padding:10px 12px;font-size:13px}.totem-btn-primary{color:#fff;cursor:pointer;background:#633df2;border:0;border-radius:12px;margin-top:6px;padding:14px;font-size:15px;font-weight:700;transition:filter .2s}.totem-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.totem-btn-primary:disabled{opacity:.6;cursor:not-allowed}.totem-kiosk{flex-direction:column;height:100vh;display:flex;overflow:hidden}.totem-topbar{background:#131728;border-bottom:1px solid #242b45;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 24px;display:flex}.totem-topbar-brand{align-items:center;gap:14px;display:flex}.totem-topbar-brand h2{font-size:22px;font-style:italic;font-weight:800}.totem-topbar-brand h2 span{color:#78d6ff}.totem-turma-pill{color:#c4b5fd;background:#633df238;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.totem-topbar-status{color:#cbd5e1;align-items:center;gap:8px;font-size:13px;display:flex}.totem-topbar-status small{color:#64748b}.totem-dot{background:#f59e0b;border-radius:50%;width:10px;height:10px}.totem-dot.online{background:#22c55e;box-shadow:0 0 10px #22c55e}.totem-btn-exit{color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:10px;padding:9px 14px;font-size:12px;font-weight:600}.totem-btn-exit:hover{background:#1e293b}.totem-workspace{flex:1;grid-template-columns:1fr 340px;min-height:0;display:grid}.totem-camera-stage{background:#05070e;place-items:center;display:grid;position:relative;overflow:hidden}.totem-video,.totem-canvas{object-fit:cover;width:100%;height:100%;position:absolute}.totem-success-toast{z-index:10;background:#0f172af0;border:2px solid #22c55e;border-radius:18px;align-items:center;gap:16px;min-width:340px;padding:14px 22px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0009}.totem-success-toast img{object-fit:cover;border:2px solid #22c55e;border-radius:50%;width:58px;height:58px}.totem-success-toast .toast-tag{color:#4ade80;letter-spacing:.08em;font-size:10px;font-weight:800;display:block}.totem-success-toast strong{margin:2px 0;font-size:17px;display:block}.totem-success-toast small{color:#94a3b8;font-size:12px}.totem-error-box{text-align:center;z-index:5;background:#15192b;border:1px solid #ef4444;border-radius:16px;max-width:420px;padding:28px}.totem-error-box p{color:#cbd5e1;margin:12px 0 18px;font-size:14px}.totem-sidebar{background:#131728;border-left:1px solid #242b45;flex-direction:column;padding:20px;display:flex;overflow-y:auto}.totem-sidebar-header{border-bottom:1px solid #242b45;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.totem-sidebar-header h3{font-size:15px}.totem-sidebar-header span{background:#633df2;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.totem-empty{color:#64748b;font-size:13px;line-height:1.6}.totem-feed{flex-direction:column;gap:10px;list-style:none;display:flex}.totem-feed li{background:#1b2038;border:1px solid #283052;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.totem-feed li img{object-fit:cover;border-radius:50%;width:40px;height:40px}.totem-feed li div{flex:1;min-width:0}.totem-feed li strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.totem-feed li span{color:#94a3b8;font-size:11px}.totem-feed li time{color:#4ade80;font-size:12px;font-weight:700}@media (width<=900px){.totem-workspace{grid-template-rows:1fr 220px;grid-template-columns:1fr}.totem-sidebar{border-top:1px solid #242b45;border-left:0}}.totem-status-banner{z-index:10;background:#0f172af2;border:2px solid #633df2;border-radius:18px;align-items:center;gap:16px;width:min(92%,560px);padding:16px 24px;transition:border-color .25s;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 18px 44px #000000a6}.totem-status-banner.etapa-buscando,.totem-status-banner.etapa-desconhecido{border-color:#f59e0b}.totem-status-banner.etapa-encontrado{border-color:#38bdf8}.totem-status-banner.etapa-registrado{border-color:#22c55e}.totem-status-banner img{object-fit:cover;border:2px solid;border-radius:50%;flex-shrink:0;width:60px;height:60px}.totem-status-banner .toast-tag{text-transform:uppercase;letter-spacing:.08em;color:#a78bfa;font-size:11px;font-weight:800;display:block}.totem-status-banner.etapa-buscando .toast-tag,.totem-status-banner.etapa-desconhecido .toast-tag{color:#fbbf24}.totem-status-banner.etapa-encontrado .toast-tag{color:#38bdf8}.totem-status-banner.etapa-registrado .toast-tag{color:#4ade80}.totem-status-banner strong{color:#f8fafc;margin:3px 0;font-size:16px;display:block}.totem-status-banner small{color:#94a3b8;font-size:12px}.totem-spinner{border:3px solid #fbbf2440;border-top-color:#fbbf24;border-radius:50%;flex-shrink:0;width:44px;height:44px;animation:.8s linear infinite totem-spin}@keyframes totem-spin{to{transform:rotate(360deg)}}
