:root{--azul-oscuro:#0d2137;--azul-med:#1a4b7a;--azul-claro:#2e78c8;--accent:#00a8e8;--verde:#27ae60;--rojo:#e74c3c;--amarillo:#f39c12;--gris-claro:#f0f4f8;--gris-med:#bdc3c7;--blanco:#fff}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--gris-claro);color:#2c3e50;font-family:Segoe UI,Calibri,Arial,sans-serif}button{font-family:inherit}a{color:var(--azul-claro)}.login-overlay{z-index:9999;background:linear-gradient(135deg, var(--azul-oscuro) 0%, var(--azul-med) 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-card{background:var(--blanco);border-radius:14px;width:380px;padding:44px 48px;box-shadow:0 20px 60px #00000059}.login-brand{text-align:center;margin-bottom:24px}.login-brand .b1{color:var(--gris-med);letter-spacing:1.5px;text-transform:uppercase;font-size:12px;font-weight:700}.login-brand .b2{color:var(--azul-oscuro);margin-top:6px;font-size:19px;font-weight:800}.login-brand .b3{color:var(--gris-med);margin-top:3px;font-size:12px}.login-brand img{object-fit:contain;background:#fff;border-radius:12px;width:64px;height:64px;margin:0 auto 12px;padding:5px;display:block}.login-sep{background:#eee;height:1px;margin:16px 0}.login-error{color:var(--rojo);text-align:center;margin-top:8px;font-size:12px}.login-footer{color:var(--gris-med);text-align:center;margin-top:18px;font-size:11px}.login-dev-note{color:var(--amarillo);text-align:center;border-top:1px dashed #eee;margin-top:14px;padding-top:14px;font-size:11px}.dev-login-buttons{flex-direction:column;gap:8px;margin-top:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:11px 16px;font-size:14px;font-weight:700}.btn-primary{background:var(--accent);color:var(--blanco)}.btn-primary:hover{background:var(--azul-med)}.btn-primary:disabled{background:var(--gris-med);cursor:not-allowed}.btn-outline{background:var(--blanco);border:1.5px solid var(--azul-med);color:var(--azul-med)}.btn-outline:hover{background:var(--azul-med);color:var(--blanco)}.btn-danger{background:var(--blanco);border:1.5px solid var(--rojo);color:var(--rojo)}.btn-danger:hover{background:var(--rojo);color:var(--blanco)}.btn-sm{border-radius:6px;padding:6px 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.app-header{background:linear-gradient(135deg, var(--azul-oscuro) 0%, var(--azul-med) 100%);border-bottom:4px solid var(--accent);justify-content:space-between;align-items:center;padding:20px 40px;display:flex;box-shadow:0 4px 20px #0000004d}.app-header-brand{align-items:center;display:flex}.app-logo{background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;margin-right:16px;padding:4px;display:flex;box-shadow:0 1px 4px #00000040}.app-logo img{object-fit:contain;width:100%;height:100%}.app-header h1{color:var(--blanco);letter-spacing:.5px;font-size:18px;font-weight:700}.app-header .role-badge{border:1px solid var(--accent);color:var(--accent);background:#00a8e833;border-radius:20px;margin-top:4px;padding:3px 10px;font-size:11px;display:inline-block}.app-nav{align-items:center;gap:6px;display:flex}.app-nav a{color:var(--gris-med);border-radius:6px;padding:8px 12px;font-size:13px;text-decoration:none}.app-nav a:hover,.app-nav a.active{color:var(--blanco);background:#ffffff1a}.btn-logout{color:var(--gris-med);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:7px 14px;font-size:12px}.btn-logout:hover{color:var(--blanco);background:#fff3}.app-content{max-width:1100px;margin:0 auto;padding:28px 40px}.section-title{text-transform:uppercase;letter-spacing:1px;color:var(--azul-med);border-left:4px solid var(--accent);margin-bottom:16px;padding-left:10px;font-size:13px;font-weight:700}.card{background:var(--blanco);border:1px solid #e8ecf0;border-radius:12px;margin-bottom:18px;padding:20px 22px;box-shadow:0 2px 12px #00000012}.card h2{text-transform:uppercase;letter-spacing:.6px;color:var(--azul-med);border-left:4px solid var(--accent);margin-bottom:16px;padding-left:10px;font-size:13px;font-weight:700}.field-label{color:var(--gris-med);letter-spacing:.8px;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.field-input,.field-select{background:var(--blanco);border:1.5px solid #ddd;border-radius:8px;outline:none;width:100%;margin-bottom:14px;padding:10px 13px;font-size:14px}.field-input:focus,.field-select:focus{border-color:var(--azul-claro)}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--gris-med);border-bottom:2px solid #edf0f4;padding:10px 12px;font-size:10.5px}.table td{border-bottom:1px solid #edf0f4;padding:10px 12px}.table tr:nth-child(2n) td{background:#f8fafc}.table tr:hover td{background:#eaf4fb}.badge{white-space:nowrap;border-radius:12px;padding:2px 9px;font-size:10.5px;font-weight:700;display:inline-block}.badge-role-admin{color:var(--verde);background:#eafaf1}.badge-role-auditor{color:var(--azul-med);background:#e8f4fb}.badge-role-jefe_maquina{color:#7d5a00;background:#fff3cd}.badge-role-cliente{color:#6c3fb0;background:#f0e8fb}.badge-active-1{color:var(--verde);background:#eafaf1}.badge-active-0{color:var(--rojo);background:#fdedec}.msg{border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.msg-ok{color:var(--verde);background:#eafaf1}.msg-err{color:var(--rojo);background:#fdedec}.msg-info{color:var(--azul-med);background:#e8f4fb}.placeholder-page{text-align:center;color:var(--gris-med);padding:80px 20px}.placeholder-page h2{color:var(--azul-med);margin-bottom:8px;font-size:18px}.center-screen{min-height:100vh;color:var(--gris-med);justify-content:center;align-items:center;display:flex}
