/* DPO Belix Test · azul y naranja */
:root{
  --blue:#1c6fd1; --blue-d:#1559ab; --blue-l:#4a95ea; --blue-50:#eaf2fd; --blue-100:#d6e6fb;
  --orange:#f58a1f; --orange-d:#d96f08; --orange-50:#fff3e5;
  --bg:#f2f6fc; --card:#fff; --ink:#0f2038; --muted:#5a6b82; --line:#dbe6f4;
  --ok:#17935a; --ok-bg:#e3f6ec; --bad:#d23f31; --bad-bg:#fdebe9;
  --shadow:0 1px 2px rgba(15,32,56,.06),0 8px 24px rgba(15,32,56,.07);
  --radius:18px; --on-orange:#2a1a05;
}
@media (prefers-color-scheme: dark){
  :root{
    --blue:#6aa9ff; --blue-d:#9cc7ff; --blue-l:#8bbcff; --blue-50:#162842; --blue-100:#1d3558;
    --orange:#ffa13d; --orange-d:#ffb865; --orange-50:#33220f;
    --bg:#0b1320; --card:#142033; --ink:#e8eff8; --muted:#9db0c7; --line:#243650;
    --ok:#4cc483; --ok-bg:#12301f; --bad:#f0786b; --bad-bg:#3a1c19;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--blue);text-decoration:none}
h1,h2,h3{margin:0;line-height:1.2}
.ic{flex:none;vertical-align:middle}
.muted{color:var(--muted)} .small{font-size:13.5px} .center{text-align:center}
.page{max-width:1120px;margin:0 auto;padding:22px 18px 110px}
.page.narrow{max-width:780px}

/* barra superior */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.tb-in{max-width:1120px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.01em}
.mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--blue-l));display:grid;place-items:center;color:#fff;font-size:19px;box-shadow:0 4px 12px rgba(28,111,209,.35);position:relative}
.mark::after{content:"";position:absolute;right:-3px;top:-3px;width:11px;height:11px;border-radius:50%;background:var(--orange);border:2px solid var(--card)}
.tnav{display:flex;gap:4px;margin-left:12px;flex:1}
.tnav a{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;color:var(--muted);font-weight:600;font-size:15px;position:relative}
.tnav a:hover{background:var(--blue-50);color:var(--blue)}
.tnav a.on{background:var(--blue-50);color:var(--blue)}
.badge{background:var(--orange);color:var(--on-orange);border-radius:20px;font-size:12px;font-weight:800;padding:0 7px;line-height:19px;min-width:19px;text-align:center}
.tb-user{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#ffb454);color:var(--on-orange);display:grid;place-items:center;font-weight:800;font-size:15px}
.bnav{display:none}

/* botones y formularios */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:11px 18px;font:600 15.5px/1.2 inherit;font-family:inherit;cursor:pointer;background:var(--blue);color:#fff;transition:transform .08s,box-shadow .15s,background .15s}
@media (prefers-color-scheme: dark){.btn{color:#08111f}}
.btn:hover{background:var(--blue-d)} .btn:active{transform:scale(.98)}
.btn.orange{background:var(--orange);color:var(--on-orange)} .btn.orange:hover{background:var(--orange-d)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)} .btn.ghost:hover{background:var(--blue-50)}
.btn.soft{background:var(--blue-50);color:var(--blue)} .btn.soft:hover{background:var(--blue-100)}
.btn.danger{background:var(--bad);color:#fff} .btn.sm{padding:7px 12px;font-size:14px;border-radius:10px}
.btn.block{width:100%} .btn[disabled]{opacity:.5;cursor:not-allowed}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-weight:600;font-size:14px}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;width:100%}
input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent)}
.err{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:10px 13px;font-weight:600;font-size:14.5px;margin-bottom:12px}
.okmsg{background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:10px 13px;font-weight:600;font-size:14.5px;margin-bottom:12px}
.seg{display:flex;background:var(--blue-50);border-radius:13px;padding:4px;gap:4px}
.seg button{flex:1;border:0;background:transparent;color:var(--muted);font:600 14.5px inherit;font-family:inherit;padding:10px 8px;border-radius:10px;cursor:pointer}
.seg button.on{background:var(--card);color:var(--blue);box-shadow:var(--shadow)}

/* tarjetas */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}
.card h2{font-size:19px;margin-bottom:4px} .card h3{font-size:16.5px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.grid{display:grid;gap:18px} .g2{grid-template-columns:1fr 1fr} .g3{grid-template-columns:repeat(3,1fr)}
.row{display:flex;align-items:center;gap:12px} .wrap{flex-wrap:wrap} .sp{justify-content:space-between}
.chip{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:3px 11px;font-size:13px;font-weight:700;background:var(--blue-50);color:var(--blue)}
.chip.o{background:var(--orange-50);color:var(--orange-d)} .chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.bad{background:var(--bad-bg);color:var(--bad)} .chip.g{background:var(--line);color:var(--muted)}

/* portada del panel */
.hero{background:linear-gradient(120deg,var(--blue-d) 0%,var(--blue) 55%,var(--blue-l) 100%);color:#fff;border-radius:24px;padding:28px 28px 26px;margin-bottom:20px;position:relative;overflow:hidden;box-shadow:0 14px 34px rgba(28,111,209,.28)}
@media (prefers-color-scheme: dark){.hero{background:linear-gradient(120deg,#1a3f73 0%,#245ca8 60%,#2f74cc 100%)}}
.hero::before{content:"";position:absolute;right:-60px;top:-70px;width:240px;height:240px;border-radius:50%;background:var(--orange);opacity:.95}
.hero::after{content:"";position:absolute;right:90px;bottom:-90px;width:170px;height:170px;border-radius:50%;background:#fff;opacity:.12}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:28px;letter-spacing:-.02em;margin-bottom:6px} .hero p{margin:0 0 18px;opacity:.92;max-width:520px}
.hero .btn.orange{box-shadow:0 6px 16px rgba(0,0,0,.2)} .hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.55)} .hero .btn.ghost:hover{background:rgba(255,255,255,.14)}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow)}
.tile .ti{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;margin-bottom:10px;background:var(--blue-50);color:var(--blue)}
.tile .ti.o{background:var(--orange-50);color:var(--orange-d)} .tile .ti.ok{background:var(--ok-bg);color:var(--ok)}
.tile b{display:block;font-size:26px;line-height:1.1;letter-spacing:-.02em} .tile span{color:var(--muted);font-size:13.5px}

/* gráficos */
.bars{display:flex;align-items:flex-end;gap:7px;padding-top:22px;position:relative}
.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;color:inherit}
.bars .bt{height:140px;width:100%;display:flex;align-items:flex-end;justify-content:center}
.bars .bt i{display:block;width:100%;max-width:34px;border-radius:8px 8px 3px 3px;background:var(--orange);min-height:3px;transition:height .5s}
.bars .bt i.p{background:var(--blue)}
.bars .b em{font-size:11.5px;font-style:normal;color:var(--muted);font-weight:700;height:18px;line-height:18px}
.bars .line{position:absolute;left:0;right:0;bottom:calc(23px + 140px * .7533);border-top:2px dashed var(--ok);opacity:.8;pointer-events:none}
.bars .line span{position:absolute;right:0;top:-20px;font-size:11.5px;color:var(--ok);font-weight:700}
.bar{height:10px;border-radius:6px;background:var(--blue-50);overflow:hidden} .bar>div{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--blue),var(--blue-l))}
.bar.o>div{background:linear-gradient(90deg,var(--orange),#ffb454)}
.drow{margin:12px 0}.drow .row{margin-bottom:5px} .drow b{font-size:14.5px}

/* exámenes */
.examgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ex{display:flex;flex-direction:column;gap:10px;margin:0;position:relative;overflow:hidden}
.ex.full{border-color:var(--orange);background:linear-gradient(180deg,var(--orange-50),var(--card) 55%)}
.ex .num{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:19px;background:var(--blue-50);color:var(--blue)}
.ex.full .num{background:var(--orange);color:var(--on-orange)}
.ex .meta{display:flex;gap:6px;flex-wrap:wrap}

/* listas */
.list>a,.list>div.item{display:flex;align-items:center;gap:14px;padding:13px 4px;border-top:1px solid var(--line);color:inherit}
.list>:first-child{border-top:0}
.list a:hover{background:var(--blue-50);border-radius:12px}
.dot{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;font-weight:800;font-size:14px;background:var(--orange-50);color:var(--orange-d)}
.dot.p{background:var(--ok-bg);color:var(--ok)}
.grow{flex:1;min-width:0} .grow b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.filters button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:20px;padding:7px 14px;font:600 14px inherit;font-family:inherit;cursor:pointer}
.filters button.on{background:var(--blue);border-color:var(--blue);color:#fff}
@media (prefers-color-scheme: dark){.filters button.on{color:#08111f}}
.empty{text-align:center;color:var(--muted);padding:30px 10px}
table.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th{text-align:left;color:var(--muted);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.acts{display:flex;gap:6px;flex-wrap:wrap}

/* autenticación */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.auth-hero{background:linear-gradient(140deg,var(--blue-d),var(--blue) 60%,var(--blue-l));color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
@media (prefers-color-scheme: dark){.auth-hero{background:linear-gradient(140deg,#14305a,#1f518f 60%,#2b6cb8)}}
.auth-hero::before{content:"";position:absolute;right:-90px;top:-90px;width:320px;height:320px;border-radius:50%;background:var(--orange)}
.auth-hero::after{content:"";position:absolute;left:-60px;bottom:-80px;width:240px;height:240px;border-radius:50%;background:#fff;opacity:.1}
.auth-hero>*{position:relative;z-index:1}
.auth-hero h1{font-size:38px;letter-spacing:-.03em;margin:14px 0 10px} .auth-hero p{font-size:17px;opacity:.93;max-width:440px}
.auth-hero ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px} .auth-hero li{display:flex;gap:10px;align-items:center;font-weight:600}
.auth-hero .mark{width:58px;height:58px;border-radius:18px;font-size:30px;background:rgba(255,255,255,.18);box-shadow:none}
.auth-form{display:flex;align-items:center;justify-content:center;padding:32px 22px}
.auth-card{width:100%;max-width:400px} .auth-card h2{font-size:26px;margin-bottom:4px}
.auth-card .sub{color:var(--muted);margin-bottom:22px}

/* examen en curso */
.run-head{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--line);padding:10px 16px;display:flex;align-items:center;gap:12px}
.run-title{flex:1;min-width:0;font-weight:800} .run-title small{display:block;color:var(--muted);font-weight:600;font-size:12.5px}
.timer{font-variant-numeric:tabular-nums;font-weight:800;border-radius:20px;padding:6px 14px;background:var(--blue-50);color:var(--blue);display:inline-flex;gap:6px;align-items:center}
.timer.warn{background:var(--orange-50);color:var(--orange-d)} .timer.crit{background:var(--bad-bg);color:var(--bad);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.55}}
.run-bar{height:5px;background:var(--blue-50)} .run-bar>div{height:100%;background:linear-gradient(90deg,var(--orange),#ffb454);transition:width .3s}
.q .qh{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.qnum{background:var(--blue);color:#fff;border-radius:10px;padding:2px 11px;font-weight:800;font-size:14px}
@media (prefers-color-scheme: dark){.qnum{color:#08111f}}
.qtext{font-size:18.5px;line-height:1.5;font-weight:500}
.opts{display:grid;gap:10px;margin-top:16px}
.opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:13px 14px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink);font:16px/1.4 inherit;font-family:inherit;cursor:pointer;transition:border-color .12s,background .12s}
.opt:hover:not([disabled]){border-color:var(--blue-l);background:var(--blue-50)}
.opt .l{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid var(--blue);color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:14px}
.opt.sel{border-color:var(--blue);background:var(--blue-50)} .opt.sel .l{background:var(--blue);color:#fff}
.opt.correct{border-color:var(--ok);background:var(--ok-bg)} .opt.correct .l{background:var(--ok);border-color:var(--ok);color:#fff}
.opt.wrong{border-color:var(--bad);background:var(--bad-bg)} .opt.wrong .l{background:var(--bad);border-color:var(--bad);color:#fff}
.opt[disabled]{cursor:default}
.fb{margin-top:16px;padding:14px 16px;border-radius:14px}
.fb.ok{background:var(--ok-bg);border:1px solid var(--ok)} .fb.bad{background:var(--bad-bg);border:1px solid var(--bad)}
.fb .t{font-weight:800;font-size:17px;display:block;margin-bottom:3px} .fb.ok .t{color:var(--ok)} .fb.bad .t{color:var(--bad)}
.why{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:15px}
.why .wh{display:block;font-weight:800;color:var(--blue);margin-bottom:3px}
.fb .why .wh{color:inherit}
.run-foot{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));z-index:20}
.run-foot .in{max-width:780px;margin:0 auto;display:flex;gap:10px} .run-foot .btn{flex:1}
.map{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:7px;margin-top:10px}
.map button{padding:8px 0;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:600 14px inherit;font-family:inherit;cursor:pointer}
.map .ok{background:var(--ok);border-color:var(--ok);color:#fff} .map .bad{background:var(--bad);border-color:var(--bad);color:#fff}
.map .ans{background:var(--blue);border-color:var(--blue);color:#fff} .map .cur{outline:3px solid var(--orange)}

/* resultado */
.result{text-align:center}
.ring{position:relative;width:170px;height:170px;margin:6px auto 10px}
.ring svg{transform:rotate(-90deg)} .ring .bg{stroke:var(--blue-50)} .ring .fg{stroke:var(--orange);stroke-linecap:round;transition:stroke-dashoffset .9s}
.ring.pass .fg{stroke:var(--ok)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;letter-spacing:-.02em}
.ring b small{display:block;font-size:14px;color:var(--muted);font-weight:600}
.verdict{display:inline-block;border-radius:14px;padding:9px 22px;font-weight:800;font-size:20px}
.verdict.ok{background:var(--ok-bg);color:var(--ok)} .verdict.no{background:var(--bad-bg);color:var(--bad)}
details.rv{border-top:1px solid var(--line);padding:11px 0} details.rv summary{cursor:pointer;font-weight:600;display:flex;gap:10px;align-items:flex-start}
details.rv[open] summary{color:var(--blue)} .rv .st{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}
.rv .st.ok{background:var(--ok-bg);color:var(--ok)} .rv .st.bad{background:var(--bad-bg);color:var(--bad)} .rv .st.na{background:var(--line);color:var(--muted)}
.rv .body{padding:10px 0 4px 34px}

/* ventanas y avisos */
#modal{position:fixed;inset:0;background:rgba(7,14,26,.6);display:none;align-items:center;justify-content:center;z-index:50;padding:18px}
#modal.on{display:flex}
.mbox{background:var(--card);border-radius:22px;max-width:480px;width:100%;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.4);max-height:90vh;overflow:auto}
.mbox.love{text-align:center;border:3px solid var(--orange)} .mbox.love .emo{font-size:56px;line-height:1.1} .mbox.love h2{color:var(--blue);margin:8px 0}
.mbox.love p{font-size:18px;margin:10px 0 18px}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--card);padding:11px 20px;border-radius:14px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:90vw}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.fall{position:fixed;top:-40px;z-index:70;pointer-events:none;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(112vh) rotate(360deg)}}
.spin{width:34px;height:34px;border-radius:50%;border:4px solid var(--blue-100);border-top-color:var(--blue);animation:rot .8s linear infinite;margin:60px auto}
@keyframes rot{to{transform:rotate(360deg)}}

@media (max-width:860px){
  .auth{grid-template-columns:1fr} .auth-hero{padding:28px 24px 30px} .auth-hero h1{font-size:28px} .auth-hero ul{display:none}
  .tiles{grid-template-columns:repeat(2,1fr)} .tiles .tile:last-child{grid-column:span 2}
  .g2,.g3{grid-template-columns:1fr}
}
@media (max-width:720px){
  .tnav{display:none} .tb-user .btn span{display:none}
  .page{padding:16px 14px 110px} .hero{padding:22px 20px;border-radius:20px} .hero h1{font-size:23px}
  .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .bnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:12px;color:var(--muted);font-size:11.5px;font-weight:700;position:relative}
  .bnav a.on{color:var(--blue);background:var(--blue-50)} .bnav .badge{position:absolute;top:2px;right:18%}
  .tbl thead{display:none} .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:10px}.tbl td{border:0;padding:4px 2px}
  #toast{bottom:84px}
}

/* ajustes de la barra superior en pantallas medianas */
.brand span:last-child{white-space:nowrap}
@media (max-width:1000px){ .tnav a span:not(.badge){display:none} .tnav a{padding:9px 12px} .tnav{margin-left:4px} }
