:root{--primary: #1b3a5c;--primary-dark: #122a43;--accent: #1fa38f;--accent-soft: #e2f5f1;--sun: #f4b400;--bg: #f4f7fb;--surface: #ffffff;--surface-alt: #eaf0f6;--text: #102a44;--text-muted: #5b7088;--border: #d7e0ea;--danger: #dc2626;--success: #16a34a;--radius: 12px;--radius-full: 9999px;--maxw: 560px;--shadow: 0 1px 3px rgba(16, 42, 68, .08), 0 8px 24px rgba(16, 42, 68, .06)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.centro-pantalla{display:flex;min-height:100dvh;align-items:center;justify-content:center;color:var(--text-muted)}.app{display:flex;flex-direction:column;min-height:100dvh}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border)}.app-header .titulo{font-weight:700;font-size:18px;flex:1;display:flex;align-items:center;gap:10px}.app-header .logo-mini{width:30px;height:30px;object-fit:contain}.icon-btn{background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-full);width:38px;height:38px;font-size:18px;cursor:pointer}.app-main{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:16px;padding-bottom:max(24px,env(safe-area-inset-bottom))}h1.page-title{font-size:20px;margin:4px 0 16px}.section-title{font-size:16px;font-weight:700;margin:20px 0 8px}.paso{color:var(--accent);font-size:13px;font-weight:700;margin:16px 0 6px;text-transform:uppercase;letter-spacing:.03em}.muted{color:var(--text-muted)}.nota{color:var(--text-muted);font-size:12px;text-align:center;margin-top:8px}.label{display:block;color:var(--text-muted);font-size:13px;margin:10px 0 4px;font-weight:600}.input,textarea.input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:16px;padding:12px;outline:none}.input::placeholder{color:#9bacc0}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea.input{min-height:80px;resize:vertical}.row{display:flex;gap:12px}.row>*{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:var(--radius);padding:14px 16px;font-size:16px;font-weight:700;color:#fff;cursor:pointer}.btn:disabled{opacity:.55}.btn-primary{background:var(--primary)}.btn-accent{background:var(--accent)}.btn-success{background:var(--success)}.btn-outline{background:var(--surface);border:1px solid var(--border);color:var(--primary)}.btn+.btn{margin-top:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card+.card{margin-top:12px}.card-action{display:block;width:100%;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:18px;cursor:pointer;color:var(--text);box-shadow:var(--shadow)}.card-action.primary{background:var(--primary);border-color:var(--primary);color:#fff}.card-action .t{font-size:18px;font-weight:700}.card-action .d{font-size:13px;opacity:.85;margin-top:4px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-full);padding:8px 14px;font-size:14px;text-transform:capitalize;cursor:pointer}.chip.activo{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.badge{display:inline-block;border-radius:var(--radius-full);padding:3px 10px;font-size:11px;font-weight:700;color:#fff}.badge.warn{background:var(--sun);color:#5a4500}.badge.danger{background:var(--danger)}.sync{display:inline-flex;align-items:center;gap:6px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 10px;font-size:12px;font-weight:600;color:var(--text)}.sync .dot{width:10px;height:10px;border-radius:50%}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:420px;margin:0 auto;padding:24px}.auth .brand{text-align:center;margin-bottom:24px}.auth .brand img{width:160px;height:160px;object-fit:contain}.auth .brand .eslogan{color:var(--text-muted);font-size:13px;margin-top:12px}.auth .link{text-align:center;margin-top:20px}.auth a{color:var(--accent);text-decoration:none;font-weight:600}.error{color:#8a1f1f;background:#fdeaea;border:1px solid #f3c0c0;border-radius:var(--radius);padding:10px 12px;font-size:14px;margin-top:12px}.captura{width:100%;min-height:170px;background:var(--surface-alt);border:1px dashed var(--border);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;overflow:hidden;color:var(--text-muted)}.captura .preview{width:100%;max-height:260px;object-fit:cover}.cam-video{width:100%;border-radius:var(--radius);background:#000;max-height:60dvh}.cam-controls{display:flex;gap:10px;margin-top:10px}.firma-wrap{background:#fff;border:1px solid var(--border);border-radius:var(--radius);touch-action:none}.firma-canvas{width:100%;height:180px;display:block}.empty{text-align:center;color:var(--text-muted);padding:40px 0}.list-item{display:block;text-decoration:none;color:var(--text)}.list-item .exp{color:var(--accent);font-size:13px;font-weight:700}.list-item .nombre{font-size:16px;margin-top:2px}.confirm{text-align:center;padding-top:24px}.confirm .check{width:88px;height:88px;border-radius:50%;background:var(--success);color:#fff;font-size:48px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;flex-direction:column;padding:16px;z-index:50}.buscador{width:100%;margin-bottom:10px}.filtros{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.filtros .grupo{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filtros .et{font-size:12px;color:var(--text-muted);font-weight:700;min-width:56px}.chip.sm{padding:6px 12px;font-size:13px}.conteo{color:var(--text-muted);font-size:13px;margin:4px 0 10px}.nino-row{display:flex;align-items:center;gap:12px}.nino-thumb{width:56px;height:56px;border-radius:10px;object-fit:cover;flex:0 0 auto;background:var(--surface-alt)}.nino-thumb.ph{display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--text-muted)}.nino-info{min-width:0;flex:1}
