/* AnnualPOS Parking PWA · capa de marca v4 (Libro de marca: logo, hover move, pozos, night, foco, movimiento) */
:root{--ap-ease:cubic-bezier(.22,.8,.26,1);--ap-focus:0 0 0 3px rgba(91,61,245,.4)}

/* Logotipo oficial: sello + logotipo en texto + chip de producto */
.ap-logo{display:inline-flex;align-items:center;gap:9px;line-height:1;min-width:0}
.ap-logo-seal{width:40px;height:40px;object-fit:contain;flex:none;display:block}
.ap-logo-word{font-family:Poppins,"Segoe UI",sans-serif;font-weight:600;font-size:23px;letter-spacing:-.025em;color:#0d1130}
.ap-logo-word i{font-style:normal;color:#5b3df5}
.ap-logo-chip{font:700 9px Poppins,sans-serif;letter-spacing:.12em;color:#fff;background:linear-gradient(135deg,#5b3df5,#2f80ff);border-radius:7px;padding:4px 7px;margin-left:2px}
.ap-logo--night .ap-logo-word{color:#fff}.ap-logo--night .ap-logo-word i{color:#9fb0ff}
.ap-logo--night .ap-logo-seal{background:#fff;border-radius:50%;padding:3px}
.pwa-sidebar-brand{padding:4px 6px 20px!important}
.pwa-sidebar-brand .ap-logo{transition:transform .3s var(--ap-ease)}
.pwa-sidebar-brand:hover .ap-logo-seal{transform:rotate(-5deg) scale(1.05)}
.ap-logo-seal{transition:transform .3s var(--ap-ease)}
.pwa-auth-brand{display:block}.pwa-auth-brand .ap-logo--auth .ap-logo-seal{width:48px;height:48px}.pwa-auth-brand .ap-logo--auth .ap-logo-word{font-size:28px}
.pwa-auth-brand span:not(.ap-logo):not(.ap-logo-word):not(.ap-logo-chip){display:none}
.pwa-mobile-brand img{object-fit:contain;padding:4px!important}
@media (min-width:1024px) and (max-width:1279.98px){.pwa-sidebar-brand .ap-logo-word,.pwa-sidebar-brand .ap-logo-chip{display:none}}

/* Sidebar: pozos con degradado + hover move */
.pwa-sidebar-nav a .pwa-nav-icon{transition:transform .3s var(--ap-ease),background .3s}
.pwa-sidebar-nav a:hover .pwa-nav-icon{transform:translateY(-2px) rotate(-5deg)}
.pwa-sidebar-nav a:not(.is-active) .pwa-nav-icon{background:linear-gradient(135deg,#f1eeff,#e6edff);color:#5b3df5}

/* Tarjetas y paneles: línea superior de marca al hover */
.pwa-metric-card,.pwa-panel,.pwa-parking-card{transition:transform .35s var(--ap-ease),box-shadow .35s var(--ap-ease),border-color .35s}
.pwa-panel{position:relative}
.pwa-metric-card::before,.pwa-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#5b3df5,#2f80ff);opacity:0;transition:opacity .3s;z-index:1;border-radius:3px 3px 0 0}
.pwa-metric-card:hover::before,.pwa-panel:hover::before{opacity:1}
.pwa-panel:hover{transform:translateY(-3px);border-color:#c4cdff}
.pwa-metric-card:hover{border-color:#c4cdff}
.pwa-metric-card .kpi-spark{display:block!important;opacity:.9}
@media (min-width:1024px){.pwa-metric-card>div{padding-right:72px}.pwa-metric-card .kpi-spark{width:68px;height:28px}}
.pwa-metric-card[data-tilt],.pwa-panel--chart[data-tilt]{transform-style:preserve-3d;will-change:transform}

/* Foco visible 3px marca al 40 % */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--ap-focus)!important}

/* Chart: puntos con anillo, cursor guía */
.pwa-chart-svg .ap-end-dot{filter:drop-shadow(0 0 4px rgba(91,61,245,.55))}

/* Patio en vivo: bloque night con dona */
.pwa-panel--vehicles .ap-yard,.dashboard-live-panel .ap-yard{display:flex;align-items:center;gap:20px;padding:16px;margin-bottom:12px;border-radius:20px;color:#fff;background:linear-gradient(135deg,#171a55,#3a2fc9);position:relative;overflow:hidden}
.pwa-panel--vehicles .ap-yard::after,.dashboard-live-panel .ap-yard::after{content:"";position:absolute;right:-40px;top:-50px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(127,139,255,.45),transparent 70%);animation:apOrb 14s ease-in-out infinite alternate;pointer-events:none}
@keyframes apOrb{to{transform:translate(-26px,22px)}}
.ap-yard svg{width:112px;height:112px;flex:none;overflow:visible}
.ap-yard svg circle{transition:stroke-dasharray .7s var(--ap-ease),stroke-dashoffset .7s var(--ap-ease),stroke-width .25s}
.ap-yard svg circle.is-hover{stroke-width:7.4}
.ap-yard-n{font:700 10px Poppins,sans-serif;fill:#fff}.ap-yard-l{font:500 3.6px Inter,sans-serif;fill:#c9ceff}
.ap-yard ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:12.5px;position:relative;z-index:1}
.ap-yard li{display:flex;align-items:center;gap:8px;cursor:default;transition:transform .25s var(--ap-ease)}
.ap-yard li:hover{transform:translateX(4px)}
.ap-yard li i{width:9px;height:9px;border-radius:50%;flex:none}.ap-yard li b{margin-left:auto;font-family:Poppins,sans-serif;padding-left:14px}
.pwa-live-chip::before{animation:apLive 2.2s ease-in-out infinite}
@keyframes apLive{0%,100%{box-shadow:0 0 0 0 rgba(18,183,106,.45)}50%{box-shadow:0 0 0 6px rgba(18,183,106,0)}}

/* Entrada: aparición 700 ms, sube 22 px, escalonada 70 ms */
@media (prefers-reduced-motion:no-preference){
  .pwa-metrics>*,.pwa-dashboard-grid>*{animation:apRise .7s var(--ap-ease) both}
  .pwa-metrics>*:nth-child(2){animation-delay:70ms}.pwa-metrics>*:nth-child(3){animation-delay:140ms}.pwa-metrics>*:nth-child(4){animation-delay:210ms}
  .pwa-dashboard-grid>*:nth-child(2){animation-delay:100ms}.pwa-dashboard-grid>*:nth-child(3){animation-delay:200ms}
}
@keyframes apRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;transform:none!important}}

/* Especificidad sobre pwa.css (img 174px / span block) */
.pwa-sidebar-brand .ap-logo{display:flex;flex-wrap:nowrap}
.pwa-sidebar-brand img.ap-logo-seal{width:36px;height:36px;display:block}
.pwa-auth-brand img.ap-logo-seal{width:40px;height:40px;display:block}
.pwa-sidebar-brand .ap-logo-word,.pwa-auth-brand .ap-logo-word{display:inline;margin:0;color:#0d1130;font-size:20px;font-weight:600}
.pwa-sidebar-brand .ap-logo-word i,.pwa-auth-brand .ap-logo-word i{display:inline;color:#5b3df5;font-weight:600}
.pwa-sidebar-brand .ap-logo-chip,.pwa-auth-brand .ap-logo-chip{display:inline-block;margin:0 0 0 2px;color:#fff;font-size:9px;font-weight:700}
.pwa-auth-brand .ap-logo{margin-bottom:6px}
.pwa-auth-brand img.ap-logo-seal{width:48px;height:48px}
.pwa-auth-brand .ap-logo-word{font-size:28px}

.pwa-auth-brand .ap-logo{display:flex;flex-wrap:nowrap}
.pwa-auth-brand img.ap-logo-seal{width:48px;height:48px}
.pwa-auth-brand .ap-logo-word{display:inline;margin:0;font-size:28px;color:#0d1130}
.pwa-auth-brand .ap-logo-word i{display:inline;font-size:28px}
.pwa-auth-brand .ap-logo-chip{display:inline-block;margin-left:4px}

.pwa-sidebar-brand .ap-logo{gap:7px}
.pwa-sidebar-brand img.ap-logo-seal{width:34px;height:34px}
.pwa-sidebar-brand .ap-logo-word,.pwa-sidebar-brand .ap-logo-word i{font-size:19px}
.pwa-sidebar-brand .ap-logo-chip{font-size:8px;padding:3px 6px}

/* Web: mismo logotipo oficial */
.sidebar-brand--full .ap-logo{display:flex;flex-wrap:nowrap;gap:7px}
.sidebar-brand--full .ap-logo-seal{width:34px;height:34px}
.sidebar-brand--full .ap-logo-word{font-size:19px}
.sidebar-brand--full .ap-logo-chip{font-size:8px;padding:3px 6px}
.sidebar-brand--full .sidebar-brand-caption{display:none}
.ap-login-logo .ap-logo-seal{width:48px;height:48px}.ap-login-logo .ap-logo-word{font-size:28px}
.ap-login-hero .ap-logo-word{color:#0d1130}
.sidebar-brand--full .ap-logo{gap:6px}.sidebar-brand--full .ap-logo-seal{width:30px;height:30px}
.sidebar-brand--full .ap-logo-word,.sidebar-brand--full .ap-logo-word i{font-size:17px;font-weight:600;display:inline}
.sidebar-brand--full .ap-logo-word{color:#0d1130!important}.sidebar-brand--full .ap-logo-word i{color:#5b3df5!important}
.sidebar-brand--full .ap-logo-chip{display:inline-block;color:#fff!important;font-size:7.5px;padding:3px 5px;margin:0}
@media (max-width:700px){.pwa-metric-card .kpi-spark{display:none!important}}
