:root {
  --brand: #1d4ed8;
  --brand-dark: #1e40af;
  --ink: #0f172a;
  --paper: #ffffff;
  --muted: #6b7280;
  --soft: #f5f7fb;
  --line: #eceff3;
}
*{ box-sizing:border-box; }
html, body { height:100%; }
body { margin:0; font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background:linear-gradient(180deg, #eff6ff 0%, #f8fafc 100%); color:#111827; }
a{ text-decoration:none; }
.app-shell{ min-height:100vh; display:flex; }
.sidebar{ width:320px; background:linear-gradient(180deg,#0f172a 0%, #1e3a8a 100%); color:#fff; padding:24px 18px; display:flex; flex-direction:column; position:fixed; top:0; left:0; height:100vh; overflow-y:auto; overflow-x:hidden; z-index:1000; }
.shadow-soft{ box-shadow:0 16px 50px rgba(0,0,0,.08); }
.brand-box{ display:flex; gap:14px; align-items:center; margin-bottom:26px; }
.brand-image{ width:72px; height:72px; object-fit:contain; border-radius:20px; background:#fff; padding:6px; box-shadow:0 12px 25px rgba(29,78,216,.25); }
.brand-title{ font-size:1.08rem; font-weight:800; line-height:1.2; }
.brand-subtitle{ color:#d1d5db; font-size:.9rem; }
.nav-section-label{ color:#9ca3af; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; margin:18px 12px 8px; font-weight:700; }
.side-nav .nav-link{ color:#e5e7eb; padding:12px 14px; border-radius:14px; margin-bottom:8px; font-weight:600; display:flex; gap:10px; align-items:center; }
.side-nav .nav-link:hover, .side-nav .nav-link.active{ background:rgba(255,255,255,.16); color:#fff; }
.sidebar-card{ border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); border-radius:22px; padding:16px; }
.main-panel{ flex:1; margin-left:320px; width:calc(100% - 320px); padding:28px; }
.topbar{ margin-bottom:24px; }
.page-title{ font-size:2rem; font-weight:800; margin:0; }
.page-subtitle{ color:var(--muted); }
.hero-banner{ background:linear-gradient(135deg,#0f172a 0%, #1e3a8a 55%, #60a5fa 100%); color:#fff; padding:28px; border-radius:28px; display:flex; align-items:center; justify-content:space-between; gap:20px; box-shadow:0 20px 45px rgba(0,0,0,.14); }
.hero-title{ font-size:2rem; font-weight:800; max-width:780px; }
.hero-text{ color:#eff6ff; max-width:700px; }
.hero-stats{ display:grid; grid-template-columns:1fr; gap:12px; min-width:220px; }
.mini-stat{ background:rgba(255,255,255,.08); padding:16px; border-radius:20px; }
.mini-stat span{ display:block; color:#dbeafe; font-size:.9rem; }
.mini-stat strong{ font-size:1.4rem; }
.chip{ display:inline-block; padding:6px 12px; border-radius:999px; background:rgba(255,255,255,.18); color:#fff; font-weight:700; }
.metric-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:24px; padding:22px; min-height:145px; overflow:hidden; }
.metric-card::after{ content:''; position:absolute; right:-22px; top:-22px; width:110px; height:110px; background:rgba(29,78,216,.10); border-radius:50%; }
.metric-card.warning::after{ background:rgba(239,68,68,.10); }
.metric-card.success::after{ background:rgba(16,185,129,.10); }
.metric-card.dark{ background:#111827; color:#fff; }
.metric-card.dark::after{ background:rgba(255,255,255,.08); }
.metric-label{ color:var(--muted); font-weight:700; }
.metric-card.dark .metric-label{ color:#d1d5db; }
.metric-value{ font-size:2rem; font-weight:800; margin-top:12px; }
.metric-icon{ position:absolute; right:22px; bottom:18px; font-size:2rem; color:var(--brand); }
.card-panel{ background:#fff; border:1px solid var(--line); border-radius:24px; padding:22px; box-shadow:0 10px 30px rgba(15,23,42,.04); }
.form-card{ max-width:1200px; }
.ticket-panel{ max-width:1000px; }
.ticket-logo{ width:88px; height:88px; object-fit:contain; }
.section-header{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; gap:12px; }
.section-header h4{ margin:0; font-weight:800; }
.modern-table thead th{ border-bottom:1px solid var(--line); color:var(--muted); font-size:.88rem; text-transform:uppercase; letter-spacing:.03em; }
.modern-table tbody td, .modern-table tfoot th{ vertical-align:middle; border-color:#f1f5f9; }
.btn-brand{ background:var(--brand); color:#fff; border:none; border-radius:14px; padding:.7rem 1rem; font-weight:700; }
.btn-brand:hover{ background:var(--brand-dark); color:#fff; }
.form-control, .form-select{ border-radius:14px; border:1px solid #dbe3ef; padding:.8rem .95rem; }
.form-control:focus, .form-select:focus{ box-shadow:0 0 0 .25rem rgba(29,78,216,.14); border-color:#93c5fd; }
.info-box{ border:1px solid var(--line); border-radius:20px; padding:16px; background:#fff; height:100%; }
.info-box .label{ color:var(--muted); font-size:.9rem; margin-bottom:6px; }
.info-box .value{ font-weight:700; }
.summary-total-box{ min-width:260px; background:linear-gradient(135deg,#0f172a,#2563eb); color:#fff; border-radius:22px; padding:20px 24px; }
.summary-label{ opacity:.85; font-size:.95rem; }
.summary-value{ font-size:2rem; font-weight:800; }
.login-pro-page{ min-height:100vh; display:grid; grid-template-columns: 1.1fr 0.9fr; background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 55%,#93c5fd 100%); }
.login-pro-left{ color:#fff; padding:48px; align-items:center; display:flex; }
.login-pro-right{ display:grid; place-items:center; padding:24px; background:rgba(255,255,255,.06); }
.login-pro-card{ width:100%; max-width:480px; background:#fff; border-radius:28px; padding:32px; }
.login-pro-logo{ max-width:440px; width:100%; }
.login-logo-small{ width:110px; height:110px; object-fit:contain; }
.login-pro-title{ font-size:2.2rem; font-weight:800; line-height:1.1; }
.login-pro-text{ max-width:520px; font-size:1.05rem; color:rgba(255,255,255,.92); }
.login-contact-box{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:20px; padding:18px 20px; max-width:360px; }
.demo-users{ background:#eff6ff; border:1px solid #bfdbfe; border-radius:20px; padding:16px; }
.printable-ticket{ background:#fff; }
@media (max-width: 992px){ .app-shell{ flex-direction:column; } .sidebar{ width:100%; position:relative; height:auto; min-height:auto; } .main-panel{ padding:18px; margin-left:0; width:100%; } .hero-banner{ flex-direction:column; align-items:flex-start; } .login-pro-page{ grid-template-columns:1fr; } .login-pro-right{ background:transparent; } }
@media print{ body{ background:#fff !important; } .sidebar, .topbar, .no-print, .alert{ display:none !important; } .app-shell{ display:block; } .main-panel{ padding:0 !important; margin-left:0 !important; width:100% !important; } .card-panel, .ticket-panel{ box-shadow:none !important; border:none !important; padding:0 !important; } .printable-ticket{ max-width:none !important; } }

.accordion-toggle{justify-content:space-between;background:transparent;border:none;width:100%;text-align:left;}
.accordion-toggle span{display:flex;gap:10px;align-items:center;}
.submenu{padding-left:12px;}
.submenu .nav-link{font-size:.96rem;padding-left:16px;}
.package-pill{display:inline-block;padding:.35rem .7rem;border-radius:999px;background:rgba(29,78,216,.12);color:var(--brand);font-weight:700;font-size:.85rem;}


.catalogo-pdf-groups{display:flex;flex-direction:column;gap:22px;}
.grupo-pdf-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.04);}
.grupo-pdf-header{background:#163b7a;color:#fff;text-align:center;font-size:1.45rem;font-weight:800;letter-spacing:.22em;padding:14px 18px;text-transform:uppercase;}
.table-pdf-style thead th{background:#f4f7fb;color:#163b7a;font-weight:800;border-bottom:1px solid #d8e0ef;}
.table-pdf-style tbody tr:nth-child(even){background:#fbfdff;}
.table-pdf-style tbody td{border-color:#edf1f7;}
