/* Sistema 4ta Fuerza — interfaz (usa los colores del tema; trae respaldos propios) */
.cfs{--_red:var(--red,#E61C1C);--_bg:var(--bg,#0A0A0A);--_s1:var(--surface,#1F1F1F);--_s2:var(--surface-2,#151515);--_s3:var(--surface-3,#262626);--_line:var(--line,#2E2C2C);--_h1:var(--hair,rgba(255,255,255,.07));--_h2:var(--hair-2,rgba(255,255,255,.16));--_fg:var(--fg,#fff);--_mu:var(--muted,#ccc);--_dim:var(--dim,#8E8A8A);--_ok:var(--ok,#3FBF74);--_warn:var(--warn,#F2A33A);--_crit:var(--crit,#FF4B3E);--_disp:var(--display,"Barlow Condensed","Arial Narrow",sans-serif);--_mono:var(--mono,"IBM Plex Mono",ui-monospace,monospace);--_r:var(--r,20px);--_ease:var(--ease,cubic-bezier(.2,.8,.2,1));color:var(--_fg);font-size:16px;line-height:1.55}
.cfs *,.cfs *::before,.cfs *::after{box-sizing:border-box}

/* Página contenedora del tema */
.cfs-page .page-title{display:none}
.cfs-page .entry{max-width:none}
.cfs-page .page-wrap{padding-top:clamp(20px,3vw,36px)}

/* Utilidades */
.cfs .num{font-family:var(--_mono);font-variant-numeric:tabular-nums}
.cfs .dim{color:var(--_dim)} .cfs .muted{color:var(--_mu)} .cfs .fg{color:var(--_fg)}
.cfs .small{font-size:.86rem} .cfs .c{text-align:center;justify-self:center}
.cfs .mt{margin-top:16px} .cfs .mt-s{margin-top:10px} .cfs .mb{margin-bottom:16px}
.cfs .stack{display:grid;gap:14px}
.cfs .row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.cfs .row-gap{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cfs .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.cfs .sep{border:0;border-top:1px solid var(--_line);margin:6px 0}
.cfs .crit-t{color:var(--_crit)}
.cfs .sel{user-select:all}
.cfs .cfs-h{font-family:var(--_disp);text-transform:uppercase;font-weight:800;font-size:clamp(1.9rem,4vw,2.6rem);line-height:1;margin:0}
.cfs h2,.cfs h3,.cfs h4{font-family:var(--_disp);text-transform:uppercase;line-height:1.05;margin:0;letter-spacing:.02em}
.cfs h3{font-size:1.3rem;font-weight:700}
.cfs h3.big{font-size:1.7rem;margin-top:4px}
.cfs .sub-h{font-size:1.05rem;color:var(--_mu);margin:22px 0 10px;letter-spacing:.08em}
.cfs .eyebrow{font-family:var(--_disp);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--_red);font-size:.85rem}
.cfs .eyebrow.sm{font-size:.74rem}
.cfs .cond{font-family:var(--_disp);font-size:1.3rem;letter-spacing:.06em;text-transform:uppercase}
.cfs .cfs-loading{padding:40px 0;text-align:center;color:var(--_dim)}
.cfs .spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:cfsspin .7s linear infinite}
@keyframes cfsspin{to{transform:rotate(360deg)}}

/* Botones (respaldo si el tema no los define) */
.cfs .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none;transition:transform .25s var(--_ease),box-shadow .25s var(--_ease),background .2s,border-color .2s;font-family:inherit}
.cfs .btn-red{background:var(--_red);color:#fff}
.cfs .btn-red:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(230,28,28,.65);color:#fff}
.cfs .btn-ghost{background:rgba(255,255,255,.06);color:var(--_fg);border:1px solid var(--_h2)}
.cfs .btn-ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.cfs .btn-sm{padding:8px 15px;font-size:.86rem}
.cfs .btn:disabled{opacity:.42;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.cfs .btn.armed{background:var(--_warn);color:#111;border-color:var(--_warn)}
.cfs .linkbtn{background:none;border:0;padding:0;color:var(--_mu);text-decoration:underline;text-underline-offset:3px;font-size:.9rem;cursor:pointer;font-family:inherit;text-align:left}
.cfs .linkbtn:hover{color:var(--_fg)}
.cfs .linkbtn.strong{color:var(--_fg);text-decoration:none;font-weight:600;font-size:1rem}
.cfs .linkbtn.strong:hover{color:var(--_red)}

/* Chips y avisos */
.cfs .chip{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.cfs .chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.cfs .chip.ok{color:var(--_ok);background:rgba(63,191,116,.1);border-color:rgba(63,191,116,.25)}
.cfs .chip.warn{color:var(--_warn);background:rgba(242,163,58,.1);border-color:rgba(242,163,58,.25)}
.cfs .chip.crit{color:var(--_crit);background:rgba(255,75,62,.1);border-color:rgba(255,75,62,.28)}
.cfs .chip.info{color:var(--_mu);background:var(--_s3);border-color:var(--_line)}
.cfs .banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:var(--_r);padding:16px 18px;margin-bottom:16px;border:1px solid}
.cfs .banner p{max-width:70ch;margin:0}
.cfs .banner.warn{background:rgba(242,163,58,.08);border-color:rgba(242,163,58,.4)}
.cfs .banner.crit{background:rgba(255,75,62,.08);border-color:rgba(255,75,62,.45)}
.cfs .banner.okb{background:rgba(63,191,116,.07);border-color:rgba(63,191,116,.4)}
.cfs .banner .bt{display:flex;gap:8px;flex-wrap:wrap}
.cfs .info-box{background:var(--_s2);border:1px solid var(--_line);border-radius:14px;padding:12px 14px;font-size:.92rem;color:var(--_mu)}
.cfs .info-box b{color:var(--_fg)}
.cfs .err{color:var(--_crit);font-size:.9rem;min-height:1.2em}
.cfs .ok-msg{color:var(--_ok);font-size:.9rem}
.cfs .fb{margin-top:10px;background:linear-gradient(90deg,rgba(230,28,28,.12),var(--_s2) 40%);border-radius:14px;padding:10px 12px;font-size:.92rem;color:var(--_mu)}
.cfs .fb b{color:var(--_fg);font-family:var(--_disp);letter-spacing:.06em;text-transform:uppercase;font-size:.88rem}
.cfs .fb a{color:var(--_fg)}

/* Formularios */
.cfs .field{display:grid;gap:6px;min-width:0}
.cfs .field label{font-size:.78rem;color:var(--_dim);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.cfs .inp{background:var(--_s2);border:1px solid var(--_h2);border-radius:12px;padding:10px 12px;width:100%;color:var(--_fg);font:inherit;transition:border-color .2s,box-shadow .2s}
.cfs .inp:focus{border-color:var(--_red);box-shadow:0 0 0 4px rgba(230,28,28,.18);outline:0}
.cfs .inp:disabled{opacity:.6}
.cfs textarea.inp{min-height:84px;resize:vertical}
.cfs select.inp{appearance:auto}
.cfs .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end}
.cfs .check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--_mu)}
.cfs .check input,.cfs .opt input,.cfs .mini input{accent-color:var(--_red);width:18px;height:18px;margin-top:2px;flex:none}
.cfs .opt{display:flex;gap:10px;align-items:flex-start;background:var(--_s2);border:1px solid var(--_line);border-radius:14px;padding:12px;cursor:pointer;font-size:.95rem}
.cfs .opt:has(input:checked){border-color:var(--_red)}
.cfs .opt:has(input:disabled){opacity:.45;cursor:not-allowed}
.cfs .mini{font-size:.82rem;color:var(--_mu);display:inline-flex;gap:6px;align-items:center}
.cfs .mini input{width:16px;height:16px;margin:0}
.cfs .pin{font-family:var(--_mono);font-size:1.4rem;letter-spacing:.7em;text-align:center;padding-left:.7em}
.cfs .pin6{font-family:var(--_mono);font-size:1.4rem;letter-spacing:.5em;text-align:center;padding-left:.5em}
.cfs [hidden]{display:none!important}

/* Ingreso */
.cfs .login{min-height:60vh;display:grid;place-items:center;padding-block:24px}
.cfs .login-card{width:100%;max-width:420px;background:var(--_s1);border:1px solid var(--_h1);border-radius:24px;padding:30px;display:grid;gap:16px}
.cfs .login-card img{width:84px;justify-self:center}

/* Inscripción */
.cfs .insc{max-width:760px;margin:0 auto;display:grid;gap:18px}
.cfs .insc-head{display:grid;gap:16px}
.cfs .wz-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0}
.cfs .wz-steps li{flex:1;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--_dim);border-top:3px solid var(--_s3);padding-top:6px;min-width:0}
.cfs .wz-steps li.on{color:var(--_fg);border-color:var(--_red)}
.cfs .wz-steps li.done{border-color:#B31212;color:var(--_mu)}
.cfs .wz-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cfs .sum{display:grid}
.cfs .sumline{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--_line);padding:10px 0;flex-wrap:wrap}
.cfs .sumline.total{border-bottom:0;font-size:1.25rem}

/* Estructura de la aplicación */
.cfs .app{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}
.cfs .side{min-width:0;position:sticky;top:96px;background:var(--_s2);border:1px solid var(--_h1);border-radius:var(--_r);padding:20px 12px;display:flex;flex-direction:column;gap:18px}
.admin-bar .cfs .side{top:128px}
.cfs .who{display:flex;gap:10px;align-items:center;padding:0 6px}
.cfs .av{width:40px;height:40px;border-radius:50%;background:var(--_red);display:grid;place-items:center;font-family:var(--_disp);font-weight:800;font-size:1.1rem;flex:none;box-shadow:0 0 0 3px rgba(230,28,28,.2);text-transform:uppercase}
.cfs .who b{display:block;line-height:1.2}
.cfs .who span{font-size:.8rem;color:var(--_dim)}
.cfs .tabs{display:flex;flex-direction:column;gap:2px;min-width:0}
.cfs .tabs button{background:none;border:0;text-align:left;padding:10px 12px;border-radius:12px;font-family:var(--_disp);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:1.02rem;color:var(--_mu);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s,color .2s}
.cfs .tabs button:hover{background:var(--_s1);color:var(--_fg)}
.cfs .tabs button[aria-selected="true"]{background:rgba(230,28,28,.14);color:var(--_fg)}
.cfs .cnt{font-family:var(--_mono);font-size:.72rem;background:var(--_red);color:#fff;border-radius:999px;padding:1px 7px}
.cfs .side-foot{display:grid;gap:8px;padding:0 6px}
.cfs .main{min-width:0}
.cfs .page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.cfs .page-h h2{font-size:clamp(2rem,4vw,2.7rem);font-weight:800}
.cfs .page-h p{color:var(--_mu);margin:6px 0 0;max-width:70ch}
@media (max-width:860px){
  .cfs .app{grid-template-columns:minmax(0,1fr);gap:16px}
  .cfs .side{position:static;padding:14px 10px;gap:10px}
  .cfs .tabs{flex-direction:row;overflow-x:auto;scrollbar-width:none}
  .cfs .tabs::-webkit-scrollbar{display:none}
  .cfs .tabs button{flex:none;font-size:.95rem}
  .cfs .side-foot{display:flex;flex-wrap:wrap;gap:14px}
}

/* Tarjetas y grillas */
.cfs .card{background:var(--_s1);border:1px solid var(--_h1);border-radius:var(--_r);padding:20px;min-width:0}
.cfs .card-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.cfs .grid{display:grid;gap:16px;align-items:start}
.cfs .g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cfs .g-21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.cfs .g-al{grid-template-columns:minmax(0,1fr);align-items:start}
.cfs .al-tbl{min-width:560px}
@media (min-width:1180px){
  .cfs .g-al.has-sel{grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr)}
  .cfs .g-al.has-sel .cx{display:none}
  .cfs .g-al.has-sel .al-tbl{min-width:0}
  .cfs .g-al.has-sel .tbl-wrap{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}
}
.cfs .al-card{position:relative}
.cfs .al-close{position:absolute;top:14px;right:18px;text-decoration:none;font-size:.85rem}
.cfs .al-card > .card-h{padding-right:110px}
.cfs .form-row > .btn{justify-self:start}
@media (max-width:980px){.cfs .g-21{grid-template-columns:1fr}}
@media (max-width:640px){.cfs .g-2{grid-template-columns:1fr}}
.cfs .kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.cfs .kpis.k3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cfs .kpi{background:var(--_s1);border:1px solid var(--_h1);border-radius:var(--_r);padding:16px}
.cfs .kpi span{font-size:.74rem;color:var(--_dim);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.cfs .kpi b{display:block;font-family:var(--_disp);font-weight:800;font-size:clamp(1.5rem,2.1vw,2.2rem);line-height:1.05;margin-top:6px;overflow-wrap:anywhere}
.cfs .kpi{min-width:0}
.cfs .kpi small{font-size:.8rem;color:var(--_mu)}
.cfs .kpi.alert{border-color:rgba(255,75,62,.5)} .cfs .kpi.alert b{color:var(--_crit)}
.cfs .kpi.warnk{border-color:rgba(242,163,58,.45)} .cfs .kpi.warnk b{color:var(--_warn)}
@media (max-width:1100px){.cfs .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.cfs .kpis,.cfs .kpis.k3{grid-template-columns:1fr 1fr}}
.cfs .cfs-chart{width:100%;height:auto;display:block}

/* Listas */
.cfs .list{display:grid}
.cfs .li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--_line);flex-wrap:wrap}
.cfs .li:first-child{border-top:0}
.cfs .li.col{flex-direction:column;align-items:stretch;gap:4px}
.cfs .li .when{font-family:var(--_mono);font-size:.92rem}
.cfs .li .sub{font-size:.85rem;color:var(--_dim)}
.cfs .li-l{display:flex;align-items:center;gap:12px;min-width:0}
.cfs .act-t{font-family:var(--_mono);font-size:.78rem;color:var(--_dim);white-space:nowrap;min-width:72px}
.cfs .datebox{width:52px;text-align:center;background:var(--_s2);border:1px solid var(--_line);border-radius:14px;padding:4px 0;flex:none}
.cfs .datebox b{display:block;font-family:var(--_disp);font-size:1.5rem;font-weight:800;line-height:1}
.cfs .datebox span{font-size:.68rem;color:var(--_dim);text-transform:uppercase;letter-spacing:.1em}

/* Plan y cupos */
.cfs .cupos{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.cfs .ring{--p:60;width:128px;height:128px;border-radius:50%;background:conic-gradient(var(--_red) calc(var(--p)*1%),var(--_s3) 0);display:grid;place-items:center;flex:none;box-shadow:0 0 40px -12px rgba(230,28,28,.6)}
.cfs .ring > div{width:100px;height:100px;border-radius:50%;background:var(--_s1);display:grid;place-items:center;text-align:center}
.cfs .ring b{font-family:var(--_disp);font-size:2.6rem;font-weight:800;line-height:.9}
.cfs .ring .rin span{font-size:.72rem;color:var(--_dim);text-transform:uppercase;letter-spacing:.1em}
.cfs .plates{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap}
.cfs .plates i{width:14px;height:30px;border-radius:4px;background:var(--_s3);border:1px solid var(--_line)}
.cfs .plates i.on{background:var(--_red);border-color:var(--_red)}

/* Agenda */
.cfs .dayblk h4{font-size:1.05rem;letter-spacing:.1em;color:var(--_mu);margin:18px 0 8px}
.cfs .daycol{display:grid;gap:10px}
.cfs .cls-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--_s1);border:1px solid var(--_h1);border-radius:16px;padding:12px 14px;transition:transform .3s var(--_ease),border-color .3s}
.cfs .cls-row:hover{border-color:var(--_h2)}
.cfs .cls-row .t{font-family:var(--_mono);font-size:1.05rem;font-weight:600}
.cfs .cls-row.mine{border-color:var(--_red)}
.cfs .cls-row.ob{background:var(--_s2)}
.cfs .cls-row.sp{background:radial-gradient(120% 120% at 0 0,rgba(230,28,28,.12),transparent 60%),var(--_s1)}
@media (max-width:520px){.cfs .cls-row{grid-template-columns:60px minmax(0,1fr)}.cfs .cls-row > :last-child{grid-column:1/-1}}
.cfs .bar{display:block;height:6px;background:var(--_s3);border-radius:4px;overflow:hidden;margin-top:6px}
.cfs .bar i{display:block;height:100%;background:var(--_mu)}
.cfs .bar.full i{background:var(--_crit)}

/* Metas */
.cfs .mk-edit{align-items:flex-end;background:var(--_s2);border-radius:14px;padding:12px;border-top:0}
.cfs .goal{display:grid;gap:6px;padding:12px 0;border-top:1px solid var(--_line)}
.cfs .goal:first-child{border-top:0}
.cfs .goal-top{display:flex;justify-content:space-between;gap:10px}
.cfs .goal .bar{height:8px}
.cfs .goal .bar i{background:var(--_red)}

/* Percepción */
.cfs .zone{display:grid;grid-template-columns:130px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--_line)}
.cfs .zone:first-child{border-top:0}
.cfs .zone .zn{font-weight:600}
.cfs .scale{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:3px}
.cfs .scale button{border:1px solid var(--_line);background:var(--_s2);border-radius:10px;height:34px;font-family:var(--_mono);font-size:.8rem;color:var(--_dim);padding:0;cursor:pointer;transition:transform .15s var(--_ease)}
.cfs .scale button:hover{transform:translateY(-2px)}
.cfs .scale button.on{color:#0A0A0A;font-weight:600;border-color:transparent}
.cfs .zone .val{font-family:var(--_disp);font-size:1.7rem;font-weight:800;text-align:right}
@media (max-width:620px){.cfs .zone{grid-template-columns:1fr 44px}.cfs .zone .scale{grid-column:1/-1;grid-row:2}.cfs .scale button{height:30px;font-size:.7rem}}
.cfs .scale-legend{display:flex;justify-content:space-between;font-size:.78rem;color:var(--_dim);margin-top:8px}
.cfs .perc-item{display:grid;gap:8px;padding:14px 0;border-top:1px solid var(--_line)}
.cfs .perc-item:first-child{border-top:0}
.cfs .zchips{display:flex;gap:6px;flex-wrap:wrap}
.cfs .zchip{border:1px solid;border-radius:999px;padding:3px 10px;font-size:.82rem}

/* Selector segmentado */
.cfs .seg{display:inline-flex;background:var(--_s2);border:1px solid var(--_h1);border-radius:999px;padding:4px;gap:2px;flex-wrap:wrap}
.cfs .seg button{background:none;border:0;border-radius:999px;padding:6px 13px;font-size:.85rem;color:var(--_mu);font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,color .2s}
.cfs .seg button[aria-pressed="true"]{background:var(--_s3);color:var(--_fg)}
.cfs .wrap-seg{border-radius:16px}

/* Tablas */
.cfs .tbl-wrap{overflow-x:auto}
.cfs table{width:100%;border-collapse:collapse;font-size:.92rem;margin:0}
.cfs th{text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--_dim);padding:8px 10px;border-bottom:1px solid var(--_line);white-space:nowrap;background:none}
.cfs td{padding:11px 10px;border-bottom:1px solid var(--_line);white-space:nowrap;background:none;color:var(--_fg)}
.cfs td.n{font-family:var(--_mono);font-variant-numeric:tabular-nums}
.cfs td.wrap-td{white-space:normal;min-width:180px;color:var(--_mu)}
.cfs tr.click{cursor:pointer}
.cfs tr.click:hover td{background:var(--_s2)}
.cfs tr.sel td{background:rgba(230,28,28,.1)}

/* Planificación */
.cfs .wk{display:grid;gap:10px;margin-top:16px}
.cfs .session{background:var(--_s1);border:1px solid var(--_h1);border-radius:var(--_r);overflow:hidden}
.cfs .session summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;flex-wrap:wrap}
.cfs .session summary::-webkit-details-marker{display:none}
.cfs .session summary h4{font-size:1.25rem}
.cfs .ex{display:grid;grid-template-columns:28px minmax(0,1fr) auto 88px;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--_line)}
.cfs .ex .rx{font-family:var(--_mono);font-size:.9rem;color:var(--_mu);white-space:nowrap}
.cfs .ex input[type=checkbox]{accent-color:var(--_red);width:18px;height:18px}
.cfs .ex .inp{padding:6px 8px;font-family:var(--_mono);font-size:.85rem}
@media (max-width:560px){.cfs .ex{grid-template-columns:28px minmax(0,1fr)}.cfs .ex .rx,.cfs .ex .inp{grid-column:2}}
.cfs .ses-ed{background:var(--_s2);border:1px solid var(--_line);border-radius:16px;padding:12px;display:grid;gap:10px;margin-top:10px}
.cfs code{font-family:var(--_mono);font-size:.85em;background:var(--_s3);padding:1px 6px;border-radius:6px}

/* Videos */
.cfs .vid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--_line)}
.cfs .vid:first-child{border-top:0}
.cfs .vplay{aspect-ratio:16/10;max-width:100%;border-radius:14px;background:#000;display:grid;place-items:center;align-content:center;gap:6px;overflow:hidden}
.cfs .vplay video{width:100%;height:100%;object-fit:contain;background:#000}
@media (max-width:560px){.cfs .vid{grid-template-columns:1fr}}
.cfs .drop{border:1.5px dashed #444;border-radius:var(--_r);padding:22px;text-align:center;color:var(--_mu);display:grid;gap:10px;justify-items:center}
.cfs .drop.over{border-color:var(--_red);background:rgba(230,28,28,.12)}
.cfs .progress{height:8px;background:var(--_s3);border-radius:999px;overflow:hidden;margin-top:12px}
.cfs .progress i{display:block;height:100%;width:0;background:var(--_red);transition:width .2s}

/* Calendario del coach */
.cfs .calw{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start;min-width:0}
.cfs .cday{background:var(--_s2);border:1px solid var(--_h1);border-radius:var(--_r);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.cfs .cday h4{font-size:1.05rem;letter-spacing:.08em;color:var(--_mu)}
.cfs .cday h4.today{color:var(--_red)}
.cfs .cev{text-align:left;width:100%;background:var(--_s1);border:1px solid var(--_line);border-radius:14px;padding:9px 10px;display:grid;gap:4px;cursor:pointer;color:var(--_fg);font-family:inherit;transition:transform .2s var(--_ease),border-color .2s}
.cfs .cev:hover{border-color:#555;transform:translateY(-2px)}
.cfs .cev[aria-pressed="true"]{border-color:var(--_red);box-shadow:inset 3px 0 0 var(--_red)}
.cfs .cev .t{font-family:var(--_mono);font-weight:600}
.cfs .cev .ttl{font-size:.82rem;color:var(--_mu)}
.cfs .cev .cnt2{font-family:var(--_mono);font-size:.78rem;color:var(--_dim)}
.cfs .cev.sp{background:rgba(230,28,28,.08)}
.cfs .cev.off{opacity:.55}
.cfs .cev.off .t{text-decoration:line-through}
.cfs .cob{font-size:.76rem;color:var(--_dim);font-family:var(--_mono);border:1px dashed var(--_line);border-radius:10px;padding:6px 8px}

/* Horarios */
.cfs .trow{display:grid;grid-template-columns:60px 110px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--_line)}
.cfs .trow:first-of-type{border-top:0}
.cfs .trow .dn{font-family:var(--_disp);font-weight:700;font-size:1.2rem;letter-spacing:.06em;text-transform:uppercase}
.cfs .trow.offd .dn{color:var(--_dim)}
.cfs .times{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cfs .tchip{display:inline-flex;align-items:center;gap:4px;background:var(--_red);color:#fff;border-radius:999px;padding:4px 4px 4px 10px;font-family:var(--_mono);font-size:.85rem}
.cfs .tchip button{background:rgba(0,0,0,.25);border:0;color:#fff;border-radius:999px;width:20px;height:20px;line-height:1;padding:0;cursor:pointer}
.cfs .times .inp{width:110px;padding:5px 8px;font-family:var(--_mono);font-size:.85rem}
@media (max-width:560px){.cfs .trow{grid-template-columns:60px minmax(0,1fr)}.cfs .trow .times{grid-column:1/-1}}

/* Páginas rápidas: asistencia y reserva */
.cfs .big-inp{font-size:1.25rem;padding:13px 14px;text-align:center}
.cfs .big-btn{padding:15px 24px;font-size:1.05rem}
.cfs .big-name{font-family:var(--_disp);font-size:1.6rem;text-transform:uppercase;font-weight:700;margin:0}
.cfs .c-center{justify-items:center;text-align:center}
.cfs .okmark{width:92px;height:92px;border-radius:50%;background:var(--_ok);color:#0A0A0A;display:grid;place-items:center;box-shadow:0 0 50px -10px rgba(63,191,116,.8);animation:cfspop .45s var(--_ease)}
.cfs .okmark.ya{background:var(--_s3);color:var(--_ok);box-shadow:none}
.cfs .okmark svg{width:54px;height:54px}
@keyframes cfspop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.cfs .quick-wrap{max-width:820px;margin:0 auto}
.cfs .qr-card{display:grid;gap:14px;justify-items:center}
.cfs .qr-box{background:#fff;padding:18px;border-radius:20px;border:6px solid var(--_red);line-height:0}
.cfs .qr-box img,.cfs .qr-box canvas{display:block;width:280px!important;height:280px!important;max-width:100%}
.cfs .qr-box{padding:10px}
.cfs .steps-ul{margin:0;padding-left:18px;color:var(--_mu);display:grid;gap:8px}
.cfs .steps-ul b{color:var(--_fg)}

/* Finanzas */
.cfs .legend-s{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:.8rem;color:var(--_mu)}
.cfs .legend-s i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.cfs .legend-s i.dash{height:0;border-top:2px dashed var(--_fg);opacity:.6;vertical-align:3px;border-radius:0}
.cfs .cfs-chart g:hover rect{opacity:.85}

/* Planes y precios */
.cfs .plans-ed{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.cfs .pl-ed{display:grid;gap:12px;position:relative;overflow:hidden;align-content:start}
.cfs .pl-ed.on{border-color:rgba(230,28,28,.55);background:radial-gradient(120% 60% at 100% 0%,rgba(230,28,28,.14),transparent 60%),var(--_s1)}
.cfs .pl-ed .card-h{margin-bottom:0;padding-right:40px}
.cfs .ribbon-s{position:absolute;top:16px;right:-38px;width:140px;transform:rotate(45deg);background:var(--_red);color:#fff;text-align:center;font-family:var(--_disp);font-weight:800;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:4px 0}

/* Aviso flotante */
.cfs-toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);background:#fff;color:#0A0A0A;padding:12px 18px;border-radius:14px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:9999;max-width:calc(100vw - 32px);box-shadow:0 18px 40px -16px rgba(0,0,0,.8);font-family:var(--body,system-ui,sans-serif)}
.cfs-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.cfs-toast.bad{background:#FF4B3E;color:#fff}

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