.filter-bar-compact[data-v-cec44f48]{display:flex;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.filter-label[data-v-cec44f48]{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.04em}.input-sm[data-v-cec44f48]{height:34px;font-size:var(--text-sm);padding:0 var(--space-3)}.btn-sm[data-v-cec44f48]{height:34px;font-size:var(--text-sm);padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.last-update[data-v-cec44f48]{font-size:var(--text-xs);align-self:center}.kpi-grid[data-v-cec44f48]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.kpi-card[data-v-cec44f48]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;gap:var(--space-3);align-items:flex-start;transition:box-shadow var(--transition-interactive)}.kpi-card[data-v-cec44f48]:hover{box-shadow:var(--shadow-md)}.kpi-card--alert[data-v-cec44f48]{border-color:var(--color-notification);background:var(--color-notification-highlight)}.kpi-skeleton[data-v-cec44f48]{height:88px;background:linear-gradient(90deg,var(--color-surface-offset) 25%,var(--color-surface-dynamic) 50%,var(--color-surface-offset) 75%);background-size:200% 100%;animation:shimmer-cec44f48 1.5s ease-in-out infinite}@keyframes shimmer-cec44f48{0%{background-position:-200% 0}to{background-position:200% 0}}.kpi-icon[data-v-cec44f48]{width:40px;height:40px;min-width:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.kpi-icon svg[data-v-cec44f48]{width:20px;height:20px}.kpi-icon--blue[data-v-cec44f48]{background:color-mix(in oklch,var(--color-blue) 15%,transparent);color:var(--color-blue)}.kpi-icon--teal[data-v-cec44f48]{background:color-mix(in oklch,var(--color-primary) 15%,transparent);color:var(--color-primary)}.kpi-icon--green[data-v-cec44f48]{background:color-mix(in oklch,var(--color-success) 15%,transparent);color:var(--color-success)}.kpi-icon--purple[data-v-cec44f48]{background:color-mix(in oklch,var(--color-purple) 15%,transparent);color:var(--color-purple)}.kpi-icon--red[data-v-cec44f48]{background:color-mix(in oklch,var(--color-notification) 15%,transparent);color:var(--color-notification)}.kpi-icon--orange[data-v-cec44f48]{background:color-mix(in oklch,var(--color-orange) 15%,transparent);color:var(--color-orange)}.kpi-icon--gray[data-v-cec44f48]{background:var(--color-surface-offset);color:var(--color-text-muted)}.kpi-body[data-v-cec44f48]{display:flex;flex-direction:column;gap:2px}.kpi-label[data-v-cec44f48]{font-size:var(--text-xs);color:var(--color-text-muted)}.kpi-value[data-v-cec44f48]{font-size:var(--text-xl);font-weight:700;line-height:1.1;color:var(--color-text)}.kpi-delta[data-v-cec44f48]{font-size:var(--text-xs)}.kpi-delta.positive[data-v-cec44f48]{color:var(--color-success)}.kpi-delta.negative[data-v-cec44f48],.text-danger[data-v-cec44f48]{color:var(--color-notification)}.dash-row[data-v-cec44f48]{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--space-4);margin-bottom:var(--space-4)}@media (max-width: 900px){.dash-row[data-v-cec44f48]{grid-template-columns:1fr}}.panel[data-v-cec44f48]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.panel--wide[data-v-cec44f48]{margin-bottom:var(--space-4)}.panel--table[data-v-cec44f48],.panel--chart[data-v-cec44f48]{display:flex;flex-direction:column}.panel-header[data-v-cec44f48]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.panel-header h3[data-v-cec44f48]{font-size:var(--text-base);font-weight:600;margin:0}.date-badge[data-v-cec44f48]{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface-offset);border-radius:var(--radius-full);padding:2px var(--space-3)}.chart-wrap[data-v-cec44f48]{position:relative;height:220px}.chart-wrap--tall[data-v-cec44f48]{height:260px}.chart-empty[data-v-cec44f48]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-faint)}.chart-empty p[data-v-cec44f48]{font-size:var(--text-sm);color:var(--color-text-muted)}.compact-table table[data-v-cec44f48]{width:100%;border-collapse:collapse}.compact-table th[data-v-cec44f48]{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left}.compact-table td[data-v-cec44f48]{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-divider);vertical-align:middle}.compact-table tr:last-child td[data-v-cec44f48]{border-bottom:none}.col-num[data-v-cec44f48],.text-center[data-v-cec44f48]{text-align:center}.terminal-cell[data-v-cec44f48]{display:flex;align-items:center;gap:var(--space-2)}.terminal-dot[data-v-cec44f48]{width:8px;height:8px;min-width:8px;border-radius:50%}.dot--online[data-v-cec44f48]{background:var(--color-success);box-shadow:0 0 0 2px color-mix(in oklch,var(--color-success) 20%,transparent)}.dot--offline[data-v-cec44f48]{background:var(--color-text-faint)}.d-block[data-v-cec44f48]{display:block}.empty-cell[data-v-cec44f48]{text-align:center;padding:var(--space-8)!important}.empty-state-inline[data-v-cec44f48]{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-faint)}.empty-state-inline span[data-v-cec44f48]{color:var(--color-text-muted);font-size:var(--text-sm)}.badge[data-v-cec44f48]{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.badge--blue[data-v-cec44f48]{background:color-mix(in oklch,var(--color-blue) 15%,transparent);color:var(--color-blue)}.badge--teal[data-v-cec44f48]{background:color-mix(in oklch,var(--color-primary) 15%,transparent);color:var(--color-primary)}.badge--red[data-v-cec44f48]{background:color-mix(in oklch,var(--color-notification) 15%,transparent);color:var(--color-notification)}.rank-badge[data-v-cec44f48]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:var(--text-xs);font-weight:700;background:var(--color-surface-offset);color:var(--color-text-muted)}.rank-badge--0[data-v-cec44f48]{background:gold;color:#5a4500}.rank-badge--1[data-v-cec44f48]{background:silver;color:#3a3a3a}.rank-badge--2[data-v-cec44f48]{background:#cd7f32;color:#fff}.func-cell[data-v-cec44f48]{display:flex;align-items:center;gap:var(--space-3)}.avatar[data-v-cec44f48]{width:32px;height:32px;min-width:32px;border-radius:50%;background:color-mix(in oklch,var(--color-primary) 20%,transparent);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center}.spinner-sm[data-v-cec44f48]{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin-cec44f48 .6s linear infinite}@keyframes spin-cec44f48{to{transform:rotate(360deg)}}.page-header[data-v-8369069e]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.door-card[data-v-8369069e]{transition:box-shadow .2s,border-color .2s}.door-card.door-open[data-v-8369069e]{border-left:3px solid var(--warning, #f59e0b)}.door-card-header[data-v-8369069e]{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.timer-row[data-v-8369069e]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.timer-opts[data-v-8369069e]{display:flex;gap:.35rem;flex-wrap:wrap}.timer-btn[data-v-8369069e]{padding:2px 10px;border-radius:99px;border:1px solid var(--border, #333);background:transparent;color:var(--text-muted, #888);font-size:.78rem;cursor:pointer;transition:all .15s}.timer-btn[data-v-8369069e]:hover{border-color:var(--primary, #4f98a3);color:var(--primary, #4f98a3)}.timer-btn.active[data-v-8369069e]{background:var(--primary, #4f98a3);border-color:var(--primary, #4f98a3);color:#fff;font-weight:600}.countdown[data-v-8369069e]{font-size:.82rem;color:var(--warning, #f59e0b);margin-bottom:.5rem}.door-actions[data-v-8369069e]{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.door-meta[data-v-8369069e]{display:flex;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border, #333)}.door-meta .stat-card[data-v-8369069e]{flex:1;padding:.4rem .6rem}:root{--bg: #0b1220;--panel: #111a2b;--panel-2: #162235;--line: #22314d;--text: #e8eefc;--muted: #9aabc8;--primary: #3b82f6;--primary-2: #2563eb;--success: #16a34a;--danger: #dc2626;--warning: #f59e0b;--radius: 16px;--shadow: 0 10px 30px rgba(0,0,0,.28)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input{font:inherit}button{cursor:pointer;border:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{border-right:1px solid var(--line);background:#0a101c;padding:24px;display:flex;flex-direction:column;gap:24px}.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin:0 0 6px}h1,h2,h3,p{margin-top:0}.nav{display:grid;gap:10px}.nav-btn{background:transparent;color:var(--text);text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.nav-btn.active{background:#3b82f624;border-color:#3b82f673}.status-box{margin-top:auto;display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.status-dot{width:12px;height:12px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 4px #dc262626}.status-dot.ok{background:var(--success);box-shadow:0 0 0 4px #16a34a26}.content{padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.stats-grid,.panel-grid{display:grid;gap:16px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid.single{grid-template-columns:1fr}.stat-card,.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:18px;display:flex;flex-direction:column;gap:8px}.stat-label,.muted,.small{color:var(--muted)}.stat-value{font-size:28px}.panel{padding:20px}.input{width:100%;background:#0e1727;border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:12px}.form-grid{display:grid;gap:12px}.inline-form{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.primary-btn,.secondary-btn,.danger-btn{padding:12px 16px;border-radius:12px;color:#fff}.primary-btn{background:linear-gradient(180deg,var(--primary),var(--primary-2))}.secondary-btn{background:#243754}.danger-btn{background:var(--danger)}.small-btn{padding:8px 12px;font-size:14px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:#ffffff05;color:var(--muted);font-weight:600}.empty{text-align:center;color:var(--muted)}.badge,.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid transparent}.badge.success{background:#16a34a1f;color:#86efac;border-color:#16a34a40}.badge.danger{background:#dc26261f;color:#fca5a5;border-color:#dc262640}.chip{background:#3b82f61f;color:#bfdbfe;border-color:#3b82f633;margin:0 8px 8px 0}.chips{display:flex;flex-wrap:wrap}.permission-box{background:#ffffff05;border:1px solid var(--line);border-radius:14px;padding:14px}.label{margin-bottom:10px;color:var(--muted)}.check-row{display:flex;align-items:center;gap:10px;padding:10px 0}.check-row.between{justify-content:space-between}.action-row{display:flex;gap:8px;flex-wrap:wrap}.terminal-list{display:grid;gap:12px}.terminal-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#ffffff05}.alert{margin-bottom:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line)}.alert.success{background:#16a34a24;color:#bbf7d0}.alert.error{background:#dc262624;color:#fecaca}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid{grid-template-columns:1fr}}@media (max-width: 700px){.content{padding:16px}.topbar{flex-direction:column;align-items:stretch}.stats-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}}.foto-box{display:flex;flex-direction:column;gap:10px}.foto-placeholder{width:100%;height:200px;border:2px dashed var(--line);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px;background:#ffffff05}.webcam-container{position:relative;width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#000;aspect-ratio:4/3}.webcam-video{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.face-guide-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse 55% 70% at 50% 48%,transparent 60%,rgba(0,0,0,.55) 100%)}.face-oval{width:52%;aspect-ratio:3/4;border-radius:50%;border:2.5px solid rgba(59,130,246,.85);box-shadow:0 0 0 1px #3b82f633}.webcam-hint{font-size:12px;color:#ffffffbf;text-shadow:0 1px 3px rgba(0,0,0,.8);margin:0}.foto-captured{position:relative;width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3}.foto-captured img{width:100%;height:100%;object-fit:cover;display:block}.captured-badge{position:absolute;bottom:0;left:0;right:0;background:#16a34ad1;color:#fff;text-align:center;font-size:13px;padding:8px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.foto-btns{display:flex;flex-wrap:wrap;gap:8px}.foto-btn{display:flex;align-items:center;gap:7px;padding:10px 16px;border-radius:12px;font-size:14px;border:0;cursor:pointer;transition:opacity .15s;color:#fff;flex:1;min-width:120px;justify-content:center}.foto-btn:hover{opacity:.85}.webcam-btn{background:#1d4ed8}.arquivo-btn{background:#243754}.tirar-btn{background:var(--primary);font-size:15px;flex:2}.cancelar-btn{background:var(--danger)}.refazer-btn{background:#374151;color:var(--muted);flex:0}
