/* ==========================================================================
   Ingeniería de Prompts: de 0 a Master — design system propio
   Base: Bootstrap 5.3.3 servido localmente (ver index.html).
   Mobile first: estilos base pensados para ~360px y ampliación ≥576/768/992.
   Todas las clases propias llevan prefijo dk- para no colisionar con Bootstrap.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --bg:#eef2f7; --surface:#ffffff; --surface-2:#e7edf5; --surface-3:#f5f8fc;
  --ink:#14202c; --ink-soft:#4c5c6d; --ink-faint:#5a6879;
  --border:#d9e1ec; --border-strong:#bfcfde;
  --accent:#4338ca; --accent-2:#3730a3; --accent-ink:#ffffff; --accent-soft:#e8e9fd;
  --ok:#1a6e44; --ok-soft:#dcf0e5; --ok-border:#b5dfc7;
  --warn:#7f5710; --warn-soft:#fcf0d7; --warn-border:#ecd9a4;
  --bad:#b23b32; --bad-soft:#fbe5e2; --bad-border:#f0c4bf;
  --code-bg:#0d1826; --code-head:#0a1322; --code-ink:#d7e5f4; --code-dim:#8ca6c2;
  --shadow:0 1px 2px rgba(20,32,44,.05), 0 8px 24px rgba(20,32,44,.07);
  --radius:12px; --radius-sm:9px;
  --serif:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0e141c; --surface:#161e29; --surface-2:#1e2937; --surface-3:#121a24;
    --ink:#e7edf4; --ink-soft:#a7b3c2; --ink-faint:#93a0ae;
    --border:#28323f; --border-strong:#3c4a59;
    --accent:#a5b4fc; --accent-2:#c7d2fe; --accent-ink:#12123a; --accent-soft:#1d1f4a;
    --ok:#4cc38a; --ok-soft:#12331f; --ok-border:#1f5c3c;
    --warn:#e0b04e; --warn-soft:#33270e; --warn-border:#5c4a1c;
    --bad:#ef8a80; --bad-soft:#3b1714; --bad-border:#6e2c27;
    --code-bg:#0a121d; --code-head:#080f18; --code-ink:#cfe0f2; --code-dim:#7c93ac;
    --shadow:0 1px 2px rgba(0,0,0,.35), 0 10px 30px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --bg:#0e141c; --surface:#161e29; --surface-2:#1e2937; --surface-3:#121a24;
  --ink:#e7edf4; --ink-soft:#a7b3c2; --ink-faint:#93a0ae;
  --border:#28323f; --border-strong:#3c4a59;
  --accent:#a5b4fc; --accent-2:#c7d2fe; --accent-ink:#12123a; --accent-soft:#1d1f4a;
  --ok:#4cc38a; --ok-soft:#12331f; --ok-border:#1f5c3c;
  --warn:#e0b04e; --warn-soft:#33270e; --warn-border:#5c4a1c;
  --bad:#ef8a80; --bad-soft:#3b1714; --bad-border:#6e2c27;
  --code-bg:#0a121d; --code-head:#080f18; --code-ink:#cfe0f2; --code-dim:#7c93ac;
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 10px 30px rgba(0,0,0,.4);
}

/* ---------- Base ---------- */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink); font-family:var(--sans);
  font-size:15.5px; line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;
}
a{color:inherit; text-decoration:none;}
svg{vertical-align:middle;}
button{font:inherit;}
::selection{background:var(--accent-soft);}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

.dk-sr{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; z-index:2000;}
.dk-sr:focus{position:fixed; top:10px; left:10px; width:auto; height:auto; clip:auto; background:var(--surface); color:var(--accent); padding:10px 16px; border-radius:10px; border:1px solid var(--border-strong); font-weight:700;}

/* ---------- Barra superior ---------- */
.dk-top{
  position:sticky; top:0; z-index:1020; display:flex; align-items:center; gap:8px;
  background:var(--surface); border-bottom:1px solid var(--border);
  padding:6px 12px; min-height:56px;
}
.dk-top-title{
  flex:1; min-width:0; font-family:var(--serif); font-size:16.5px; font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.dk-iconbtn{
  width:44px; height:44px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:0; border-radius:10px; color:var(--ink-soft); cursor:pointer;
  transition:background .15s, color .15s;
}
.dk-iconbtn:hover{background:var(--surface-2); color:var(--ink);}
.dk-iconbtn svg{width:22px; height:22px;}
.dk-menu-btn{display:inline-flex;}
@media (min-width:992px){ .dk-menu-btn{display:none;} }
.dk-lessonbar{height:3px; background:var(--surface-2); position:sticky; top:56px; z-index:1019;}
.dk-lessonbar i{display:block; height:100%; width:0; background:var(--accent); transition:width .4s ease;}

/* ---------- Shell: sidebar + main ---------- */
.dk-shell{display:block; min-height:70vh;}
.dk-side{background:var(--surface); border-right:0;}
.dk-side .offcanvas-header{padding:8px 12px;}
@media (min-width:992px){
  .dk-shell{display:grid; grid-template-columns:292px minmax(0,1fr); align-items:start;}
  .dk-side{
    position:sticky !important; top:59px; height:calc(100dvh - 59px);
    border-right:1px solid var(--border); background:var(--surface);
    visibility:visible !important; transform:none !important; flex:none; max-width:none;
  }
  .dk-side .offcanvas-header{display:none;}
}
.dk-side-in{padding:6px 12px 28px; font-size:14px; overflow-y:auto;}
@media (min-width:992px){ .dk-side-in{max-height:calc(100dvh - 65px);} }

.dk-nav-brand{display:flex; align-items:center; gap:10px; padding:12px 10px 6px;}
.dk-nav-brand .dk-nav-logo{width:34px; height:34px; border-radius:9px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.dk-nav-brand .dk-nav-logo svg{width:20px; height:20px;}
.dk-nav-brand b{font-family:var(--serif); font-size:15px; line-height:1.2; display:block;}
.dk-nav-brand small{display:block; font-size:12px; color:var(--ink-faint); font-weight:600; letter-spacing:.04em;}

.dk-nav-sec{margin:16px 8px 5px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); font-weight:700;}
.dk-nav-link{
  display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 10px;
  border-radius:10px; color:var(--ink-soft); transition:background .12s, color .12s;
}
.dk-nav-link svg{width:18px; height:18px; flex:0 0 auto;}
.dk-nav-link:hover{background:var(--surface-2); color:var(--ink);}
.dk-nav-link.on{background:var(--accent-soft); color:var(--accent); font-weight:700;}
.dk-nav-link .nm{flex:1; min-width:0;}
.dk-nav-badge{
  flex:0 0 auto; margin-left:auto; background:var(--accent); color:var(--accent-ink); font-size:12px; font-weight:700;
  line-height:1.4; border-radius:999px; padding:1px 9px; min-width:22px; text-align:center; letter-spacing:.02em;
}
.dk-nav-link.on .dk-nav-badge{background:var(--accent-2);}
.dk-nav-lvl{margin:14px 8px 3px; font-size:12px; color:var(--ink-faint); font-weight:700; letter-spacing:.06em;}
.dk-nav-mod{
  display:flex; align-items:center; gap:9px; min-height:42px; padding:6px 10px;
  border-radius:10px; color:var(--ink-soft); font-size:13.5px; line-height:1.35;
}
.dk-nav-mod .dk-st{flex:0 0 auto;}
.dk-nav-mod span.nm{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;}
.dk-nav-mod:hover{background:var(--surface-2); color:var(--ink);}
.dk-nav-mod.on{background:var(--accent-soft); color:var(--accent); font-weight:700;}
.dk-nav-foot{margin-top:18px; padding:0 8px;}

/* ---------- Main / tipografía de contenido ---------- */
.dk-main{min-width:0; max-width:880px; margin:0 auto; padding:18px 16px 72px; outline:none;}
@media (min-width:768px){ .dk-main{padding:28px 24px 84px;} }
.dk-main h1{font-family:var(--serif); font-size:25px; font-weight:600; line-height:1.22; margin:4px 0 10px;}
.dk-main h2{font-family:var(--serif); font-size:19.5px; font-weight:600; margin:26px 0 10px; line-height:1.3;}
.dk-main h3{font-size:15.5px; font-weight:700; margin:16px 0 8px;}
.dk-main p{margin:0 0 12px;}
.dk-main ul,.dk-main ol{padding-left:22px; margin:0 0 14px;}
.dk-main li{margin-bottom:6px;}
.dk-main li::marker{color:var(--accent); font-weight:700;}
.dk-main code{
  font-family:var(--mono); font-size:max(.87em,12px); background:var(--surface-2);
  border:1px solid var(--border); border-radius:5px; padding:1px 5px; word-break:break-word;
}
.dk-crumb{font-size:12.5px; color:var(--ink-faint); margin-bottom:8px; display:flex; gap:6px; flex-wrap:wrap; align-items:center;}
.dk-crumb a:hover{color:var(--accent);}
.dk-lede{font-size:15px; color:var(--ink-soft); margin-bottom:18px; max-width:64ch;}

/* ---------- Botones ---------- */
.dk-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:10px 18px; border-radius:10px;
  border:1.5px solid var(--border-strong); background:var(--surface); color:var(--ink);
  font-weight:600; font-size:14.5px; cursor:pointer;
  transition:border-color .15s, background .15s, transform .1s;
}
.dk-btn:hover{border-color:var(--accent);}
.dk-btn:active{transform:translateY(1px);}
.dk-btn svg{width:18px; height:18px; flex:0 0 auto;}
.dk-btn-primary{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
.dk-btn-primary:hover{background:var(--accent-2); border-color:var(--accent-2);}
.dk-btn-ghost{background:transparent; border-color:transparent; color:var(--ink-soft);}
.dk-btn-ghost:hover{color:var(--accent); border-color:var(--accent);}
.dk-btn-danger{color:var(--bad); border-color:var(--bad-border);}
.dk-btn-danger:hover{border-color:var(--bad); background:var(--bad-soft);}
.dk-btn-sm{min-height:44px; padding:6px 13px; font-size:13px; border-radius:8px;}
.dk-btn-lg{min-height:52px; padding:13px 24px; font-size:16px; border-radius:12px;}
.dk-btn-lg svg{width:20px; height:20px;}
.dk-btn[disabled]{opacity:.5; cursor:not-allowed; pointer-events:none;}
.dk-btn-block{width:100%;}

/* ---------- Chips ---------- */
.dk-chiprow{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px;}
.dk-chip{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600;
  padding:5px 11px; border-radius:999px; background:var(--surface-2); color:var(--ink-soft);
  border:1px solid var(--border);
}
.dk-chip svg{width:13px; height:13px;}
.dk-chip.accent{background:var(--accent-soft); color:var(--accent); border-color:transparent;}
.dk-chip.ok{background:var(--ok-soft); color:var(--ok); border-color:var(--ok-border);}
.dk-chip.warn{background:var(--warn-soft); color:var(--warn); border-color:var(--warn-border);}
.dk-chip.bad{background:var(--bad-soft); color:var(--bad); border-color:var(--bad-border);}

/* ---------- Cards, widgets, stats ---------- */
.dk-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px;}
.dk-widget{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; margin-bottom:14px;}
.dk-widget-h{
  display:flex; align-items:center; gap:9px; padding:11px 15px;
  border-bottom:1px solid var(--border); font-size:12px; font-weight:800;
  text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft);
}
.dk-widget-h svg{width:16px; height:16px; color:var(--accent); flex:0 0 auto;}
.dk-widget-h h3{margin:0; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:inherit;}
.dk-widget-more{margin-left:auto; font-size:12px; font-weight:800; color:var(--accent); text-transform:none; letter-spacing:0;}
.dk-widget-more:hover{text-decoration:underline;}
.dk-widget-b{padding:13px 15px;}

.dk-statsrow{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:16px;}
@media (min-width:768px){ .dk-statsrow{grid-template-columns:repeat(4,1fr);} }
.dk-stat{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:11px 13px;}
.dk-stat-v{font-family:var(--serif); font-size:21px; font-weight:600; line-height:1.15;}
.dk-stat-v.accent{color:var(--accent);} .dk-stat-v.ok{color:var(--ok);} .dk-stat-v.warn{color:var(--warn);} .dk-stat-v.bad{color:var(--bad);}
.dk-stat-l{font-size:12px; color:var(--ink-faint); margin-top:2px; line-height:1.35;}

.dk-grid2{display:grid; gap:14px;}
@media (min-width:768px){ .dk-grid2{grid-template-columns:1fr 1fr; align-items:start;} }

/* ---------- Hero (dashboard) ---------- */
.dk-hero{
  background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:20px 18px; margin:4px 0 18px; box-shadow:var(--shadow);
  position:relative; overflow:hidden;
}
.dk-hero::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--accent);}
.dk-hero-eyebrow{font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--accent); font-weight:800;}
.dk-hero-title{font-family:var(--serif); font-size:21px; font-weight:600; margin:7px 0 8px; line-height:1.28;}
.dk-hero-sub{color:var(--ink-soft); margin-bottom:16px; max-width:58ch; font-size:14.5px;}
.dk-hero-actions{display:flex; flex-direction:column; gap:10px;}
.dk-hero-actions .dk-btn-primary{flex:1;}
@media (min-width:576px){ .dk-hero-actions{flex-direction:row; flex-wrap:wrap;} .dk-hero-actions .dk-btn-primary{flex:0 1 auto;} }
.dk-hero-kicker{display:flex; gap:8px; flex-wrap:wrap; margin-top:12px;}

/* ---------- Progreso ---------- */
.dk-progrow{display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:12.5px; color:var(--ink-soft); margin-bottom:4px;}
.dk-progrow b{color:var(--ink); font-weight:700;}
.dk-progress{height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden;}
.dk-progress i{display:block; height:100%; width:0; border-radius:999px; background:var(--accent); transition:width .4s ease;}
.dk-progress.ok i{background:var(--ok);}
.dk-progress.warn i{background:var(--warn);}
.dk-progress.bad i{background:var(--bad);}
.dk-ringwrap{position:relative; width:92px; height:92px; flex:0 0 auto;}
.dk-ringwrap svg{width:92px; height:92px; transform:rotate(-90deg);}
.dk-ringwrap .dk-ringtxt{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;}
.dk-ringwrap .dk-ringtxt b{font-family:var(--serif); font-size:20px;}
.dk-ringwrap .dk-ringtxt small{font-size:9.5px; color:var(--ink-faint); margin-top:2px; letter-spacing:.06em;}

/* ---------- Estados (○ ◐ ✓ ★ ⚠) ---------- */
.dk-st{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; flex:0 0 auto;}
.dk-st svg{width:14px; height:14px;}
.dk-st.st-idle{border:1.6px dashed var(--border-strong);}
.dk-st.st-mid{border:1.6px solid var(--accent); color:var(--accent); background:var(--accent-soft);}
.dk-st.st-done{background:var(--ok-soft); color:var(--ok); border:1.6px solid var(--ok-border);}
.dk-st.st-master{background:var(--accent); color:var(--accent-ink); border:1.6px solid var(--accent);}
.dk-st.st-weak{background:var(--warn-soft); color:var(--warn); border:1.6px solid var(--warn-border);}
.dk-st.st-off{border:1.6px solid var(--border-strong); color:var(--ink-faint);}

/* ---------- Plan del curso ---------- */
.dk-lvl-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 12px; margin:30px 0 12px; padding-bottom:8px; border-bottom:1px solid var(--border);}
.dk-lvl-head:first-of-type{margin-top:14px;}
.dk-lvl-num{font-family:var(--serif); font-size:14px; color:var(--accent); font-weight:800; letter-spacing:.03em;}
.dk-lvl-head h2{margin:0; font-size:18.5px;}
.dk-lvl-goal{width:100%; font-size:13px; color:var(--ink-faint); margin:0;}
@media (min-width:768px){ .dk-lvl-goal{width:auto; flex:1;} }
.dk-lvl-meta{font-size:12px; color:var(--ink-faint); margin-left:auto;}

.dk-modcard{
  display:block; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:14px 16px; margin-bottom:10px; transition:border-color .15s, transform .15s;
}
.dk-modcard:hover{border-color:var(--accent); transform:translateY(-1px);}
.dk-modcard-head{display:flex; gap:12px; align-items:flex-start;}
.dk-modnum{
  font-family:var(--serif); font-weight:800; font-size:13px; color:var(--accent);
  background:var(--accent-soft); border-radius:8px; padding:4px 8px; flex:0 0 auto; margin-top:1px;
}
.dk-modcard-t{font-weight:700; font-size:15.5px; line-height:1.35;}
.dk-modcard-d{font-size:13px; color:var(--ink-soft); margin:5px 0 10px; line-height:1.5;}
.dk-modcard-meta{display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; font-size:12px; color:var(--ink-faint);}
.dk-modcard-meta .dk-progress{flex:1 1 120px; min-width:90px;}
.dk-modcard-meta b{color:var(--ink-soft);}

/* ---------- Página de módulo ---------- */
.dk-mod-head{display:flex; gap:13px; align-items:flex-start; margin-bottom:10px;}
.dk-mod-num{
  font-family:var(--serif); font-weight:800; font-size:15px; color:var(--accent);
  background:var(--accent-soft); border-radius:10px; padding:8px 11px; flex:0 0 auto;
}
.dk-mod-head h1{margin:0;}
.dk-mod-meta{font-size:12.5px; color:var(--ink-faint); margin:4px 0 0; display:flex; gap:6px; flex-wrap:wrap;}
.dk-mod-state{margin-left:auto; flex:0 0 auto;}
.dk-obj li{margin-bottom:4px;}

.dk-lrow{
  display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border);
  border-radius:10px; padding:10px 14px; margin-bottom:8px; min-height:58px;
  transition:border-color .15s, transform .15s; cursor:pointer; width:100%; text-align:left;
}
.dk-lrow:hover{border-color:var(--accent); transform:translateY(-1px);}
.dk-lrow-main{flex:1; min-width:0;}
.dk-lrow-t{font-weight:600; font-size:14.5px;}
.dk-lrow-m{font-size:12px; color:var(--ink-faint); margin-top:1px;}
.dk-lrow-go{color:var(--accent); flex:0 0 auto; display:inline-flex;}
.dk-lrow-go svg{width:17px; height:17px;}
.dk-lrow.weak{border-color:var(--warn-border);}
.dk-lrow.weak .dk-lrow-t{color:var(--warn);}

.dk-concept{display:flex; align-items:center; gap:9px; padding:7px 0; border-bottom:1px dashed var(--border); font-size:14px;}
.dk-concept:last-child{border-bottom:0;}
.dk-concept .dk-cbar{flex:1; height:6px; border-radius:999px; background:var(--surface-2); overflow:hidden; min-width:40px;}
.dk-concept .dk-cbar i{display:block; height:100%; background:var(--accent); border-radius:999px;}
.dk-concept .dk-cbar.ok i{background:var(--ok);} .dk-concept .dk-cbar.warn i{background:var(--warn);}
.dk-concept small{color:var(--ink-faint); font-size:12px; flex:0 0 auto; min-width:64px; text-align:right;}

/* ---------- Lección ---------- */
.dk-lesson-eyebrow{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:800;}
.dk-why{
  display:flex; gap:11px; background:var(--accent-soft); border-radius:10px;
  padding:13px 15px; margin:14px 0 20px; font-size:14.5px; line-height:1.55;
}
.dk-why svg{width:19px; height:19px; color:var(--accent); flex:0 0 auto; margin-top:2px;}
.dk-why b{color:var(--accent);}
.dk-sec{margin:22px 0;}
.dk-sec-h{font-family:var(--serif); font-size:17.5px; font-weight:600; margin:0 0 10px; line-height:1.3;}
.dk-secnum{
  display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  border-radius:8px; background:var(--surface-2); color:var(--accent); font-size:12px; font-weight:800;
  margin-right:8px; vertical-align:middle;
}
.dk-keypoints{background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:13px 16px; margin:22px 0;}
.dk-traps{background:var(--surface); border:1px solid var(--warn-border); border-left:3px solid var(--warn); border-radius:10px; padding:13px 16px; margin:14px 0;}
.dk-tips{background:var(--surface); border:1px solid var(--ok-border); border-left:3px solid var(--ok); border-radius:10px; padding:13px 16px; margin:14px 0;}
.dk-boxlabel{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; color:var(--accent); margin-bottom:8px; display:flex; align-items:center; gap:7px;}
.dk-boxlabel svg{width:14px; height:14px;}
.dk-traps .dk-boxlabel{color:var(--warn);}
.dk-tips .dk-boxlabel{color:var(--ok);}
.dk-keypoints li,.dk-traps li,.dk-tips li{margin-bottom:7px; font-size:14px;}
.dk-lessonnav{display:flex; gap:10px; margin-top:28px; flex-wrap:wrap;}
.dk-lessonnav a{flex:1 1 140px;}

/* ---------- Componentes de contenido ---------- */
.dk-callout{border-radius:10px; padding:12px 15px; margin:14px 0; background:var(--surface-2); border:1px solid var(--border);}
.dk-callout-label{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-faint); margin-bottom:6px;}
.dk-callout.tip{background:var(--ok-soft); border-color:var(--ok-border);}
.dk-callout.tip .dk-callout-label{color:var(--ok);}
.dk-callout.warn{background:var(--warn-soft); border-color:var(--warn-border);}
.dk-callout.warn .dk-callout-label{color:var(--warn);}
.dk-callout p:last-child{margin-bottom:0;}

.dk-code{margin:14px 0; border-radius:10px; overflow:hidden; border:1px solid #1f2c3f;}
.dk-code-label{
  display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--code-dim);
  background:var(--code-head); padding:6px 13px; font-family:var(--mono); letter-spacing:.03em;
}
.dk-code pre{
  margin:0; padding:12px 14px; background:var(--code-bg); color:var(--code-ink);
  font-family:var(--mono); font-size:12.8px; line-height:1.6;
  white-space:pre-wrap; word-break:break-word;
}
.dk-code pre b{color:#8fd0ff; font-weight:600;}
.dk-code pre i{color:var(--code-dim); font-style:italic;}
.dk-code pre em{color:#ffc58e; font-style:normal;}

.dk-compare{display:grid; gap:10px; margin:14px 0;}
@media (min-width:768px){ .dk-compare{grid-template-columns:1fr 1fr;} }
.dk-compare-col{border-radius:10px; overflow:hidden; border:1px solid var(--border); background:var(--surface);}
.dk-compare-col.bad{border-color:var(--bad-border);}
.dk-compare-col.good{border-color:var(--ok-border);}
.dk-compare-head{padding:7px 13px; font-size:12.5px; font-weight:800; background:var(--surface-2);}
.dk-compare-col.bad .dk-compare-head{background:var(--bad-soft); color:var(--bad);}
.dk-compare-col.good .dk-compare-head{background:var(--ok-soft); color:var(--ok);}
.dk-compare-col pre{
  margin:0; padding:11px 13px; font-family:var(--mono); font-size:12.3px; line-height:1.55;
  background:var(--surface); color:var(--ink); white-space:pre-wrap; word-break:break-word;
}
.dk-compare-col .dk-cbody{padding:11px 13px; font-size:13.5px;}
.dk-compare-col .dk-cbody p:last-child{margin-bottom:0;}

.dk-tw{overflow-x:auto; margin:14px 0; border-radius:10px; border:1px solid var(--border);}
.dk-main table{width:100%; border-collapse:collapse; font-size:13px; background:var(--surface);}
.dk-main th{background:var(--surface-2); text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft);}
.dk-main th,.dk-main td{border-bottom:1px solid var(--border); padding:9px 12px; vertical-align:top; min-width:84px;}
.dk-main tr:last-child td{border-bottom:0;}
.dk-main td code{white-space:nowrap;}

.dk-diagram{margin:14px 0; padding:13px 15px; border:1px dashed var(--border-strong); border-radius:10px; font-family:var(--mono); font-size:12.3px; line-height:1.7; color:var(--ink-soft); overflow-x:auto; white-space:pre;}
.dk-diagram b{color:var(--accent);}

/* ---------- Mini práctica ---------- */
.dk-practice{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin:12px 0;}
.dk-practice .dk-boxlabel{color:var(--accent);}
.dk-practice-sol{margin-top:13px; border-top:1px dashed var(--border); padding-top:13px; animation:dkfade .3s ease;}
.dk-practice-sol .dk-boxlabel{color:var(--ok);}

/* ---------- Quiz ---------- */
.dk-quiz{margin-top:26px;}
.dk-quiz > h2{display:flex; align-items:center; gap:9px; font-size:20px; margin:0 0 10px;}
.dk-quiz > h2 svg{width:20px; height:20px; flex:0 0 auto; color:var(--ok);}
.dk-quiz-box{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:15px; box-shadow:var(--shadow);}
.dk-qmeta{display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; font-size:12px; color:var(--ink-faint); margin-bottom:11px;}
.dk-qmeta .dk-chip{font-size:12px; padding:3px 9px;}
.dk-qtext{font-size:15.5px; font-weight:600; line-height:1.5; margin-bottom:14px;}
.dk-qscenario{
  background:var(--surface-3); border:1px solid var(--border); border-radius:10px;
  padding:11px 13px; margin-bottom:14px; font-size:14px; line-height:1.55;
}
.dk-qscenario p:last-child{margin-bottom:0;}
.dk-opts{display:flex; flex-direction:column; gap:8px;}
.dk-opt{
  display:flex; align-items:center; gap:11px; text-align:left; width:100%; min-height:48px;
  padding:10px 13px; background:var(--surface); border:1.5px solid var(--border); border-radius:10px;
  color:var(--ink); font-size:14.5px; line-height:1.45; cursor:pointer;
  transition:border-color .12s, background .12s;
}
.dk-opt:hover:not(:disabled){border-color:var(--accent);}
.dk-opt:disabled{cursor:default;}
.dk-opt .dk-opt-key{
  flex:0 0 auto; width:27px; height:27px; border-radius:8px; background:var(--surface-2);
  color:var(--ink-faint); display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800;
}
.dk-opt code{background:transparent; border:0; padding:0; font-size:.92em;}
.dk-opt.sel{border-color:var(--accent); background:var(--accent-soft);}
.dk-opt.sel .dk-opt-key{background:var(--accent); color:var(--accent-ink);}
.dk-opt.ok{border-color:var(--ok); background:var(--ok-soft);}
.dk-opt.ok .dk-opt-key{background:var(--ok); color:#fff;}
.dk-opt.bad{border-color:var(--bad); background:var(--bad-soft);}
.dk-opt.bad .dk-opt-key{background:var(--bad); color:#fff;}
.dk-opt.dim{opacity:.5;}

.dk-cmd{display:flex; gap:8px; align-items:stretch; flex-wrap:wrap;}
.dk-cmd-ps{font-family:var(--mono); color:var(--ink-faint); font-weight:800; align-self:center;}
.dk-cmd-input{
  flex:1 1 200px; min-width:0; min-height:48px; font-family:var(--mono); font-size:14px;
  padding:10px 14px; border:1.5px solid var(--border); border-radius:10px;
  background:var(--surface); color:var(--ink);
}
.dk-cmd-input:focus{outline:none; border-color:var(--accent);}
.dk-cmd-input.ok{border-color:var(--ok); background:var(--ok-soft);}
.dk-cmd-input.bad{border-color:var(--bad); background:var(--bad-soft);}

.dk-order-hint{font-size:12.5px; color:var(--ink-faint); margin:-6px 0 10px;}
.dk-order-seq{display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:13px; color:var(--ink-faint); margin-top:11px; min-height:26px;}
.dk-seq-pill{font-family:var(--mono); font-size:12px; background:var(--accent-soft); color:var(--accent); border-radius:6px; padding:2px 9px; font-weight:700;}
.dk-seq-clear{margin-left:auto;}

.dk-quiz-foot{display:flex; gap:10px; justify-content:flex-end; margin-top:14px; flex-wrap:wrap;}
.dk-feedback{border-radius:10px; padding:13px 15px; margin-top:14px; animation:dkfade .25s ease;}
.dk-feedback.ok{background:var(--ok-soft); border:1px solid var(--ok-border);}
.dk-feedback.bad{background:var(--bad-soft); border:1px solid var(--bad-border);}
.dk-feedback-t{font-weight:800; font-size:14px; display:flex; gap:8px; align-items:center; margin-bottom:5px;}
.dk-feedback.ok .dk-feedback-t{color:var(--ok);}
.dk-feedback.bad .dk-feedback-t{color:var(--bad);}
.dk-feedback-t svg{width:17px; height:17px; flex:0 0 auto;}
.dk-exp{font-size:14px; color:var(--ink); line-height:1.55;}
.dk-exp p:last-child{margin-bottom:0;}
.dk-err{margin-top:10px; font-size:13px; color:var(--warn); border-top:1px dashed var(--warn-border); padding-top:9px; line-height:1.5;}
.dk-err b{font-weight:800;}

@keyframes dkfade{from{opacity:0; transform:translateY(5px);} to{opacity:1; transform:none;}}

/* ---------- Navegador de preguntas (modo test) ---------- */
.dk-qnavwrap{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:13px 15px; margin-bottom:14px;}
.dk-qnav-info{display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12.5px; color:var(--ink-faint); margin-bottom:10px;}
.dk-qnav-info b{color:var(--ink-soft);}
.dk-qnav{display:flex; flex-wrap:wrap; gap:7px;}
.dk-qnum{
  width:44px; height:44px; min-width:44px; border-radius:10px; border:1.5px solid var(--border);
  background:var(--surface); font-weight:800; font-size:13px; color:var(--ink-faint);
  cursor:pointer; display:inline-flex; align-items:center; justify-content:center; position:relative;
}
.dk-qnum:hover{border-color:var(--accent);}
.dk-qnum.done{background:var(--accent-soft); border-color:var(--accent); color:var(--accent);}
.dk-qnum.mark::after{content:""; position:absolute; top:4px; right:4px; width:7px; height:7px; border-radius:50%; background:var(--warn);}
.dk-qnum.cur{outline:2.5px solid var(--accent); outline-offset:1px;}
.dk-qnav-foot{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px;}
.dk-timer{font-family:var(--mono); font-size:13px; color:var(--ink-soft); margin-left:auto; display:inline-flex; gap:6px; align-items:center;}
.dk-timer svg{width:15px; height:15px;}

/* ---------- Resultados ---------- */
.dk-result-hero{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:22px 16px 18px; background:var(--surface); border:1px solid var(--border);
  border-radius:16px; margin-bottom:14px; box-shadow:var(--shadow);
}
.dk-pct{font-family:var(--serif); font-size:46px; font-weight:600; line-height:1;}
.dk-pct.ok{color:var(--ok);} .dk-pct.mid{color:var(--warn);} .dk-pct.low{color:var(--bad);}
.dk-pct-l{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-top:7px; font-weight:700;}
.dk-evolution{margin-top:12px;}
.dk-res-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-bottom:16px;}
@media (min-width:768px){ .dk-res-grid{grid-template-columns:repeat(4,1fr);} }
.dk-res-cell{background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:11px 12px; text-align:center;}
.dk-res-cell b{display:block; font-family:var(--serif); font-size:19px; line-height:1.2;}
.dk-res-cell span{font-size:12px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em;}
.dk-topicbar{margin-bottom:11px;}
.dk-topicbar .dk-progrow{margin-bottom:4px;}
.dk-rec{display:flex; gap:11px; background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--warn); border-radius:10px; padding:12px 14px; margin-bottom:10px; align-items:flex-start;}
.dk-rec svg{width:18px; height:18px; color:var(--warn); flex:0 0 auto; margin-top:2px;}
.dk-rec-t{font-weight:700; font-size:14px; margin-bottom:3px;}
.dk-rec-d{font-size:13.5px; color:var(--ink-soft); line-height:1.5;}
.dk-rec-d a{color:var(--accent); font-weight:700;}
.dk-rec-d a:hover{text-decoration:underline;}
.dk-rec.good{border-left-color:var(--ok);}
.dk-rec.good svg{color:var(--ok);}

/* ---------- Repaso ---------- */
.dk-rev-card{display:flex; gap:12px; align-items:flex-start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:13px 15px; margin-bottom:10px;}
.dk-rev-card .dk-st{margin-top:1px;}
.dk-rev-t{font-weight:700; font-size:14.5px;}
.dk-rev-d{font-size:13px; color:var(--ink-soft); margin:3px 0 0; line-height:1.5;}
.dk-rev-d b{color:var(--warn);}
.dk-rev-recap{background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:13px 15px; margin-bottom:14px; font-size:14.5px; line-height:1.6;}
.dk-rev-recap .dk-boxlabel{margin-bottom:6px;}

/* ---------- Banco ---------- */
.dk-filters{display:grid; grid-template-columns:repeat(2,1fr); gap:11px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px; margin-bottom:14px;}
@media (min-width:768px){ .dk-filters{grid-template-columns:repeat(3,1fr);} }
@media (min-width:992px){ .dk-filters{grid-template-columns:repeat(6,1fr);} }
.dk-filters .dk-filter:nth-child(6){grid-column:span 2;}
.dk-filter label{display:block; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:4px;}
.dk-filter select{
  width:100%; min-height:44px; padding:8px 10px; border-radius:9px;
  border:1.5px solid var(--border); background:var(--surface); color:var(--ink); font-size:14px;
}
.dk-filter select:focus{outline:none; border-color:var(--accent);}
.dk-bank-setup{display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.dk-bank-setup .dk-filter{flex:1 1 150px;}
.dk-bank-setup select{min-width:0;}

/* ---------- Retos ---------- */
.dk-reto-scenario{background:var(--surface-3); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:14px 16px; margin:12px 0 18px; font-size:14.5px; line-height:1.6;}
.dk-reto-scenario p:last-child{margin-bottom:0;}
.dk-reto-lock{display:flex; gap:9px; align-items:center; font-size:12.5px; color:var(--ink-faint);}
.dk-reto-lock svg{width:15px; height:15px;}
.dk-chalcard{display:flex; gap:13px; align-items:flex-start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:15px 16px; margin-bottom:11px;}
.dk-chal-num{
  font-family:var(--serif); font-weight:800; font-size:14px; color:var(--accent-ink);
  background:var(--accent); border-radius:10px; padding:8px 10px; flex:0 0 auto;
}
.dk-chal-t{font-weight:700; font-size:15.5px;}
.dk-chal-d{font-size:13.5px; color:var(--ink-soft); margin:4px 0 8px; line-height:1.5;}
.dk-chal-meta{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12px; color:var(--ink-faint); align-items:center;}

/* ---------- Logros ---------- */
.dk-achvs{display:grid; gap:10px;}
@media (min-width:768px){ .dk-achvs{grid-template-columns:1fr 1fr;} }
.dk-achv{display:flex; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:13px 14px; align-items:flex-start;}
.dk-achv.locked{opacity:.55;}
.dk-achv-ico{width:42px; height:42px; border-radius:11px; background:var(--accent-soft); color:var(--accent); display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.dk-achv-ico svg{width:21px; height:21px;}
.dk-achv.locked .dk-achv-ico{background:var(--surface-2); color:var(--ink-faint);}
.dk-achv-t{font-weight:700; font-size:14.5px;}
.dk-achv-d{font-size:12.5px; color:var(--ink-soft); line-height:1.45; margin-top:1px;}
.dk-achv-date{font-size:12px; color:var(--ink-faint); margin-top:4px;}
.dk-streakbig{display:flex; align-items:center; gap:14px;}
.dk-streakbig .dk-achv-ico{width:52px; height:52px; background:var(--warn-soft); color:var(--warn);}
.dk-streakbig .dk-achv-ico svg{width:26px; height:26px;}
.dk-streak-n{font-family:var(--serif); font-size:30px; font-weight:600; line-height:1;}

/* ---------- Sparkline / barras ---------- */
.dk-spark{width:100%; height:56px; display:block;}
.dk-bars{display:flex; align-items:flex-end; gap:6px; height:96px; padding:6px 2px 0;}
.dk-bars div{flex:1; background:var(--accent-soft); border-top:2.5px solid var(--accent); border-radius:4px 4px 0 0; min-height:3px; position:relative;}
.dk-bars div span{position:absolute; bottom:-19px; left:0; right:0; text-align:center; font-size:9.5px; color:var(--ink-faint);}
.dk-barswrap{margin:14px 0 24px; padding:6px 0 20px;}

/* ---------- Diagnóstico ---------- */
.dk-diag-grid{display:grid; gap:12px;}
@media (min-width:768px){ .dk-diag-grid{grid-template-columns:1fr 1fr;} }
.dk-diag-block{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px;}
.dk-diag-block .dk-boxlabel{margin-bottom:9px;}
.dk-diag-block ul{margin-bottom:0;}
.dk-diag-block li{margin-bottom:7px; font-size:14px; display:flex; gap:8px; align-items:baseline;}
.dk-diag-block li small{color:var(--ink-faint); margin-left:auto; flex:0 0 auto;}

/* ---------- Vacío / utilidades ---------- */
.dk-empty{text-align:center; padding:36px 16px; color:var(--ink-faint); font-size:14px;}
.dk-empty svg{width:36px; height:36px; opacity:.45; margin-bottom:10px;}
.dk-mono{font-family:var(--mono);}
.dk-muted{color:var(--ink-soft);}
.dk-faint{color:var(--ink-faint);}
.dk-accent{color:var(--accent);}
.dk-ok{color:var(--ok);} .dk-warn{color:var(--warn);} .dk-bad{color:var(--bad);}
.dk-stack{display:flex; flex-direction:column; gap:10px;}
.dk-spread{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
.dk-center{text-align:center;}
.dk-mt1{margin-top:8px;} .dk-mt2{margin-top:16px;} .dk-mt3{margin-top:24px;}
.dk-mb1{margin-bottom:8px;} .dk-mb2{margin-bottom:16px;}
.dk-small{font-size:12.5px;}
.dk-link{color:var(--accent); font-weight:700; cursor:pointer; display:inline-flex; align-items:center; min-height:44px; padding:0 4px; margin:0 -4px;}
.dk-link:hover{text-decoration:underline;}

/* ---------- Toast y modal ---------- */
.dk-toast{
  position:fixed; left:50%; bottom:18px; transform:translate(-50%,16px);
  background:var(--ink); color:var(--bg); padding:11px 20px; border-radius:999px;
  font-size:13.5px; font-weight:600; opacity:0; pointer-events:none;
  transition:opacity .25s, transform .25s; z-index:1080; max-width:calc(100vw - 32px); text-align:center;
}
.dk-toast.show{opacity:1; transform:translate(-50%,0);}
.dk-modal{background:var(--surface); border:1px solid var(--border); border-radius:14px; color:var(--ink);}
.dk-modal .modal-header,.dk-modal .modal-footer{border-color:var(--border);}
.dk-modal .modal-footer{gap:8px;}
.dk-modal .modal-title{font-family:var(--serif); font-size:18px; font-weight:600;}
[data-bs-theme="dark"] .dk-modal .btn-close{filter:invert(1) grayscale(1);}

/* ---------- Impresión ligera ---------- */
@media print{
  .dk-top,.dk-side,.dk-lessonbar,.dk-toast,.dk-quiz,.dk-lessonnav{display:none !important;}
  .dk-main{max-width:none; padding:0;}
  body{background:#fff; color:#000;}
}


/* ---------- Accesibilidad: movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}


/* ---------- Pulido UX: legibilidad, números y feedback ---------- */
html{scroll-padding-top:72px; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
h1,h2,h3{text-wrap:balance;}
.dk-stat-n,.dk-pct,.dk-timer,.dk-streak-n,.dk-res-cell b,.dk-qnum{font-variant-numeric:tabular-nums;}
.dk-btn:active,.dk-opt:active,.dk-qnum:active,.dk-gl-chip:active{opacity:.88;}
@media (max-width:359px){ .dk-main{padding-left:12px; padding-right:12px;} }
@media (prefers-contrast: more){ :root{--border:var(--border-strong);} }
.dk-main :not(pre) > code{color:var(--ink);}
.dk-link{background:transparent; border:0; font:inherit; font-weight:700; text-align:left;}
.dk-main summary{padding:12px 0; cursor:pointer;}

/* ---------- Chuleta y Glosario ---------- */
.dk-gl-tools{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px;}
.dk-gl-input{flex:1 1 240px; min-height:48px; padding:10px 14px; border:1.5px solid var(--border-strong); border-radius:var(--radius-sm); background:var(--surface); color:var(--ink); font:inherit; font-size:16px;}
.dk-gl-input:focus-visible{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.dk-gl-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}
.dk-gl-chip{min-height:44px; padding:8px 14px; border:1.5px solid var(--border); border-radius:99px; background:var(--surface); color:var(--ink-soft); font:inherit; font-size:14px; font-weight:600; cursor:pointer;}
.dk-gl-chip[aria-pressed="true"]{background:var(--accent-soft); border-color:var(--accent); color:var(--accent);}
.dk-gl-group{margin-bottom:26px;}
.dk-gl-head{display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-bottom:1.5px solid var(--border); padding-bottom:6px; margin-bottom:6px;}
.dk-gl-head h2{font-size:15px; letter-spacing:.04em; color:var(--ink-soft); margin:0;}
.dk-gl-head span{font-family:var(--mono); font-size:12.5px; color:var(--ink-faint);}
.dk-gl-entry{display:grid; gap:6px; padding:12px 0; border-bottom:1px solid var(--border);}
.dk-gl-term{font-size:17px; font-weight:700; margin:0; display:inline;}
.dk-gl-say{font-family:var(--mono); font-size:13px; color:var(--accent); margin-left:10px;}
.dk-gl-def{margin:0; color:var(--ink-soft); font-size:15px; line-height:1.55;}
.dk-gl-def mark,.dk-gl-term mark{background:var(--warn-soft); color:inherit; border-radius:3px; padding:0 2px;}
.dk-chu-memo{display:flex; gap:9px; align-items:flex-start; margin:8px 0 0; padding:9px 12px; background:var(--accent-soft); border-radius:9px; font-size:14.5px; line-height:1.5; color:var(--ink);}
.dk-chu-memo svg{width:16px; height:16px; flex:0 0 auto; margin-top:3px; color:var(--accent);}
@media (min-width:768px){ .dk-gl-entry{grid-template-columns:minmax(200px,280px) 1fr; gap:22px;} }

/* ---------- Capa de aclaración (explicación en simple) ---------- */
.dk-plain{background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:14px 16px; margin:0 0 14px;}
.dk-plain-main{font-size:16px; line-height:1.6; margin:0 0 10px; color:var(--ink);}
.dk-plain-ana{font-size:14.5px; line-height:1.6; margin:0; padding:10px 12px; background:var(--surface-2); border-radius:8px; color:var(--ink-soft, var(--ink));}
.dk-plain-ana b{color:var(--accent);}
.dk-terms{border:1px solid var(--border); border-radius:10px; background:var(--surface); margin:0 0 20px;}
.dk-terms summary{min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 15px; cursor:pointer; font-weight:700; font-size:14.5px; list-style:none;}
.dk-terms summary::-webkit-details-marker{display:none;}
.dk-terms summary::after{content:'+'; font-size:20px; color:var(--accent); margin-left:auto;}
.dk-terms[open] summary::after{content:'\2212';}
.dk-terms summary span{background:var(--accent-soft); color:var(--accent); border-radius:999px; font-size:12px; padding:1px 9px;}
.dk-terms dl{margin:0; padding:0 15px 12px;}
.dk-terms dt{font-weight:700; font-size:14px; margin-top:10px;}
.dk-terms dd{margin:2px 0 0; font-size:14px; line-height:1.55; color:var(--ink-soft, var(--ink));}
.dk-example{background:var(--surface); border:1px solid var(--ok-border); border-left:3px solid var(--ok); border-radius:10px; padding:13px 16px; margin:22px 0;}
.dk-example .dk-boxlabel{color:var(--ok);}
.dk-example p,.dk-example li{font-size:14.5px; line-height:1.6;}
.dk-example ol,.dk-example ul{padding-left:20px;}
.dk-selfcheck{border:1px dashed var(--border-strong, var(--border)); border-radius:10px; margin:14px 0; background:var(--surface);}
.dk-selfcheck summary{min-height:44px; padding:10px 15px; cursor:pointer; font-weight:600; font-size:14.5px; line-height:1.5; display:flex; gap:9px; align-items:flex-start;}
.dk-selfcheck summary svg{width:16px; height:16px; color:var(--accent); flex:0 0 auto; margin-top:4px;}
.dk-selfcheck-a{padding:0 15px 13px; font-size:14.5px; line-height:1.6; border-top:1px solid var(--border); padding-top:11px; margin:0 15px; padding-left:0; padding-right:0;}
.dk-selfcheck-a b{color:var(--ok);}
.dk-memo{background:var(--accent-soft); border-radius:10px; padding:13px 16px; margin:14px 0;}
.dk-memo p{margin:0; font-family:var(--serif); font-size:17px; line-height:1.5; font-weight:600; color:var(--ink);}
.dk-mnemo{background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:13px 16px; margin:14px 0;}
.dk-mnemo .dk-boxlabel{color:var(--accent);}
.dk-mnemo-acro{display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 0; padding:0; list-style:none;}
.dk-mnemo-acro li{display:flex; align-items:center; gap:10px; flex:1 1 100%; font-size:14.5px; line-height:1.5;}
.dk-mnemo-acro b{flex:0 0 auto; min-width:34px; height:34px; padding:0 6px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:var(--accent); color:var(--accent-ink); font-family:var(--mono); font-size:15px;}
@media (min-width:768px){ .dk-mnemo-acro li{flex:1 1 45%;} }
