:root{--color-navy: #223986;--color-navy-light: #9fb4ea;--color-accent: #ff760a;--color-accent-dark: #e0680a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#0b1220;color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overscroll-behavior:none}.capture-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:24px;background:radial-gradient(circle at top,#16213a,#0b1220 65%)}.capture-topbar{width:100%;display:flex;align-items:flex-start;justify-content:space-between}.unit-label{font-size:13px;color:var(--color-navy-light);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.tenant-logo{width:36px;height:36px;object-fit:contain;border-radius:6px;background:#fff;flex-shrink:0}.tenant-name{font-size:12px;color:#fff;font-weight:600}.clock-time{font-size:30px;font-weight:700;display:block;line-height:1.1}.clock-date{font-size:13px;color:#94a3b8;text-transform:capitalize}.gps-indicator{font-size:12px;padding:6px 10px;border-radius:999px;background:#ffffff14}.pending-sync-badge{font-size:12px;padding:6px 10px;border-radius:999px;background:#fbbf241f;color:#fbbf24}.network-badge{font-size:12px;padding:6px 10px;border-radius:999px;border:none;font-family:inherit;cursor:default}.network-badge-online{background:#4ade801f;color:#4ade80}.network-badge-offline{background:#f871711f;color:#f87171;cursor:pointer}.network-badge-offline:disabled{opacity:.7;cursor:default}.last-punch-badge{font-size:12px;padding:6px 10px;border-radius:999px;background:#ffffff0f;color:#94a3b8;white-space:nowrap}.history-btn{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#cbd5e1;font-family:inherit;cursor:pointer}.history-btn:active{background:#ffffff14}.history-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040814b8;display:flex;align-items:center;justify-content:center;z-index:40;padding:24px}.history-panel{width:100%;max-width:480px;max-height:80vh;overflow-y:auto;background:#10192e;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px}.history-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.history-close-btn{font-size:12px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#cbd5e1;font-family:inherit;cursor:pointer}.history-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:16px 0 8px}.history-empty{font-size:13px;color:#64748b;padding:8px 0}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#ffffff0a}.history-item-name{font-size:13.5px;font-weight:600}.history-item-when{font-size:12px;color:#94a3b8;margin-top:2px}.history-item-status{font-size:11px;padding:4px 8px;border-radius:999px;white-space:nowrap}.history-item-status-auto_ok{background:#4ade801f;color:#4ade80}.history-item-status-needs_review{background:#fbbf241f;color:#fbbf24}.history-item-status-queued{background:#f871711f;color:#f87171}.history-item-status-manual{background:#94a3b81f;color:#94a3b8}.gps-good{color:#4ade80}.gps-fair{color:#fbbf24}.gps-poor{color:#f87171}.gps-meters{opacity:.7}.camera-frame{position:relative;width:min(320px,78vw);height:min(320px,78vw);border-radius:50%;overflow:hidden;background:#1e293b;display:flex;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.08)}.camera-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-video-frozen{position:absolute;top:0;right:0;bottom:0;left:0}.camera-placeholder{width:96px;height:96px;color:#ffffff59}.camera-placeholder svg{width:100%;height:100%}.face-guide{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:3px dashed rgba(255,255,255,.25);border-radius:50%;pointer-events:none}.face-guide.pulsing{border-color:var(--color-accent);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.04);opacity:1}}.capture-actions{width:100%;display:flex;flex-direction:column;align-items:center;gap:14px}.btn-capture{width:100%;max-width:340px;padding:18px;border-radius:16px;border:none;background:var(--color-accent);color:#fff;font-size:17px;font-weight:700;cursor:pointer}.btn-capture:disabled{opacity:.4;cursor:not-allowed}.btn-capture:active{background:var(--color-accent-dark)}.link-manual{background:none;border:none;color:var(--color-navy-light);font-size:13.5px;cursor:pointer;text-decoration:underline}.btn-secondary-dark{margin-top:16px;padding:12px 22px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;font-size:14px;cursor:pointer}.capture-status{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.status-title{font-size:18px;font-weight:700}.status-sub{font-size:13.5px;color:#94a3b8;max-width:300px}.result-icon{width:46px;height:46px;margin-bottom:4px;color:#e2e8f0}.result-icon svg{width:100%;height:100%}.result-ok .status-title,.result-ok .result-icon{color:#4ade80}.result-review .status-title,.result-review .result-icon{color:#fbbf24}.result-fail .status-title,.result-fail .result-icon{color:#f87171}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--color-accent);animation:spin .8s linear infinite;margin-bottom:6px}@keyframes spin{to{transform:rotate(360deg)}}.manual-fallback{display:flex;flex-direction:column;align-items:center;width:100%}.error-banner{background:#f871711f;color:#f87171;border-radius:8px;padding:8px 14px;font-size:13px;margin-bottom:12px;text-align:center}.pairing-screen{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.pairing-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:4px}.pairing-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;margin-bottom:18px}.pairing-brand-badge{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.pairing-brand-badge svg{width:100%;height:100%}.pairing-title{font-size:20px;font-weight:700;margin-bottom:6px}.pairing-sub{font-size:13px;color:#94a3b8;margin:0 0 18px;line-height:1.5}.pairing-card label{display:block;font-size:12.5px;color:#94a3b8;margin:10px 0 4px}.pairing-card input{display:block;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#fff;font-size:15px}.pairing-error{background:#f871711f;border:1px solid rgba(248,113,113,.3);color:#f87171;padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:8px}.mode-switch{display:flex;gap:10px;margin-bottom:16px}.mode-switch .btn{flex:1;padding:10px;border-radius:10px;border:none;font-size:13.5px;font-weight:600;cursor:pointer}.matricula-input{width:100%;max-width:300px;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#fff;font-size:18px;text-align:center}.matricula-input::placeholder{color:#64748b}
