
:root{
  color-scheme:dark;
  --panel:#0B0D10; --panel-hi:#1C2025; --glass:#040608; --rule:#343B43;
  --white:#F2F4F5; --grey:#A3ACB5; --faint:#6E7780;
  --green:#22E06B; --cyan:#29D7F2; --amber:#FFAE1A; --red:#FF453A; --mag:#FF5AD9; --fcu:#FF8A1F;
  --paper:#F3F1EA; --ink:#1B1F24;
  --ui:"B612","Segoe UI",system-ui,sans-serif;
  --data:"B612 Mono",ui-monospace,Consolas,monospace;
  --prose:"Atkinson Hyperlegible",system-ui,sans-serif;
  --t-hero:clamp(30px,7vw,46px); --t-title:22px; --t-body:17px; --t-label:13px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;color:var(--white);font:var(--t-body)/1.5 var(--prose);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
  background-color:var(--panel);
  background-image:radial-gradient(140% 90% at 50% 40%,transparent 40%,#000000c0 100%),var(--grain,none);
  background-attachment:fixed}
::selection{background:var(--cyan);color:#000}
*{scrollbar-width:thin;scrollbar-color:var(--rule) transparent}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;text-align:left}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

.wrap{max-width:720px;margin:0 auto;padding-inline:16px;padding-block:0 112px}
.note{font:12px var(--data);color:var(--faint);text-align:center;padding-block:8px 0;letter-spacing:.06em}
.strip{padding-top:max(12px,env(safe-area-inset-top,0px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px 18px}
.brand{font:700 17px var(--ui);letter-spacing:.2em;color:var(--white)}
.brand span{color:var(--fcu)}
.lights{display:flex;gap:8px}
.mlight{width:62px;padding:6px 0;border-radius:5px;text-align:center;font:700 11px/1.1 var(--ui);letter-spacing:.04em;background:linear-gradient(#17191c,#0f1113);color:#b0955e;box-shadow:inset 0 1px 0 #ffffff12,0 3px 6px #0009;transition:color .15s,background .15s}
.mlight.warn{color:#c47a73}
.mlight.on{color:var(--amber);background:#2f2006;animation:blink 1s steps(1) infinite}
.mlight.warn.on{color:var(--red);background:#2e0a08}
@keyframes blink{50%{filter:brightness(.5)}}

.bezel{position:relative;background:linear-gradient(180deg,var(--panel-hi),#15181c);border-radius:16px;padding:10px;box-shadow:0 14px 30px #000a,inset 0 1px 0 #ffffff14}
.bezel::before,.bezel::after{content:"";position:absolute;top:9px;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#8a9098,#3d4248 70%)}
.bezel::before{left:9px}.bezel::after{right:9px}
.glass{position:relative;background:var(--glass);border-radius:8px;padding:18px 16px;overflow:hidden;box-shadow:inset 0 0 0 1px #000,inset 0 18px 40px #0c1a2860}
.glass::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(155deg,#ffffff0c,transparent 32%)}

.t{font:700 var(--t-label) var(--ui);letter-spacing:.12em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px;margin:0 0 14px;color:var(--white)}
.lbl{font:var(--t-label) var(--data);color:var(--grey);text-transform:uppercase;letter-spacing:.06em}
.g{color:var(--green)}.c{color:var(--cyan)}.a{color:var(--amber)}.r{color:var(--red)}.m{color:var(--mag)}

/* FCU hero */
.fcu{margin-bottom:22px}
.fcu .glass{background:#0b0c0d;padding:20px 18px 18px}
.hello{font:var(--t-label) var(--data);color:var(--grey);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px}
.nextup{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.nextup .seg{font:700 var(--t-hero)/1 var(--data);color:var(--fcu);letter-spacing:.02em}
.nextup h1{margin:0;font:700 var(--t-title)/1.2 var(--ui);color:var(--white);text-wrap:balance}
.why{margin:10px 0 18px;font:16px/1.45 var(--prose);color:var(--grey);max-width:44ch}
.why b{color:var(--amber)}
.start{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:16px 18px;border-radius:10px;background:linear-gradient(180deg,#2d3238,#1d2126);box-shadow:inset 0 1px 0 #ffffff1a,0 4px 0 #0b0c0e,0 8px 18px #0008;transition:transform .08s,box-shadow .08s}
.start:active{transform:translateY(3px);box-shadow:inset 0 1px 0 #ffffff1a,0 1px 0 #0b0c0e}
.start b{font:700 18px var(--ui);letter-spacing:.08em;color:var(--cyan);text-transform:uppercase}
.start span{font:var(--t-label) var(--data);color:var(--grey)}
.start .dot{width:10px;height:10px;border-radius:50%;background:var(--green);margin-right:10px;display:inline-block;vertical-align:middle}
.today{display:flex;align-items:center;gap:12px;margin-top:16px}
.today .track{flex:1;height:6px;border-radius:3px;background:#1c1f23;overflow:hidden}
.today .track i{display:block;height:100%;width:0;background:var(--green);border-radius:3px;transition:width 1.2s var(--ease)}

.sect{margin:0 0 12px;font:700 var(--t-label) var(--ui);letter-spacing:.14em;color:var(--grey);text-transform:uppercase}
.mods .glass{padding:6px 8px}
.mod{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 8px;border-bottom:1px solid #15191d;border-radius:4px;transition:background .15s}
.mod:last-child{border-bottom:0}
button.mod:hover{background:#0f1a22}
.mod .code{font:700 22px var(--data);color:var(--white)}
.mod .nm{font:16px var(--prose);color:var(--white);display:block;margin-bottom:8px}
.bar{position:relative;display:block;height:5px;border-radius:3px;background:#1a1e22}
.bar i{position:absolute;inset:0 auto 0 0;width:0;border-radius:3px;transition:width 1.3s var(--ease)}
.bar::after{content:"";position:absolute;left:75%;top:-4px;bottom:-4px;width:2px;background:var(--faint)}
.mod .pct{font:700 26px var(--data);text-align:right;min-width:64px}
.mod .pct small{font-size:14px;color:var(--grey);margin-left:2px}
.weak{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.weak button{padding:9px 12px;border-radius:8px;border:1.5px solid #FFAE1A66;font:700 var(--t-label) var(--data);color:var(--amber);background:#FFAE1A0d}
.passed{margin-top:18px;font:var(--t-label) var(--data);color:var(--faint);letter-spacing:.04em}
.passed b{color:var(--green)}

/* sheet */
.sheet-bg{position:fixed;inset:0;z-index:30;background:#000b;display:grid;align-items:end;justify-items:center;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.sheet{width:100%;max-width:640px;padding-bottom:env(safe-area-inset-bottom,0px);animation:rise .35s var(--ease)}
.sheet .bezel{border-radius:18px 18px 0 0}
@keyframes rise{from{transform:translateY(30%)}}
.sheet h2{margin:0;font:700 var(--t-title) var(--ui)}
.sheet .sub{margin:4px 0 14px;font:var(--t-label) var(--data);color:var(--grey);text-transform:uppercase}
.modeln{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px 12px;border-radius:8px;border:1.5px solid #29D7F233;margin-top:8px;transition:border-color .15s,background .15s}
.modeln:hover{border-color:var(--cyan);background:#29D7F20a}
.modeln b{display:block;font:700 18px var(--ui);color:var(--cyan)}
.modeln span{font:14px var(--prose);color:var(--grey)}
.modeln em{font:700 18px var(--data);font-style:normal;color:var(--white)}
.modeln.main{border-color:var(--cyan);background:#29D7F20d}

/* question */
.qhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.where{font:700 var(--t-label) var(--data);color:var(--amber);letter-spacing:.06em;text-transform:uppercase}
.where.lv3{color:var(--red)}
.time{font:700 30px var(--data);color:var(--green);transition:color .3s}
.time.low{color:var(--amber)}.time.crit{color:var(--red)}
.tbar{height:3px;border-radius:2px;background:#1c1f23;margin:4px 0 18px;color:var(--green)}
.tbar i{display:block;height:100%;width:100%;background:currentColor;border-radius:2px;transition:width 1s linear}
.qtext{font:700 21px/1.4 var(--prose);color:var(--white);margin:0 0 18px;max-width:34em;text-wrap:pretty}
.efb{margin:0 0 18px;background:var(--paper);border-radius:10px;padding:10px 10px 8px;box-shadow:0 8px 20px #0008}
.efb img{display:block;width:100%;height:auto;border-radius:4px}
.efb figcaption{font:12px var(--data);color:#4b5360;margin-top:6px;text-transform:uppercase;letter-spacing:.04em}
.opts{display:grid;gap:10px}
.opt{display:grid;grid-template-columns:36px 1fr 24px;gap:12px;align-items:center;width:100%;padding:15px 12px;border-radius:10px;border:1.5px solid #29D7F240;font:17px/1.4 var(--prose);color:var(--white);background:#0a0f13;transition:border-color .15s,background .15s}
.opt:hover:not([disabled]){border-color:var(--cyan)}
.opt .k{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1.5px solid var(--cyan);font:700 17px var(--data);color:var(--cyan);transition:all .2s}
.opt .mk{font:700 18px var(--data);text-align:right}
.opt[disabled]{cursor:default}
.opt.done{border-color:var(--green);background:#22E06B10}
.opt.done .k{background:var(--green);border-color:var(--green);color:#03170A}
.opt.done .mk{color:var(--green)}
.opt.fail{border-color:var(--red);background:#FF453A10;animation:jolt .3s}
.opt.fail .k{background:var(--red);border-color:var(--red);color:#200402}
.opt.fail .mk{color:var(--red)}
.opt.dim{opacity:.4}
@keyframes jolt{30%{transform:translateX(-5px)}60%{transform:translateX(4px)}}
.memo{margin-top:14px;padding:14px 16px;border-radius:10px;background:#0c1712;animation:open .45s var(--ease)}
.memo.bad{background:#1a1407}
@keyframes open{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.memo h4{margin:0 0 6px;font:700 var(--t-label) var(--data);letter-spacing:.1em}
.memo p{margin:0 0 8px;font:16px/1.5 var(--prose)}
.memo .ref{font:var(--t-label) var(--data);color:var(--cyan);text-transform:uppercase}
.qnav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px}
.flag{font:var(--t-label) var(--data);color:var(--grey);text-transform:uppercase;padding:10px 0}
.flag.on{color:var(--mag)}
.next{padding:14px 20px;border-radius:10px;background:var(--cyan);color:#021318;font:700 16px var(--ui);letter-spacing:.06em;text-transform:uppercase}
.kbd{font:12px var(--data);color:var(--faint);display:none}
.dots{display:flex;gap:6px}
.dots i{width:22px;height:4px;border-radius:2px;background:#2a3036}
.dots i.cur{background:var(--mag)}.dots i.ok{background:var(--green)}.dots i.ko{background:var(--red)}

/* result */
.score{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.score .n{font:700 clamp(64px,18vw,96px)/.9 var(--data);color:var(--white)}
.score .n small{font-size:.4em;color:var(--grey)}
.pass{font:700 22px var(--data);color:var(--green);border:2.5px solid var(--green);padding:4px 12px;letter-spacing:.14em;margin-bottom:8px;animation:stamp .45s .15s both var(--ease)}
@keyframes stamp{from{opacity:0;transform:scale(1.5)}}
.facts{font:16px var(--prose);color:var(--grey);margin:0 0 18px}
.facts b{color:var(--white)}
.review{display:grid;gap:4px;margin:4px 0 16px}
.review .mod{grid-template-columns:64px 1fr auto}
details summary{font:var(--t-label) var(--data);color:var(--cyan);text-transform:uppercase;cursor:pointer;padding:6px 0}

/* docs */
.doc{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 6px;border-bottom:1px solid #15191d}
.doc:last-child{border-bottom:0}
.doc .cv{width:40px;height:52px;border-radius:4px;background:var(--paper);display:grid;place-items:end center;padding-bottom:5px;font:700 11px var(--data);color:var(--ink)}
.doc b{display:block;font:700 17px var(--ui)}
.doc span{font:var(--t-label) var(--data);color:var(--grey)}
.doc button{padding:10px 14px;border-radius:8px;border:1.5px solid var(--cyan);font:700 var(--t-label) var(--ui);color:var(--cyan);letter-spacing:.08em}

.keys{position:fixed;left:0;right:0;bottom:0;z-index:20;background:linear-gradient(#1c1f23,#15171a);box-shadow:0 -10px 24px #0009;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}
.keys .in{max-width:640px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.key{display:grid;justify-items:center;gap:5px;padding:9px 0 8px;border-radius:7px;background:linear-gradient(#30353b,#23272c);box-shadow:inset 0 1px 0 #ffffff17,0 3px 0 #0c0d0f;font:700 12px var(--ui);letter-spacing:.12em;color:#c9cfd5;text-align:center;transition:transform .08s,box-shadow .08s}
.key:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff17,0 1px 0 #0c0d0f}
.key i{width:24px;height:3px;border-radius:2px;background:#454b52}
.key.on{color:var(--white)}.key.on i{background:var(--green)}

.enter{animation:scan .5s var(--ease)}
@keyframes scan{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.boot{position:fixed;inset:0;z-index:50;pointer-events:none;background:#000;display:grid;place-items:center;animation:bootout .8s .45s both var(--ease)}
.boot span{font:700 14px var(--data);color:var(--green);letter-spacing:.24em}
@keyframes bootout{to{opacity:0;visibility:hidden}}


#nd{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
body{position:relative;z-index:0}
/* EXAM MEMO */
.tomemo .glass{padding:20px 18px}
.tomemo h1{margin:0;font:700 var(--t-title)/1.2 var(--ui)}
.tomemo h1 span{font:700 var(--t-hero)/1 var(--data);color:var(--fcu);margin-right:12px;vertical-align:-4px}
.memo-t{font:700 var(--t-label) var(--data);color:var(--white);letter-spacing:.12em;text-decoration:underline;text-underline-offset:5px;margin:16px 0 8px}
.chk{display:flex;align-items:baseline;gap:8px;font:15px var(--data);text-transform:uppercase;padding-block:5px}
.chk .lead{flex:1;border-bottom:2px dotted #3f464e;transform:translateY(-4px);min-width:12px}
.chk.ok{color:var(--green)} .chk.todo{color:var(--cyan)}
.verdict{margin:12px 0 4px;font:16px/1.45 var(--prose);color:var(--grey);max-width:46ch}
.verdict b{color:var(--white)}
.twobtn{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;margin-top:18px}
.start.alt b{color:var(--white)}
.start.alt .dot{background:var(--cyan)}
/* fichas de módulos */
.sect-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px}
.sect-row .sect{margin:0}
.linkbtn{font:700 var(--t-label) var(--ui);letter-spacing:.08em;color:var(--cyan);text-transform:uppercase;padding:8px 10px;border:1.5px solid #29D7F244;border-radius:8px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile{position:relative;display:grid;gap:6px;align-content:start;padding:14px 14px 12px;border-radius:12px;background:#06080acc;border:1.5px solid #1b2026;transition:border-color .15s,transform .15s}
.tile .code{font:700 20px var(--data);color:var(--white)}
.tile .nm{font:13px var(--prose);color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile .avg{font:700 28px/1 var(--data)}
.tile .avg small{font-size:13px;color:var(--grey);margin-left:3px}
.tile .bar{margin-top:4px}
.tile.passed{border-color:#22E06B55;background:#07110bcc}
.tile .stamp{font:700 12px var(--data);color:var(--green);letter-spacing:.14em;border:1.5px solid var(--green);padding:2px 6px;justify-self:start;margin-top:6px}
.tile.soon{border-style:dashed;cursor:default}
.tile.soon .code,.tile.soon .nm{opacity:.55}
.tile .soonl{font:12px var(--data);color:var(--faint);text-transform:uppercase;margin-top:10px}
.tlegend{margin-top:12px;font:var(--t-label) var(--data);color:var(--faint)}
/* selector de aprobados */
.passlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px}
.pchk{display:flex;align-items:center;gap:10px;padding:12px;border-radius:8px;border:1.5px solid #2a3037;font:15px var(--prose);color:var(--white);min-height:48px}
.pchk b{font:700 15px var(--data);min-width:44px}
.pchk .box{margin-left:auto;width:22px;height:22px;border-radius:5px;border:2px solid #4a525b;display:grid;place-items:center;font:700 14px var(--data);color:#03170A;transition:all .15s}
.pchk[aria-pressed="true"]{border-color:var(--green);background:#22E06B0f}
.pchk[aria-pressed="true"] .box{background:var(--green);border-color:var(--green)}
.done-btn{width:100%;margin-top:14px;padding:14px;border-radius:10px;background:var(--cyan);color:#021318;font:700 16px var(--ui);letter-spacing:.06em;text-transform:uppercase;text-align:center}
@media (hover:hover){button.tile:hover{border-color:var(--cyan);transform:translateY(-2px)}}
@media (max-width:720px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.twobtn{grid-template-columns:1fr}.passlist{grid-template-columns:1fr}}


/* test diario */
.daily{margin-top:18px;padding:14px;border-radius:10px;border:1.5px solid #FF8A1F55;background:#140c04}
.daily .dtop{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.daily h3{margin:0;font:700 15px var(--ui);letter-spacing:.1em;color:var(--fcu);text-transform:uppercase}
.daily .mods-sel{font:var(--t-label) var(--data);color:var(--white)}
.daily .row2{display:flex;align-items:center;gap:12px;margin:10px 0 12px}
.daily .row2 .track{flex:1;height:8px;border-radius:4px;background:#2a1a08;overflow:hidden}
.daily .row2 .track i{display:block;height:100%;width:0;background:var(--fcu);border-radius:4px;transition:width 1.2s var(--ease)}
.daily .row2 b{font:700 18px var(--data);color:var(--white)}
.daily .acts{display:flex;gap:10px;flex-wrap:wrap}
.daily .go-d{flex:1;min-height:48px;padding:12px 14px;border-radius:9px;background:var(--fcu);color:#1a0b00;font:700 15px var(--ui);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.daily .chg{min-height:48px;padding:12px 14px;border-radius:9px;border:1.5px solid #FF8A1F66;color:var(--fcu);font:700 var(--t-label) var(--ui);letter-spacing:.08em;text-transform:uppercase}
.sw{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:10px 4px;border-bottom:1px solid #1d2227;font:16px var(--prose);color:var(--white)}
.sw small{font:var(--t-label) var(--data);color:var(--grey);margin-left:6px}
.sw i{position:relative;width:48px;height:28px;border-radius:14px;background:#2a3037;transition:background .2s}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#c9cfd5;transition:transform .2s var(--ease)}
.sw[aria-checked="true"] i{background:var(--green)}
.sw[aria-checked="true"] i::after{transform:translateX(20px);background:#fff}
.daily.off{border-color:#2a3037;background:#0b0d10}
.daily .left{font:var(--t-label) var(--data);color:var(--grey);margin-top:10px}


/* botones del memo: título arriba, dato debajo */
.twobtn .start{display:grid;justify-content:start;align-content:center;gap:4px;padding:14px 16px}
.twobtn .start b,.twobtn .start span{white-space:nowrap}
/* módulos en curso: filas */
.study .glass{padding:6px 8px}
.srow{display:grid;grid-template-columns:78px minmax(0,1fr) 76px;align-items:center;gap:12px;width:100%;padding:13px 10px;border-bottom:1px solid #15191d;border-radius:6px;transition:background .15s}
.srow:last-child{border-bottom:0}
.srow .code{font:700 22px var(--data);color:var(--white)}
.srow .nm{display:block;font:15px var(--prose);color:var(--grey);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srow .avg{font:700 26px var(--data);text-align:right}
.srow .avg small{font-size:13px;color:var(--grey);margin-left:2px}
@media (hover:hover){button.srow:hover{background:#0f1a22}}
.chips-t{margin:18px 0 8px;font:700 var(--t-label) var(--ui);letter-spacing:.14em;color:var(--grey);text-transform:uppercase}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip2{display:inline-flex;align-items:baseline;gap:8px;min-height:40px;padding:9px 12px;border-radius:8px;font:13px var(--prose);color:var(--grey);border:1.5px solid #252b31;background:#07090bcc}
.chip2 b{font:700 14px var(--data);color:var(--white)}
.chip2.ok{border-color:#22E06B55;color:#9fdcb6}
.chip2.ok b{color:var(--green)}
.chip2.soon{border-style:dashed;opacity:.7}
/* aviso emergente del test diario */
.alert-bg{position:fixed;inset:0;z-index:60;background:#000c;display:grid;place-items:center;padding:16px;animation:fade .25s}
.alert{width:100%;max-width:440px;animation:pop .45s var(--ease)}
@keyframes pop{from{transform:scale(.92);opacity:0}}
.alert .glass{padding:22px 20px 20px}
.alert .lvl{display:inline-block;font:700 var(--t-label) var(--data);letter-spacing:.14em;color:var(--amber);border:1.5px solid var(--amber);padding:3px 8px;margin-bottom:12px;animation:blink 1s steps(1) 4}
.alert h2{margin:0 0 6px;font:700 24px/1.2 var(--ui);color:var(--amber);text-transform:uppercase;letter-spacing:.04em}
.alert p{margin:0 0 14px;font:16px/1.5 var(--prose);color:var(--grey)}
.alert p b{color:var(--white)}
.alert .chk{font-size:14px}
.alert .acts{display:grid;gap:10px;margin-top:16px}
.alert .go-d{min-height:52px;border-radius:10px;background:var(--fcu);color:#1a0b00;font:700 16px var(--ui);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.alert .later{min-height:44px;font:700 var(--t-label) var(--ui);letter-spacing:.1em;color:var(--grey);text-transform:uppercase;text-align:center}


/* 1. aire entre bloques */
.home > div + div{margin-top:30px}
@media (min-width:960px){.home > div + div{margin-top:0}}
.daily .left{margin-top:12px}
/* 2. licencia B1.1 */
.lic{margin-top:22px}
.lic .glass{padding:16px}
.lic .head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.lic .head b{font:700 var(--t-label) var(--ui);letter-spacing:.14em;color:var(--white);text-transform:uppercase;text-decoration:underline;text-underline-offset:5px}
.lic .head span{font:700 15px var(--data);color:var(--green)}
.segs13{display:grid;grid-template-columns:repeat(13,1fr);gap:3px;margin-bottom:14px}
.segs13 i{height:8px;border-radius:2px;background:#262c33}
.segs13 i.ok{background:var(--green)} .segs13 i.on{background:var(--cyan)}
.lic .chk{font-size:14px;cursor:default;align-items:baseline}
.lic .chk .v{text-align:right}
.lic button.chk{width:100%}
.lic .chk.soon{color:var(--faint)}
/* 3. barra inferior */
.keys{background:#050607f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:none;border-top:1px solid #1d2227;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}
.keys .in{gap:0;max-width:560px}
.key{position:relative;display:grid;justify-items:center;gap:3px;padding:8px 0 6px;min-height:54px;border-radius:10px;background:none;box-shadow:none;font:700 11px var(--ui);letter-spacing:.06em;color:#7d8791;text-transform:uppercase}
.key:active{transform:none;box-shadow:none;background:#ffffff08}
.key svg{width:24px;height:24px}
.key i{display:none}
.key::before{content:"";position:absolute;top:0;left:50%;width:0;height:3px;border-radius:0 0 3px 3px;background:var(--green);transform:translateX(-50%);transition:width .25s var(--ease)}
.key.on{color:var(--cyan)}
.key.on::before{width:28px}


/* ajustes finales */
.tomemo .verdict{font-size:14px;line-height:1.45;margin-top:8px}
.daily{border-color:#FF5AD955;background:#15061a}
.daily h3{color:var(--mag)}
.daily .row2 .track{background:#2a0f2e}
.daily .row2 .track i{background:var(--mag)}
.daily .go-d{background:var(--mag);color:#22001c}
.daily .chg{border-color:#FF5AD966;color:var(--mag)}
.alert .go-d{background:var(--mag);color:#22001c}

/* ----- ordenador: todo a la vista, sin deslizar ----- */
@media (min-width:960px){
  .wrap{max-width:1200px;padding-inline:28px}
  .home{display:grid;grid-template-columns:1.05fr 1fr;gap:28px;align-items:start}
  .home .fcu{margin:0 0 18px}
  .qscreen .glass{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:36px;height:calc(100dvh - 210px);min-height:500px;padding:20px 26px}
  .qscreen .qtop{grid-column:1/-1}
  .qscreen .qleft,.qscreen .qright{min-height:0;display:flex;flex-direction:column}
  .qscreen .qleft #memo{margin-top:auto}
  .qscreen .qtext{font-size:24px}
  .qscreen .efb{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .qscreen .efb img{flex:1 1 auto;min-height:0;object-fit:contain}
  .kbd{display:inline}
  .resgrid{display:grid;grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:480px){.mod{grid-template-columns:58px 1fr auto}.mod .code{font-size:19px}.mod .pct{font-size:22px;min-width:54px}.lights .mlight{width:52px}}

/* ----- móviles (iPhone y Android) ----- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.sheet .glass{max-height:calc(88dvh - env(safe-area-inset-bottom,0px));overflow:auto;overscroll-behavior:contain}
.opt,.modeln,.mod,.key,.start,.next{min-height:48px}
@media (hover:none){
  body{background-attachment:scroll}
  button.mod:hover,.opt:hover:not([disabled]),.modeln:hover{background:inherit;border-color:inherit}
  .opt:hover:not([disabled]){border-color:#29D7F240;background:#0a0f13}
  .modeln:hover{border-color:#29D7F233;background:none}
  .modeln.main:hover{border-color:var(--cyan);background:#29D7F20d}
  button.mod:hover{background:none}
  .opt:active:not([disabled]){border-color:var(--cyan);background:#29D7F214}
  button.mod:active,.modeln:active{background:#0f1a22}
}
@media (max-width:380px){
  :root{--t-body:16px}
  .wrap{padding-inline:12px}
  .glass{padding:16px 12px}
  .qtext{font-size:19px}
  .opt{padding:13px 10px;grid-template-columns:32px 1fr 20px;font-size:16px}
  .opt .k{width:32px;height:32px}
  .start{padding:14px}
  .start span{display:none}
  .brand{font-size:15px;letter-spacing:.14em}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.boot{display:none}}
