/* ServKart Edu — lesson slide deck (used by deck.js)
   Every slide, video and quiz screen uses the same fixed frame size, so the
   Previous / Next buttons never move between slides. */
.player-main.deck-mode,.mooc-dk.deck-mode{
  --dk-ink:#0f172a;--dk-text:#334155;--dk-soft:#64748b;--dk-line:#e2e8f0;--dk-bg:#f8fafc;
  --dk-green:#146c43;--dk-green-d:#0d4a2e;--dk-green-p:#e8f5ee;--dk-gold:#c9971e;--dk-gold-p:#fbf1d9;
  --dk-font:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --dk-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --dk-h:600px;          /* fixed slide height */
  --dk-head-h:96px;      /* fixed height of the lesson header above the slide */
  background:#f4f6f8;padding:22px 40px 26px;font-family:var(--dk-font)
}
.deck-mode *{font-family:inherit}
.deck-mode code,.deck-mode pre,.deck-mode pre *{font-family:var(--dk-mono)}

/* ---- header above the slide (constant height) ---- */
.deck-mode .lesson-head{height:var(--dk-head-h);flex:0 0 var(--dk-head-h)!important;border-bottom:none;margin:0 auto 14px!important;padding:0!important;width:100%;max-width:1040px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start}
.deck-mode .lesson-head .dk-headrow{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:34px}
.deck-mode .lesson-head .crumb{margin:0}
.deck-mode .lesson-head h1{font-size:1.2rem!important;line-height:1.35!important;margin:10px 0 0!important;background:none!important;-webkit-text-fill-color:var(--dk-ink);color:var(--dk-ink)!important;font-weight:700!important;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deck-mode .dk-progress{height:4px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:12px;flex:none}
.deck-mode .dk-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--dk-green),var(--dk-gold));border-radius:99px;transition:width .35s ease}
.deck-mode .dk-pdf{font-size:.78rem;padding:6px 14px}

/* ---- the fixed frame: slides, module intro and quiz screens all share it ---- */
.dk-stage{width:100%;max-width:1040px;margin:0 auto;flex:0 0 auto}
.deck-mode>.module-intro-hero,.deck-mode>.quiz-q,.deck-mode>.quiz-score{
  width:100%;max-width:1040px;margin:0 auto!important;height:var(--dk-h)!important;min-height:0!important;flex:0 0 var(--dk-h)!important;overflow:auto}
.deck-mode .lesson-nav{width:100%;max-width:1040px;margin:18px auto 0!important;flex:0 0 auto}
.deck-mode .slide-done-badge,.deck-mode .lesson-head .slide-dots{display:none}

.dk-slide{position:relative;background:#fff;border:1px solid var(--dk-line);border-radius:18px;
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 32px rgba(15,23,42,.07);
  height:var(--dk-h);display:flex;flex-direction:column;padding:34px 52px 0;overflow:hidden;
  color:var(--dk-text);animation:dkIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes dkIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dk-slide::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--dk-accent,var(--dk-green))}
.dk-head{flex:none;margin-bottom:18px}
.dk-eyebrow{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  padding:5px 11px;border-radius:99px;background:var(--dk-accent-p,var(--dk-green-p));color:var(--dk-accent,var(--dk-green))}
.dk-part{margin-left:10px;font-size:.75rem;color:var(--dk-soft);font-weight:600}
.dk-title{font-size:1.85rem;line-height:1.2;font-weight:800;color:var(--dk-ink);margin:10px 0 0;letter-spacing:-.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk-title code{font-size:.8em}
/* body: fixed space, content centred vertically; --dk-scale is lowered by deck.js only if content would overflow */
.dk-body{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-bottom:22px;
  font-size:calc(17px * var(--dk-scale,1))}
.dk-foot{flex:none;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--dk-line);margin:0 -52px;padding:11px 52px;
  font-size:.76rem;color:#94a3b8;letter-spacing:.02em;background:#fcfcfd}
.dk-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--dk-soft)}

/* kind accents */
.dk-k-concept{--dk-accent:#146c43;--dk-accent-p:#e8f5ee}
.dk-k-example{--dk-accent:#1d4ed8;--dk-accent-p:#e0eaff}
.dk-k-lab{--dk-accent:#b45309;--dk-accent-p:#fef3c7}
.dk-k-mistakes{--dk-accent:#be123c;--dk-accent-p:#ffe4e9}
.dk-k-takeaways{--dk-accent:#047857;--dk-accent-p:#d1fae5}
.dk-k-visual{--dk-accent:#6d28d9;--dk-accent-p:#ede9fe}

/* ---- text: one font, justified ---- */
.dk-body p,.dk-body li{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.dk-prose,.dk-lead,.dk-note{font-size:1.06em;line-height:1.65}
.dk-prose p,.dk-lead p,.dk-note p{margin:0 0 .7em}
.dk-lead{margin-bottom:1em;color:var(--dk-ink);font-weight:500}
.dk-lead p:last-child,.dk-note p:last-child{margin-bottom:0}
.dk-note{margin-top:1em;font-size:.98em;color:var(--dk-text)}
.dk-note ul{margin:0;padding-left:1.2em}
.dk-note li{margin:.2em 0}
.dk-h3{font-size:1.05em;font-weight:700;color:var(--dk-ink);margin:.4em 0 .5em}
.dk-slide code{font-size:.88em;background:#f1f5f9;color:#0f4c81;padding:1px 6px;border-radius:5px;border:1px solid #e2e8f0;white-space:nowrap}
.dk-slide strong{color:var(--dk-ink);font-weight:700}

/* bullets: the main way content is presented */
.dk-bullets{list-style:none;margin:0;padding:0;display:grid;gap:.75em}
.dk-bullets li{position:relative;padding-left:1.7em;font-size:1.08em;line-height:1.6;color:var(--dk-text)}
.dk-bullets li::before{content:"";position:absolute;left:.25em;top:.62em;width:.5em;height:.5em;border-radius:2px;background:var(--dk-accent,var(--dk-green));transform:rotate(45deg)}
.dk-bullets li strong{color:var(--dk-ink)}

/* callouts */
.dk-callout{display:flex;gap:14px;align-items:flex-start;padding:.9em 1.1em;border-radius:14px;margin:1em 0 0;background:var(--dk-green-p);border:1px solid #cde9da;font-size:1em}
.dk-callout b{display:block;font-size:.72em;letter-spacing:.08em;text-transform:uppercase;color:var(--dk-green);margin-bottom:3px}
.dk-callout p{margin:0;text-align:justify}
.dk-callout-ic{flex:none;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#fff;color:var(--dk-green)}
.dk-callout-ic svg{width:18px;height:18px}
.dk-callout-warning,.dk-callout-important{background:#fff7ed;border-color:#fed7aa}
.dk-callout-warning b,.dk-callout-important b,.dk-callout-warning .dk-callout-ic,.dk-callout-important .dk-callout-ic{color:#c2410c}

/* ---- cards (key points) ---- */
.dk-cards{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.dk-grid-1{grid-template-columns:1fr}
.dk-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dk-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dk-card{display:flex;gap:14px;align-items:flex-start;background:var(--dk-bg);border:1px solid var(--dk-line);border-radius:14px;padding:1em 1.05em}
.dk-card h4{font-size:1em;font-weight:700;color:var(--dk-ink);margin:2px 0 4px;line-height:1.35}
.dk-card p{margin:0;font-size:.95em;line-height:1.55;color:var(--dk-text)}
.dk-num{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:.85rem;font-weight:800;color:var(--dk-accent,var(--dk-green));background:#fff;border:1px solid var(--dk-line)}

/* ---- steps ---- */
.dk-steps{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:.8em}
.dk-steps li{display:flex;gap:16px;align-items:flex-start;position:relative}
.dk-steps li:not(:last-child)::after{content:"";position:absolute;left:17px;top:38px;bottom:-.8em;width:2px;background:var(--dk-line)}
.dk-step-n{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.92rem;color:#fff;background:var(--dk-accent,var(--dk-green));box-shadow:0 0 0 4px var(--dk-accent-p,var(--dk-green-p));position:relative;z-index:1}
.dk-steps h4{font-size:1em;font-weight:700;color:var(--dk-ink);margin:6px 0 2px}
.dk-steps p{margin:7px 0 0;font-size:1em;line-height:1.55;flex:1}
.dk-steps h4+p{margin-top:2px}

/* ---- mistakes & takeaways ---- */
.dk-mistakes,.dk-takeaways{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.dk-mistakes li{display:flex;gap:14px;align-items:flex-start;padding:.9em 1.1em;border-radius:14px;background:#fff5f7;border:1px solid #fbd0da}
.dk-x,.dk-tick{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center}
.dk-x{background:#be123c;color:#fff}
.dk-x svg,.dk-tick svg{width:15px;height:15px}
.dk-mistakes p,.dk-takeaways p{margin:2px 0 0;font-size:1em;line-height:1.55;flex:1}
.dk-takeaways{grid-template-columns:1fr}
.dk-takeaways li{display:flex;gap:14px;align-items:flex-start;padding:.9em 1.1em;border-radius:14px;background:#f0fdf6;border:1px solid #c7ecd8}
.dk-tick{background:#047857;color:#fff}

/* ---- code ---- */
.dk-code{margin:0;border-radius:14px;overflow:hidden;background:#0f172a;border:1px solid #1e293b;box-shadow:0 8px 24px rgba(15,23,42,.18);flex:none}
.dk-code figcaption{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:#1e293b;color:#94a3b8;font-size:.72rem;font-weight:700;letter-spacing:.09em}
.dk-copy{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid #334155;color:#cbd5e1;border-radius:8px;padding:4px 10px;font-size:.74rem;cursor:pointer;font-weight:600;letter-spacing:0}
.dk-copy:hover{background:#334155}
.dk-copy svg{width:14px;height:14px}
.dk-code pre{margin:0;padding:16px 20px;overflow:auto;max-height:300px}
.dk-code pre code,.dk-code pre code.hljs{background:transparent!important;border:none;padding:0;color:#e2e8f0;font-size:.9em;line-height:1.6;white-space:pre}

/* ---- diagram ---- */
.dk-diagram{margin:0;background:linear-gradient(180deg,#fbfcfd,#f5f7fa);border:1px solid var(--dk-line);border-radius:16px;padding:18px;display:flex;justify-content:center;align-items:center;min-height:0;flex:1 1 auto}
.dk-split-visual{display:flex;flex-direction:column;height:100%;justify-content:center}
.dk-mermaid{width:100%;height:100%;display:flex;justify-content:center;align-items:center}
.dk-mermaid svg{max-width:100%;height:auto;max-height:330px}
.dk-diagram-fallback{font-size:.85rem;white-space:pre-wrap;color:var(--dk-soft)}

/* ---- table ---- */
.dk-table-wrap{overflow:auto;border:1px solid var(--dk-line);border-radius:14px;max-height:340px}
.dk-table-wrap table{width:100%;border-collapse:collapse;font-size:.95em}
.dk-table-wrap th{background:#f1f5f9;color:var(--dk-ink);text-align:left;font-weight:700;padding:11px 15px;border-bottom:1px solid var(--dk-line)}
.dk-table-wrap td{padding:11px 15px;border-bottom:1px solid #eef2f6;vertical-align:top}
.dk-table-wrap tr:last-child td{border-bottom:none}
.dk-table-wrap tbody tr:nth-child(even) td{background:#fafbfc}

/* ---- lesson video slide ---- */
.dk-video-frame{border-radius:16px;padding:12px;background:linear-gradient(135deg,#0d4a2e,#146c43 60%,#1b7f55);box-shadow:0 10px 30px rgba(13,74,46,.25)}
.dk-video-frame video{display:block;width:100%;max-height:360px;border-radius:10px;background:#000}

/* ---- module introduction video: branded green frame, same size as a slide ---- */
.deck-mode>.module-intro-hero{position:relative;border-radius:18px;padding:26px 34px 22px!important;display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:14px;overflow:hidden!important;
  background:radial-gradient(ellipse 560px 280px at 100% 0%,rgba(201,151,30,.35),transparent 65%),linear-gradient(125deg,#0d4a2e 0%,#146c43 55%,#1b7f55 100%)!important;
  box-shadow:0 12px 32px rgba(13,74,46,.22);border:none!important}
.deck-mode>.module-intro-hero::before,.deck-mode>.module-intro-hero::after{display:none!important}
.deck-mode .module-intro-frame{width:100%;max-width:820px;padding:8px!important;border-radius:14px!important;background:rgba(255,255,255,.12)!important;box-shadow:0 8px 28px rgba(0,0,0,.25)!important}
.deck-mode .module-intro-frame video{max-height:calc(var(--dk-h) - 140px);border-radius:9px!important}
.deck-mode .module-intro-blurb{color:#e7f6ee!important;margin:0!important;font-size:1rem!important;text-align:center}
.deck-mode .dk-intro-tag{position:absolute;top:18px;left:24px;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#f3dfa8}

/* ---- branding: logo in every slide footer, faint emblem watermark ---- */
.dk-brand{display:inline-flex;align-items:center;gap:12px;min-width:0}
.dk-logo{height:26px;width:auto;display:block;flex:none}
.dk-course{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:12px;border-left:1px solid var(--dk-line)}
.dk-wm{position:absolute;right:26px;bottom:58px;width:190px;height:190px;opacity:.06;pointer-events:none;user-select:none;z-index:0}
.dk-head,.dk-body{position:relative;z-index:1}
.dk-l-material .dk-foot{margin:0;padding:11px 46px}
.deck-mode .dk-intro-logo{position:absolute;top:14px;right:18px;background:#fff;border-radius:10px;padding:6px 10px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.deck-mode .dk-intro-logo img{height:26px;display:block}

/* ---- module study material screen ---- */
.deck-mode>.dk-material{width:100%;max-width:1040px;margin:0 auto;flex:0 0 auto}
.dk-l-material{padding:0}
.dk-l-material::before{display:none}
.dk-mat-band{display:flex;gap:22px;align-items:center;padding:34px 46px 28px;color:#fff;
  background:radial-gradient(ellipse 520px 260px at 100% 0%,rgba(201,151,30,.35),transparent 65%),linear-gradient(120deg,#0d4a2e 0%,#146c43 55%,#1b7f55 100%)}
.dk-mat-ic{flex:none;width:72px;height:88px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;color:#fff}
.dk-mat-ic svg{width:40px;height:40px}
.dk-mat-title{font-size:1.75rem;font-weight:800;margin:8px 0 6px;color:#fff;letter-spacing:-.01em}
.dk-mat-sub{margin:0;color:#d1fae5;font-size:1rem;max-width:60ch}
.dk-mat-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:18px;padding:26px 46px}
.dk-mat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;width:100%}
.dk-mat-list li{display:flex;gap:10px;align-items:flex-start;font-size:1rem;color:var(--dk-ink);line-height:1.45}
.dk-mat-list .dk-tick{width:22px;height:22px}
.dk-mat-meta{display:flex;gap:10px}
.dk-mat-meta span{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dk-soft);background:var(--dk-bg);border:1px solid var(--dk-line);border-radius:99px;padding:4px 11px}
.dk-mat-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:12px;border:none;cursor:pointer;font-size:1.05rem;font-weight:700;color:#fff!important;text-decoration:none;
  background:linear-gradient(135deg,#146c43,#0d4a2e);box-shadow:0 6px 18px rgba(20,108,67,.3)}
.dk-mat-btn svg{width:20px;height:20px}
.dk-mat-btn:hover{filter:brightness(1.08)}
.dk-mat-wait{background:#cbd5e1;box-shadow:none;cursor:default}
.side-les.material-link{color:#0d4a2e;font-weight:600}
.side-les.material-link .check{background:#e8f5ee;border-color:#cde9da;color:#146c43}

/* ---- cover ---- */
.dk-l-cover{padding:0}
.dk-l-cover::before{display:none}
.dk-cover-band{flex:none;position:relative;padding:38px 52px 28px;color:#fff;
  background:radial-gradient(ellipse 520px 260px at 100% 0%,rgba(201,151,30,.35),transparent 65%),linear-gradient(120deg,#0d4a2e 0%,#146c43 55%,#1b7f55 100%)}
.dk-cover-band::after{content:"";position:absolute;right:42px;bottom:-1px;width:120px;height:4px;background:var(--dk-gold);border-radius:4px 4px 0 0}
.dk-cover-eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#f3dfa8}
.dk-cover-title{font-size:2.2rem;line-height:1.15;font-weight:800;margin:10px 0 16px;letter-spacing:-.02em;color:#fff;max-width:26ch}
.dk-cover-title code{background:rgba(255,255,255,.15);border-color:transparent;color:#fff}
.dk-cover-meta{display:flex;gap:18px;font-size:.88rem;color:#d1fae5}
.dk-cover-meta span{display:inline-flex;align-items:center;gap:7px}
.dk-cover-meta svg{width:16px;height:16px}
.dk-cover-body{flex:1;min-height:0;overflow:hidden;padding:24px 52px 20px;display:grid;gap:28px;align-content:center}
.dk-cover-body.dk-two{grid-template-columns:1.15fr 1fr}
.dk-cover-block h3{display:flex;align-items:center;gap:9px;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dk-soft);margin:0 0 12px}
.dk-cover-block h3 svg{width:18px;height:18px;color:var(--dk-green)}
.dk-obj{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dk-obj li{display:flex;gap:12px;align-items:flex-start;font-size:1rem;line-height:1.5;color:var(--dk-ink)}
.dk-obj .dk-tick{width:24px;height:24px;margin-top:1px}
.dk-agenda{list-style:none;margin:0;padding:0;display:grid;gap:0}
.dk-agenda li{display:flex;gap:14px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--dk-line);font-size:.95rem;color:var(--dk-ink);font-weight:500}
.dk-agenda li:last-child{border-bottom:none}
.dk-agenda li span{font-size:.78rem;font-weight:800;color:var(--dk-gold);font-variant-numeric:tabular-nums}
.dk-l-cover .dk-foot{margin:0;padding:11px 52px}

/* ---- smaller screens: frames grow with content instead of a fixed height ---- */
@media (max-height:820px) and (min-width:901px){ .player-main.deck-mode,.mooc-dk.deck-mode{--dk-h:540px} .dk-mermaid svg{max-height:280px} .dk-code pre{max-height:240px} }
@media (max-width:900px){
  .player-main.deck-mode{padding:14px 12px 22px;--dk-head-h:auto}
  .mooc-dk.deck-mode{padding:0}
  .deck-mode .lesson-head{height:auto}
  .dk-slide,.deck-mode>.module-intro-hero,.deck-mode>.quiz-q,.deck-mode>.quiz-score{height:auto!important;min-height:420px!important;flex:0 0 auto!important}
  .dk-slide{padding:24px 20px 0;border-radius:14px}
  .dk-body{overflow:visible;font-size:15.5px}
  .dk-foot{margin:0 -20px;padding:10px 20px}
  .dk-course{display:none}.dk-wm{width:120px;height:120px}
  .dk-title{font-size:1.4rem;white-space:normal}

  .dk-grid-2,.dk-grid-3,.dk-takeaways,.dk-cover-body.dk-two{grid-template-columns:1fr}
  .dk-cover-band{padding:26px 20px 20px}
  .dk-cover-title{font-size:1.6rem}
  .dk-cover-body{padding:20px}
  .dk-l-cover .dk-foot{padding:10px 20px}
  .dk-mat-band{padding:22px 20px;gap:14px}.dk-mat-ic{width:52px;height:64px}.dk-mat-title{font-size:1.3rem}
  .dk-mat-body{padding:20px}.dk-mat-list{grid-template-columns:1fr}
}

/* MOOC chapters in slide-deck view (course factory MOOCs): same frame as course lessons */
.mooc-dk.deck-mode{padding:0;background:transparent}
.mooc-chapter-wrap--deck{max-width:1088px}
