:root { --pk-primary: #696cff; --pk-grad: linear-gradient(135deg, #696cff 0%, #8f6bff 55%, #03c3ec 130%); }
.brand-mark { width: 34px; height: 34px; border-radius: 10px; background: var(--pk-grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; box-shadow: 0 4px 12px rgba(105,108,255,.4); }
.hero-card { background: var(--pk-grad); color: #fff; border: 0; overflow: hidden; position: relative; }
.hero-card::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.08); }
.hero-card h4, .hero-card h5, .hero-card .text-muted { color: #fff !important; }
.kpi .avatar-initial { font-size: 1.4rem; }
.kpi h3 { font-weight: 700; margin-bottom: 0; }
.card { transition: box-shadow .2s ease, transform .2s ease; }
.card.lift:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(67,89,113,.18); }

/* Mapa de slots */
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: .75rem; }
.slot { position: relative; border-radius: .6rem; padding: .7rem .5rem .55rem; text-align: center; cursor: pointer; border: 2px solid transparent; transition: all .18s ease; user-select: none; min-height: 92px; }
.slot:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.slot .code { font-weight: 700; font-size: .95rem; letter-spacing: .5px; }
.slot .ico { font-size: 1.7rem; line-height: 1; display: block; margin: .15rem 0; }
.slot .meta { font-size: .7rem; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.slot.libre { background: #e8fadf; color: #56ca00; border-color: #c6f1ae; }
.slot.ocupado { background: #ffe0db; color: #ff3e1d; border-color: #ffc2b8; }
.slot.reservado { background: #fff2d6; color: #ffab00; border-color: #ffe0a3; }
.slot.mantenimiento { background: #ebeef0; color: #8592a3; border-color: #d6dbe0; background-image: repeating-linear-gradient(45deg, transparent 0 8px, rgba(133,146,163,.12) 8px 16px); }
.slot .pref { position: absolute; top: 4px; right: 6px; font-size: .9rem; }
.slot.ocupado::before { content: ""; position: absolute; top: 6px; left: 6px; width: 8px; height: 8px; border-radius: 50%; background: #ff3e1d; animation: pulse 1.6s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,62,29,.6);} 70% { box-shadow: 0 0 0 8px rgba(255,62,29,0);} 100% { box-shadow: 0 0 0 0 rgba(255,62,29,0);} }
.legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: .35rem; }
.nivel-head { border-left: 4px solid var(--c, #696cff); padding-left: .75rem; }

/* Operación */
.plate-input { font-family: "Courier New", monospace; font-size: 2rem; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; text-align: center; border: 3px solid #233446; border-radius: .6rem; background: #fff; }
.plate-input:focus { border-color: var(--pk-primary); box-shadow: 0 0 0 .25rem rgba(105,108,255,.2); }
.big-total { font-size: 2.6rem; font-weight: 800; color: #233446; }
.nav-pills.op .nav-link { padding: .75rem 1.25rem; font-weight: 600; }
.ticket-print { font-family: "Courier New", monospace; width: 300px; margin: auto; }
.table td, .table th { vertical-align: middle; }
.occupancy-ring .apexcharts-datalabel-value { font-weight: 700; }
@media print { .no-print, .layout-menu, .layout-navbar, footer { display: none !important; } .layout-page { padding: 0 !important; } }
