.webcam video[data-v-d146f431]{width:100%;max-width:640px;border-radius:12px;background:#000;transform:scaleX(-1)}.webcam-error[data-v-d146f431]{color:#c0392b;font-weight:600}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--green: #16a34a;--red: #dc2626;--bg: #f1f5f9;--card: #ffffff;--text: #0f172a;--muted: #64748b;--border: #e2e8f0}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.container{max-width:880px;margin:0 auto;padding:24px 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000f}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.15rem;margin:0 0 16px}.subtitle{color:var(--muted);margin:0 0 20px}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:10px 18px;background:var(--primary);color:#fff;font-weight:600;transition:background .15s}button:hover{background:var(--primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:#e2e8f0;color:var(--text)}button.danger{background:var(--red)}input,select{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:12px}label{font-weight:600;font-size:.9rem;display:block;margin-bottom:4px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.alert{padding:12px 16px;border-radius:10px;margin:12px 0;font-weight:600}.alert.success{background:#dcfce7;color:var(--green)}.alert.error{background:#fee2e2;color:var(--red)}.alert.info{background:#dbeafe;color:var(--primary-dark)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:.85rem;text-transform:uppercase}.badge{padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.badge.vao{background:#dcfce7;color:var(--green)}.badge.ra{background:#fee2e2;color:var(--red)}nav.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:12px 16px}nav.topbar .inner{max-width:880px;margin:0 auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}nav.topbar a{text-decoration:none;color:var(--muted);font-weight:600;padding:8px 12px;border-radius:8px}nav.topbar a.router-link-active{color:var(--primary);background:#eff6ff}nav.topbar .brand{font-weight:800;color:var(--text);margin-right:12px}nav.topbar .spacer{flex:1}
