/* ============================================================
   EucaSys — Reserva pública "LIQUID GLASS"
   Materiales translúcidos, brillo especular y ambiente Apple,
   con letra grande y legible para adultos mayores.
   Se carga DESPUÉS de public-pwa.css / public-mobile-pro.css.
   ============================================================ */

:root{
  --pwa-ink:#1d1d1f; --pwa-muted:#6e6e73;
  --pwa-teal:#0071e3; --pwa-blue:#0071e3;
  --pwa-green:#1fa855; --pwa-red:#e0342a; --pwa-coffee:#8a6d4b;
  --acc:#0071e3; --acc2:#0a84ff; --acc-ink:#0a5bce;
  --glass:rgba(255,255,255,.62); --glass-strong:rgba(255,255,255,.76); --stroke:rgba(255,255,255,.66);
  --hi:inset 0 1px 0 rgba(255,255,255,.75);
  --shadow:0 12px 34px rgba(20,32,66,.13),0 2px 8px rgba(20,32,66,.06);
}

*{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.public-app-body{
  color:var(--pwa-ink) !important; font-size:18px;
  font-family:-apple-system,"SF Pro Display","SF Pro Text",BlinkMacSystemFont,"Inter",system-ui,sans-serif !important;
  background:
    radial-gradient(1200px 820px at 8% -12%, rgba(120,170,255,.42), transparent 60%),
    radial-gradient(1000px 720px at 104% -4%, rgba(184,142,255,.32), transparent 56%),
    radial-gradient(1000px 900px at 50% 118%, rgba(110,220,205,.26), transparent 58%),
    linear-gradient(180deg,#eef1f7 0%,#e8ecf3 60%,#eceef4 100%) !important;
  background-attachment:fixed !important;
}
.pwa-bg{ display:none !important; }

/* Material de vidrio */
.pwa-topbar,.pwa-hero>div:first-child,.pwa-status-card,.pwa-panel,.pwa-steps article,
.pwa-toast,.pwa-month-card,.pwa-day-agenda,.pwa-selected-slot{
  background:var(--glass) !important;
  -webkit-backdrop-filter:blur(30px) saturate(180%) !important; backdrop-filter:blur(30px) saturate(180%) !important;
  border:1px solid var(--stroke) !important; box-shadow:var(--hi),var(--shadow) !important;
}
.pwa-topbar{ border-radius:22px !important; }
.pwa-hero>div:first-child,.pwa-panel{ position:relative; overflow:hidden; }
.pwa-hero>div:first-child:after,.pwa-panel:after{ content:""; position:absolute; inset:0 0 auto 0; height:44%; background:linear-gradient(180deg,rgba(255,255,255,.32),transparent); pointer-events:none; }

/* Marca / cabecera */
.pwa-kicker{ color:var(--acc) !important; }
.pwa-hero h1{ color:var(--pwa-ink) !important; letter-spacing:-.03em; }
.pwa-hero p{ color:#3d4048 !important; font-size:20px !important; }
.pwa-admin-link{ background:rgba(0,0,0,.05) !important; color:#33343a !important; border-radius:980px !important; font-size:15px; }
.pwa-brand-icon{ background:transparent !important; box-shadow:none !important; width:auto !important; height:50px !important; border-radius:0 !important; }
.pwa-brand-icon img{ height:50px; width:auto; display:block; }
.pwa-steps span{ background:linear-gradient(180deg,var(--acc2),var(--acc)) !important; box-shadow:var(--hi),0 6px 14px rgba(0,113,227,.28) !important; }
.pwa-steps strong{ font-size:17px; color:var(--pwa-ink); }
.pwa-steps small{ color:var(--pwa-muted); }
.pwa-section-head h2,.pwa-reserve-panel h3{ color:var(--pwa-ink) !important; letter-spacing:-.02em; }
.pulse{ background:#34c759 !important; box-shadow:0 0 0 8px rgba(52,199,89,.14) !important; }
.pwa-status-card small{ color:var(--pwa-muted) !important; }

/* Calendario: días de vidrio */
.pwa-day{ background:rgba(255,255,255,.5) !important; color:#22242a !important; height:48px !important; font-size:17px !important; border:1px solid rgba(255,255,255,.6) !important; box-shadow:var(--hi) !important; border-radius:16px !important; }
.pwa-day.mass-free{ background:rgba(52,199,89,.18) !important; color:#137a3c !important; }
.pwa-day.mass-partial{ background:rgba(0,113,227,.16) !important; color:var(--acc-ink) !important; }
.pwa-day.mass-full{ background:rgba(255,59,48,.15) !important; color:#c4291f !important; }
.pwa-day.mass-community,.pwa-day.mass-muted{ background:rgba(160,120,70,.16) !important; color:#7a5c38 !important; }
.pwa-day.selected{ background:linear-gradient(180deg,var(--acc2),var(--acc)) !important; color:#fff !important; box-shadow:var(--hi),0 12px 26px rgba(0,113,227,.32) !important; }
.pwa-day.blank{ background:transparent !important; border:0 !important; box-shadow:none !important; }
.pwa-weekdays span{ color:#8a8a8f !important; }

/* Franjas de hora: colores del sistema con brillo */
.pwa-slot{ border-radius:18px !important; box-shadow:var(--hi),0 10px 24px rgba(20,32,66,.14) !important; }
.pwa-slot.mass-free{ background:linear-gradient(180deg,#3ad06a,#1fa855) !important; }
.pwa-slot.mass-partial{ background:linear-gradient(180deg,#0a84ff,#0071e3) !important; }
.pwa-slot.mass-full{ background:linear-gradient(180deg,#ff5c52,#e0342a) !important; }
.pwa-slot.mass-community,.pwa-slot.mass-muted{ background:linear-gradient(180deg,#a7855e,#8a6d4b) !important; }
.pwa-slot-time{ font-size:18px !important; }
.pwa-slot-info strong{ font-size:17px !important; }
.pwa-slot-badge{ background:rgba(255,255,255,.24) !important; }
.pwa-selected-slot small{ color:var(--pwa-muted) !important; }
.pwa-selected-slot strong{ color:var(--pwa-ink) !important; font-size:17px !important; }

/* Formulario: campos de vidrio, grandes */
.pwa-field label{ font-size:16px !important; color:#33343a !important; }
.pwa-field input,.pwa-field select,.pwa-field textarea{
  font-size:18px !important; padding:15px 16px !important; min-height:54px !important;
  border:1px solid rgba(0,0,0,.10) !important; background:rgba(255,255,255,.6) !important;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border-radius:14px !important; color:var(--pwa-ink) !important; box-shadow:inset 0 1px 2px rgba(0,0,0,.04) !important;
}
.pwa-field input:focus,.pwa-field select:focus,.pwa-field textarea:focus{ border-color:var(--acc) !important; box-shadow:0 0 0 4px rgba(10,132,255,.18) !important; background:rgba(255,255,255,.85) !important; }
.pwa-field textarea{ min-height:92px !important; }

/* Botón principal (píldora Apple) */
.pwa-primary{ background:linear-gradient(180deg,var(--acc2),var(--acc)) !important; font-size:19px !important; padding:18px !important; min-height:60px !important; border-radius:980px !important; box-shadow:var(--hi),0 10px 24px rgba(0,113,227,.3) !important; }
.pwa-primary:hover{ filter:brightness(1.05); }
.pwa-help{ color:var(--pwa-muted) !important; }

/* Aviso "te reconocimos" */
.pwa-known{ background:rgba(0,113,227,.1) !important; border:1px solid rgba(0,113,227,.16) !important; color:var(--acc-ink) !important; border-radius:16px; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.pwa-known button{ color:var(--acc) !important; }

/* Botón: asistente paso a paso */
.pwa-chat-cta{ display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:16px; background:linear-gradient(180deg,var(--acc2),var(--acc)); color:#fff !important; font-weight:700; font-size:19px; padding:16px 24px; border-radius:980px; text-decoration:none; box-shadow:var(--hi),0 12px 26px rgba(0,113,227,.3); transition:transform .16s ease, filter .16s ease; }
.pwa-chat-cta span{ font-weight:500; font-size:14px; color:rgba(255,255,255,.9); }
.pwa-chat-cta:hover{ filter:brightness(1.05); transform:translateY(-1px); }

@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }

/* ===== MODO OSCURO (auto o manual) — activado por data-theme="dark" en <html> ===== */
:root[data-theme="dark"]{
  --pwa-ink:#f5f5f7; --pwa-muted:#a1a1a6;
  --acc:#0a84ff; --acc2:#409cff; --acc-ink:#7cbcff;
  --glass:rgba(30,30,38,.56); --glass-strong:rgba(36,36,44,.72); --stroke:rgba(255,255,255,.12);
  --hi:inset 0 1px 0 rgba(255,255,255,.12);
  --shadow:0 16px 42px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.4);
}
:root[data-theme="dark"] .public-app-body{
  color:var(--pwa-ink) !important;
  background:
    radial-gradient(1200px 820px at 8% -12%, rgba(38,86,190,.40), transparent 60%),
    radial-gradient(1000px 720px at 104% -4%, rgba(110,70,190,.34), transparent 56%),
    radial-gradient(1000px 900px at 50% 118%, rgba(20,120,118,.30), transparent 58%),
    linear-gradient(180deg,#0b0c11 0%,#101219 60%,#0c0e13 100%) !important;
}
:root[data-theme="dark"] .pwa-hero>div:first-child:after,:root[data-theme="dark"] .pwa-panel:after{ background:linear-gradient(180deg,rgba(255,255,255,.08),transparent) !important; }
:root[data-theme="dark"] .pwa-hero h1{ color:var(--pwa-ink) !important; }
:root[data-theme="dark"] .pwa-hero p{ color:#c7c7cc !important; }
:root[data-theme="dark"] .pwa-admin-link{ background:rgba(255,255,255,.08) !important; color:#e7e7ea !important; }
:root[data-theme="dark"] .pwa-steps strong{ color:var(--pwa-ink); }
:root[data-theme="dark"] .pwa-section-head h2,:root[data-theme="dark"] .pwa-reserve-panel h3{ color:var(--pwa-ink) !important; }
:root[data-theme="dark"] .pwa-day{ background:rgba(255,255,255,.06) !important; color:#e7e7ea !important; border-color:rgba(255,255,255,.10) !important; }
:root[data-theme="dark"] .pwa-day.mass-free{ background:rgba(52,199,89,.24) !important; color:#5fd98a !important; }
:root[data-theme="dark"] .pwa-day.mass-partial{ background:rgba(10,132,255,.26) !important; color:#7cbcff !important; }
:root[data-theme="dark"] .pwa-day.mass-full{ background:rgba(255,69,58,.24) !important; color:#ff8078 !important; }
:root[data-theme="dark"] .pwa-day.mass-community,:root[data-theme="dark"] .pwa-day.mass-muted{ background:rgba(180,140,90,.22) !important; color:#d0aa7c !important; }
:root[data-theme="dark"] .pwa-weekdays span{ color:#8e8e93 !important; }
:root[data-theme="dark"] .pwa-field label{ color:#c7c7cc !important; }
:root[data-theme="dark"] .pwa-field input,:root[data-theme="dark"] .pwa-field select,:root[data-theme="dark"] .pwa-field textarea{ background:rgba(255,255,255,.06) !important; border-color:rgba(255,255,255,.14) !important; color:var(--pwa-ink) !important; box-shadow:inset 0 1px 2px rgba(0,0,0,.25) !important; }
:root[data-theme="dark"] .pwa-field input:focus,:root[data-theme="dark"] .pwa-field select:focus,:root[data-theme="dark"] .pwa-field textarea:focus{ background:rgba(255,255,255,.10) !important; border-color:var(--acc) !important; box-shadow:0 0 0 4px rgba(10,132,255,.28) !important; }
:root[data-theme="dark"] .pwa-field input::placeholder,:root[data-theme="dark"] .pwa-field textarea::placeholder{ color:#8e8e93; }
:root[data-theme="dark"] .pwa-selected-slot strong{ color:var(--pwa-ink) !important; }
:root[data-theme="dark"] .pwa-selected-slot small{ color:var(--pwa-muted) !important; }
:root[data-theme="dark"] .pwa-help{ color:var(--pwa-muted) !important; }
:root[data-theme="dark"] .pwa-known{ background:rgba(10,132,255,.16) !important; border-color:rgba(10,132,255,.28) !important; color:#9ecbff !important; }
:root[data-theme="dark"] .pwa-toast strong{ color:var(--pwa-ink) !important; }
:root[data-theme="dark"] .pwa-toast p{ color:#c7c7cc !important; }
:root[data-theme="dark"] .pwa-toast small{ color:#e7e7ea !important; }
:root[data-theme="dark"] .pwa-empty{ color:#a1a1a6 !important; }
:root[data-theme="dark"] .pwa-empty strong{ color:#e7e7ea !important; }

/* Botón de tema en la cabecera pública */
.theme-toggle{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; border:1px solid var(--stroke); background:var(--glass); -webkit-backdrop-filter:blur(20px) saturate(180%); backdrop-filter:blur(20px) saturate(180%); color:var(--pwa-ink); font-family:inherit; font-size:14px; font-weight:600; padding:9px 14px; border-radius:980px; box-shadow:var(--hi); line-height:1; white-space:nowrap; }
.theme-toggle .tt-ico{ font-size:16px; }
