:root{--rg-green:#0d5d3a;--rg-green-dark:#094d30;--rg-green-light:#e8f5ee;--rg-green-mid:#1a8a58;--rg-gold:#c9a227;--rg-gold-light:#fdf6e3;--rg-white:#fff;--rg-gray-50:#f9fafb;--rg-gray-100:#f3f4f6;--rg-gray-200:#e5e7eb;--rg-gray-400:#9ca3af;--rg-gray-600:#4b5563;--rg-gray-800:#1f2937;--rg-danger:#dc2626;--rg-danger-light:#fef2f2;--rg-warning:#d97706;--rg-warning-light:#fffbeb;--rg-success:#16a34a;--rg-success-light:#f0fdf4;--rg-info:#2563eb;--rg-info-light:#eff6ff;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012,0 1px 3px #0000000f;--shadow-lg:0 10px 15px #00000014,0 4px 6px #0000000d;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--transition:180ms ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{background:#f9fafb;background:var(--rg-gray-50);color:#1f2937;color:var(--rg-gray-800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;line-height:1.6}a{color:#0d5d3a;color:var(--rg-green);text-decoration:none}a:hover{color:#094d30;color:var(--rg-green-dark)}.btn{align-items:center;border:none;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .18s ease;transition:all var(--transition);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#0d5d3a;background:var(--rg-green);color:#fff}.btn-primary:hover{background:#094d30;background:var(--rg-green-dark)}.btn-secondary{background:#f3f4f6;background:var(--rg-gray-100);border:1px solid #e5e7eb;border:1px solid var(--rg-gray-200);color:#1f2937;color:var(--rg-gray-800)}.btn-secondary:hover{background:#e5e7eb;background:var(--rg-gray-200)}.btn-danger{background:#dc2626;background:var(--rg-danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{font-size:13px;padding:5px 10px}.btn-icon{background:#0000;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#4b5563;color:var(--rg-gray-600);cursor:pointer;padding:7px;transition:all .18s ease;transition:all var(--transition)}.btn-icon:hover{background:#f3f4f6;background:var(--rg-gray-100);color:#1f2937;color:var(--rg-gray-800)}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{color:#4b5563;color:var(--rg-gray-600);font-size:13px;font-weight:500}.form-control{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--rg-gray-200);border-radius:6px;border-radius:var(--radius-sm);color:#1f2937;color:var(--rg-gray-800);font-size:14px;padding:9px 12px;transition:border-color .18s ease,box-shadow .18s ease;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.form-control:focus{border-color:#0d5d3a;border-color:var(--rg-green);box-shadow:0 0 0 3px #0d5d3a1f;outline:none}.form-control.error{border-color:#dc2626;border-color:var(--rg-danger)}.form-error{color:#dc2626;color:var(--rg-danger);font-size:12px}.form-row{grid-gap:16px;display:grid;gap:16px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.card{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--rg-gray-200);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 1px 2px #0000000f;box-shadow:var(--shadow-sm)}.card-header{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--rg-gray-100);display:flex;justify-content:space-between;padding:16px 20px}.card-body{padding:20px}.table-wrapper{overflow-x:auto}.table{border-collapse:collapse;font-size:14px;width:100%}.table th{background:#f9fafb;background:var(--rg-gray-50);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--rg-gray-200);color:#4b5563;color:var(--rg-gray-600);font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 14px;text-align:left;text-transform:uppercase}.table td{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--rg-gray-100);padding:10px 14px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#f9fafb;background:var(--rg-gray-50)}.badge{border-radius:999px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.badge-green{background:#e8f5ee;background:var(--rg-green-light);color:#094d30;color:var(--rg-green-dark)}.badge-red{background:#fef2f2;background:var(--rg-danger-light);color:#dc2626;color:var(--rg-danger)}.badge-amber{background:#fffbeb;background:var(--rg-warning-light);color:#d97706;color:var(--rg-warning)}.badge-blue{background:#eff6ff;background:var(--rg-info-light);color:#2563eb;color:var(--rg-info)}.badge-gray{background:#f3f4f6;background:var(--rg-gray-100);color:#4b5563;color:var(--rg-gray-600)}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.page-title{color:#1f2937;color:var(--rg-gray-800);font-size:22px;font-weight:700}.page-subtitle{color:#9ca3af;color:var(--rg-gray-400);font-size:14px;margin-top:2px}.sidebar{background:#0d5d3a;background:var(--rg-green);display:flex;flex-direction:column;left:0;min-height:100vh;position:fixed;top:0;width:240px;z-index:100}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff1f;display:flex;gap:12px;padding:20px}.sidebar-logo img{height:36px}.sidebar-logo-text{color:#fff;font-size:14px;font-weight:700;line-height:1.3}.sidebar-nav{flex:1 1;overflow-y:auto;padding:12px 0}.nav-group-label{color:#ffffff73;font-size:10px;font-weight:700;letter-spacing:.08em;padding:12px 20px 4px;text-transform:uppercase}.nav-item{align-items:center;background:none;border:none;color:#fffc;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:10px 20px;text-align:left;text-decoration:none;transition:all .18s ease;transition:all var(--transition);width:100%}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#ffffff2e;color:#fff;font-weight:600}.nav-item svg{flex-shrink:0;height:18px;width:18px}.sidebar-footer{border-top:1px solid #ffffff1f;color:#fff9;font-size:13px;padding:16px 20px}.main-content{margin-left:240px;min-height:100vh;padding:28px}.alert{align-items:flex-start;border-radius:6px;border-radius:var(--radius-sm);display:flex;font-size:14px;gap:10px;padding:12px 16px}.alert-danger{background:#fef2f2;background:var(--rg-danger-light);border:1px solid #fca5a5;color:#7f1d1d}.alert-warning{background:#fffbeb;background:var(--rg-warning-light);border:1px solid #fcd34d;color:#78350f}.alert-success{background:#f0fdf4;background:var(--rg-success-light);border:1px solid #86efac;color:#14532d}@keyframes spin{to{transform:rotate(1turn)}}.spinner{animation:spin .7s linear infinite;border:2px solid #e5e7eb;border-top-color:#0d5d3a;border:2px solid var(--rg-gray-200);border-radius:50%;border-top-color:var(--rg-green);height:24px;width:24px}.spinner-center{padding:48px}.modal-overlay,.spinner-center{align-items:center;display:flex;justify-content:center}.modal-overlay{background:#00000073;inset:0;padding:20px;position:fixed;z-index:500}.modal{background:#fff;border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 10px 15px #00000014,0 4px 6px #0000000d;box-shadow:var(--shadow-lg);max-height:90vh;max-width:560px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--rg-gray-100);display:flex;justify-content:space-between;padding:20px 24px 16px}.modal-title{font-size:18px;font-weight:700}.modal-body{padding:24px}.modal-footer{border-top:1px solid #f3f4f6;border-top:1px solid var(--rg-gray-100);display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.cuadrante-table{border-collapse:collapse;font-size:13px;width:100%}.cuadrante-table th{background:#0d5d3a;background:var(--rg-green);color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 12px;text-align:left;text-transform:uppercase}.cuadrante-table td{border-bottom:1px solid #f3f4f6;border-bottom:1px solid var(--rg-gray-100);padding:8px 12px;vertical-align:top}.cuadrante-table tr:hover td{background:#e8f5ee;background:var(--rg-green-light)}.cuadrante-conductor{font-size:13px;font-weight:700}.cuadrante-coche{background:#e8f5ee;background:var(--rg-green-light);border-radius:4px;color:#094d30;color:var(--rg-green-dark);font-size:11px;font-weight:700;padding:2px 6px}.cuadrante-servicio{font-size:12px;line-height:1.5}.cuadrante-vacio{color:#9ca3af;color:var(--rg-gray-400);font-size:12px;font-style:italic}.aviso-caducado{color:#dc2626;color:var(--rg-danger);font-weight:600}.aviso-proximo{color:#d97706;color:var(--rg-warning);font-weight:600}.aviso-vigente{color:#16a34a;color:var(--rg-success)}
/*# sourceMappingURL=main.f85b6f2e.css.map*/