/* ==========================================================================
   POTROX — Sistema de diseño unificado  (referencia: "Login form V7")
   Negro profundo · cintas doradas · cristal oscuro con esquinas cortadas
   Amarillo-oro como único color de acción · Barlow / Barlow Condensed
   Se carga al FINAL del <head> de TODAS las páginas.
   ========================================================================== */
:root {
  --pt-bg:#050506; --pt-surface:rgba(13,13,16,.80); --pt-card:rgba(14,14,17,.76); --pt-card-hi:rgba(28,28,33,.80);
  --pt-border:rgba(255,255,255,.09); --pt-border-hi:rgba(255,255,255,.17);
  --pt-text:#F5F5F5; --pt-muted:#9A9AA4;
  /* "orange" se conserva como nombre por compatibilidad: ahora es el amarillo-oro de acción */
  --pt-orange:#FFC72C; --pt-orange-d:#E6A800; --pt-orange-l:#FFE066; --pt-gold:#FFD84D; --pt-acc:255,199,44;
  --pt-ok:#22C55E; --pt-warn:#F5A623; --pt-danger:#EF4444; --pt-info:#4BA8E8;
  --pt-radius:12px; --pt-cut:16px;
  --pt-font-body:'Barlow',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --pt-font-head:'Barlow Condensed','Barlow',system-ui,Arial,sans-serif;

  /* Variables propias de cada familia de pantallas -> misma paleta */
  --bg:var(--pt-bg); --surface:var(--pt-surface); --card:var(--pt-card); --card-hi:var(--pt-card-hi);
  --border:var(--pt-border); --border-hi:var(--pt-border-hi); --text:var(--pt-text); --muted:var(--pt-muted); --text-muted:var(--pt-muted);
  --solar:var(--pt-orange); --solar-dim:rgba(var(--pt-acc),.12); --solar-glow:rgba(var(--pt-acc),.30); --solar-deep:rgba(var(--pt-acc),.06);
  --volt:var(--pt-gold); --volt-dim:rgba(255,216,77,.10);
  --primary:var(--pt-orange); --secondary:var(--pt-orange-l); --accent:var(--pt-gold);
  --dark:var(--pt-bg); --darker:#020203;
  --ok:var(--pt-ok); --success:var(--pt-ok); --danger:var(--pt-danger); --warn:var(--pt-warn); --warning:var(--pt-warn); --info:var(--pt-info);
  --ff-d:var(--pt-font-head); --ff-b:var(--pt-font-body); --sidebar-bg:rgba(10,10,12,.82);

  /* Pantallas públicas (paleta --blanco/--negro/--gris-*) */
  --blanco:rgba(14,14,17,.84); --gris-7:rgba(255,255,255,.035); --gris-6:rgba(255,255,255,.10);
  --gris-5:#3C3C44; --gris-4:#8E8E98; --gris-3:#A8A8B2; --gris-2:#CFCFD6; --gris-1:#E6E6EA;
  --negro:#F5F5F5; --pt-ink:rgba(5,5,6,.86);
  --naranja-pale:rgba(var(--pt-acc),.12);
  --verde:#4ADE80; --verde-light:rgba(74,222,128,.12); --rojo:#F87171; --rojo-light:rgba(248,113,113,.12);
  --azul:#60A5FA; --azul-dark:#3B82F6; --azul-pale:rgba(96,165,250,.12);
}

/* ── Fondo: negro con cintas doradas (fijo, no se mueve al desplazar) ── */
html { background:#050506; -webkit-text-size-adjust:100%; }
html::before {
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:#050506 url(../img/ribbons.svg) center / cover no-repeat; opacity:.92;
}
body { background:transparent !important; color:var(--pt-text); font-family:var(--pt-font-body); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6,.sidebar-title,.page-title { font-family:var(--pt-font-head); letter-spacing:.3px; }
::selection { background:var(--pt-orange); color:#111; }
:focus-visible { outline:2px solid var(--pt-orange); outline-offset:2px; }
* { scrollbar-width:thin; scrollbar-color:rgba(var(--pt-acc),.5) transparent; }
::-webkit-scrollbar { width:9px; height:9px; }
::-webkit-scrollbar-thumb { background:rgba(var(--pt-acc),.45); border-radius:8px; }
::-webkit-scrollbar-track { background:transparent; }

/* Resplandor dorado que sigue al cursor (ui.js) */
#pt-orb {
  position:fixed; left:0; top:0; width:320px; height:320px; border-radius:50%; z-index:0; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--pt-acc),.20) 0%, rgba(var(--pt-acc),.07) 38%, transparent 68%);
  mix-blend-mode:screen; opacity:0; transition:opacity .4s; will-change:transform;
}

/* ── Cristal: todas las tarjetas/paneles se ven igual ── */
.form-card,.page-header,.stat-card,.table-wrap,.table-container,.chart-panel,.chart-container,.card,.login-form-panel,.reg-form-panel,
.svc-card,.servicio-card,.modal-box,.modal-content,.view-controls,.info-panel,.detail-card,.sum-card,.product-card,.cita-card,.cliente-card,
.consulta-card,.table-card,.card-custom,.info-card,.form-section,.invoice-container,.profile-hero,.hero-panel,.portal-selector,.filters-wrap,
.cart-item,.nav-dropdown,.sb-user,.eco-stat-row,.rec-step,.mensaje-box {
  background:var(--pt-card) !important;
  -webkit-backdrop-filter:blur(16px) saturate(130%); backdrop-filter:blur(16px) saturate(130%);
  border:1px solid var(--pt-border);
  box-shadow:0 18px 50px -18px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.06);
  color:var(--pt-text);
}
/* Esquinas cortadas (arriba-izquierda y abajo-derecha), como la tarjeta del video */
.form-card,.page-header,.stat-card,.table-wrap,.table-container,.chart-panel,.chart-container,.login-form-panel,.reg-form-panel,
.modal-box,.info-panel,.detail-card,.table-card,.form-section,.profile-hero,.consulta-card,.sum-card {
  clip-path:polygon(var(--pt-cut) 0,100% 0,100% calc(100% - var(--pt-cut)),calc(100% - var(--pt-cut)) 100%,0 100%,0 var(--pt-cut));
  border-radius:0;
}
/* Barras superiores y menús laterales también en cristal */
.nav-outer,.topbar,.sidebar,.header-bar,.top-bar {
  -webkit-backdrop-filter:blur(18px) saturate(130%); backdrop-filter:blur(18px) saturate(130%);
}
.sidebar { background:var(--sidebar-bg) !important; border-right:1px solid var(--pt-border); }

/* ── Entradas: oscuras, redondeadas, brillo amarillo al enfocar ── */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]),
select,textarea,.form-control,.form-select {
  background:rgba(8,8,10,.55); color:var(--pt-text); border-radius:10px; color-scheme:dark;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
input::placeholder,textarea::placeholder { color:#6F6F7A; }
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):focus,select:focus,textarea:focus,.form-control:focus,.form-select:focus {
  outline:none; border-color:var(--pt-orange) !important;
  box-shadow:0 0 0 3px rgba(var(--pt-acc),.16), 0 0 22px rgba(var(--pt-acc),.18) !important;
  background:rgba(8,8,10,.72);
}
input:-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill {
  -webkit-text-fill-color:var(--pt-text); -webkit-box-shadow:0 0 0 1000px #0c0c0f inset; caret-color:var(--pt-text);
}
input[type=checkbox],input[type=radio] { accent-color:var(--pt-orange); }
label { color:#D9D9DF; }

/* ── Botón principal: amarillo con brillo y resplandor ── */
.btn-primary,.btn-primary:focus,
#asesor-send,
#lpx-send,
.btn-accept-terms,
.btn-add,
.btn-apply,
.btn-consultar-link,
.btn-fill,
.btn-logout,
.btn-primary-custom,
.btn-search,
.modal-btn-info,
.modal-btn-primary,
.nav-cta {
  background-image:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 58%);
  box-shadow:0 10px 26px -8px rgba(var(--pt-acc),.55), inset 0 1px 0 rgba(255,255,255,.55);
  border-radius:10px; font-weight:700; letter-spacing:.2px;
  transition:transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-primary {
  --bs-btn-bg:var(--pt-orange); --bs-btn-border-color:var(--pt-orange);
  --bs-btn-hover-bg:var(--pt-orange-l); --bs-btn-hover-border-color:var(--pt-orange-l);
  --bs-btn-active-bg:var(--pt-orange-d); --bs-btn-active-border-color:var(--pt-orange-d);
  --bs-btn-color:#141414; --bs-btn-hover-color:#141414; --bs-btn-active-color:#141414;
}
.btn-outline-primary {
  --bs-btn-color:var(--pt-orange); --bs-btn-border-color:var(--pt-orange);
  --bs-btn-hover-bg:var(--pt-orange); --bs-btn-hover-border-color:var(--pt-orange); --bs-btn-hover-color:#141414;
}
#asesor-send i,
#lpx-send i,
.btn-accept-terms i,
.btn-add i,
.btn-apply i,
.btn-consultar-link i,
.btn-fill i,
.btn-logout i,
.btn-primary-custom i,
.btn-search i,
.modal-btn-info i,
.modal-btn-primary i,
.nav-cta i,.btn-primary i { color:inherit; }
a { --bs-link-color-rgb:255,199,44; }

/* ── Tablas ── */
.table {
  --bs-table-color:var(--pt-text); --bs-table-bg:transparent; --bs-table-border-color:var(--pt-border);
  --bs-table-striped-bg:rgba(255,255,255,.025); --bs-table-striped-color:var(--pt-text);
  --bs-table-hover-bg:rgba(var(--pt-acc),.07); --bs-table-hover-color:#fff;
}
.dropdown-menu { background:var(--pt-card-hi); border:1px solid var(--pt-border-hi); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.dropdown-item { color:var(--pt-text); }
.dropdown-item:hover { background:rgba(var(--pt-acc),.12); color:#fff; }
.swal2-popup { background:rgba(16,16,19,.92) !important; color:var(--pt-text) !important; border:1px solid var(--pt-border-hi);
  border-radius:14px !important; font-family:var(--pt-font-body) !important; -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); }
.swal2-title,.swal2-html-container { color:var(--pt-text) !important; }
.swal2-confirm { background:var(--pt-orange) !important; color:#141414 !important; font-weight:700 !important; box-shadow:0 8px 22px -8px rgba(var(--pt-acc),.6) !important; }

/* ── Páginas de acceso: tarjeta de cristal centrada sobre las cintas (login, login admin, registro…) ── */
.login-wrap,.register-wrap {
  display:flex !important; align-items:center; justify-content:center;
  min-height:calc(100vh - 110px); padding:2.5rem 1rem; grid-template-columns:none !important; background:none !important;
}
.login-visual,.reg-visual { display:none !important; }
.reg-form-panel { width:min(720px,100%) !important; }
.login-form-panel,.reg-form-panel {
  width:min(480px,100%); padding:2.2rem 2rem !important; border-left:none !important; border-top:none !important;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.85), 0 0 60px -20px rgba(var(--pt-acc),.25), inset 0 1px 0 rgba(255,255,255,.07);
}
.login-form-panel::before,.reg-form-panel::before { display:none !important; }
.form-eyebrow,.page-kicker { color:var(--pt-orange) !important; }

/* ── Accesibilidad ── */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  #pt-orb { display:none; }
}
@media (max-width:640px) { :root { --pt-cut:11px; } .login-form-panel,.reg-form-panel { padding:1.6rem 1.2rem !important; } }

/* ==========================================================================
   MODO LEGACY — pantallas que eran claras. Mismo cristal, mismos colores.
   ========================================================================== */
body.pt-legacy { color:var(--pt-text) !important; font-family:var(--pt-font-body) !important; }
body.pt-legacy h1,body.pt-legacy h2,body.pt-legacy h3,body.pt-legacy h4,body.pt-legacy h5,body.pt-legacy h6,
body.pt-legacy label,body.pt-legacy .page-title,body.pt-legacy .stat-value { color:var(--pt-text) !important; }
body.pt-simple .container {
  background:var(--pt-card) !important; -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--pt-border) !important; box-shadow:0 18px 50px -18px rgba(0,0,0,.75) !important; color:var(--pt-text) !important;
  clip-path:polygon(var(--pt-cut) 0,100% 0,100% calc(100% - var(--pt-cut)),calc(100% - var(--pt-cut)) 100%,0 100%,0 var(--pt-cut)); border-radius:0;
}
body.pt-legacy input,body.pt-legacy select,body.pt-legacy textarea,body.pt-legacy .form-control,body.pt-legacy .form-select {
  background:rgba(8,8,10,.55) !important; color:var(--pt-text) !important; border:1px solid var(--pt-border-hi) !important; border-radius:10px;
}
body.pt-legacy table { color:var(--pt-text) !important; background:transparent !important; }
body.pt-legacy th { background:rgba(8,8,10,.6) !important; color:var(--pt-orange) !important; border-color:var(--pt-border) !important;
  font-family:var(--pt-font-head); letter-spacing:.6px; text-transform:uppercase; }
body.pt-legacy td { border-color:var(--pt-border) !important; color:var(--pt-text) !important; background:transparent !important; }
body.pt-legacy tr:hover td { background:rgba(var(--pt-acc),.07) !important; }
body.pt-legacy .text-muted,body.pt-legacy small,body.pt-legacy .stat-label { color:var(--pt-muted) !important; }
body.pt-legacy a:not([class]) { color:var(--pt-orange); }
body.pt-legacy button:not(.btn):not(.swal2-confirm):not(.swal2-cancel):not([class*="btn-"]):not([class*="close"]) {
  background:var(--pt-orange); color:#141414; border:0; border-radius:10px; font-weight:700; padding:.55rem 1.1rem; cursor:pointer;
  background-image:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 58%); box-shadow:0 10px 26px -8px rgba(var(--pt-acc),.55);
}
body.pt-legacy .alert-error { background:rgba(239,68,68,.12) !important; color:#FCA5A5 !important; border-color:rgba(239,68,68,.4) !important; }
body.pt-simple input,body.pt-simple select,body.pt-simple textarea { box-sizing:border-box; max-width:100%; }
body.pt-simple { padding:20px; }
body.pt-simple h2 { color:var(--pt-orange) !important; }
@media print {
  html::before,#pt-orb { display:none !important; }
  html,body,body.pt-legacy { background:#fff !important; color:#000 !important; }
  .invoice-container,.card,table,td,th { background:#fff !important; color:#000 !important; box-shadow:none !important; border-color:#ccc !important; clip-path:none !important; }
}
