:root{--c1:var(--b-tut);--c2:var(--b-eva);--c3:var(--b-dis);--c4:var(--b-pla);--c5:var(--b-acc);--c6:var(--b-pro);--c7:#FF8FB8;--c8:#9BD36A}
/* b·tutora · Mi mesa (horario, alumnado, mensajes) */

.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fld{display:grid;gap:6px;font-size:14px;font-weight:700;color:var(--ink);border:0;padding:0;margin:0;min-width:0}
.fld small{font-weight:400;color:var(--ink-soft)}
.fld legend{padding:0;margin-bottom:6px}
.fld input,.fld select,.fld textarea,.inp{font:400 16px var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;min-width:0}
.fld input:focus,.fld select:focus,.fld textarea:focus,.inp:focus{outline:3px solid var(--cobalt);outline-offset:1px;border-color:var(--cobalt)}
.err{color:var(--bad);font-weight:700;font-size:14px;min-height:1px}
.err:empty{display:none}
.dias,.colores{display:flex;gap:8px;flex-wrap:wrap}
.dias label,.colores label{position:relative;cursor:pointer}
.dias input,.colores input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.dias span[title]{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:2px solid var(--line);font:800 16px var(--display);background:var(--paper)}
.dias input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.dias input:focus-visible+span,.colores input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:2px}
.colores label>span{display:block;width:40px;height:40px;border-radius:50%;border:3px solid var(--paper);box-shadow:0 0 0 2px var(--line)}
.colores input:checked+span{box-shadow:0 0 0 3px var(--ink)}

.mdlg{border:2px solid var(--ink);border-radius:22px;padding:24px;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;background:var(--paper-2);color:var(--ink);box-shadow:10px 10px 0 var(--ink)}
.mdlg.wide{width:min(820px,calc(100vw - 24px))}
.mdlg::backdrop{background:rgba(10,16,36,.55)}

/* barra de herramientas y pestañas */
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.vtabs{display:flex;gap:4px;padding:4px;border:2px solid var(--ink);border-radius:999px;background:var(--paper-2);width:max-content;max-width:100%;overflow-x:auto}
.vtabs button{font:700 15px var(--body);border:0;background:none;color:var(--ink-soft);padding:8px 16px;border-radius:999px;cursor:pointer;white-space:nowrap}
.vtabs button[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.tool-head{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:18px}

/* hoy */
.today{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.today{grid-template-columns:1fr}}
.clock{border:2px solid var(--ink);border-radius:22px;background:var(--night);color:var(--on-night);padding:22px 24px;box-shadow:8px 8px 0 var(--cobalt)}
.clock .now{font:800 clamp(48px,7vw,84px)/.9 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.clock .day{font:600 18px var(--display);color:var(--marker);margin-top:8px}
.clock .next{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:4px}
.clock .next b{font:800 26px/1.1 var(--display)}
.clock .next span{color:var(--on-night-soft)}
.slot{display:grid;grid-template-columns:86px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:2px solid var(--ink);border-left:12px solid var(--cc,var(--b-tut));border-radius:16px;background:var(--paper-2)}
.slot .t{font:800 20px/1 var(--display);font-variant-numeric:tabular-nums}
.slot .t small{display:block;font:400 13px var(--body);color:var(--ink-soft);margin-top:4px}
.slot h3{font-size:19px}
.slot p{font-size:14px;color:var(--ink-soft)}
.slot.live{background:color-mix(in srgb,var(--cc) 22%,var(--paper-2))}
.slot.done{opacity:.6}
.slot.fest{border-left-color:var(--line);background:var(--paper)}
@media (max-width:560px){.slot{grid-template-columns:1fr}.slot .act{justify-self:start}}
.st{display:inline-flex;align-items:center;gap:6px;font:700 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap}
.st.live{background:var(--ok);color:#fff;border-color:var(--ok)}
.st.live::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.25}}
.st.soon{background:var(--marker);color:var(--on-marker)}
.st.seg{background:var(--cobalt);color:var(--on-cobalt);border-color:var(--cobalt)}

/* semana */
.week{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:10px}
.wday{border:2px solid var(--ink);border-radius:16px;background:var(--paper-2);min-height:220px;display:flex;flex-direction:column;overflow:hidden}
.wday>header{padding:10px 12px;border-bottom:2px solid var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:6px;background:var(--paper)}
.wday>header b{font:800 17px var(--display);text-transform:capitalize}
.wday>header span{font:600 13px var(--mono);color:var(--ink-soft)}
.wday.is-today>header{background:var(--marker);color:var(--on-marker)}
.wday.is-today>header span{color:var(--on-marker)}
.wday.is-fest{background:repeating-linear-gradient(-45deg,var(--paper-2),var(--paper-2) 10px,var(--paper-3) 10px,var(--paper-3) 20px)}
.wday .body{padding:8px;display:grid;gap:8px;align-content:start}
.blk{border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:color-mix(in srgb,var(--cc) 30%,var(--paper-2));font-size:14px;text-align:left;font-family:var(--body);color:var(--ink);cursor:pointer;width:100%}
.blk b{display:block;font:800 15px/1.15 var(--display)}
.blk .h{font:700 13px var(--mono)}
.blk.seg{background:var(--paper);border-style:dashed;border-color:var(--cobalt);color:var(--ink)}
.blk.seg.ok{border-style:solid;background:var(--ok-soft)}
.fest-tag{font-size:13px;font-weight:700;color:var(--ink-soft);padding:6px 4px}
@media (max-width:900px){.week{grid-template-columns:1fr}.wday{min-height:0}}

/* mes */
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.month .dh{font:700 12px var(--mono);text-transform:uppercase;color:var(--ink-soft);text-align:center;padding:4px}
.mday{min-height:84px;border:1.5px solid var(--line);border-radius:10px;padding:6px;background:var(--paper-2);font-size:12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.mday.out{opacity:.35}
.mday.we{background:var(--paper)}
.mday.is-today{border:2.5px solid var(--ink);box-shadow:inset 0 0 0 2px var(--marker)}
.mday .n{font:800 15px var(--display)}
.mday .ev{display:block;border-radius:6px;padding:2px 5px;background:color-mix(in srgb,var(--cc) 35%,var(--paper-2));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
.mday .ev.s{background:none;border:1.5px dashed var(--cobalt);font-weight:400}
.mday .fx{color:var(--bad);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){.mday{min-height:58px;padding:4px}.mday .ev{font-size:0;height:8px;padding:0}.mday .ev.s{height:8px}.mday .fx{font-size:0;height:6px;background:var(--bad);border-radius:3px}}

/* cursos */
.ccards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ccard{border:2px solid var(--ink);border-radius:20px;background:var(--paper-2);overflow:hidden;display:flex;flex-direction:column}
.ccard>.top{padding:16px 18px;background:color-mix(in srgb,var(--cc) 34%,var(--paper-2));border-bottom:2px solid var(--ink)}
.ccard>.top h3{font-size:22px}
.ccard>.top p{font-size:14px;color:var(--ink-soft)}
.ccard dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;padding:14px 18px;margin:0;font-size:15px}
.ccard dt{color:var(--ink-soft)}
.ccard dd{margin:0;font-weight:700}
.ccard .bar{height:10px;border-radius:999px;background:var(--paper-3);overflow:hidden;margin:0 18px}
.ccard .bar i{display:block;height:100%;background:var(--ink);border-radius:999px}
.ccard .acts{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px;margin-top:auto}
.ccard.over{opacity:.65}

/* kpis */
.kp{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.kp>div{border:2px solid var(--ink);border-radius:16px;padding:12px 14px;background:var(--paper-2)}
.kp b{display:block;font:800 34px/1 var(--display);font-variant-numeric:tabular-nums}
.kp span{font-size:13px;color:var(--ink-soft)}
.kp .r b{color:var(--bad)}.kp .a b{color:var(--warn)}.kp .v b{color:var(--ok)}

/* alumnado */
.chipsel{display:flex;gap:8px;flex-wrap:wrap}
.chipsel button{font:700 15px var(--body);border:2px solid var(--ink);background:var(--paper-2);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.chipsel button i{width:12px;height:12px;border-radius:50%;background:var(--cc);border:1.5px solid var(--ink)}
.chipsel button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:15px}
.tbl th{font:700 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:8px 8px;border-bottom:2px solid var(--ink);white-space:nowrap}
.tbl td{padding:8px;border-bottom:1.5px solid var(--line);vertical-align:middle}
.tbl tr.gris td{opacity:.6}
.tbl input,.tbl select{font:400 15px var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:8px;padding:6px 8px;min-width:0}
.tbl input[type=number]{width:74px}
.tbl select{min-width:112px}
.tbl input[type=date]{width:150px}
.tbl .nm{font-weight:700;min-width:140px}
.tbl .nm small{display:block;font-weight:400;color:var(--ink-soft);font-size:13px}
.rk{display:inline-flex;align-items:center;gap:6px;font:700 13px var(--body);padding:4px 10px;border-radius:999px;white-space:nowrap}
.rk::before{content:"";width:10px;height:10px;border-radius:50%;background:currentColor}
.rk.rojo{background:var(--bad-soft);color:var(--bad)}.rk.ambar{background:var(--warn-soft);color:var(--warn)}.rk.verde{background:var(--ok-soft);color:var(--ok)}.rk.gris{background:var(--paper-3);color:var(--ink-soft)}
.why{font-size:13px;color:var(--ink-soft);margin-top:3px}
@media (max-width:980px){
 .tbl thead{display:none}
 .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
 .tbl tr{border:2px solid var(--ink);border-radius:16px;padding:10px 12px;margin-bottom:12px;background:var(--paper-2);display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
 .tbl td{border:0;padding:0}
 .tbl td[data-l]::before{content:attr(data-l);display:block;font:700 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:3px}
 .tbl td.nm,.tbl td.rkc,.tbl td.acc{grid-column:1/-1}
 .tbl input[type=date]{width:100%}
}
.segban{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;border:2px solid var(--ink);border-radius:18px;padding:14px 18px;background:var(--cobalt);color:var(--on-cobalt)}
.segban.ok{background:var(--ok-soft);color:var(--ink)}
.segban.idle{background:var(--paper-2);color:var(--ink)}
.segban b{font:800 20px var(--display)}
.empty-st{border:2px dashed var(--ink-soft);border-radius:22px;padding:34px 24px;text-align:center;display:grid;gap:14px;justify-items:center;background:var(--paper-2)}
.empty-st h3{font-size:26px}
.empty-st p{max-width:56ch;color:var(--ink-soft)}

/* mensajes */
.msg-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.msg-grid{grid-template-columns:1fr}}
.tlist{border:2px solid var(--ink);border-radius:20px;background:var(--paper-2);overflow:hidden;position:sticky;top:84px;max-height:calc(100vh - 110px);display:flex;flex-direction:column}
@media (max-width:900px){.tlist{position:static;max-height:420px}}
.tlist .srch{padding:12px;border-bottom:2px solid var(--ink)}
.tlist .scroll{overflow:auto;padding:6px 8px 12px}
.tlist h3{font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:12px 8px 6px}
.tlist button{display:flex;gap:8px;justify-content:space-between;align-items:center;width:100%;text-align:left;font:400 15px var(--body);color:var(--ink);background:none;border:0;border-radius:10px;padding:8px 10px;cursor:pointer}
.tlist button:hover{background:var(--paper-3)}
.tlist button[aria-current="true"]{background:var(--ink);color:var(--paper)}
.tlist button small{font:700 11px var(--mono);opacity:.7;white-space:nowrap}
.editor{border:2px solid var(--ink);border-radius:22px;background:var(--paper-2);padding:20px;display:grid;gap:16px;box-shadow:8px 8px 0 var(--marker)}
.editor .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.preview{font:400 16px/1.6 var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:16px;width:100%;min-height:300px;resize:vertical}
.preview:focus{outline:3px solid var(--cobalt);outline-offset:1px}
.seg2{justify-self:start;width:max-content;display:inline-flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden}
.seg2 button{font:700 14px var(--body);border:0;background:var(--paper-2);color:var(--ink);padding:7px 14px;cursor:pointer}
.seg2 button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.phl{background:var(--marker);color:var(--on-marker);border-radius:4px;padding:0 3px}
.fld input[type=radio],.fld input[type=checkbox]{width:auto;flex:none}

/* aviso emergente */
.aviso-pop{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:90;display:grid;gap:6px;max-width:min(360px,calc(100vw - 32px));padding:16px 18px;border:2px solid var(--ink);border-radius:18px;background:var(--marker);color:var(--on-marker);box-shadow:6px 6px 0 var(--ink)}
.aviso-pop b{font:800 20px/1.1 var(--display)}
.aviso-pop .btn{justify-self:start;color:var(--on-marker);border-color:var(--on-marker)}

/* portada */
.mesa-hero{background:var(--night);color:var(--on-night);border-bottom:2px solid var(--ink);padding-block:44px 54px;position:relative;overflow:hidden}
.mesa-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 10%,rgba(43,59,242,.55),transparent 70%),radial-gradient(500px 260px at 0% 100%,rgba(255,210,63,.18),transparent 70%);pointer-events:none}
.mesa-hero .wrap{position:relative}
.mesa-hero h1{font-size:clamp(42px,6.6vw,88px);font-weight:800;line-height:.95;letter-spacing:-.035em;max-width:16ch}
.mesa-hero h1 em{font-style:normal;color:var(--marker)}
.mesa-hero .lede{font-size:clamp(17px,1.6vw,20px);color:var(--on-night-soft);max-width:58ch;margin-top:16px}
.mesa-hero .lede b{color:var(--on-night)}
.apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
@media (max-width:860px){.apps{grid-template-columns:1fr}}
.app{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;padding:18px;border:2px solid var(--on-night);border-radius:22px;background:rgba(255,255,255,.06);color:var(--on-night);text-decoration:none;transition:transform .15s,background .15s}
.app:hover{transform:translateY(-3px);background:rgba(255,255,255,.12)}
.app .ai{grid-row:span 2;width:84px;display:block}.app .ai .il{width:84px;height:auto;display:block}
.linkbtn{font:inherit;color:var(--cobalt);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.app b{font:800 24px/1 var(--display)}
.app span{font-size:15px;color:var(--on-night-soft)}
.app .k{--k:var(--ink);--p:var(--paper-2)}
.board{padding-block:40px}
.board-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.board-grid{grid-template-columns:1fr}}
.card-b{border:2px solid var(--ink);border-radius:22px;background:var(--paper-2);padding:20px;display:grid;gap:14px}
.card-b h2{font-size:26px}
.risk-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1.5px solid var(--line)}
.risk-row:first-of-type{border-top:0}
.risk-row a{font-weight:700}
.doors2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){.doors2{grid-template-columns:1fr}}
.door{display:grid;gap:10px;padding:24px;border:2px solid var(--ink);border-radius:24px;text-decoration:none;color:var(--ink);background:color-mix(in srgb,var(--dc) 26%,var(--paper-2));box-shadow:8px 8px 0 var(--ink);transition:transform .15s}
.door:hover{transform:translate(-2px,-2px)}
.door .label{color:var(--ink)}
.door h3{font-size:clamp(28px,3vw,38px)}
.door ul{margin:0;padding-left:20px;display:grid;gap:4px}
.door .go{font-weight:700}
.feat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:900px){.feat{grid-template-columns:repeat(2,minmax(0,1fr))}}
.feat div{border-top:3px solid var(--ink);padding-top:10px}
.feat b{font:800 19px var(--display);display:block}
.feat span{font-size:14px;color:var(--ink-soft)}

@media print{
 .site-head,.site-foot,.a11y-fab,.no-print,.toast,.aviso-pop{display:none!important}
 body{background:#fff!important;color:#000}
 .print-only{display:block!important}
 .tbl input,.tbl select{border:0;background:none;padding:0}
}
.print-only{display:none}

/* ===== portada llamativa ===== */
.hx{position:relative;overflow:hidden;background:var(--night);color:var(--on-night);border-bottom:2px solid var(--ink)}
.hx::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 88% 0%,rgba(43,59,242,.75),transparent 70%),radial-gradient(520px 380px at 0% 100%,rgba(255,210,63,.22),transparent 70%),radial-gradient(420px 300px at 55% 60%,rgba(196,155,255,.18),transparent 70%);pointer-events:none}
.hx::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.hx-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:center;padding-block:56px 50px}
@media (max-width:960px){.hx-grid{grid-template-columns:1fr;padding-block:40px}}
.hx-kick{display:inline-flex;align-items:center;gap:10px;font:700 14px var(--body);padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.25)}
.hx-kick i{width:9px;height:9px;border-radius:50%;background:var(--b-tut);box-shadow:0 0 0 4px rgba(76,199,156,.25);animation:pulse 1.8s infinite}
.hx h1{font:800 clamp(46px,7.4vw,98px)/.92 var(--display);letter-spacing:-.04em;margin-top:20px;color:var(--on-night)}
.hx h1 em{font-style:normal;color:var(--night);background:var(--marker);padding:0 .14em;border-radius:12px;display:inline-block;transform:rotate(-2deg);box-shadow:6px 6px 0 var(--cobalt)}
.hx-dot{color:var(--b-tut)}
.hx .lede{font-size:clamp(17px,1.7vw,21px);color:var(--on-night-soft);max-width:54ch;margin-top:22px;line-height:1.55}
.hx .lede b{color:var(--on-night)}
.hx-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn.hx-main{background:var(--marker);color:var(--on-marker);border:2px solid var(--marker);font-size:18px;padding:14px 24px;box-shadow:6px 6px 0 var(--cobalt);border-radius:999px;font-weight:800}
.btn.hx-main:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--cobalt)}
.btn.hx-sec{background:transparent;color:var(--on-night);border:2px solid var(--on-night);font-size:17px;padding:13px 22px;border-radius:999px}
.hx-trust{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--on-night-soft);font-size:15px}
.hx-trust li::before{content:"✓";color:var(--b-tut);font-weight:800;margin-right:7px}
.mock{position:relative;background:var(--paper-2);color:var(--ink);border:2.5px solid var(--on-night);border-radius:26px;box-shadow:14px 14px 0 var(--b-tut);transform:rotate(1.5deg);max-width:470px;justify-self:center;width:100%}
.mock-top{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:2px solid var(--ink);font-size:14px}
.mock-dots{display:flex;gap:5px}.mock-dots i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink)}.mock-dots i:first-child{background:var(--marker)}
.mock-time{margin-left:auto;font:700 13px var(--mono);background:var(--marker);color:var(--on-marker);padding:2px 8px;border-radius:999px}
.mock-next{margin:14px;padding:14px 16px;border-radius:16px;background:var(--night);color:var(--on-night);display:grid;gap:2px}
.mock-next small{color:var(--marker);font:700 12px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.mock-next b{font:800 22px/1.1 var(--display)}.mock-next span{color:var(--on-night-soft);font-size:14px}
.mock-feed{display:grid;gap:8px;padding:0 14px 18px;min-height:216px;align-content:start}
.mf{display:grid;grid-template-columns:14px 1fr;gap:12px;align-items:center;padding:10px 12px;border:1.5px solid var(--ink);border-radius:14px;background:var(--paper);animation:mfIn .5s cubic-bezier(.2,1.4,.4,1) both}
.mf i{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink)}
.mf b{display:block;font-size:14px}.mf small{color:var(--ink-soft);font-size:13px}
.mf.rojo i{background:var(--bad)}.mf.verde i{background:var(--ok)}.mf.ambar i{background:var(--warn)}.mf.azul i{background:var(--cobalt)}.mf.fest i{background:#FF8FB8}
@keyframes mfIn{from{transform:translateY(-14px);opacity:0}}
.mock-chip{position:absolute;font:800 14px var(--body);padding:8px 14px;border-radius:999px;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);animation:bob 5s ease-in-out infinite}
.mock-chip.c1{left:-22px;bottom:-18px;background:var(--b-tut);color:var(--night)}.mock-chip.c2{right:-16px;bottom:-18px;background:var(--marker);color:var(--on-marker);animation-delay:-2.5s}
@keyframes bob{50%{transform:translateY(-6px)}}
@media (max-width:960px){.mock{transform:none;margin-top:10px;margin-bottom:20px}.mock-chip.c1{left:8px}.mock-chip.c2{right:8px}}
.marq{position:relative;z-index:1;border-top:2px solid var(--ink);background:var(--marker);color:var(--on-marker);overflow:hidden;white-space:nowrap}
.marq-in{display:inline-flex;gap:44px;padding-block:13px;animation:marq 38s linear infinite;font:800 19px var(--display)}
.marq-in span::before{content:"✳";margin-right:14px}
@keyframes marq{to{transform:translateX(-50%)}}
html.a11y-still .marq-in,html.a11y-still .mf,html.a11y-still .mock-chip,html.a11y-still .hx-kick i{animation:none}
@media (prefers-reduced-motion:reduce){.marq-in,.mf,.mock-chip,.hx-kick i{animation:none}}
.apps2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.apps2{grid-template-columns:1fr}}
.app2{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;padding:20px;border:2px solid var(--ink);border-radius:24px;background:color-mix(in srgb,var(--ac) 26%,var(--paper-2));color:var(--ink);text-decoration:none;box-shadow:8px 8px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.app2:hover{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--ink)}
.app2 .ai{width:96px}.app2 .ai .il{width:96px;height:auto;display:block}
.app2 small{font:700 12px var(--mono);color:var(--ink-soft)}.app2 b{display:block;font:800 26px/1.05 var(--display);margin:2px 0 4px}.app2 span span{font-size:15px;color:var(--ink-soft)}
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:2px solid var(--ink);border-radius:24px;overflow:hidden;background:var(--paper-2)}
.nums div{padding:22px 20px;border-right:2px solid var(--ink)}.nums div:last-child{border-right:0}
.nums b{display:block;font:800 clamp(40px,5vw,64px)/1 var(--display);color:var(--cobalt);font-variant-numeric:tabular-nums}
.nums span{font-size:15px;color:var(--ink-soft)}
@media (max-width:760px){.nums{grid-template-columns:1fr 1fr}.nums div:nth-child(2){border-right:0}.nums div:nth-child(-n+2){border-bottom:2px solid var(--ink)}}
.biz{background:var(--night);color:var(--on-night);border-block:2px solid var(--ink);padding-block:56px;margin-top:40px;position:relative;overflow:hidden}
.biz::before{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,210,63,.25),transparent);pointer-events:none}
.biz-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;align-items:center}
@media (max-width:900px){.biz-grid{grid-template-columns:1fr}}
.biz h2{font:800 clamp(32px,4.4vw,56px)/1 var(--display);color:var(--on-night);margin:10px 0 14px}
.biz p{color:var(--on-night-soft);font-size:18px;max-width:60ch}.biz p b{color:var(--on-night)}
.biz-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.biz-list li{border:2px solid rgba(255,255,255,.25);border-radius:18px;padding:16px 18px;background:rgba(255,255,255,.05)}
.biz-list b{display:block;font:800 20px var(--display);color:var(--marker)}.biz-list span{color:var(--on-night-soft);font-size:15px}
.offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:980px){.offers{grid-template-columns:1fr}}
.offer{border:2px solid var(--ink);border-radius:24px;padding:22px;background:linear-gradient(to bottom,color-mix(in srgb,var(--ac) 32%,var(--paper-2)),var(--paper-2) 150px);box-shadow:8px 8px 0 var(--ink);display:grid;gap:10px;align-content:start}
.offer .ai{width:92px}.offer .ai .il{width:92px;height:auto;display:block}
.offer small{font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.offer h3{font:800 26px/1.08 var(--display)}.offer p{color:var(--ink-soft)}
.offer ul{margin:0;padding-left:20px;display:grid;gap:4px}
.steps4{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:s}
@media (max-width:860px){.steps4{grid-template-columns:1fr 1fr}}@media (max-width:480px){.steps4{grid-template-columns:1fr}}
.steps4 li{counter-increment:s;border:2px solid var(--ink);border-radius:20px;padding:18px;background:var(--paper-2);display:grid;gap:4px}
.steps4 li::before{content:counter(s);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--marker);color:var(--on-marker);border:2px solid var(--ink);font:800 20px var(--display);margin-bottom:6px}
.steps4 b{font:800 20px var(--display)}.steps4 span{color:var(--ink-soft);font-size:15px}
.cform{background:var(--paper-2);color:var(--ink);border:2px solid var(--on-night);border-radius:24px;padding:22px;display:grid;gap:12px;box-shadow:10px 10px 0 var(--marker)}
.cform label{display:grid;gap:5px;font-weight:700;font-size:14px}
.cform input:not([type=checkbox]),.cform textarea{font:400 16px var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
.cform fieldset{border:0;padding:0;margin:0;display:grid;gap:6px}.cform legend{font-weight:700;font-size:14px;margin-bottom:4px}
.cform fieldset label{display:flex;gap:8px;align-items:center;font-weight:400;font-size:15px}
.cform .btn.hx-main{justify-self:start;box-shadow:5px 5px 0 var(--ink)}
.biz .cform p.cnote,.cnote{font-size:13px;color:var(--ink-soft)}
.hx-biz h1{font-size:clamp(40px,6vw,80px)}

/* ===== seguimiento del alumnado: estilo panel ===== */
.callout:empty{display:none}
.al-wrap{padding-top:26px}
.al-hero{position:relative;overflow:hidden;background:var(--night);color:var(--on-night);border:2px solid var(--ink);border-radius:26px;padding:22px 26px 24px;box-shadow:10px 10px 0 var(--cobalt);display:grid;gap:18px}
.al-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(520px 260px at 100% 0%,rgba(43,59,242,.55),transparent 70%),radial-gradient(380px 220px at 0% 100%,rgba(76,199,156,.18),transparent 70%);pointer-events:none}
.al-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(100deg,transparent 30%,#000);pointer-events:none}
.al-hero>*{position:relative;z-index:1}
.al-hero .crumbs{font-size:14px;color:var(--on-night-soft)}.al-hero .crumbs a{color:var(--on-night)}.al-hero .crumbs span{margin:0 6px}
.al-top{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between}
.al-hero h1{font:800 clamp(38px,5.6vw,72px)/.95 var(--display);letter-spacing:-.035em;color:var(--on-night)}
.al-hero h1 span{color:var(--marker)}
.al-sub{color:var(--on-night-soft);font-size:clamp(16px,1.5vw,19px);margin-top:10px;max-width:56ch}
.al-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn.al-main{background:var(--marker);color:var(--on-marker);border:2px solid var(--marker);font-size:17px;font-weight:800;padding:12px 22px;border-radius:999px;box-shadow:5px 5px 0 var(--cobalt)}
.btn.al-ghost{background:transparent;color:var(--on-night);border:2px solid rgba(255,255,255,.55);border-radius:999px;padding:11px 18px}
.al-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.al-tabs button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font:700 15px var(--body);color:var(--on-night);background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.25);border-radius:999px;padding:9px 16px;cursor:pointer}
.al-tabs button i{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--night)}
.al-tabs button em{font-style:normal;font:800 12px var(--body);background:var(--bad);color:#fff;border-radius:999px;padding:1px 7px}
.al-tabs button[aria-pressed="true"]{background:var(--paper-2);color:var(--ink);border-color:var(--paper-2)}
.al-tabs button small{opacity:.7}
.al-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:900px){.al-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ak{background:var(--paper-2);color:var(--ink);border:2px solid var(--ink);border-radius:18px;padding:12px 14px;box-shadow:4px 4px 0 rgba(0,0,0,.35);display:grid;gap:2px;min-width:0}
.ak b{font:800 34px/1 var(--display);font-variant-numeric:tabular-nums}.ak b small{font-size:18px}
.ak span{font-size:13px;color:var(--ink-soft)}
.ak.r b{color:var(--bad)}.ak.a b{color:var(--warn)}.ak.v b{color:var(--ok)}
.ak.r{border-top:6px solid var(--bad)}.ak.a{border-top:6px solid var(--warn)}.ak.v{border-top:6px solid var(--ok)}
.ak-bar{position:relative;display:block;height:8px;border-radius:999px;background:var(--paper-3);margin-top:6px}
.ak-bar>i{display:block;height:100%;border-radius:999px;background:var(--cobalt)}
.ak-bar em{position:absolute;top:-4px;width:3px;height:16px;background:var(--ink);border-radius:2px}
.crs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.crs-c{border:2px solid var(--ink);border-radius:22px;background:linear-gradient(to bottom,color-mix(in srgb,var(--cc) 30%,var(--paper-2)),var(--paper-2) 120px);box-shadow:6px 6px 0 var(--ink);padding:18px;display:grid;gap:12px}
.crs-c h2{font:800 22px/1.1 var(--display)}.crs-c header span{font-size:14px;color:var(--ink-soft)}
.dist{display:flex;height:14px;border-radius:999px;overflow:hidden;border:1.5px solid var(--ink)}
.dist i{display:block}.dist .r{background:var(--bad)}.dist .a{background:var(--warn)}.dist .v{background:var(--ok)}
.crs-c dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:15px}
.crs-c dt{color:var(--ink-soft)}.crs-c dd{margin:0;font-weight:700}.crs-c dd.r{color:var(--bad)}.crs-c dd.a{color:var(--warn)}.crs-c dd.v{color:var(--ok)}
.crs-c .btn{justify-self:start}
.cdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--cc);border:1.5px solid var(--ink);margin-right:6px}
.exam-tot{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-weight:700;font-size:14px}
.exam-tot input{width:72px;font:400 15px var(--body);border:1.5px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--paper);color:var(--ink)}
.al-tbl{border:2px solid var(--ink);border-radius:20px;background:var(--paper-2);overflow-x:auto}
.al-tbl .tbl th{background:var(--paper);position:sticky;top:0}
.al-tbl .tbl td,.al-tbl .tbl th{padding:8px 7px}
.al-tbl .tbl input[type=date]{width:136px}
.al-tbl .tbl input[type=number]{width:62px}
.al-tbl .tbl select{min-width:104px}
.tbl tr.rojo td:first-child{box-shadow:inset 6px 0 0 var(--bad)}.tbl tr.ambar td:first-child{box-shadow:inset 6px 0 0 var(--warn)}.tbl tr.verde td:first-child{box-shadow:inset 6px 0 0 var(--ok)}
.nm-b{font:800 15px var(--body);color:var(--ink);background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.nm-b:hover{text-decoration-color:var(--cobalt)}
.pg{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.pg>span{font-size:13px;color:var(--ink-soft)}
.minibar{display:block;height:5px;border-radius:999px;background:var(--paper-3);margin-top:5px;max-width:110px}.minibar i{display:block;height:100%;border-radius:999px;background:var(--cobalt)}
.trend{font:800 12px var(--body);padding:1px 6px;border-radius:999px;margin-left:4px}.trend.up{background:var(--ok-soft);color:var(--ok)}.trend.down{background:var(--bad-soft);color:var(--bad)}
.tbl td small{display:block;font-size:12px;color:var(--ink-soft)}
.grid3im{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:700px){.grid3im{grid-template-columns:1fr 1fr}}
.fi-kp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fi-kp>div{border:1.5px solid var(--ink);border-radius:14px;padding:10px 12px;background:var(--paper);display:grid;gap:4px}
.fi-kp small{font:700 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.fi-kp b{font:800 20px var(--display)}
.evo-svg{width:100%;height:auto;background:var(--paper);border:1.5px solid var(--line);border-radius:14px}
.evo-svg .gl{stroke:var(--line);stroke-width:1}.evo-svg text{font:600 11px var(--mono);fill:var(--ink-soft)}
.evo-svg .real{fill:none;stroke:var(--cobalt);stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}
.evo-svg .esp{fill:none;stroke:var(--ink-soft);stroke-width:2;stroke-dasharray:6 6}
.evo-svg .pt{fill:var(--marker);stroke:var(--ink);stroke-width:2}
.evo-ley{display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--ink-soft);margin-top:6px}
.evo-ley .lr,.evo-ley .le{display:inline-block;width:22px;height:0;border-top:3.5px solid var(--cobalt);margin-right:-8px}.evo-ley .le{border-top:2px dashed var(--ink-soft)}
.evo-t td,.evo-t th{padding:6px 8px}
@media (max-width:1100px){
 .al-tbl{border:0;background:none}
 .al-tbl .tbl thead{display:none}
 .al-tbl .tbl,.al-tbl .tbl tbody,.al-tbl .tbl tr,.al-tbl .tbl td{display:block;width:100%}
 .al-tbl .tbl tr{border:2px solid var(--ink);border-radius:16px;padding:10px 12px;margin-bottom:12px;background:var(--paper-2);display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
 .al-tbl .tbl td{border:0;padding:0;box-shadow:none!important}
 .al-tbl .tbl td[data-l]::before{content:attr(data-l);display:block;font:700 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:3px}
 .al-tbl .tbl td.nm,.al-tbl .tbl td.rkc,.al-tbl .tbl td.acc{grid-column:1/-1}
 .al-tbl .tbl input[type=date]{width:100%}
 .al-tbl .tbl tr.rojo{border-left:10px solid var(--bad)}.al-tbl .tbl tr.ambar{border-left:10px solid var(--warn)}.al-tbl .tbl tr.verde{border-left:10px solid var(--ok)}
}
.al-tbl .tbl td.rkc{min-width:200px}

/* ===== plan de acción ===== */
.plan{border:2px solid var(--ink);border-radius:22px;background:var(--paper-2);box-shadow:8px 8px 0 var(--marker);padding:18px 20px;display:grid;gap:12px}
.plan header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.plan h2{font:800 clamp(24px,3vw,32px)/1.05 var(--display);margin-top:4px}
.plan-ring{--p:0;width:70px;height:70px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--paper-3) 0);border:2px solid var(--ink)}
.plan-ring b{width:52px;height:52px;border-radius:50%;background:var(--paper-2);display:grid;place-items:center;font:800 15px var(--mono)}
.plan ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.plan li{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border:1.5px solid var(--line);border-left:8px solid var(--cobalt);border-radius:14px;background:var(--paper)}
.plan li.p-rojo{border-left-color:var(--bad)}.plan li.p-ambar{border-left-color:var(--warn)}.plan li.p-verde{border-left-color:var(--ok)}
.plan li.ok{opacity:.65}.plan li.ok b{text-decoration:line-through}
.pchk{width:26px;height:26px;border-radius:8px;border:2px solid var(--ink);display:grid;place-items:center;font-weight:800;background:var(--paper-2)}
.plan li.ok .pchk{background:var(--ok);color:#fff;border-color:var(--ok)}
.ptx b{display:block}.ptx small{color:var(--ink-soft);font-size:13px}
@media (max-width:560px){.plan li{grid-template-columns:28px 1fr}.plan li>:last-child{grid-column:2;justify-self:start}}
/* ===== semana en cifras (horario) ===== */
#hd .wk-big b{display:block;font:800 30px/1 var(--display)}#hd .wk-big span{font-size:14px;color:var(--ink-soft)}
/* ===== feedback ===== */
.fb-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px;align-items:start}
@media (max-width:960px){.fb-grid{grid-template-columns:1fr}}
.fb-out{position:sticky;top:84px}
.lvl{display:flex;flex-wrap:wrap;gap:8px}
.lvl button,.tagset button{font:700 14px var(--body);border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer}
.lvl button[aria-pressed="true"]{color:#fff}.lvl .lv-ex[aria-pressed="true"]{background:var(--ok);border-color:var(--ok)}.lvl .lv-no[aria-pressed="true"]{background:var(--cobalt);border-color:var(--cobalt)}.lvl .lv-su[aria-pressed="true"]{background:var(--warn);border-color:var(--warn)}.lvl .lv-me[aria-pressed="true"]{background:var(--bad);border-color:var(--bad)}
.tagset{display:flex;flex-wrap:wrap;gap:6px}
.tagset button{font-weight:400;border-width:1.5px;padding:6px 12px}
.tagset button[aria-pressed="true"]{background:var(--ink);color:var(--paper);font-weight:700}
.tagset button[aria-pressed="true"]::before{content:"✓ "}
.crumbs .crumb-help,#hd .crumbs .crumb-help{margin-left:auto;padding:3px 10px;border:1.5px solid currentColor;border-radius:999px;font-weight:700;text-decoration:none;font-size:13px}
.crumbs:has(.crumb-help){display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.crumb-help::before{content:"?";display:inline-grid;place-items:center;width:16px;height:16px;margin-right:6px;border-radius:50%;background:#ffd23f;font-size:11px;font-weight:800}
.crumb-help::before{color:#0b1020}.crumbs .crumb-help{color:inherit}
.hx-guide{margin-top:14px}.hx-guide a{font-weight:700;color:inherit;text-decoration-thickness:2px;text-underline-offset:4px}
/* ===== portada de servicios y portfolio ===== */
.pf-sec{padding-block:48px 8px;scroll-margin-top:80px}
#contacto{scroll-margin-top:70px}
.pf-h{font-size:clamp(32px,4.4vw,54px);margin:6px 0 20px}
.pf-lede{font-size:19px;color:var(--ink-soft);max-width:62ch;margin:-8px 0 24px}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}
.pf-card{display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:start;padding:20px;border:2px solid var(--ink);border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 30%,var(--paper-2)),var(--paper-2) 70%);box-shadow:8px 8px 0 var(--ink)}
.pf-card .ai{width:84px}.pf-card .ai .il{width:84px;height:auto;display:block}
.pf-card small{font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.pf-card h3{font:800 24px/1.08 var(--display);margin:2px 0 6px}
.pf-card p{color:var(--ink-soft);font-size:15.5px}
.pf-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pf-acts .btn{font-size:14px;padding:8px 12px}
.pf-want{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pf-want:hover,.pf-want:focus-visible{background:var(--marker);color:var(--on-marker)}
.pf-me{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;padding:28px;border:2px solid var(--ink);border-radius:28px;background:var(--paper-2);box-shadow:8px 8px 0 var(--ink)}
.pf-me p{font-size:18px;max-width:68ch}
.pf-badge{width:96px!important;height:96px!important;font-size:34px!important;border-radius:26px!important}
.pf-tutor{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:26px 28px;border:2px dashed var(--ink);border-radius:24px}
.pf-tutor h2{font-size:clamp(26px,3vw,36px);margin:4px 0 6px}.pf-tutor p{color:var(--ink-soft);max-width:56ch}
.pf-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:36px;padding:18px 22px;border:2px solid var(--ink);border-radius:18px;background:color-mix(in srgb,var(--marker) 30%,var(--paper-2));box-shadow:6px 6px 0 var(--ink)}
.pf-strip p{font-size:17px;max-width:70ch;margin:0}
@media (max-width:640px){.pf-card{grid-template-columns:1fr}.pf-me{grid-template-columns:1fr;padding:22px}.pf-badge{width:72px!important;height:72px!important;font-size:26px!important}}
.pf-badge{border-color:var(--ink)!important}
/* ===== informe de seguimiento (escaparate) ===== */
#informe{scroll-margin-top:80px}
.rp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:36px;align-items:center}
.rp-txt>p{font-size:18px;color:var(--ink-soft);max-width:58ch}
.rp-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.rp-list li{display:grid;gap:2px;padding-left:30px;position:relative}
.rp-list li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--b-dis);border:1.5px solid var(--ink);display:grid;place-items:center;font-size:12px;font-weight:800;color:#0A1024}
.rp-list span{color:var(--ink-soft);font-size:15.5px}
.rp-mock{margin:0;border:2px solid var(--ink);border-radius:22px;background:#fff;color:#1d2125;box-shadow:10px 10px 0 var(--ink);padding:18px;display:grid;gap:14px;font-family:var(--body)}
.rp-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;border-bottom:1px solid #dee2e6;padding-bottom:10px}
.rp-top b{font:800 19px var(--display)}.rp-top span{font-size:13px;color:#5c6670}
.rp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rp-kpis div{border:1px solid #dee2e6;border-radius:10px;padding:8px 10px}
.rp-kpis div.q{border-color:#0f6cbf;background:#eef5fc}
.rp-kpis small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#5c6670}
.rp-kpis b{font-size:18px}
.rp-t{width:100%;border-collapse:collapse;font-size:14px}
.rp-t th,.rp-t td{padding:8px 6px;border-bottom:1px solid #e9ecef;text-align:left;white-space:nowrap}
.rp-t thead th{font-size:12px;color:#5c6670;font-weight:700}
.rp-t tbody th{color:#0f6cbf;font-weight:700}
.rp-t td:last-child{display:flex;align-items:center;gap:8px}
.rp-bar{flex:1;min-width:50px;height:7px;border-radius:9px;background:linear-gradient(#0f6cbf,#0f6cbf) 0/var(--w) 100% no-repeat,#e9ecef}
.rp-bar.ok{background:linear-gradient(#357a32,#357a32) 0/var(--w) 100% no-repeat,#e9ecef}
.rp-no{background:#ca3120;color:#fff;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:700}
.rp-mock figcaption{font-size:12px;color:#5c6670}
@media (max-width:960px){.rp{grid-template-columns:1fr}}
@media (max-width:560px){.rp-kpis{grid-template-columns:repeat(2,1fr)}.rp-mock{padding:12px;overflow-x:auto}.rp-t th:nth-child(2),.rp-t td:nth-child(2){display:none}}
.rp-t th,.rp-t td{background:none!important;font-family:var(--body);text-transform:none;letter-spacing:0;color:#1d2125}
.rp-t thead th{font-size:12px;color:#5c6670;font-weight:700;border-bottom:2px solid #dee2e6}
.rp-t tbody th{color:#0f6cbf;font-weight:700;font-size:14px}
/* ===== banda SCORM ===== */
#scorm{scroll-margin-top:80px}
.sc{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:center;padding:30px;border:2px solid var(--ink);border-radius:28px;background:color-mix(in srgb,var(--b-tut) 22%,var(--paper-2));box-shadow:8px 8px 0 var(--ink)}
.sc h2{font-size:clamp(28px,3.6vw,44px);margin:6px 0 12px}
.sc-txt>p{font-size:18px;color:var(--ink-soft);max-width:60ch}
.sc-list{margin:14px 0 20px;padding-left:22px;display:grid;gap:6px}
.sc-vs{display:grid;gap:14px}
.sc-card{border:2px solid var(--ink);border-radius:18px;background:#fff;color:#1d2125;padding:16px 18px;display:grid;gap:6px}
.sc-card small{font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.sc-card.mal small{color:#ca3120}.sc-card.bien small{color:#357a32}
.sc-card b{font:800 18px var(--display)}
.sc-card p{font-size:14.5px;color:#5c6670;margin:0}
.sc-row{display:flex;align-items:center;gap:10px}
.sc-row em{font-style:normal;font-weight:800;font-size:18px;min-width:3.2em;text-align:right}
.sc-bar{flex:1;height:10px;border-radius:9px;background:linear-gradient(#0f6cbf,#0f6cbf) 0/var(--w) 100% no-repeat,#e9ecef}
.sc-card.mal .sc-bar{background:repeating-linear-gradient(45deg,#ca3120 0 6px,#e35d4f 6px 12px) 0/var(--w) 100% no-repeat,#e9ecef}
.sc-card.bien .sc-bar{background:linear-gradient(#357a32,#357a32) 0/var(--w) 100% no-repeat,#e9ecef}
@media (max-width:900px){.sc{grid-template-columns:1fr;padding:22px}}
/* ===== portada resumida ===== */
.hm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 20px;margin-bottom:20px}
.hm-svc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.hm-pf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hm-tile{display:grid;gap:6px;align-content:start;padding:18px;border:2px solid var(--ink);border-radius:20px;background:linear-gradient(to bottom,color-mix(in srgb,var(--ac) 30%,var(--paper-2)),var(--paper-2) 120px);color:var(--ink);text-decoration:none;box-shadow:6px 6px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.hm-tile:hover,.hm-tile:focus-visible{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink)}
.hm-tile .ai{width:64px}.hm-tile .ai .il{width:64px;height:auto;display:block}
.hm-tile b{font:800 20px/1.1 var(--display);margin-top:4px}
.hm-tile span:not(.ai){color:var(--ink-soft);font-size:15px}
.hm-tile em{font-style:normal;font-weight:700;margin-top:auto;padding-top:6px}
.hm-tutor{font-size:17px;padding:16px 20px;border:2px dashed var(--ink);border-radius:18px;margin:0}
.hm-tutor a{font-weight:700;color:inherit}
@media (prefers-reduced-motion:reduce){.hm-tile{transition:none}}
@media (max-width:1000px){.hm-svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.hm-pf{grid-template-columns:1fr}}
@media (max-width:520px){.hm-svc{grid-template-columns:1fr}}
.site-foot a.brand.foot-brand{font-size:22px!important;line-height:1.15}
