:root{
  --bg:#0d0d14; --bg2:#14141f; --card:#1a1a26; --card2:#22222f;
  --gold:#d4af37; --gold2:#f0d060; --txt:#f2f0e8; --mut:#a9a5b3;
  --ok:#4caf50; --bad:#e57373; --line:#2c2c3a;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.6}
.wrap{max-width:1020px;margin:0 auto;padding:0 16px}
.topbar{background:#08080d;border-bottom:1px solid var(--gold);position:sticky;top:0;z-index:10}
.topbar-in{display:flex;justify-content:space-between;align-items:center;padding:12px 16px}
.brand{color:var(--gold2);text-decoration:none;font-weight:800;font-size:1.05rem}
.brand-sub{color:var(--mut);font-weight:400;font-size:.85rem}
.badge-construccion{background:#3a2f0c;color:var(--gold2);border:1px solid var(--gold);border-radius:20px;padding:3px 12px;font-size:.8rem}
.footer{margin-top:48px;border-top:1px solid var(--line);padding:18px 0;color:var(--mut);font-size:.9rem;text-align:center}
h1,h2,h3{color:var(--gold2)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:16px 0}
.card h2{margin-top:0}
.hero{text-align:center;padding:36px 16px}
.hero h1{font-size:2rem;margin:.3em 0}
.hero .sub{color:var(--mut);font-size:1.05rem;max-width:640px;margin:0 auto}
.honest{display:grid;gap:10px;margin-top:22px;text-align:left}
.honest .item{background:var(--card);border-left:4px solid var(--gold);border-radius:8px;padding:12px 14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.mod{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:var(--txt);display:block}
.mod:hover{border-color:var(--gold)}
.mod .mbadge{display:inline-block;background:var(--gold);color:#111;font-weight:800;border-radius:8px;padding:2px 10px;font-size:.85rem;margin-bottom:8px}
.mod .mlevel{color:var(--mut);font-size:.85rem;margin-left:8px}
.mod .mtitle{font-weight:700;font-size:1.05rem;margin:4px 0}
.mod .mcount{color:var(--mut);font-size:.85rem}
.lesson-row{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:8px 0;text-decoration:none;color:var(--txt)}
.lesson-row:hover{border-color:var(--gold)}
.lesson-row .n{color:var(--gold);font-weight:800;margin-right:10px}
.exam-tag{color:var(--gold2);font-size:.8rem}
.back{display:inline-block;margin:14px 0;color:var(--gold2);text-decoration:none}
.vocab{width:100%;border-collapse:collapse;margin:10px 0}
.vocab th,.vocab td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left}
.vocab th{color:var(--gold)}
.pron{color:#9fd0ff;font-style:italic}
.en{font-weight:600}
audio{width:100%;max-width:420px}
.playbtn{background:var(--card2);border:1px solid var(--gold);color:var(--gold2);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:.9rem}
.playbtn:hover{background:#2d2d3d}
.dialog{background:var(--bg2);border-radius:10px;padding:10px 14px;margin:8px 0}
.dialog .sp{color:var(--gold2);font-weight:700}
.exercise{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0}
.exercise .q{font-weight:600}
.exercise input[type=text]{background:#0d0d14;border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:6px 10px;margin:4px 0}
.exercise .opts label{display:block;margin:6px 0;cursor:pointer}
.check{background:var(--gold);color:#111;border:0;border-radius:8px;padding:8px 16px;font-weight:700;cursor:pointer;margin-top:8px}
.res-ok{color:var(--ok);font-weight:700}.res-bad{color:var(--bad);font-weight:700}
.videowrap{margin:14px 0}
.videowrap video{width:100%;border-radius:12px;background:#000}
.produccion{background:#2a1f08;border:1px dashed var(--gold);border-radius:12px;padding:18px;text-align:center;color:var(--gold2);margin:14px 0}
.tag-video{display:inline-block;background:#12351a;color:#8fe39a;border-radius:8px;padding:2px 10px;font-size:.8rem;margin-left:8px}
.note{color:var(--mut);font-size:.9rem}
