/* Complemento a la hoja de la plantilla (precompilada): solo las utilidades de Ñawi GPS que ella no trae. */
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.rounded-2xl{border-radius:1rem}
.min-h-72{min-height:18rem}
.max-w-2xl{max-width:42rem}
.mx-6{margin-inline:1.5rem}
.py-10{padding-block:2.5rem}
.opacity-50{opacity:.5}
.space-y-2>:not(:last-child){margin-block-end:.5rem}
.space-y-5>:not(:last-child){margin-block-end:1.25rem}
.bg-current{background-color:currentColor}
.hover\:underline:hover{text-decoration:underline}
.first\:border-0:first-child{border-width:0}
.border-warning\/40{border-color:color-mix(in srgb,var(--color-warning) 40%,transparent)}
@media (min-width:40rem){
  .sm\:flex{display:flex}
  .sm\:flex-row{flex-direction:row}
  .sm\:items-center{align-items:center}
  .sm\:items-end{align-items:flex-end}
  .sm\:justify-between{justify-content:space-between}
  .sm\:max-w-xs{max-width:20rem}
  .sm\:w-44{width:11rem}
  .sm\:col-span-2{grid-column:span 2/span 2}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:64rem){
  .lg\:flex-row{flex-direction:row}
  .lg\:items-center{align-items:center}
}
@media (min-width:80rem){
  .xl\:col-span-2{grid-column:span 2/span 2}
}

/* Panel de marca del login: plano, sobrio, sin degradados ni efectos */
.nawi-hero{position:relative;display:flex;height:100%;min-height:28rem;flex-direction:column;overflow:hidden;border-radius:0;color:#f1f5f9;background:#111827}
.nawi-hero__map{position:absolute;inset:0;width:100%;height:100%}
.nawi-hero__body{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;justify-content:flex-end;padding:1.75rem;background:linear-gradient(to top,#111827 8%,rgba(17,24,39,0) 62%)}
.nawi-hero__label{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8}
.nawi-hero__title{margin-top:.5rem;font-size:1.5rem;font-weight:600;line-height:1.25;color:#fff}
.nawi-hero__list{margin-top:1.25rem;display:grid;gap:.625rem;font-size:.875rem;color:#cbd5e1}
.nawi-hero__list li{display:flex;align-items:center;gap:.625rem}
.nawi-hero__list svg{flex:none;color:#60a5fa}

/* ---------- Formularios ---------- */
.field-error{margin-top:.25rem;font-size:.75rem;color:var(--color-danger,#dc2626)}
.is-invalid{border-color:var(--color-danger,#dc2626)!important}

/* ---------- Tablas Grid.js ---------- */
.nawi-grid .gridjs-container{display:block;padding:0;color:inherit}
.nawi-grid .gridjs-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding:12px 16px}
.nawi-grid .gridjs-search{float:none;flex:1 1 16rem;width:auto}
.nawi-grid .gridjs-input{width:100%;max-width:22rem;height:38px;padding:0 12px 0 36px;border:1px solid var(--color-default-200);border-radius:8px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 12px center;color:var(--color-default-800);font-size:14px;outline:0}
.nawi-grid .gridjs-input:focus{border-color:var(--color-primary,#2b7fff);box-shadow:none}
.nawi-grid .gridjs-wrapper{border:0;border-radius:0;box-shadow:none;background:transparent}
.nawi-grid table.gridjs-table{width:100%;border-collapse:collapse;table-layout:auto}
.nawi-grid th.gridjs-th{padding:12px 14px;border:0;border-top:1px solid var(--color-default-200);border-bottom:1px solid var(--color-default-200);background:var(--color-default-150);color:var(--color-default-700);font-size:12px;font-weight:600;letter-spacing:.04em;text-align:left;text-transform:uppercase}
.nawi-grid td.gridjs-td{padding:12px 14px;border:0;border-bottom:1px solid var(--color-default-200);background:transparent;color:var(--color-default-600);font-size:14px;vertical-align:middle}
.nawi-grid tr.gridjs-tr:hover td.gridjs-td{background:var(--color-default-100)}
.nawi-grid .gridjs-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:0;border-radius:0;box-shadow:none;background:transparent}
.nawi-grid .gridjs-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;color:var(--color-default-500);font-size:14px}
.nawi-grid .gridjs-pagination .gridjs-summary{margin:0;color:var(--color-default-500)}
.nawi-grid .gridjs-pagination .gridjs-pages{float:none;display:flex;gap:6px;margin-left:auto}
.nawi-grid .gridjs-pages button{min-width:30px;height:30px;margin:0;padding:0 10px;border:1px solid var(--color-default-200);border-radius:6px;background:transparent;color:var(--color-default-600);font-size:13px}
.nawi-grid .gridjs-pages button:hover:not(:disabled):not(.gridjs-currentPage){border-color:rgb(43 127 255 / .3);background:rgb(43 127 255 / .1);color:var(--color-primary,#2b7fff)}
.nawi-grid .gridjs-pages button.gridjs-currentPage{border-color:var(--color-primary,#2b7fff);background:var(--color-primary,#2b7fff);color:#fff;font-weight:600}
.nawi-grid .gridjs-pages button:disabled{opacity:.5;cursor:not-allowed;background:transparent;color:var(--color-default-500)}
.nawi-grid .gridjs-message{padding:24px;color:var(--color-default-500);text-align:center}
.nawi-grid .gridjs-loading-bar{background:var(--color-default-100)}
.nawi-actions{display:flex;justify-content:flex-end;gap:.125rem}
.nawi-act{display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border:0;border-radius:.375rem;background:transparent;color:var(--color-default-500);cursor:pointer}
.nawi-act:hover{background:var(--color-default-150);color:var(--color-primary,#2b7fff)}
.nawi-act.is-danger:hover{color:var(--color-danger,#dc2626)}
.nawi-cell-title{font-weight:500;color:var(--color-default-800)}
.nawi-cell-sub{display:block;font-size:12px;color:var(--color-default-500)}
.nawi-cell-link{font-weight:500;color:var(--color-default-800)}
.nawi-cell-link:hover{color:var(--color-primary,#2b7fff)}

.contents{display:contents}
.contents[hidden]{display:none}

/* Mapa de la moto */
.nawi-map{height:26rem;width:100%;z-index:0}
.nawi-map-empty{position:absolute;inset:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;background:rgb(255 255 255 / .82)}
.nawi-map-empty[hidden]{display:none}
[data-theme="dark"] .nawi-map-empty{background:rgb(17 24 39 / .82)}
.nawi-map-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--color-default-200,#e2e8f0)}
.nawi-map-stats>div{padding:.75rem 1.25rem}
.nawi-map-stats>div+div{border-left:1px solid var(--color-default-200,#e2e8f0)}
.nawi-map-stats span{display:block;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}
.nawi-map-stats strong{display:block;margin-top:.15rem;font-size:.9rem;font-weight:600}
.nawi-pin{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:9999px;background:#2563eb;border:3px solid #fff;box-shadow:0 2px 8px rgb(15 23 42 / .35)}
.nawi-pin.is-idle{background:#64748b}
.nawi-dot{display:flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:9999px;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;box-shadow:0 1px 5px rgb(15 23 42 / .4)}
.nawi-dot--start{background:#16a34a}.nawi-dot--end{background:#dc2626}.nawi-dot--stop{background:#f59e0b;width:18px;height:18px;margin:3px}
.nawi-map-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-default-200,#e2e8f0)}
.nawi-seg{display:inline-flex;border:1px solid var(--color-default-200,#e2e8f0);border-radius:.5rem;overflow:hidden}
.nawi-seg button{padding:.375rem .875rem;font-size:.8125rem;font-weight:500;color:#64748b;background:transparent}
.nawi-seg button.is-active{background:#2563eb;color:#fff}
.nawi-route-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.nawi-route-controls[hidden],.nawi-map-stats[hidden]{display:none}
.nawi-route-controls .form-input{width:auto;padding-top:.3rem;padding-bottom:.3rem}
.nawi-chip{padding:.3rem .7rem;border:1px solid var(--color-default-200,#e2e8f0);border-radius:9999px;font-size:.75rem;color:#64748b;background:transparent}
.nawi-chip:hover{color:#2563eb;border-color:#2563eb}
.nawi-map-stats.is-4{grid-template-columns:repeat(4,1fr)}
.nawi-fleet-map{height:22rem;width:100%;z-index:0;border-radius:.5rem}
.nawi-plate-tip{background:#0f172a;color:#fff;border:0;font-size:.7rem;font-weight:600;padding:.15rem .45rem;box-shadow:none}
.nawi-plate-tip:before{display:none}
.nawi-share{padding:.75rem 1.25rem;border-bottom:1px solid var(--color-default-200,#e2e8f0);background:rgb(37 99 235 / .05)}
.nawi-share[hidden]{display:none}
.nawi-share__row{display:flex;flex-wrap:wrap;gap:.5rem}
.nawi-share__row .form-input{flex:1 1 14rem;min-width:0;font-size:.8125rem}
.nawi-map-stats>div[hidden]{display:none}

/* Cargador de botones */
.nawi-spin{display:inline-block;width:.9em;height:.9em;margin-right:.5rem;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:9999px;animation:nawi-spin .7s linear infinite}
button[aria-busy="true"]{cursor:progress;opacity:.8}
@keyframes nawi-spin{to{transform:rotate(360deg)}}

/* ================= Página de la moto (escritorio y móvil) ================= */
.nv-hide-sm{display:none}
@media (min-width:40rem){.nv-hide-sm{display:inline}}
.nv-head{display:flex;align-items:center;gap:.875rem;margin-bottom:1.25rem}
.nv-head__icon{display:flex;flex:none;width:3rem;height:3rem;align-items:center;justify-content:center;border-radius:.875rem;background:rgb(37 99 235 / .1);color:#2563eb}
.nv-head__body{min-width:0;flex:1}
.nv-head__title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.nv-head__title h1{margin:0;font-size:1.375rem;font-weight:600;line-height:1.2;color:var(--color-default-800)}
.nv-plate{display:inline-flex;align-items:center;padding:.125rem .5rem;border:1px solid var(--color-default-200);border-radius:.375rem;background:var(--color-default-100);font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--color-default-700)}
.nv-head__meta{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-default-500);overflow-wrap:anywhere}
.nv-head__actions{display:flex;flex:none;gap:.5rem}
.nv-head__actions .btn{padding-inline:.75rem}
@media (max-width:39.99rem){.nv-head{align-items:flex-start}.nv-head__icon{display:none}.nv-head__actions .btn{width:2.25rem;height:2.25rem;padding-inline:0;justify-content:center}.nv-head__title h1{font-size:1.25rem}}

.nv-layout{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:64rem){.nv-layout{grid-template-columns:minmax(0,1fr) 22rem}}
@media (min-width:80rem){.nv-layout{grid-template-columns:minmax(0,1fr) 24rem}}
.nv-map-card{overflow:hidden;padding:0}
.nv-side{display:grid;gap:1.25rem;min-width:0}

/* Selector de modo */
.nv-toolbar{padding:.75rem 1rem;border-bottom:1px solid var(--color-default-200)}
.nawi-seg{display:flex;width:100%;padding:.1875rem;gap:.125rem;border:0;border-radius:.625rem;background:var(--color-default-150);overflow:visible}
@media (min-width:40rem){.nawi-seg{display:inline-flex;width:auto}}
.nawi-seg button{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:.375rem;padding:.4375rem .875rem;border-radius:.5rem;font-size:.8125rem;font-weight:500;color:var(--color-default-600);background:transparent;transition:background .15s,color .15s}
.nawi-seg button:hover:not(.is-active){color:var(--color-default-800)}
.nawi-seg button.is-active{background:#2563eb;color:#fff;box-shadow:0 1px 3px rgb(37 99 235 / .35)}
@media (max-width:26rem){.nawi-seg button{padding-inline:.375rem;font-size:.75rem;gap:.25rem}.nawi-seg button svg{display:none}}

/* Fila de controles por modo */
.nv-subbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem 1rem;border-bottom:1px solid var(--color-default-200);background:var(--color-default-100)}
.nv-subbar[hidden]{display:none}
.nv-subbar__spacer{flex:1 1 0;min-width:0}
.nv-subbar .btn,.nv-subbar .form-select,.nv-subbar .form-input{height:2.25rem;padding-block:0;font-size:.8125rem}
.nv-subbar .form-input{width:auto}
@media (max-width:39.99rem){
  .nv-subbar{display:grid;grid-template-columns:1fr 1fr}
  .nv-subbar__spacer{display:none}
  #route-controls{grid-template-columns:1fr 1fr}
  #route-controls #route-date,#route-controls #route-go{grid-column:1/-1;width:100%}
  #track-controls #share-create{grid-column:auto}
}
.nawi-chip{height:2.25rem;padding:0 .875rem;background:var(--color-default-50,transparent);font-size:.8125rem;font-weight:500}
.nawi-share{padding:.75rem 1rem}
@media (max-width:39.99rem){.nawi-share__row .btn{flex:1 1 auto}}

/* Mapa */
.nawi-map{height:clamp(16rem,44vh,30rem)}
@media (min-width:64rem){.nawi-map{height:23rem}}
.leaflet-container{font-family:inherit}
.nv-livechip{position:absolute;top:.75rem;right:.75rem;z-index:450;display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:9999px;background:rgb(255 255 255 / .94);box-shadow:0 2px 10px rgb(15 23 42 / .18);font-size:.75rem;font-weight:600;color:#0f172a;backdrop-filter:blur(4px)}
.nv-livechip[hidden]{display:none}
.nv-livechip__dot{width:.5rem;height:.5rem;border-radius:9999px;background:#94a3b8}
.nv-livechip.is-success .nv-livechip__dot{background:#16a34a;box-shadow:0 0 0 0 rgb(22 163 74 / .5);animation:nv-pulse 1.8s infinite}
.nv-livechip.is-warning .nv-livechip__dot{background:#f59e0b}
.nv-livechip.is-danger .nv-livechip__dot{background:#dc2626}
[data-theme="dark"] .nv-livechip{background:rgb(15 23 42 / .92);color:#f1f5f9}
@keyframes nv-pulse{70%{box-shadow:0 0 0 7px rgb(22 163 74 / 0)}100%{box-shadow:0 0 0 0 rgb(22 163 74 / 0)}}
.nawi-pin{box-shadow:0 0 0 5px rgb(37 99 235 / .18),0 2px 8px rgb(15 23 42 / .35)}
.nawi-pin.is-idle{box-shadow:0 0 0 5px rgb(100 116 139 / .18),0 2px 8px rgb(15 23 42 / .35)}

/* Datos bajo el mapa */
.nawi-map-stats{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--color-default-200)}
.nawi-map-stats.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nawi-map-stats>div{position:relative;padding:.75rem 1rem .75rem 2.75rem;min-width:0}
.nawi-map-stats>div+div{border-left:1px solid var(--color-default-200)}
.nawi-map-stats>div>svg{position:absolute;left:1rem;top:50%;width:1.125rem;height:1.125rem;margin-top:-.5625rem;color:#2563eb}
.nawi-map-stats span{font-size:.6875rem;letter-spacing:.05em;color:var(--color-default-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nawi-map-stats strong{margin-top:.125rem;font-size:.9375rem;color:var(--color-default-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:39.99rem){
  .nawi-map-stats,.nawi-map-stats.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nawi-map-stats>div{padding:.625rem .75rem .625rem 2.5rem}
  .nawi-map-stats>div>svg{left:.75rem}
  .nawi-map-stats.is-4>div:nth-child(n+3){border-top:1px solid var(--color-default-200)}
  .nawi-map-stats.is-4>div:nth-child(odd){border-left:0}
  .nawi-map-stats:not(.is-4)>div:last-child{grid-column:1/-1;border-top:1px solid var(--color-default-200);border-left:0}
}

/* Tarjetas laterales */
.nv-panel{padding:1.25rem}
.nv-panel__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.nv-panel__title{display:flex;align-items:center;gap:.625rem;margin:0;font-size:.9375rem;font-weight:600;color:var(--color-default-800)}
.nv-panel>.nv-panel__title{margin-bottom:.875rem}
.nv-ico{display:inline-flex;width:1.875rem;height:1.875rem;align-items:center;justify-content:center;border-radius:.5rem;background:rgb(37 99 235 / .1);color:#2563eb}
.nv-hint{margin:.75rem 0 0;font-size:.8125rem;line-height:1.5;color:var(--color-default-500)}
.nv-rows>div{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem 0;border-top:1px solid var(--color-default-200);font-size:.875rem}
.nv-rows>div:first-child{border-top:0;padding-top:0}
.nv-rows dt{color:var(--color-default-500)}
.nv-rows dd{margin:0;text-align:right;color:var(--color-default-800);overflow-wrap:anywhere}
.nv-guard-form{display:flex;gap:.5rem;margin-top:1rem}
.nv-guard-form .form-select{flex:1;min-width:0;height:2.5rem;padding-block:0}
.nv-guard-form[hidden],.nv-guard-on[hidden]{display:none}
.nv-guard-on{margin-top:1rem;padding:.875rem;border:1px solid rgb(22 163 74 / .25);border-radius:.625rem;background:rgb(22 163 74 / .06)}
.nv-guard-on p{margin:0 0 .75rem;font-size:.8125rem;color:var(--color-default-700)}
.nv-guard-on .btn{width:100%}
.nv-link{display:inline-flex;align-items:center;margin-top:.875rem;border:0;background:transparent;font-size:.8125rem;font-weight:500;color:#2563eb;cursor:pointer}
.nv-link:hover{text-decoration:underline}
.nv-link[hidden]{display:none}
.nv-alerts{margin-top:1.125rem;padding-top:.875rem;border-top:1px solid var(--color-default-200)}
.nv-alerts__label{margin:0 0 .5rem;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-default-400)}
.nv-alert{display:flex;align-items:center;gap:.625rem;padding:.4375rem 0}
.nv-alert__ico{display:inline-flex;flex:none;width:1.875rem;height:1.875rem;align-items:center;justify-content:center;border-radius:9999px}
.nv-alert__ico.is-move{background:rgb(245 158 11 / .14);color:#d97706}
.nv-alert__ico.is-ign{background:rgb(220 38 38 / .1);color:#dc2626}
.nv-alert__body{min-width:0;flex:1;display:flex;flex-direction:column}
.nv-alert__body strong{font-size:.8125rem;font-weight:500;color:var(--color-default-800)}
.nv-alert__body span{font-size:.75rem;color:var(--color-default-500)}
.nv-alert__state{flex:none;padding:.125rem .5rem;border-radius:9999px;font-size:.6875rem;font-weight:600}
.nv-alert__state.is-ok{background:rgb(22 163 74 / .1);color:#16a34a}
.nv-alert__state.is-bad{background:rgb(220 38 38 / .1);color:#dc2626}
.nv-hist{padding:.5rem 0;border-top:1px solid var(--color-default-200);font-size:.8125rem}
.nv-hist:first-of-type{border-top:0;padding-top:0}
.nv-hist p{margin:0;color:var(--color-default-800)}
.nv-hist p+p{margin-top:.125rem;font-size:.75rem;color:var(--color-default-500)}

/* Versión sobria: sin íconos decorativos */
.nawi-map-stats>div,.nawi-map-stats>div:nth-child(n){padding-left:1rem}
.nawi-seg button{gap:0}
.nv-head{margin-bottom:1rem}
.nv-link{margin-top:.75rem}
.nawi-map-stats>div{padding-top:.625rem;padding-bottom:.625rem}
.nv-panel{padding:1.125rem}
@media (max-width:39.99rem){.nawi-map-stats>div{padding-left:.875rem}}

/* Perfil */
.nv-profile{display:grid;gap:1.25rem;max-width:42rem}
.nv-form{display:grid;gap:1rem}
.nv-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.25rem}
@media (max-width:39.99rem){.nv-actions .btn{flex:1 1 100%}}

.nv-menu-item{display:flex;width:100%;align-items:center;gap:.625rem;padding:.5rem .75rem;border:0;border-radius:.375rem;background:transparent;font-size:.875rem;color:var(--color-default-700);text-align:left;cursor:pointer}
.nv-menu-item:hover{background:var(--color-default-150);color:var(--color-default-900)}
.nv-menu-item svg{flex:none;color:var(--color-default-500)}

/* Perfil con pestañas */
.nv-profile{max-width:44rem}
.nv-profile{display:block}
.nv-pf-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}
.nv-pf-avatar{display:flex;flex:none;width:3.5rem;height:3.5rem;align-items:center;justify-content:center;border-radius:9999px;background:rgb(37 99 235 / .1);font-size:1.125rem;font-weight:600;color:#2563eb}
.nv-pf-head h1{margin:0;font-size:1.375rem;font-weight:600;line-height:1.2;color:var(--color-default-800)}
.nv-pf-head p{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-default-500);overflow-wrap:anywhere}
.nv-tabs{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--color-default-200);overflow-x:auto}
.nv-tabs button{flex:none;margin-bottom:-1px;padding:.625rem 1rem;border:0;border-bottom:2px solid transparent;background:transparent;font-size:.875rem;font-weight:500;color:var(--color-default-500);cursor:pointer}
.nv-tabs button:hover{color:var(--color-default-800)}
.nv-tabs button.is-active{border-bottom-color:#2563eb;color:#2563eb}
.nv-tabpanel[hidden]{display:none}
.nv-two{display:grid;gap:1rem}
@media (min-width:40rem){.nv-two{grid-template-columns:1fr 1fr}}
.nv-divider{height:1px;margin:1.5rem 0;background:var(--color-default-200)}
.nv-tabs{overflow-y:hidden;scrollbar-width:none}
.nv-tabs::-webkit-scrollbar{display:none}
.nv-check{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--color-default-700);cursor:pointer}

/* Panel de administración */
.nv-pagehead{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.nv-pagehead h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-default-800)}
.nv-pagehead p{margin:.25rem 0 0;font-size:.875rem;color:var(--color-default-500)}
.nv-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}
@media (min-width:48rem){.nv-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:80rem){.nv-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}}
.nv-kpi{display:flex;flex-direction:column;gap:.125rem;padding:1rem 1.125rem;border:1px solid var(--color-default-200);border-radius:.625rem;background:var(--color-card,#fff)}
.nv-kpi span{font-size:.75rem;font-weight:500;color:var(--color-default-500)}
.nv-kpi strong{font-size:1.75rem;font-weight:600;line-height:1.2;color:var(--color-default-800)}
.nv-kpi small{font-size:.75rem;color:var(--color-default-500)}
.nv-kpi.is-alert strong{color:var(--color-danger,#dc2626)}
.nv-more{font-size:.8125rem;font-weight:500;color:#2563eb}
.nv-more:hover{text-decoration:underline}
.nv-table{width:100%;margin-top:.75rem;border-collapse:collapse}
.nv-table th{padding:.5rem .75rem;border-bottom:1px solid var(--color-default-200);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-align:left;text-transform:uppercase;color:var(--color-default-500)}
.nv-table td{padding:.75rem;border-bottom:1px solid var(--color-default-200);font-size:.875rem;vertical-align:middle}
.nv-table tr:last-child td{border-bottom:0}
.nv-table th:first-child,.nv-table td:first-child{padding-left:0}
.nv-muted{color:var(--color-default-500);white-space:nowrap}
.nv-foot{margin:.75rem 0 0;font-size:.75rem;color:var(--color-default-500)}
.nv-note{margin:-.25rem 0 .25rem;font-size:.75rem;color:var(--color-default-500);overflow-wrap:anywhere}
.nv-count{display:inline-flex;min-width:1.75rem;justify-content:center;padding:.125rem .5rem;border-radius:9999px;background:var(--color-default-150);font-size:.75rem;font-weight:600;color:var(--color-default-600)}
.nv-count.is-on{background:rgb(245 158 11 / .14);color:#b45309}
.nv-line{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem 0;border-top:1px solid var(--color-default-200)}
.nv-line:first-of-type{border-top:0}
.nv-line strong{display:block;font-size:.875rem;font-weight:500;color:var(--color-default-800)}
.nv-line small{display:block;font-size:.75rem;color:var(--color-default-500)}
.nv-line em{flex:none;font-size:.8125rem;font-style:normal;color:var(--color-default-500)}
.nv-line:hover strong{color:#2563eb}
.nv-panel__head+.nv-hint{margin-top:.75rem}
.nv-pagehead .nv-eyebrow{margin:0 0 .25rem;font-size:.8125rem;font-weight:500;color:#2563eb}

.nv-pagehead .btn{white-space:nowrap}
.nv-only-sm{display:none!important}
@media (max-width:39.99rem){
  .nv-only-sm{display:block!important}
  .nv-table th:nth-child(3),.nv-table td:nth-child(3){display:none}
}
.nv-panel__head+.nv-alert,.nv-panel__head+.nv-line{margin-top:.5rem}

/* Panel de administración, segunda pasada */
.nv-pagehead{margin-bottom:1rem}
.nv-banner{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem;padding:.625rem .875rem;border:1px solid;border-radius:.625rem;font-size:.8125rem}
.nv-banner.is-ok{border-color:rgb(22 163 74 / .25);background:rgb(22 163 74 / .06);color:#15803d}
.nv-banner.is-warn{border-color:rgb(245 158 11 / .35);background:rgb(245 158 11 / .08);color:#b45309}
.nv-banner__dot{flex:none;width:.5rem;height:.5rem;border-radius:9999px;background:currentColor}
.nv-kpi{gap:.25rem;padding:.875rem 1rem}
.nv-kpi strong{font-size:1.625rem}
.nv-kpi strong em{margin-left:.25rem;font-size:.9375rem;font-style:normal;font-weight:500;color:var(--color-default-500)}
.nv-bar{height:.3125rem;margin-top:.375rem;border-radius:9999px;background:var(--color-default-150);overflow:hidden}
.nv-bar i{display:block;height:100%;border-radius:9999px;background:#16a34a}
.nv-grid-main{display:grid;gap:1rem;margin-bottom:1rem;grid-template-columns:minmax(0,1fr)}
.nv-grid-3{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:64rem){.nv-grid-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.nv-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.nv-grid-main>.card,.nv-grid-3>.card{display:flex;flex-direction:column}
.nv-grid-main>.card>.nv-panel,.nv-grid-3>.card>.nv-panel{flex:1}
.nv-table th.is-right,.nv-table td.is-right{text-align:right;padding-right:0}
.nv-table th:nth-child(2),.nv-table td:nth-child(2){width:9rem}
.nv-sys>div{padding:.75rem 0;border-top:1px solid var(--color-default-200)}
.nv-sys>div:first-child{padding-top:0;border-top:0}
.nv-sys__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.875rem;color:var(--color-default-600)}
.nv-sys p{margin:.375rem 0 0;font-size:.75rem;color:var(--color-default-500);overflow-wrap:anywhere}
.nv-alert--row{padding:.625rem 0;border-top:1px solid var(--color-default-200)}
.nv-panel__title+.nv-alert--row{margin-top:.25rem}
.nv-linkrow{color:var(--color-default-700)}
.nv-linkrow:hover{color:#2563eb}
.nv-rows>div{padding:.6875rem 0}
.nv-rows>div:first-child{padding-top:.25rem}
@media (max-width:39.99rem){.nv-pagehead .btn{padding-inline:.875rem}}

/* Panel simple */
.nv-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:64rem){.nv-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.nv-grid-main{align-items:stretch}
.nv-grid-main>.card{height:auto;align-self:stretch}
.nv-grid-1{display:block}

/* Pagos */
.nv-amount{margin:.5rem 0 0;font-size:2rem;font-weight:600;line-height:1.1;color:var(--color-default-800)}
.nv-step{margin:1.25rem 0 .5rem;font-size:.875rem;color:var(--color-default-600)}
.nv-pay{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.nv-pay__card{display:flex;flex-direction:column;align-items:center;padding:1rem;border:1px solid var(--color-default-200);border-radius:.625rem;text-align:center}
.nv-pay__logo{height:1.75rem;width:auto;margin-bottom:.75rem}
.nv-pay__qr{width:100%;max-width:11rem;height:auto;border-radius:.5rem;background:#fff}
.nv-pay__num{margin:.75rem 0 0;font-size:1rem;font-weight:600;color:var(--color-default-800)}
.nv-pay__who{margin:.125rem 0 0;font-size:.75rem;color:var(--color-default-500)}
.nv-review{display:flex;flex-direction:column;gap:.75rem;padding:.875rem 0;border-top:1px solid var(--color-default-200)}
.nv-review:first-of-type{border-top:0}
.nv-review__info{display:flex;flex-direction:column;gap:.125rem}
.nv-review__info strong{font-size:.9375rem;font-weight:600;color:var(--color-default-800)}
.nv-review__info span{font-size:.8125rem;color:var(--color-default-500)}
.nv-review__actions{display:flex;flex-wrap:wrap;gap:.5rem}
.nv-review__actions .form-input{flex:1 1 12rem;min-width:0;height:2.5rem}
.nv-inline{display:inline-flex;gap:.5rem;align-items:center}
.nv-inline .form-select{width:auto;height:2.25rem;padding-block:0}
@media (min-width:48rem){.nv-review{flex-direction:row;align-items:center;justify-content:space-between}.nv-review__actions{flex:none;max-width:34rem}}
@media (max-width:39.99rem){.nv-pay__card{padding:.75rem}.nv-inline{flex-direction:column;align-items:stretch}}

/* Pagos del cliente: dos columnas en pantallas grandes */
.nv-paylayout{display:grid;gap:1.25rem;align-items:start}
.nv-paylayout__main,.nv-paylayout__side{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.nv-hist{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;border-top:1px solid var(--color-default-200)}
.nv-hist:first-of-type{border-top:0}
.nv-hist strong{display:block;font-size:.9375rem;font-weight:600;color:var(--color-default-800)}
.nv-hist small{display:block;font-size:.75rem;color:var(--color-default-500)}
@media (min-width:64rem){.nv-paylayout{grid-template-columns:minmax(0,1fr) 21rem}.nv-pay__qr{max-width:12rem}}
@media (min-width:80rem){.nv-paylayout{grid-template-columns:minmax(0,1fr) 24rem}}
.nv-pay__qr{aspect-ratio:1/1;object-fit:contain;width:100%}.nv-pay__card{justify-content:flex-start}

/* Revisión de comprobantes (admin) */
.nv-rv{display:grid;gap:.875rem;padding:1rem 0;border-top:1px solid var(--color-default-200)}
.nv-rv:first-of-type{border-top:0;padding-top:.25rem}
.nv-rv__top{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.nv-rv__top strong{font-size:1rem;font-weight:600;color:var(--color-default-800)}
.nv-rv__amount{font-size:1rem;font-weight:600;color:var(--color-primary)}
.nv-rv__main p{margin:.25rem 0 0;font-size:.8125rem;color:var(--color-default-500)}
.nv-rv__actions{display:flex;gap:.5rem}
.nv-rv__actions .btn{flex:1 1 0}
.nv-rv__reject{display:flex;flex-direction:column;gap:.5rem}
.nv-rv__reject[hidden]{display:none}
.nv-rv__reject .form-input{height:2.5rem}
@media (min-width:48rem){
  .nv-rv{grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .nv-rv__actions .btn{flex:none;min-width:7.5rem}
  .nv-rv__reject{grid-column:1/-1;flex-direction:row}
  .nv-rv__reject .form-input{flex:1}
}
.nv-inline .form-select,.nv-inline .btn{height:2.25rem;padding-block:0;font-size:.8125rem}
.nv-inline .form-select{padding-inline:.625rem 1.75rem;min-width:6rem}
@media (max-width:39.99rem){
  .nv-stack thead{display:none}
  .nv-stack,.nv-stack tbody,.nv-stack tr,.nv-stack td{display:block;width:100%}
  .nv-stack tr{padding:.875rem 0;border-top:1px solid var(--color-default-200)}
  .nv-stack tr:first-child{border-top:0}
  .nv-stack td{padding:.125rem 0;border:0;text-align:left!important}
  .nv-stack td[data-label]{display:flex;justify-content:space-between;align-items:center;gap:.75rem}
  .nv-stack td[data-label]::before{content:attr(data-label);font-size:.75rem;color:var(--color-default-500)}
  .nv-stack .is-right{margin-top:.5rem}
  .nv-stack .nv-inline{display:flex;flex-direction:row;width:100%}
  .nv-stack .nv-inline .form-select{flex:1}
  .nv-stack .nv-inline .btn{flex:1;white-space:nowrap}
}

/* SweetAlert2 con la línea del template */
.nawi-swal{border-radius:.75rem;font-family:inherit;padding:1.5rem 1.25rem}
.nawi-swal .swal2-title{font-size:1.125rem;font-weight:600;color:var(--color-default-800)}
.nawi-swal .swal2-html-container{font-size:.875rem;color:var(--color-default-600)}
.nawi-swal .swal2-actions{gap:.5rem}
.nawi-swal .swal2-input,.nawi-swal .swal2-select,.nawi-swal .swal2-textarea{font-size:.875rem;margin:1rem 0 0;width:100%;box-shadow:none}
.nawi-swal .swal2-validation-message{font-size:.8125rem}

/* Campanita del superadmin */
.nv-bell{width:min(22rem,calc(100vw - 1.5rem));padding:0}
.nv-bell__head{padding:.875rem 1rem;border-bottom:1px solid var(--color-default-200)}
.nv-bell__head h6{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-default-800)}
.nv-bell__empty{margin:0;padding:1.25rem 1rem;font-size:.8125rem;color:var(--color-default-500)}
.nv-bell__item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;text-align:left;border:0;background:transparent;border-bottom:1px solid var(--color-default-200);cursor:pointer}
.nv-bell__item:hover{background:var(--color-default-100)}
.nv-bell__item strong{display:block;font-size:.875rem;font-weight:600;color:var(--color-default-800)}
.nv-bell__item small{display:block;font-size:.75rem;color:var(--color-default-500)}
.nv-bell__item em{font-style:normal;font-size:.875rem;font-weight:600;color:var(--color-primary);white-space:nowrap}
.nv-bell__foot{display:block;padding:.75rem 1rem;text-align:center;font-size:.8125rem;font-weight:500;color:var(--color-primary)}
.nv-bell__count{position:absolute;top:-.125rem;right:-.125rem;min-width:1rem;height:1rem;padding:0 .25rem;border-radius:999px;background:var(--color-danger);color:#fff;font-size:.625rem;font-weight:600;line-height:1rem;text-align:center}
.nv-bell__count[hidden]{display:none}
.nv-review-dlg{text-align:center}
.nv-review-dlg p{margin:.25rem 0;font-size:.8125rem;color:var(--color-default-500)}
.nv-review-dlg .nv-review-dlg__who{font-size:1rem;font-weight:600;color:var(--color-default-800)}
.nv-review-dlg .nv-review-dlg__amount{font-size:1.75rem;font-weight:600;color:var(--color-primary);margin:.25rem 0 .5rem}
.nv-proof{display:block;margin:1rem auto 0;max-width:100%;max-height:18rem;border-radius:.5rem;border:1px solid var(--color-default-200)}
