:root{--bg:#f3f4f6;--card:#ffffff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--accent:#1f4ed8;--input-bg:#ffffff;--btn-bg:#ffffff}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0b1220;
    --card:#111827;
    --text:#e5e7eb;
    --muted:#9ca3af;
    --border:#1f2937;
    --accent:#38bdf8;
    --input-bg:#0f172a;
    --btn-bg:#1f2937;
  }
}
html[data-theme="light"],body[data-theme="light"]{
  --bg:#f3f4f6;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --border:#e5e7eb;
  --accent:#1f4ed8;
  --input-bg:#ffffff;
  --btn-bg:#ffffff;
}
html[data-theme="dark"],body[data-theme="dark"]{
  --bg:#0b1220;
  --card:#111827;
  --text:#e5e7eb;
  --muted:#94a3b8;
  --muted-on-paper:#374151;
  --paper-text:#111827;
  --border:#1f2937;
  --accent:#38bdf8;
  --input-bg:#0f172a;
  --btn-bg:#1f2937;
}

*{box-sizing:border-box}html,body{margin:0;padding:0}
html{scrollbar-gutter:stable}
body{font-family:Segoe UI,system-ui,Roboto,Arial;background:var(--bg);color:var(--text)}
.client-suggest-wrap{position:relative}
.client-suggest-list{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;
  display:none;margin:0;overflow-anchor:none;
  background:#fff;border:1px solid var(--border);border-radius:12px;
  box-shadow:0 10px 24px rgba(0,0,0,.12);max-height:240px;overflow:auto;
}
.client-suggest-list.is-open,
.client-suggest-list:not([hidden]){display:block}
.header{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}
.wrap{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.wrap.header-3{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.brand{display:inline-flex;align-items:center;gap:10px;position:relative;isolation:isolate;text-decoration:none}
.brand img{height:72px;position:relative;z-index:1;display:block}
.brand-left{justify-self:start}
.nav{justify-self:end;display:flex;align-items:center;gap:10px;flex-wrap:wrap}

@media (max-width:640px){
  main{padding:0 12px;margin:14px auto}
  .login-card{margin:18px auto}
  input,select,textarea{font-size:16px}
}

main{max-width:1100px;margin:22px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.grid{display:grid;gap:12px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}
h2{margin:6px 0 12px}label{display:block;margin:10px 0 6px;font-weight:600}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text)}
textarea{resize:vertical}
.btn{padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--btn-bg);color:var(--text);cursor:pointer;font-weight:600}
.btn .btn-icon{margin-right:6px;display:inline-flex;align-items:center;}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.whatsapp{background:#25D366;border-color:#25D366;color:#fff}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}

.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.12)}

.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:var(--input-bg)}
.footer{margin-top:20px;text-align:center;color:var(--muted);font-size:12px}
.footer strong{font-weight:600}
.fh-bar{display:flex;gap:16px;align-items:center;background:var(--input-bg);border:1px solid var(--border);padding:8px 12px;border-radius:10px;font-size:.95rem;margin-bottom:12px}
.center{text-align:center}.small{font-size:12px;color:var(--muted)}.red{color:#ef4444}
.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start}
.login-card{max-width:420px;margin:36px auto}
.login-brand{display:flex;align-items:center;gap:10px;justify-content:center;margin:12px 0;position:relative;isolation:isolate}
.login-brand img{height:56px;position:relative;z-index:1;display:block}
.login-topbar .brand img{height:52px}
.login-page .login-topbar .nav{justify-content:flex-end}

/* Halo del logo solo en modo nocturno (manual o auto de noche) */
html[data-theme="dark"] .brand::before,
body[data-theme="dark"] .brand::before,
html[data-theme="dark"] .login-brand::before,
body[data-theme="dark"] .login-brand::before,
html[data-theme="dark"] .hc-logo-glow::before,
body[data-theme="dark"] .hc-logo-glow::before{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:140%; height:140%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 45%,
      rgba(255,255,255,.55) 0%,
      rgba(255,255,255,.22) 18%,
      rgba(56,189,248,.28) 36%,
      rgba(232,48,9,.18) 52%,
      transparent 70%);
  filter:blur(10px);
  z-index:0;
  pointer-events:none;
  animation:hc-logo-aura 2.6s ease-in-out infinite;
}
html[data-theme="dark"] .brand::after,
body[data-theme="dark"] .brand::after,
html[data-theme="dark"] .login-brand::after,
body[data-theme="dark"] .login-brand::after,
html[data-theme="dark"] .hc-logo-glow::after,
body[data-theme="dark"] .hc-logo-glow::after{
  content:"✨";
  position:absolute;
  right:-6px; top:-4px;
  font-size:14px;
  z-index:2;
  pointer-events:none;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.8));
  animation:hc-logo-spark 1.8s ease-in-out infinite;
}
html[data-theme="dark"] .brand img,
body[data-theme="dark"] .brand img,
html[data-theme="dark"] .login-brand img,
body[data-theme="dark"] .login-brand img,
html[data-theme="dark"] .hc-logo-glow img,
body[data-theme="dark"] .hc-logo-glow img{
  filter:
    drop-shadow(0 0 4px rgba(255,255,255,.75))
    drop-shadow(0 0 10px rgba(56,189,248,.55))
    drop-shadow(0 0 18px rgba(232,48,9,.35));
  animation:hc-logo-shine 3s ease-in-out infinite;
}
@keyframes hc-logo-aura{
  0%,100%{ opacity:.55; transform:translate(-50%,-50%) scale(.9); }
  50%{ opacity:1; transform:translate(-50%,-50%) scale(1.12); }
}
@keyframes hc-logo-shine{
  0%,100%{
    filter:
      drop-shadow(0 0 3px rgba(255,255,255,.55))
      drop-shadow(0 0 8px rgba(56,189,248,.4))
      drop-shadow(0 0 14px rgba(232,48,9,.25));
  }
  50%{
    filter:
      drop-shadow(0 0 7px rgba(255,255,255,.9))
      drop-shadow(0 0 16px rgba(56,189,248,.7))
      drop-shadow(0 0 26px rgba(232,48,9,.45));
  }
}
@keyframes hc-logo-spark{
  0%,100%{ opacity:.35; transform:translateY(0) rotate(-8deg) scale(.85); }
  50%{ opacity:1; transform:translateY(-3px) rotate(10deg) scale(1.15); }
}
@media (prefers-reduced-motion: reduce){
  html[data-theme="dark"] .brand::before,
  body[data-theme="dark"] .brand::before,
  html[data-theme="dark"] .login-brand::before,
  body[data-theme="dark"] .login-brand::before,
  html[data-theme="dark"] .hc-logo-glow::before,
  body[data-theme="dark"] .hc-logo-glow::before,
  html[data-theme="dark"] .brand::after,
  body[data-theme="dark"] .brand::after,
  html[data-theme="dark"] .login-brand::after,
  body[data-theme="dark"] .login-brand::after,
  html[data-theme="dark"] .hc-logo-glow::after,
  body[data-theme="dark"] .hc-logo-glow::after,
  html[data-theme="dark"] .brand img,
  body[data-theme="dark"] .brand img,
  html[data-theme="dark"] .login-brand img,
  body[data-theme="dark"] .login-brand img,
  html[data-theme="dark"] .hc-logo-glow img,
  body[data-theme="dark"] .hc-logo-glow img{
    animation:none !important;
  }
}

/* Selector de tema (login) */
.theme-picker{margin:14px 0 6px}
.theme-picker-label{font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.theme-opt{margin:0;cursor:pointer}
.theme-opt input{position:absolute;opacity:0;pointer-events:none}
.theme-opt-face{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  border:1px solid var(--border);border-radius:12px;padding:10px 6px;background:var(--input-bg);
  transition:border-color .12s ease, background .12s ease, transform .12s ease;
  min-height:72px;
}
.theme-opt-icon{font-size:18px;line-height:1}
.theme-opt-text{font-size:12px;font-weight:700;text-align:center}
.theme-opt input:checked + .theme-opt-face{
  border-color:var(--accent);background:rgba(31,78,216,.08);
  box-shadow:0 0 0 2px rgba(31,78,216,.15);
}
html[data-theme="dark"] .theme-opt input:checked + .theme-opt-face,
body[data-theme="dark"] .theme-opt input:checked + .theme-opt-face{
  background:rgba(56,189,248,.12);
  box-shadow:0 0 0 2px rgba(56,189,248,.18);
}
.theme-opt:hover .theme-opt-face{transform:translateY(-1px)}
.theme-hint{margin:8px 0 0;text-align:center}

/* Mini selector en header */
.theme-mini{
  display:inline-flex;align-items:center;gap:2px;
  border:1px solid var(--border);border-radius:999px;padding:2px;
  background:var(--input-bg);
  position:relative;
  overflow:hidden;
}
.theme-mini-opt{margin:0;cursor:pointer;position:relative}
.theme-mini-opt input{
  position:absolute;inset:0;width:auto;height:auto;margin:0;padding:0;
  opacity:0;pointer-events:none;
}
.theme-mini-opt span{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:999px;font-size:13px;
}
.theme-mini-opt input:checked + span{
  background:var(--accent);color:#fff;
}

.nav a{color:var(--accent);font-weight:600}

/* v132: KPIs con fondo rojo y altura mínima garantizada */
.kpi{
  display:block;
  background:#E83009 !important;
  color:#fff !important;
  border-radius:12px;
  padding:12px;
  min-height:90px;
  box-shadow:0 4px 18px rgba(0,0,0,.05);
  text-decoration:none;
  transition:transform .08s ease, box-shadow .08s ease;
}
.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.kpi > div:first-child{font-weight:700;margin-bottom:6px}
.kpi-number{font-size:22px;font-weight:800;line-height:1.2;}

.grid{display:grid;gap:12px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}

.table td.actions{display:flex;gap:8px;align-items:center;white-space:nowrap}

.btn.whatsapp{background:#25D366;border-color:#25D366;color:#fff}
.table td.actions{display:flex;gap:8px;align-items:center;white-space:nowrap}

/* Nocturno: grises más oscuros solo sobre paneles claros (fondo blanco fijo) */
html[data-theme="dark"] .us-card,
body[data-theme="dark"] .us-card,
html[data-theme="dark"] .us-stat,
body[data-theme="dark"] .us-stat,
html[data-theme="dark"] .oh-card,
body[data-theme="dark"] .oh-card,
html[data-theme="dark"] .oh-search,
body[data-theme="dark"] .oh-search,
html[data-theme="dark"] .os-card,
body[data-theme="dark"] .os-card,
html[data-theme="dark"] .os-search,
body[data-theme="dark"] .os-search,
html[data-theme="dark"] .stu-card,
body[data-theme="dark"] .stu-card,
html[data-theme="dark"] .stu-chip,
body[data-theme="dark"] .stu-chip,
html[data-theme="dark"] .ce-panel,
body[data-theme="dark"] .ce-panel,
html[data-theme="dark"] .ce-search,
body[data-theme="dark"] .ce-search,
html[data-theme="dark"] .ce-item,
body[data-theme="dark"] .ce-item,
html[data-theme="dark"] .ce-hist-item,
body[data-theme="dark"] .ce-hist-item,
html[data-theme="dark"] .ce-form,
body[data-theme="dark"] .ce-form,
html[data-theme="dark"] .new-ods-section,
body[data-theme="dark"] .new-ods-section,
html[data-theme="dark"] .dash-welcome,
body[data-theme="dark"] .dash-welcome{
  color:#111827;
}
html[data-theme="dark"] .us-user,
body[data-theme="dark"] .us-user,
html[data-theme="dark"] .us-meta,
body[data-theme="dark"] .us-meta,
html[data-theme="dark"] .us-stat-lab,
body[data-theme="dark"] .us-stat-lab,
html[data-theme="dark"] .oh-equip,
body[data-theme="dark"] .oh-equip,
html[data-theme="dark"] .oh-date,
body[data-theme="dark"] .oh-date,
html[data-theme="dark"] .oh-details span,
body[data-theme="dark"] .oh-details span,
html[data-theme="dark"] .oh-details em,
body[data-theme="dark"] .oh-details em,
html[data-theme="dark"] .oh-count,
body[data-theme="dark"] .oh-count,
html[data-theme="dark"] .os-equip,
body[data-theme="dark"] .os-equip,
html[data-theme="dark"] .os-date,
body[data-theme="dark"] .os-date,
html[data-theme="dark"] .os-count,
body[data-theme="dark"] .os-count,
html[data-theme="dark"] .stu-equip,
body[data-theme="dark"] .stu-equip,
html[data-theme="dark"] .stu-date,
body[data-theme="dark"] .stu-date,
html[data-theme="dark"] .stu-label,
body[data-theme="dark"] .stu-label,
html[data-theme="dark"] .ce-item-meta,
body[data-theme="dark"] .ce-item-meta,
html[data-theme="dark"] .ce-count,
body[data-theme="dark"] .ce-count,
html[data-theme="dark"] .ce-hist-date,
body[data-theme="dark"] .ce-hist-date,
html[data-theme="dark"] .ce-placeholder,
body[data-theme="dark"] .ce-placeholder,
html[data-theme="dark"] .ce-empty,
body[data-theme="dark"] .ce-empty,
html[data-theme="dark"] .oh-empty,
body[data-theme="dark"] .oh-empty,
html[data-theme="dark"] .os-empty,
body[data-theme="dark"] .os-empty,
html[data-theme="dark"] .us-empty,
body[data-theme="dark"] .us-empty,
html[data-theme="dark"] .stu-empty,
body[data-theme="dark"] .stu-empty,
html[data-theme="dark"] .sec-head p,
body[data-theme="dark"] .sec-head p,
html[data-theme="dark"] .dash-hello-sub,
body[data-theme="dark"] .dash-hello-sub{
  color:#374151 !important;
}
/* Formularios .card en nocturno: texto claro sobre fondo oscuro del tema */
html[data-theme="dark"] .card,
body[data-theme="dark"] .card,
html[data-theme="dark"] .login-card,
body[data-theme="dark"] .login-card,
html[data-theme="dark"] .user-form-card,
body[data-theme="dark"] .user-form-card{
  color:var(--text);
}
html[data-theme="dark"] .card label,
body[data-theme="dark"] .card label,
html[data-theme="dark"] .card h2,
body[data-theme="dark"] .card h2,
html[data-theme="dark"] .card .small,
body[data-theme="dark"] .card .small,
html[data-theme="dark"] .user-form-card label,
body[data-theme="dark"] .user-form-card label,
html[data-theme="dark"] .user-form-card h2,
body[data-theme="dark"] .user-form-card h2,
html[data-theme="dark"] .user-form-card .small,
body[data-theme="dark"] .user-form-card .small,
html[data-theme="dark"] .user-form-card .hint,
body[data-theme="dark"] .user-form-card .hint{
  color:var(--text) !important;
}
/* Nueva ODS: paneles blancos → etiquetas oscuras (después de .card label para ganar) */
html[data-theme="dark"] .card .new-ods-section label,
body[data-theme="dark"] .card .new-ods-section label,
html[data-theme="dark"] .card .new-ods-section h3,
body[data-theme="dark"] .card .new-ods-section h3,
html[data-theme="dark"] .card .new-ods-section .cond-q,
body[data-theme="dark"] .card .new-ods-section .cond-q,
html[data-theme="dark"] .card .new-ods-section .acc-item,
body[data-theme="dark"] .card .new-ods-section .acc-item,
html[data-theme="dark"] .card .new-ods-section .cond-radio,
body[data-theme="dark"] .card .new-ods-section .cond-radio{
  color:var(--paper-text, #111827) !important;
}
html[data-theme="dark"] .card .new-ods-section .sec-head p,
body[data-theme="dark"] .card .new-ods-section .sec-head p{
  color:var(--muted-on-paper, #374151) !important;
}
html[data-theme="dark"] .card .new-ods-section .acc-item:has(input:checked),
body[data-theme="dark"] .card .new-ods-section .acc-item:has(input:checked){
  color:#115e59 !important;
}
html[data-theme="dark"] .card .new-ods-section .cond-box .acc-item:has(input:checked),
body[data-theme="dark"] .card .new-ods-section .cond-box .acc-item:has(input:checked){
  color:#9a3412 !important;
}
html[data-theme="dark"] .card .new-ods-section .cond-title,
body[data-theme="dark"] .card .new-ods-section .cond-title,
html[data-theme="dark"] .card .new-ods-section .cond-help,
body[data-theme="dark"] .card .new-ods-section .cond-help{
  color:#9a3412 !important;
}
/* Panel bienvenida (blanco): título/indicaciones oscuras en nocturno */
html[data-theme="dark"] .card .dash-welcome,
body[data-theme="dark"] .card .dash-welcome,
html[data-theme="dark"] .card .dash-welcome h2,
body[data-theme="dark"] .card .dash-welcome h2,
html[data-theme="dark"] .card .dash-welcome .dash-hello-title,
body[data-theme="dark"] .card .dash-welcome .dash-hello-title{
  color:var(--paper-text, #111827) !important;
}
html[data-theme="dark"] .card .dash-welcome .dash-hello-sub,
body[data-theme="dark"] .card .dash-welcome .dash-hello-sub{
  color:var(--muted-on-paper, #374151) !important;
}
html[data-theme="dark"] .card .hint,
body[data-theme="dark"] .card .hint,
html[data-theme="dark"] .user-form-card .hint,
body[data-theme="dark"] .user-form-card .hint{
  color:var(--muted) !important;
}
/* Cabecera oscura: mantener grises claros ahí */
html[data-theme="dark"] .header .small,
body[data-theme="dark"] .header .small,
html[data-theme="dark"] .login-topbar .small,
body[data-theme="dark"] .login-topbar .small{
  color:#94a3b8 !important;
}

/* Agenda CCTV: en stylesheet (head) para no pintar sin formato al recargar */
.cctv-page{ max-width:100%; overflow-anchor:none; }
.cctv-topbar{ display:flex; justify-content:flex-end; gap:8px; margin-bottom:10px; }
.cctv-hero{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding:20px 22px; border-radius:18px; margin:4px 0 14px; color:#fff;
  background:linear-gradient(135deg,#134e4a 0%, #0f766e 55%, #14b8a6 100%);
  box-shadow:0 12px 28px rgba(15,118,110,.22);
}
.cctv-kicker{ font-size:12px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; opacity:.9; }
.cctv-title{ margin:6px 0 0; font-size:26px; font-weight:800; }
.cctv-desc{ margin:0; opacity:.95; font-size:14px; max-width:560px; }
.cctv-pager{
  display:flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:6px 6px 6px 6px;
}
.cctv-pager-arrow{
  width:34px; height:34px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none !important; font-size:22px; font-weight:700; line-height:1;
  color:#fff; background:rgba(255,255,255,.16); border:0;
}
.cctv-pager-arrow:hover{ background:rgba(255,255,255,.28); color:#fff; }
.cctv-pager-label{
  min-width:132px; text-align:center; font-size:15px; font-weight:800;
  text-transform:capitalize; color:#fff; padding:0 6px; white-space:nowrap;
}
.cctv-pager-today{
  text-decoration:none !important; font-size:12px; font-weight:800;
  color:#0f766e; background:#fff; border-radius:999px; padding:8px 12px;
}
.cctv-pager-today:hover{ background:#ecfeff; color:#115e59; }
.cctv-legend{ display:flex; gap:8px; flex-wrap:wrap; margin:0 0 12px; }
.cctv-legend .lg{ font-size:12px; font-weight:800; padding:6px 10px; border-radius:999px; border:1px solid #e5e7eb; background:#fff; }
.cctv-legend .lg-past{ background:#f1f5f9; color:#475569; }
.cctv-legend .lg-today{ background:#ccfbf1; color:#0f766e; }
.cctv-legend .lg-future{ background:#ffedd5; color:#9a3412; }
.cctv-legend .lg-off{ background:#e2e8f0; color:#64748b; }
.cctv-filters{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.cctv-f{ text-decoration:none; font-weight:800; padding:8px 14px; border-radius:999px; background:#e2e8f0; color:#0f172a; }
.cctv-f.is-on{ background:#0f766e; color:#fff; }
.cctv-kpis{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.cctv-kpi{ background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:12px; text-align:center; text-decoration:none; color:inherit; display:block; }
a.cctv-kpi:hover{ transform:translateY(-1px); box-shadow:0 8px 16px rgba(15,23,42,.08); }
.cctv-kpi strong{ display:block; font-size:22px; }
.cctv-kpi span{ font-size:12px; font-weight:700; color:#64748b; }
.k-wait strong{ color:#b45309; } .k-prog strong{ color:#0f766e; } .k-ok strong{ color:#15803d; }
.cctv-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.cctv-act{ text-decoration:none; color:#fff; font-weight:800; border-radius:12px; padding:12px 16px; }
.a-new{ background:linear-gradient(145deg,#0f766e,#14b8a6); }
.a-search{ background:linear-gradient(145deg,#1d4ed8,#60a5fa); }
.a-cli{ background:linear-gradient(145deg,#6d28d9,#a78bfa); }
.a-hist{ background:linear-gradient(145deg,#334155,#64748b); }
.a-tpl{ background:linear-gradient(145deg,#047857,#10b981); }
.cctv-board{ overflow:auto; background:#fff; border:1px solid #e5e7eb; border-radius:16px; }
.cctv-grid{ display:grid; }
.cctv-h,.cctv-time{ padding:8px; font-size:12px; font-weight:800; background:#f8fafc; border-bottom:1px solid #e5e7eb; border-right:1px solid #e5e7eb; text-align:center; }
.cctv-h.is-off,.cctv-cell.is-off,.cctv-md.is-off{ background:#e2e8f0; color:#94a3b8; }
.cctv-md.is-past,.cctv-h.is-past,.cctv-cell.is-past{ background:#f1f5f9; border-color:#cbd5e1; }
.cctv-md.is-today,.cctv-h.is-today,.cctv-cell.is-today{ background:#ecfeff; border-color:#5eead4; box-shadow:inset 0 0 0 2px #14b8a6; }
.cctv-md.is-future,.cctv-h.is-future,.cctv-cell.is-future{ background:#fff7ed; border-color:#fdba74; }
.cctv-daylink{ color:inherit; text-decoration:none; min-width:0; overflow:hidden; }
.cctv-count{ display:block; margin:8px 0 4px; font-size:11px; font-weight:800; color:#64748b; text-decoration:none; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cctv-count.has{ color:#7f1d1d; }
.cctv-n{
  display:inline-block; min-width:1.35em; padding:1px 6px; margin-right:2px;
  border-radius:999px; background:#dc2626; color:#fff;
  font-size:13px; font-weight:900; line-height:1.25; text-align:center;
}
.cctv-hoy{ display:inline-block; margin-left:4px; font-size:9px; font-style:normal; background:#0f766e; color:#fff; border-radius:999px; padding:1px 5px; vertical-align:middle; }
.cctv-pending{ background:#fff; border:1px solid #99f6e4; border-radius:16px; padding:16px; margin-bottom:12px; }
.cctv-pending h3{ margin:0 0 4px; }
.cctv-day-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.cctv-day-head .cctv-pending-hint{ margin-bottom:0; }
.cctv-pending-hint,.cctv-empty{ margin:0 0 12px; color:#64748b; font-size:13px; }
.cctv-st-wrap{ margin-top:4px; }
.cctv-post{ margin-top:8px; background:#f8fafc; border-radius:8px; padding:8px; }
.cctv-post[hidden]{ display:none !important; }
.cctv-post label{ display:block; font-size:11px; font-weight:800; margin-bottom:4px; }
.cctv-allday-mini{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; white-space:nowrap; }
.cctv-allday-mini input{ width:auto; }
.cctv-flash-err{ margin:0 0 12px; padding:10px 12px; border-radius:12px; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; font-weight:700; }
.cctv-flash-ok{ margin:0 0 12px; padding:10px 12px; border-radius:12px; background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; font-weight:700; }
.cctv-cli-search{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:12px 14px; margin:0 0 12px; }
.cctv-cli-search label{ display:block; font-size:11px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.cctv-cli-search-row{ display:flex; gap:8px; flex-wrap:wrap; }
.cctv-cli-search-row input{ flex:1; min-width:180px; }
.cctv-cli-layout{ display:grid; grid-template-columns:1fr; gap:12px; align-items:start; }
.cctv-cli-layout.is-open{ grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr); }
.cctv-cli-dir,.cctv-cli-side{ background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:14px; }
.cctv-cli-dir-h,.cctv-cli-side-h{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:12px; }
.cctv-cli-dir-h h3,.cctv-cli-side-h h3{ margin:0; font-size:16px; }
.cctv-cli-dir-h span{ font-size:12px; font-weight:700; color:#64748b; }
.cctv-cli-card{
  display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;
  border:1px solid #e5e7eb; border-radius:12px; padding:12px; margin:0 0 8px;
}
.cctv-cli-card.is-on{ border-color:#14b8a6; background:#f0fdfa; }
.cctv-cli-card strong{ display:block; font-size:15px; }
.cctv-cli-card p{ margin:4px 0 0; font-size:13px; color:#64748b; }
.cctv-cli-card-act{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.cctv-cli-card-act form{ margin:0; }
.cctv-cli-del{
  display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px;
  font-size:11px; font-weight:800; border:1px solid #fecaca; background:#fef2f2; color:#991b1b; cursor:pointer;
}
.cctv-cli-form label{ display:block; font-size:12px; font-weight:800; margin:0 0 4px; }
.cctv-cli-form input{ width:100%; margin-bottom:10px; }
.cctv-cli-form .btn{ margin-right:8px; margin-top:4px; }
.cctv-cli-hint{ margin:0 0 12px; color:#64748b; font-size:13px; }
.cctv-tpl-form{ display:grid; gap:12px; }
.cctv-tpl-form textarea{ width:100%; min-height:120px; resize:vertical; }
.cctv-search-grid{ display:grid; grid-template-columns:minmax(0,1.4fr) 180px auto; gap:10px; align-items:end; }
.cctv-search-grid label{ display:block; font-size:11px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.cctv-search-grid input,.cctv-search-grid select{ width:100%; }
.cctv-search-count{ margin:0 0 10px; font-size:13px; font-weight:700; color:#64748b; }
@media (max-width:700px){
  .cctv-search-grid{ grid-template-columns:1fr; }
}
@media (max-width:900px){
  .cctv-cli-layout{ grid-template-columns:1fr; }
}
.cctv-hcount{ font-size:11px; font-weight:700; color:#0f766e; }
.cctv-hcount.has{ color:#7f1d1d; }
.cctv-cell{ min-height:88px; border-bottom:1px solid #e5e7eb; border-right:1px solid #e5e7eb; padding:6px; position:relative; }
.cctv-add{ position:absolute; right:4px; top:4px; width:22px; height:22px; border-radius:6px; text-decoration:none; color:#0f766e; font-weight:800; display:flex; align-items:center; justify-content:center; background:#ccfbf1; }
.cctv-add.in{ position:static; width:auto; height:auto; padding:2px 8px; font-size:11px; margin:0; display:inline-flex; }
.cctv-card{ background:#fff; border:1px solid #99f6e4; border-radius:10px; padding:6px 8px; margin:4px 0; font-size:12px; }
.cctv-card-t{ font-weight:800; color:#0f766e; }
.cctv-card-n{ font-weight:700; }
.cctv-card-a{ color:#64748b; font-size:11px; }
.cctv-quote-link{ display:inline-block; margin-top:6px; margin-right:8px; font-size:11px; font-weight:800; color:#1d4ed8; text-decoration:none; }
.cctv-card-tools{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; align-items:center; }
.cctv-send,.cctv-hist{
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:3px 8px; border-radius:999px; font-size:11px; font-weight:800;
  text-decoration:none; line-height:1.2; border:1px solid transparent;
}
.cctv-wa-ico{ width:13px; height:13px; display:block; flex:0 0 auto; }
.cctv-unit-gps{ margin-top:8px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:10px; padding:8px; }
.cctv-unit-gps label{ display:block; font-size:11px; font-weight:800; margin-bottom:4px; }
.cctv-unit-gps input{ width:100%; margin-bottom:6px; }
.cctv-unit-gps-err{ margin:0 0 6px; font-size:12px; font-weight:700; color:#991b1b; }
.cctv-unit-gps[hidden]{ display:none !important; }
.cctv-send{ background:#ecfdf5; color:#047857; border-color:#a7f3d0; }
.cctv-send-eq{ background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
.cctv-send:hover{ background:#d1fae5; }
.cctv-send-eq:hover{ background:#dbeafe; }
.cctv-hist{ background:#f1f5f9; color:#334155; border-color:#e2e8f0; }
.cctv-hist:hover{ background:#e2e8f0; }
.st-en_espera,.st-en_camino{ border-color:#fcd34d; } .st-en_espera .cctv-card-t,.st-en_camino .cctv-card-t{ color:#b45309; }
.st-realizada{ border-color:#86efac; opacity:.92; } .st-realizada .cctv-card-t{ color:#15803d; }
.st-cancelada{ border-color:#fecaca; opacity:.7; } .st-cancelada .cctv-card-t{ color:#b91c1c; }
.cctv-st select{ width:100%; margin-top:4px; font-size:11px; }
.cctv-tog{ font-size:11px; font-weight:800; margin-top:6px; white-space:nowrap; }
.is-off .cctv-tog{ background:#0f766e; color:#fff; }
.cctv-off-lab{ font-size:11px; font-weight:700; color:#64748b; margin-top:8px; line-height:1.25; overflow:hidden; }
.cctv-month{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.cctv-mh{ text-align:center; font-weight:800; font-size:12px; color:#64748b; }
.cctv-md{ min-height:108px; background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:7px; overflow:hidden; min-width:0; }
.cctv-md.empty{ background:transparent; border:0; min-height:0; }
.cctv-md-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:4px; min-width:0; }
.cctv-md-top form{ margin:0; flex:0 0 auto; }
.cctv-md.is-sun.is-off{ background:#e8eef4; }
.cctv-year{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.cctv-mini{ display:block; text-decoration:none; color:#0f172a; background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:12px; }
.cctv-mini strong{ display:block; margin-bottom:8px; text-transform:capitalize; }
.cctv-mini-g{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; font-size:11px; }
.cctv-mini-g b{ text-align:center; padding:4px 0; border-radius:4px; position:relative; font-weight:600; }
.cctv-mini-g b.is-past{ background:#e2e8f0; color:#64748b; }
.cctv-mini-g b.is-today{ background:#14b8a6; color:#fff; }
.cctv-mini-g b.is-future{ background:#ffedd5; color:#9a3412; }
.cctv-mini-g b.off{ color:#cbd5e1; background:#f8fafc; }
.cctv-mini-g em{ position:absolute; right:0; top:-1px; min-width:12px; padding:0 3px; border-radius:8px; font-size:9px; color:#fff; background:#dc2626; font-style:normal; font-weight:900; line-height:1.3; }
@media (max-width:900px){
  .cctv-kpis,.cctv-year{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cctv-month{ grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
  .cctv-md{ min-height:96px; padding:5px; }
  .cctv-title{ font-size:22px; }
}

.cctv-hist-meta{
  display:grid; grid-template-columns:1fr 1.4fr; gap:10px; margin:0 0 12px;
}
.cctv-hist-meta > div{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:12px 14px;
}
.cctv-hist-meta span{ display:block; font-size:11px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.cctv-hist-meta strong{ font-size:15px; color:#0f172a; }
.cctv-hist-empty{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:28px 20px; text-align:center;
}
.cctv-hist-empty p{ margin:0 0 12px; color:#64748b; font-weight:600; }
.cctv-hist-list{ display:flex; flex-direction:column; gap:10px; }
.cctv-hist-item{
  display:grid; grid-template-columns:108px minmax(0,1fr); gap:0;
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; overflow:hidden;
}
.cctv-hist-when{
  background:#f8fafc; padding:14px 12px; text-align:center; border-right:1px solid #e5e7eb;
  display:flex; flex-direction:column; justify-content:center; gap:4px;
}
.cctv-hist-when strong{ font-size:13px; color:#0f172a; }
.cctv-hist-when span{ font-size:12px; font-weight:700; color:#0f766e; }
.cctv-hist-body{ padding:14px 16px; min-width:0; }
.cctv-hist-line{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.cctv-hist-body h3{ margin:0; font-size:16px; }
.cctv-hist-body p{ margin:0 0 6px; font-size:13px; color:#475569; }
.cctv-hist-tech{ font-weight:700; color:#334155 !important; }
.cctv-hist-notes{ font-style:italic; }
.cctv-hist-badge{
  display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px;
  font-size:11px; font-weight:800; white-space:nowrap;
}
.b-programada{ background:#ccfbf1; color:#0f766e; }
.b-en_espera{ background:#ffedd5; color:#9a3412; }
.b-realizada{ background:#dcfce7; color:#166534; }
.b-cancelada{ background:#fee2e2; color:#991b1b; }
.cctv-hist-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.cctv-hist-links a{ font-size:12px; font-weight:800; color:#0f766e; text-decoration:none; }
.cctv-hist-links a:hover{ text-decoration:underline; }
.cctv-hist-item.st-realizada{ border-color:#bbf7d0; }
.cctv-hist-item.st-en_espera{ border-color:#fed7aa; }
.cctv-hist-item.st-cancelada{ border-color:#fecaca; opacity:.88; }
@media (max-width:700px){
  .cctv-hist-meta,.cctv-hist-item{ grid-template-columns:1fr; }
  .cctv-hist-when{ border-right:0; border-bottom:1px solid #e5e7eb; flex-direction:row; justify-content:space-between; }
  .cctv-pager-label{ font-size:14px; }
}

/* Nueva cita CCTV */
.cctv-new-form{ display:grid; gap:14px; }
.cctv-new-sec{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:18px 20px;
  overflow:visible; overflow-anchor:none;
}
.cctv-new-sec-h{ display:flex; align-items:baseline; gap:10px; margin:0 0 6px; }
.cctv-new-num{
  flex:0 0 auto; width:26px; height:26px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#0f766e; color:#fff; font-size:12px; font-weight:800;
}
.cctv-new-sec-h h3{ margin:0; font-size:16px; font-weight:800; color:#0f172a; }
.cctv-new-hint{ margin:0 0 14px; color:#64748b; font-size:13px; line-height:1.45; }
.cctv-new-grid{ display:grid; gap:12px; }
.cctv-new-2{ grid-template-columns:minmax(0,1.4fr) minmax(180px,.8fr); }
.cctv-new-3{ grid-template-columns:minmax(0,1.2fr) 160px 140px; }
.cctv-new-field label{
  display:block; font-size:11px; font-weight:800; color:#64748b;
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;
}
.cctv-new-field input,.cctv-new-field select,.cctv-new-field textarea{ width:100%; }
.cctv-new-field textarea{ resize:vertical; min-height:88px; }
.cctv-new-req{ color:#b45309; font-weight:800; }
.cctv-new-toggle{
  display:flex; align-items:flex-start; gap:10px; margin-top:4px;
  padding:12px 14px; border:1px solid #99f6e4; background:#f0fdfa; border-radius:12px;
}
.cctv-new-toggle input{ width:auto; margin-top:3px; }
.cctv-new-toggle strong{ display:block; font-size:14px; color:#134e4a; }
.cctv-new-toggle span{ display:block; font-size:12px; color:#64748b; font-weight:600; margin-top:2px; }
.cctv-new-actions{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  padding:4px 2px 8px;
}
.cctv-quote-row{ display:grid; grid-template-columns:minmax(0,1fr) 168px; gap:10px; align-items:end; }
.cctv-quote-go{ display:flex; gap:8px; min-height:42px; align-items:center; }
.cctv-quote-go .btn{ width:100%; white-space:nowrap; }
.cctv-quote-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; align-content:flex-start; }
.cctv-quote-chips:empty{ display:none; margin:0; }
.cctv-qchip{
  display:inline-flex; align-items:center; gap:8px; background:#ecfeff; border:1px solid #99f6e4;
  border-radius:999px; padding:6px 10px; font-size:12px; font-weight:700;
}
.cctv-qchip a{ color:#0f766e; text-decoration:none; }
.cctv-qchip button{ border:0; background:#0f766e; color:#fff; border-radius:999px; width:20px; height:20px; cursor:pointer; font-weight:800; line-height:1; }
.cctv-geo-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; min-height:42px; align-items:center; }
#address{ width:100%; resize:vertical; min-height:76px; }
.cctv-drop{
  margin-top:10px; padding:14px; border:1px dashed #94a3b8; border-radius:12px;
  background:#f8fafc; text-align:left;
}
.cctv-drop.is-over{ background:#f0fdfa; border-color:#0f766e; border-style:solid; }
.cctv-drop strong{ display:block; margin-bottom:4px; font-size:13px; color:#0f172a; }
.cctv-drop span{ display:block; font-size:12px; color:#64748b; margin-bottom:8px; }
.cctv-drop input{ width:100%; text-align:left; }
.cctv-quote-msg{ margin:6px 0 0; font-size:13px; font-weight:700; }
.cctv-quote-msg:empty{ display:none; margin:0; }
.cctv-quote-msg.is-ok{ color:#065f46; }
.cctv-quote-msg.is-err{ color:#991b1b; }
.client-suggest-wrap{ position:relative; }
.cctv-quote-sec .client-suggest-list,
#quote_suggest_list{
  position:absolute !important; left:0; right:0; top:calc(100% + 4px); z-index:80;
  display:none !important; margin:0; overflow-anchor:none;
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  box-shadow:0 10px 24px rgba(0,0,0,.12); max-height:240px; overflow:auto;
}
#quote_suggest_list.is-open{ display:block !important; }
.client-suggest-item{
  display:block; width:100%; text-align:left; border:0; background:#fff;
  padding:10px 12px; cursor:pointer; border-bottom:1px solid #f3f4f6;
}
.client-suggest-item:hover,.client-suggest-item.is-active{ background:#ecfeff; }
.client-suggest-name{ display:block; font-weight:800; font-size:14px; color:#111827; }
.client-suggest-meta{ display:block; font-size:12px; color:#4b5563; margin-top:2px; }
.client-autofill-msg{
  margin:10px 0 0; min-height:18px; padding:0; border:0; background:transparent;
  font-size:13px; font-weight:700; color:#065f46;
}
.client-autofill-msg:not([hidden]){
  padding:8px 10px; border-radius:10px; background:#ecfdf5; border:1px solid #a7f3d0;
}
@media (max-width:760px){
  .cctv-new-2,.cctv-new-3,.cctv-quote-row{ grid-template-columns:1fr; }
}

.cctv-od-back{
  position:fixed; inset:0; z-index:1200;
  background:rgba(15,23,42,.55);
  display:flex; align-items:center; justify-content:center;
  padding:18px; overflow:auto;
}
.cctv-od-back[hidden]{ display:none !important; }
.cctv-od-box{
  width:min(640px,100%); max-height:min(88vh,720px);
  display:flex; flex-direction:column;
  background:#fff; border-radius:18px;
  box-shadow:0 24px 48px rgba(15,23,42,.28);
}
.cctv-od-h{ padding:18px 20px 10px; border-bottom:1px solid #e5e7eb; }
.cctv-od-kicker{
  font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:#b45309;
}
.cctv-od-h h3{ margin:4px 0 6px; font-size:18px; color:#0f172a; }
.cctv-od-h p{ margin:0; font-size:13px; color:#64748b; line-height:1.45; }
.cctv-od-list{ padding:12px 16px; overflow:auto; display:flex; flex-direction:column; gap:10px; }
.cctv-od-item{
  border:1px solid #fed7aa; background:#fffbeb; border-radius:14px; padding:12px 14px;
}
.cctv-od-meta{ display:flex; flex-direction:column; gap:2px; margin-bottom:10px; }
.cctv-od-meta strong{ font-size:15px; color:#0f172a; }
.cctv-od-meta span{ font-size:13px; color:#475569; }
.cctv-od-meta em{ font-size:12px; font-style:normal; font-weight:800; color:#b45309; }
.cctv-od-acts{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.cctv-od-acts form{ margin:0; }
.cctv-od-post{ margin-top:10px; background:#fff; }
.cctv-od-foot{
  padding:12px 16px 16px; border-top:1px solid #e5e7eb;
  display:flex; justify-content:flex-end;
}

/* Apagado tipo TV CRT al cerrar sesión */
html.hc-crt-off,
html.hc-crt-off body{
  overflow:hidden !important;
  background:#000 !important;
}
html.hc-crt-off body{
  transform-origin:50% 50%;
  animation:hcCrtCollapse 1.15s cubic-bezier(.4,0,1,1) forwards;
  pointer-events:none;
}
html.hc-crt-off .header,
html.hc-crt-off .footer,
html.hc-crt-on .header,
html.hc-crt-on .footer{
  position:relative !important;
  top:auto !important;
  z-index:0 !important;
}
html.hc-crt-off::before{
  content:"";
  position:fixed; inset:0;
  z-index:2147483000;
  pointer-events:none;
  background:#fff;
  animation:hcCrtFlash .28s ease-out forwards;
}
html.hc-crt-off::after{
  content:"";
  position:fixed;
  left:50%; top:50%;
  width:10px; height:10px;
  margin:-5px 0 0 -5px;
  border-radius:50%;
  z-index:2147483647;
  pointer-events:none;
  background:#fff;
  box-shadow:
    0 0 8px 3px #fff,
    0 0 22px 10px rgba(186,230,255,.9),
    0 0 48px 18px rgba(125,211,252,.45);
  opacity:0;
  animation:hcCrtDot 1.85s ease-in forwards;
}
@keyframes hcCrtFlash{
  0%{ opacity:.85; }
  100%{ opacity:0; }
}
@keyframes hcCrtCollapse{
  0%{ transform:scale(1); filter:brightness(1.35) contrast(1.15) saturate(.9); }
  18%{ filter:brightness(2.1) contrast(1.35); }
  42%{ transform:scaleX(1.04) scaleY(.018); filter:brightness(3.2) contrast(1.6); }
  68%{ transform:scaleX(.04) scaleY(.018); filter:brightness(5); opacity:1; }
  100%{ transform:scale(0); filter:brightness(8); opacity:0; }
}
@keyframes hcCrtDot{
  0%,48%{ opacity:0; transform:scale(.2); }
  58%{ opacity:1; transform:scale(1.55); }
  78%{ opacity:1; transform:scale(.85); }
  100%{ opacity:0; transform:scale(.08); }
}
/* Transición al login: todo el frame (fondo + encabezado + formulario) a la vez */
html.hc-crt-on{
  background:#000 !important;
}
html.hc-crt-on body{
  background:#000 !important;
}
html.hc-crt-on body::after{
  content:"";
  position:fixed; inset:0;
  z-index:2147483647;
  pointer-events:none;
  background:#000;
}
html.hc-crt-on.hc-crt-fade,
html.hc-crt-on.hc-crt-fade body{
  background:var(--bg,#f6f7fb) !important;
}
html.hc-crt-on.hc-crt-fade body::after{
  animation:hcCrtLoginFade .75s linear forwards;
}
@keyframes hcCrtLoginFade{
  0%{ opacity:1; }
  100%{ opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  html.hc-crt-off body,
  html.hc-crt-off::before,
  html.hc-crt-off::after,
  html.hc-crt-on body::after{
    animation:none !important;
  }
}
