/* ═══════════════════════════════════════════════════════════════════════════
   video.eimpact.al — shtresa e dizajnit
   ───────────────────────────────────────────────────────────────────────────
   Intent:  tavolina e studimit në mbrëmje. Studenti hap laptopin pas punës.
            Videoja është llamba; çdo gjë tjetër tërhiqet mbrapa.
            E fokusuar, pa xhaketë reflektimi, e patrazuar.

   Palette: --ink     bojë e zezë-kaltër e faqes në mbrëmje  (ekzistuese #0a0f1e)
            --lamp    drita cyan e monitorit                 (brand #1DB9D3)
            --paper   e bardhë e ngrohtë nën llambë (NUK #fff — do dukej fletë Excel)
            --rule    vija e rregullt e bllokut me kuadrate
            --marked  gjelbër theksuesi mbi një mësim të mbyllur

   Depth:   VETËM borders (rgba me opacitet të ulët). Në dark hijet nuk lexohen;
            vija e rregullt përputhet edhe me metaforën e bllokut. Light mode
            merr një hije të vetme sepse mbi letër borders lexohen ndryshe.

   Surfaces: 4 nivele, hap ~3–4% ndriçim, i njëjti hue. Kurrë hue të ndryshëm.
   Type:     stack-u i sistemit (Inter deklarohet nga bundle-i por nuk ngarkohet
             kurrë); tabular-nums për timestamp-e — koha duhet të mos kërcejë.
   Spacing:  bazë 4px.

   ⚠ Si punon: aplikacioni është build React i parakompiluar. Nuk kemi source,
     ndaj klasat e Tailwind-it (.bg-dark-700, .text-slate-400 …) i mbivendosim
     nga jashtë me specificitet [data-e-theme] > .class. Pa atributin
     data-e-theme, bundle-i i origjinës mbetet i paprekur → faqja punon edhe
     nëse ky JS dështon.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────────────────
   1. TOKENS
   ─────────────────────────────────────────────────────────────────────────── */

:root {
  /* Llamba — MBUSHJE. Hue-ja e brandit mbetet e paprekur, bit për bit. */
  --e-lamp:        #1db9d3;
  --e-lamp-bright: #3fd2e8;
  --e-lamp-deep:   #128fa6;
  --e-lamp-wash:   rgba(29, 185, 211, .12);
  --e-lamp-edge:   rgba(29, 185, 211, .32);

  /* Llamba — TEKST. Ndarje e detyrueshme: #1DB9D3 si tekst mbi letër jep
     2.08:1 — i palexueshëm. Këtu vendos një variant që kalon WCAG AA, ndërsa
     mbushjet mbeten saktësisht ngjyra e brandit.
     E matur: #3fd2e8 mbi dark = 7.3–9.9 · #0b6a7c mbi letër = 5.5–6.1 */
  --e-lamp-ink:    #3fd2e8;

  /* Teksti MBI mbushje cyan.
     E bardha mbi #1DB9D3 jep vetëm 2.35:1 (kërkohet 4.5). Në vend që të
     ndryshojmë ngjyrën e brandit, ndryshojmë tekstin: #0a2027 → 7.15:1.
     ⚙ Për t'u kthyer te e bardha: vendos këtë në #ffffff (kontrasti bie). */
  --e-on-lamp:     #0a2027;

  /* Semantike — TEKST kundrejt MBUSHJE ndahen për të njëjtën arsye. */
  --e-marked:      #22c55e;   /* i kompletuar (tekst) */
  --e-marked-fill: #15803d;   /* mbushje me tekst të bardhë → 5.02:1 */

  /* Rrëshqitësi i progresit: vija 5px mbi një gjurmë gri. Këtu nuk ka tekst,
     ndaj vlen 3:1 (WCAG 1.4.11). Vijat "e ecura" duhen më të thella se
     ngjyra e statusit — dhe kjo përputhet me metaforën: bojë e mbushur. */
  --e-rail-done:   #34d399;
  --e-rail-now:    #3fd2e8;
  --e-warn:        #eab308;
  --e-warn-fill:   #a16207;
  --e-danger:      #ef4444;
  --e-danger-fill: #dc2626;   /* mbushje me tekst të bardhë → 4.83:1 */
  --e-info:        #3b82f6;

  /* Ritmi */
  --e-space:       4px;
  --e-r-sm:        6px;
  --e-r-md:        10px;
  --e-r-lg:        14px;
  --e-r-xl:        18px;
  --e-r-pill:      999px;

  /* Lëvizja — decelerim, pa spring. Interface profesional nuk kërcen. */
  --e-out:         cubic-bezier(.22, .61, .36, 1);
  --e-in-out:      cubic-bezier(.4, 0, .2, 1);
  --e-fast:        120ms;
  --e-base:        200ms;
  --e-slow:        340ms;

  --e-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
            Roboto, "Helvetica Neue", Arial, sans-serif;
  --e-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  color-scheme: dark;
}

/* ── Dark: faqja në mbrëmje ─────────────────────────────────────────────── */
html[data-e-theme="dark"] {
  color-scheme: dark;

  /* Sipërfaqet — hapa të qetë, i njëjti hue blu-bojë */
  --e-surface-0: #0a0f1e;   /* kanavaca */
  --e-surface-1: #0f172a;   /* panele, nav */
  --e-surface-2: #1a2438;   /* kartela (ish #1e293b, +1% për ndarje më e qetë) */
  --e-surface-3: #24304a;   /* kontrolle, hover */
  --e-surface-4: #2e3b58;   /* dropdown mbi kartelë */

  /* Boja — katër nivele, jo dy. Hierarki e sheshtë = pa hierarki.
     Të katërta kalojnë 4.5:1 mbi surface-0…3. Shkalla e origjinës e bundle-it
     (text-slate-500 mbi kartelë) ishte ~3.0 — meta-teksti 12px ishte i
     palexueshëm, dhe këtë defekt nuk e trashëgojmë. */
  --e-ink-1: #f2f6fb;   /* titull, vlerë */
  --e-ink-2: #ccd6e4;   /* tekst trupi */
  --e-ink-3: #a3b1c6;   /* mbështetës            (s2 5.8 · s3 6.1) */
  --e-ink-4: #8f9cb2;   /* meta, kohëzgjatje     (s2 5.6 · s3 4.7) */

  /* Vijat — rgba që të shkrihen, jo hex që të therin */
  --e-rule:        rgba(148, 172, 205, .13);
  --e-rule-soft:   rgba(148, 172, 205, .07);
  --e-rule-strong: rgba(148, 172, 205, .22);

  --e-shadow: none;
  --e-overlay: rgba(4, 7, 14, .74);

  --e-marked: #34d399;   /* pak i desaturuar për sfond të errët */
  --e-warn:   #fbbf24;
  --e-danger: #f87171;
}

/* ── Light: e njëjta tavolinë, me llambën ndezur dhe perdet hapur ────────
   Letër e ngrohtë, jo e bardhë klinike. Boja mbetet blu-e-thellë, jo e zezë:
   e zeza mbi të bardhë është kontrast tipografik i vrazhdë. */
html[data-e-theme="light"] {
  color-scheme: light;

  --e-surface-0: #f3f1ec;   /* kanavaca — letra */
  --e-surface-1: #f9f8f5;
  --e-surface-2: #fdfdfb;   /* kartela — jo #fff */
  --e-surface-3: #edeae3;   /* kontrolle: "inset", më e errët se rrethina */
  --e-surface-4: #ffffff;   /* dropdown — vetëm këtu e bardhë e plotë */

  --e-ink-1: #151b26;
  --e-ink-2: #2f3949;
  --e-ink-3: #4a5462;   /* letër 6.6 · kartelë 7.3 */
  --e-ink-4: #5f6b7c;   /* letër 4.8 · kartelë 5.3 · kontroll 4.5 */

  --e-rule:        rgba(38, 50, 71, .13);
  --e-rule-soft:   rgba(38, 50, 71, .07);
  --e-rule-strong: rgba(38, 50, 71, .22);

  /* Mbi letër borders lexohen ndryshe — një hije e vetme, e pëshpëritur. */
  --e-shadow: 0 1px 2px rgba(38, 50, 71, .05), 0 1px 3px rgba(38, 50, 71, .04);
  --e-overlay: rgba(30, 38, 52, .5);

  --e-lamp-wash: rgba(29, 185, 211, .1);
  --e-lamp-edge: rgba(29, 185, 211, .38);
  /* Cyan-i i brandit si tekst mbi letër jep 2.08:1. Ky variant jep 5.5–6.1
     dhe mbetet i njëjti hue. Mbushjet vazhdojnë me #1DB9D3. */
  --e-lamp-ink:  #0b6a7c;

  /* Më të thella: ngjyrat e ndritshme humbin mbi letër. */
  --e-marked:      #137a39;   /* letër 4.8 · kartelë 5.3 */
  --e-marked-fill: #15803d;
  --e-warn:        #9a4a08;   /* letër 5.5 */
  --e-warn-fill:   #9a4a08;
  --e-danger:      #c81e1e;   /* letër 5.1 */
  --e-danger-fill: #c81e1e;
  --e-info:        #1d4ed8;

  /* Mbi gjurmën e ndritshme duhen vija të thella për të kaluar 3:1. */
  --e-rail-done:   #0f5f2c;
  --e-rail-now:    #064b57;
}

/* ───────────────────────────────────────────────────────────────────────────
   2. URA drejt bundle-it
   Përkthen klasat e Tailwind-it të parakompiluar në tokens. Pa këtë, light
   mode do të shfaqte tekst të bardhë mbi letër të bardhë.
   ─────────────────────────────────────────────────────────────────────────── */

html[data-e-theme] body                { background-color: var(--e-surface-0); color: var(--e-ink-2); }

html[data-e-theme] .bg-dark-900        { background-color: var(--e-surface-0); }
html[data-e-theme] .bg-dark-800        { background-color: var(--e-surface-1); }
html[data-e-theme] .bg-dark-700        { background-color: var(--e-surface-2); }
html[data-e-theme] .bg-dark-600        { background-color: var(--e-surface-3); }
html[data-e-theme] .bg-dark-500        { background-color: var(--e-surface-4); }
html[data-e-theme] .bg-slate-600       { background-color: var(--e-surface-3); }
html[data-e-theme] .bg-dark-700\/50    { background-color: color-mix(in srgb, var(--e-surface-2) 55%, transparent); }

html[data-e-theme] .text-white         { color: var(--e-ink-1); }
html[data-e-theme] .text-slate-200     { color: var(--e-ink-2); }
html[data-e-theme] .text-slate-300     { color: var(--e-ink-2); }
html[data-e-theme] .text-slate-400     { color: var(--e-ink-3); }
html[data-e-theme] .text-slate-500     { color: var(--e-ink-4); }
html[data-e-theme] .text-slate-600     { color: var(--e-ink-4); }

html[data-e-theme] .border-dark-700    { border-color: var(--e-rule-soft); }
html[data-e-theme] .border-dark-600    { border-color: var(--e-rule); }
html[data-e-theme] .border-dark-600\/50{ border-color: var(--e-rule-soft); }
html[data-e-theme] .border-dark-500    { border-color: var(--e-rule-strong); }
html[data-e-theme] .border-slate-500   { border-color: var(--e-rule-strong); }

html[data-e-theme] .text-primary-400   { color: var(--e-lamp-ink); }
html[data-e-theme] .bg-primary-500,
html[data-e-theme] .bg-primary-600     { background-color: var(--e-lamp); }
html[data-e-theme] .bg-primary-600\/10 { background-color: var(--e-lamp-wash); }
html[data-e-theme] .bg-primary-600\/20 { background-color: var(--e-lamp-wash); }
html[data-e-theme] .border-primary-400,
html[data-e-theme] .border-primary-500 { border-color: var(--e-lamp-edge); }

html[data-e-theme] .text-green-400     { color: var(--e-marked); }
html[data-e-theme] .text-red-400       { color: var(--e-danger); }
html[data-e-theme] .text-yellow-400    { color: var(--e-warn); }
html[data-e-theme] .text-blue-400      { color: var(--e-info); }
/* Mbushjet marrin variantin e thellë: mbi këto ndodhet tekst i bardhë. */
html[data-e-theme] .bg-green-500       { background-color: var(--e-marked-fill); }
html[data-e-theme] .bg-red-500         { background-color: var(--e-danger-fill); }
html[data-e-theme] .bg-yellow-500      { background-color: var(--e-warn-fill); }
html[data-e-theme] .bg-blue-500        { background-color: var(--e-info); }
html[data-e-theme] .border-green-500   { border-color: var(--e-marked); }
html[data-e-theme] .border-red-500     { border-color: var(--e-danger); }

/* Hover-at e bundle-it */
html[data-e-theme] .hover\:bg-dark-700:hover      { background-color: var(--e-surface-3); }
html[data-e-theme] .hover\:bg-dark-500:hover      { background-color: var(--e-surface-4); }
html[data-e-theme] .hover\:bg-dark-600\/20:hover,
html[data-e-theme] .hover\:bg-dark-600\/30:hover,
html[data-e-theme] .hover\:bg-dark-600\/50:hover  { background-color: color-mix(in srgb, var(--e-surface-3) 60%, transparent); }
html[data-e-theme] .hover\:bg-primary-600\/20:hover,
html[data-e-theme] .group:hover .group-hover\:bg-primary-600\/20 { background-color: var(--e-lamp-wash); }
html[data-e-theme] .hover\:text-white:hover       { color: var(--e-ink-1); }
html[data-e-theme] .hover\:text-slate-300:hover   { color: var(--e-ink-2); }
html[data-e-theme] .hover\:text-primary-400:hover { color: var(--e-lamp-ink); }
html[data-e-theme] .hover\:text-red-400:hover     { color: var(--e-danger); }
html[data-e-theme] .hover\:text-green-400:hover,
html[data-e-theme] .hover\:text-green-300:hover   { color: var(--e-marked); }
html[data-e-theme] .hover\:border-primary-500:hover,
html[data-e-theme] .hover\:border-primary-500\/50:hover,
html[data-e-theme] .group:hover .group-hover\:border-primary-500 { border-color: var(--e-lamp-edge); }
html[data-e-theme] .group:hover .group-hover\:text-primary-400   { color: var(--e-lamp-ink); }
html[data-e-theme] .group:hover .group-hover\:text-white         { color: var(--e-ink-1); }
html[data-e-theme] .peer:checked ~ .peer-checked\:bg-primary-600 { background-color: var(--e-lamp); }
html[data-e-theme] .accent-primary-500 { accent-color: var(--e-lamp); }

/* ── Teksti mbi sfonde me ngjyrë ────────────────────────────────────────
   Pa këto rregulla, remapping-u i .text-white do e kthente tekstin mbi
   butonat me ngjyrë në bojë të errët (ose anasjelltas), duke e fshehur. */

/* Mbi mbushje CYAN → bojë e errët. E bardha jep 2.35:1; #0a2027 jep 7.15:1,
   ndërsa ngjyra e brandit mbetet identike. */
html[data-e-theme] .btn-primary,
html[data-e-theme] .text-white.bg-primary-600,
html[data-e-theme] .text-white.bg-primary-500,
html[data-e-theme] .bg-primary-600 .text-white,
html[data-e-theme] .bg-primary-500 .text-white { color: var(--e-on-lamp); }

/* Mbi mbushje gjelbër/kuqe/verdhë/blu → e bardhë (mbushjet u thelluan
   pikërisht për këtë: 4.8–5.4:1). */
html[data-e-theme] .text-white.bg-green-500,
html[data-e-theme] .text-white.bg-red-500,
html[data-e-theme] .text-white.bg-blue-500,
html[data-e-theme] .text-white.bg-yellow-500,
html[data-e-theme] .bg-green-500 .text-white,
html[data-e-theme] .bg-red-500 .text-white { color: #fff; }

/* btn-secondary ndjek sipërfaqen: surface-3 është e errët në dark dhe e
   ndritshme në light, ndaj ink-1 është i lexueshëm në të dyja.
   (Më parë detyrohej #fff → 1.2:1 mbi gri të ndritshme: i padukshëm.) */
html[data-e-theme] .btn-secondary { color: var(--e-ink-1); }

/* Overlay-t mbi video janë të errët në të dy temat → tekst i bardhë. */
html[data-e-theme] .bg-black .text-white,
html[data-e-theme] .bg-black\/60 .text-white,
html[data-e-theme] .bg-black\/30 .text-white { color: #fff; }

/* Overlay-t mbi VIDEO mbeten të errët në të dy temat — ndodhen mbi pamje,
   jo mbi letër. */
html[data-e-theme] .bg-black,
html[data-e-theme] .bg-black\/60,
html[data-e-theme] .bg-black\/30,
html[data-e-theme] .group:hover .group-hover\:bg-black\/20 { color: #f8fafc; }

/* ───────────────────────────────────────────────────────────────────────────
   3. TIPOGRAFIA
   Bundle-i deklaron Inter por nuk e ngarkon kurrë → binte te sans-serif i
   papërcaktuar. Fiksojmë stack-un, shtojmë optical sizing dhe numra tabular.
   ─────────────────────────────────────────────────────────────────────────── */

html[data-e-theme] body {
  font-family: var(--e-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis-weight: none;
}

/* Titujt: peshë + tracking i shtrënguar për prezencë. Madhësia e vetme
   nuk krijon hierarki. */
html[data-e-theme] h1 { letter-spacing: -.022em; font-weight: 650; }
html[data-e-theme] h2 { letter-spacing: -.018em; font-weight: 620; }
html[data-e-theme] h3 { letter-spacing: -.013em; font-weight: 600; }
html[data-e-theme] h1, html[data-e-theme] h2,
html[data-e-theme] h3 { color: var(--e-ink-1); text-wrap: balance; }

/* Trupi i tekstit: rreshta të lexueshëm, jo të pafund. */
html[data-e-theme] p { text-wrap: pretty; }

/* Koha nuk duhet të kërcejë kur numrat ndryshojnë. */
html[data-e-theme] .font-mono,
html[data-e-theme] [class*="duration"],
html[data-e-theme] .e-ts {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ───────────────────────────────────────────────────────────────────────────
   4. STATET INTERAKTIVE
   Bundle-i i origjinës nuk ka focus ring të dukshëm — navigimi me tastierë
   ishte i padukshëm. :focus-visible shfaqet vetëm për tastierë, ndaj mausi
   nuk fiton kornizë.
   ─────────────────────────────────────────────────────────────────────────── */

html[data-e-theme] :focus-visible {
  outline: 2px solid var(--e-lamp-ink);
  outline-offset: 2px;
  border-radius: var(--e-r-sm);
}
html[data-e-theme] :focus:not(:focus-visible) { outline: none; }

html[data-e-theme] .input,
html[data-e-theme] input:not([type="checkbox"]):not([type="radio"]),
html[data-e-theme] textarea,
html[data-e-theme] select {
  background-color: var(--e-surface-3);
  border: 1px solid var(--e-rule);
  color: var(--e-ink-1);
  border-radius: var(--e-r-md);
  transition: border-color var(--e-fast) var(--e-out),
              box-shadow   var(--e-fast) var(--e-out),
              background-color var(--e-fast) var(--e-out);
}
html[data-e-theme] .input::placeholder,
html[data-e-theme] input::placeholder,
html[data-e-theme] textarea::placeholder { color: var(--e-ink-4); }

html[data-e-theme] .input:hover,
html[data-e-theme] input:hover,
html[data-e-theme] textarea:hover { border-color: var(--e-rule-strong); }

html[data-e-theme] .input:focus,
html[data-e-theme] input:focus,
html[data-e-theme] textarea:focus,
html[data-e-theme] select:focus {
  outline: none;
  border-color: var(--e-lamp);
  box-shadow: 0 0 0 3px var(--e-lamp-wash);
}

/* Autofill i Chrome-it mbivendos sfondin me të verdhë — riparo në të dy temat. */
html[data-e-theme] input:-webkit-autofill,
html[data-e-theme] input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--e-ink-1);
  -webkit-box-shadow: 0 0 0 1000px var(--e-surface-3) inset;
  caret-color: var(--e-ink-1);
}

/* Butonat: reagim i shpejtë, pa kërcim. */
html[data-e-theme] .btn-primary,
html[data-e-theme] .btn-secondary,
html[data-e-theme] button {
  transition: background-color var(--e-fast) var(--e-out),
              border-color     var(--e-fast) var(--e-out),
              color            var(--e-fast) var(--e-out),
              transform        var(--e-fast) var(--e-out),
              opacity          var(--e-fast) var(--e-out);
}
html[data-e-theme] .btn-primary   { background-color: var(--e-lamp); border-radius: var(--e-r-md); }
/* Mbi letër, mbushja cyan ka vetëm 2.08:1 kontrast ndriçimi kundrejt
   kanavacës — kufiri i butonit nuk lexohet (WCAG 1.4.11 kërkon 3:1 për
   kufijtë e komponentëve). Një vijë floku e zgjidh pa prekur mbushjen. */
html[data-e-theme="light"] .btn-primary,
html[data-e-theme="light"] .e-resume__go,
html[data-e-theme="light"] .e-notes__save { border: 1px solid var(--e-lamp-deep); }
html[data-e-theme] .btn-primary:hover   { background-color: var(--e-lamp-bright); }
html[data-e-theme] .btn-primary:active  { background-color: var(--e-lamp-deep); transform: translateY(.5px); }
html[data-e-theme] .btn-secondary { background-color: var(--e-surface-3); border-radius: var(--e-r-md); }
html[data-e-theme] .btn-secondary:hover { background-color: var(--e-surface-4); }
html[data-e-theme] button:disabled,
html[data-e-theme] [disabled] { opacity: .45; cursor: not-allowed; }

/* Kartelat: një trajtim i vetëm sipërfaqeje, i njëjti kudo. */
html[data-e-theme] .card {
  background-color: var(--e-surface-2);
  border: 1px solid var(--e-rule);
  border-radius: var(--e-r-lg);
  box-shadow: var(--e-shadow);
  transition: border-color var(--e-base) var(--e-out),
              transform    var(--e-base) var(--e-out),
              box-shadow   var(--e-base) var(--e-out);
}
/* Bundle-i ka hover:-translate-y-1 (4px) — shumë për një grid kartelash.
   2px lexohet si ngritje, 4px si kërcim. */
html[data-e-theme] .hover\:-translate-y-1:hover { --tw-translate-y: -2px; }

/* ───────────────────────────────────────────────────────────────────────────
   5. SHKARKUESI (scrollbar) — pjesë e sipërfaqes, jo element sistemi
   ─────────────────────────────────────────────────────────────────────────── */

html[data-e-theme] * { scrollbar-color: var(--e-rule-strong) transparent; scrollbar-width: thin; }
html[data-e-theme] ::-webkit-scrollbar        { width: 11px; height: 11px; }
html[data-e-theme] ::-webkit-scrollbar-track  { background: transparent; }
html[data-e-theme] ::-webkit-scrollbar-thumb  {
  background: var(--e-rule-strong);
  border: 3px solid transparent;
  border-radius: var(--e-r-pill);
  background-clip: content-box;
}
html[data-e-theme] ::-webkit-scrollbar-thumb:hover { background: var(--e-ink-4); background-clip: content-box; }

/* Zgjedhja e tekstit mban dritën e llambës. */
html[data-e-theme] ::selection { background: var(--e-lamp-edge); color: var(--e-ink-1); }

/* ───────────────────────────────────────────────────────────────────────────
   6. NGARKIMI — shimmer në vend të pulse
   Bundle-i përdor animate-pulse (opacitet on/off), që lexohet si defekt.
   Një shimmer që kalon lexohet si "po vjen".
   ─────────────────────────────────────────────────────────────────────────── */

@keyframes e-shimmer { from { background-position: -180% 0; } to { background-position: 180% 0; } }

html[data-e-theme] .card.animate-pulse,
html[data-e-theme] .animate-pulse .bg-dark-600 {
  animation: none;
  background-color: var(--e-surface-3);
  background-image: linear-gradient(
    100deg,
    transparent 20%,
    color-mix(in srgb, var(--e-ink-4) 14%, transparent) 42%,
    transparent 64%);
  background-size: 220% 100%;
  background-repeat: no-repeat;
  animation: e-shimmer 1.5s var(--e-in-out) infinite;
}
html[data-e-theme] .card.animate-pulse { background-image: none; animation: none; }

/* ───────────────────────────────────────────────────────────────────────────
   7. NDËRRUESI I TEMËS — çelës llambe, jo emoji pluskues
   ─────────────────────────────────────────────────────────────────────────── */

.e-theme {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: var(--e-surface-3);
  border: 1px solid var(--e-rule);
  border-radius: var(--e-r-pill);
  flex-shrink: 0;
}
.e-theme__opt {
  display: grid;
  place-items: center;
  width: 26px; height: 24px;
  padding: 0; margin: 0;
  border: none; background: none;
  color: var(--e-ink-4);
  border-radius: var(--e-r-pill);
  cursor: pointer;
  transition: color var(--e-fast) var(--e-out), background-color var(--e-fast) var(--e-out);
  -webkit-tap-highlight-color: transparent;
}
.e-theme__opt svg { width: 14px; height: 14px; display: block; }
.e-theme__opt:hover { color: var(--e-ink-2); }
.e-theme__opt[aria-pressed="true"] {
  background: var(--e-surface-1);
  color: var(--e-lamp-ink);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}

/* ───────────────────────────────────────────────────────────────────────────
   8. TOASTS — zëvendësojnë alert() në funksionet e reja
   ─────────────────────────────────────────────────────────────────────────── */

.e-toasts {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 2147483200;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 0 12px 16px;
  pointer-events: none;
}
@media (min-width: 640px) {
  .e-toasts { inset: auto 16px 16px auto; align-items: flex-end; padding: 0; }
}

@keyframes e-toast-in  { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes e-toast-out { to   { opacity: 0; transform: translateY(6px)  scale(.98); } }

.e-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  max-width: 380px;
  padding: 11px 13px;
  background: var(--e-surface-4);
  border: 1px solid var(--e-rule-strong);
  border-left: 3px solid var(--e-ink-4);
  border-radius: var(--e-r-md);
  box-shadow: 0 10px 34px rgba(0, 0, 0, .3);
  color: var(--e-ink-2);
  font: 500 .82rem/1.45 var(--e-font);
  animation: e-toast-in var(--e-base) var(--e-out);
}
.e-toast--ok     { border-left-color: var(--e-marked); }
.e-toast--err    { border-left-color: var(--e-danger); }
.e-toast--info   { border-left-color: var(--e-lamp); }
.e-toast--leave  { animation: e-toast-out 180ms var(--e-in-out) forwards; }
.e-toast__ico    { flex-shrink: 0; margin-top: 1px; }
.e-toast__ico svg{ width: 15px; height: 15px; display: block; }
.e-toast--ok   .e-toast__ico { color: var(--e-marked); }
.e-toast--err  .e-toast__ico { color: var(--e-danger); }
.e-toast--info .e-toast__ico { color: var(--e-lamp-ink); }
.e-toast__body   { flex: 1; min-width: 0; }
/* ink-3 e jo ink-4: toast-i ndodhet mbi surface-4 (sipërfaqja më e ndritshme
   në dark), ku ink-4 bie në 4.02:1. */
.e-toast__x {
  flex-shrink: 0; border: none; background: none; cursor: pointer;
  color: var(--e-ink-3); padding: 0; line-height: 1; font-size: 1rem;
}
.e-toast__x:hover { color: var(--e-ink-2); }

/* ───────────────────────────────────────────────────────────────────────────
   9. SHIRITI I PLAYER-IT — shpejtësia, mini-player, autoplay, teatri
   Ndodhet nën videon, në gjuhën vizuale të kontrolleve ekzistuese.
   ─────────────────────────────────────────────────────────────────────────── */

.e-pbar {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 8px 10px;
  border-top: 1px solid var(--e-rule-soft);
  background: var(--e-surface-1);
}
.e-pbar__spacer { flex: 1 1 auto; min-width: 0; }

.e-pbtn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 9px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--e-r-sm);
  color: var(--e-ink-3);
  font: 600 .74rem/1 var(--e-font);
  letter-spacing: .01em;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--e-fast) var(--e-out),
              background-color var(--e-fast) var(--e-out),
              border-color var(--e-fast) var(--e-out);
  -webkit-tap-highlight-color: transparent;
}
.e-pbtn svg { width: 15px; height: 15px; display: block; flex-shrink: 0; }
.e-pbtn:hover            { color: var(--e-ink-1); background: var(--e-surface-3); }
.e-pbtn[aria-pressed="true"] {
  color: var(--e-lamp-ink);
  background: var(--e-lamp-wash);
  border-color: var(--e-lamp-edge);
}
.e-pbtn--rate { font-variant-numeric: tabular-nums; min-width: 52px; justify-content: center; }

/* Menu e shpejtësisë — një nivel MBI prindin, ndryshe shkrihet me shiritin. */
.e-rate {
  position: relative;
}
.e-rate__menu {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  min-width: 78px;
  padding: 4px;
  background: var(--e-surface-4);
  border: 1px solid var(--e-rule-strong);
  border-radius: var(--e-r-md);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .34);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--e-fast) var(--e-out), transform var(--e-fast) var(--e-out), visibility var(--e-fast);
  z-index: 60;
}
.e-rate--open .e-rate__menu { opacity: 1; visibility: visible; transform: translateX(-50%); }
.e-rate__opt {
  display: block;
  width: 100%;
  padding: 6px 10px;
  border: none;
  background: none;
  border-radius: var(--e-r-sm);
  color: var(--e-ink-2);
  font: 500 .78rem/1 var(--e-font);
  font-variant-numeric: tabular-nums;
  text-align: left;
  cursor: pointer;
}
.e-rate__opt:hover           { background: var(--e-surface-3); color: var(--e-ink-1); }
.e-rate__opt[aria-current="true"] { color: var(--e-lamp-ink); background: var(--e-lamp-wash); }

/* ── Mini-player ─────────────────────────────────────────────────────────
   PiP i vërtetë është i pamundur me embed YouTube (iframe cross-origin, pa
   element <video>). Zhvendosim TË NJËJTIN iframe në një kënd — videoja
   vazhdon pa u rifreskuar. */
.e-mini {
  position: fixed !important;
  right: 16px;
  bottom: 16px;
  left: auto !important;
  top: auto !important;
  width: min(340px, calc(100vw - 32px)) !important;
  z-index: 2147483100 !important;
  margin: 0 !important;
  border: 1px solid var(--e-rule-strong) !important;
  border-radius: var(--e-r-md) !important;
  overflow: hidden !important;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .5) !important;
  animation: e-mini-in var(--e-base) var(--e-out);
}
@keyframes e-mini-in { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
.e-mini__bar {
  position: absolute;
  top: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  padding: 5px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .68), transparent);
  z-index: 5;
  opacity: 0;
  transition: opacity var(--e-fast) var(--e-out);
}
.e-mini:hover .e-mini__bar,
.e-mini:focus-within .e-mini__bar { opacity: 1; }
.e-mini__btn {
  display: grid; place-items: center;
  width: 26px; height: 26px;
  border: none; background: rgba(0, 0, 0, .5);
  border-radius: var(--e-r-sm);
  color: #fff; cursor: pointer; padding: 0;
}
.e-mini__btn svg { width: 14px; height: 14px; display: block; }
.e-mini__btn:hover { background: rgba(0, 0, 0, .78); }
/* Vendmbajtësi ruan lartësinë e layout-it që faqja të mos kërcejë. */
.e-mini-slot { display: block; }

/* ── Modaliteti teatër ───────────────────────────────────────────────────
   Zgjeron videon në gjerësinë e plotë dhe heq zhurmën përreth, pa fullscreen. */
html[data-e-theatre] .e-theatre-host {
  max-width: none !important;
  width: 100% !important;
}
html[data-e-theatre] .e-theatre-dim { opacity: .28; transition: opacity var(--e-slow) var(--e-out); }

/* ───────────────────────────────────────────────────────────────────────────
   10. SHËNIMET E ANKORUARA NË KOHË  ← elementi nënshkrim
   Shënimi ka vlerë sepse e dimë KU u mbajt. Timestamp-i është koordinata
   organizuese e produktit, ndaj është hyrja e çdo shënimi — dhe klikohet.
   ─────────────────────────────────────────────────────────────────────────── */

.e-notes {
  margin-top: 12px;
  background: var(--e-surface-2);
  border: 1px solid var(--e-rule);
  border-radius: var(--e-r-lg);
  overflow: hidden;
}
.e-notes__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--e-rule-soft);
}
.e-notes__title {
  margin: 0;
  font: 620 .82rem/1.2 var(--e-font);
  letter-spacing: -.01em;
  color: var(--e-ink-1);
}
.e-notes__count {
  font: 600 .68rem/1 var(--e-font);
  font-variant-numeric: tabular-nums;
  color: var(--e-ink-4);
  padding: 3px 7px;
  background: var(--e-surface-3);
  border-radius: var(--e-r-pill);
}
.e-notes__tabs { display: flex; gap: 2px; margin-left: auto; }
.e-notes__tab {
  border: none; background: none; cursor: pointer;
  padding: 5px 10px;
  border-radius: var(--e-r-sm);
  color: var(--e-ink-4);
  font: 600 .74rem/1 var(--e-font);
  transition: color var(--e-fast) var(--e-out), background-color var(--e-fast) var(--e-out);
}
.e-notes__tab:hover { color: var(--e-ink-2); }
.e-notes__tab[aria-selected="true"] { color: var(--e-lamp-ink); background: var(--e-lamp-wash); }

/* Kompozimi: timestamp-i kapet automatikisht kur fokusohet fusha. */
.e-notes__compose {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--e-rule-soft);
}
.e-notes__stamp {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 26px;
  padding: 0 9px;
  background: var(--e-lamp-wash);
  border: 1px solid var(--e-lamp-edge);
  border-radius: var(--e-r-pill);
  color: var(--e-lamp-ink);
  font: 700 .72rem/1 var(--e-mono);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
}
.e-notes__stamp svg { width: 12px; height: 12px; }
.e-notes__input {
  flex: 1;
  min-width: 0;
  min-height: 26px;
  max-height: 120px;
  resize: none;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 4px 0 !important;
  color: var(--e-ink-1);
  font: 400 .84rem/1.5 var(--e-font);
}
.e-notes__input:focus { outline: none; }
.e-notes__save {
  flex-shrink: 0;
  height: 26px; padding: 0 11px;
  background: var(--e-lamp); border: none;
  border-radius: var(--e-r-sm);
  color: var(--e-on-lamp);
  font: 600 .74rem/1 var(--e-font);
  cursor: pointer;
  transition: background-color var(--e-fast) var(--e-out), opacity var(--e-fast) var(--e-out);
}
.e-notes__save:hover:not(:disabled) { background: var(--e-lamp-bright); }
.e-notes__save:disabled { opacity: .35; cursor: default; }

/* Rrëshqitësi i shënimeve — vija e rregullt e bllokut në të majtë. */
.e-notes__list { max-height: 268px; overflow-y: auto; }
.e-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 14px 9px 13px;
  border-left: 2px solid transparent;
  transition: background-color var(--e-fast) var(--e-out), border-color var(--e-fast) var(--e-out);
}
.e-note + .e-note { border-top: 1px solid var(--e-rule-soft); }
.e-note:hover { background: color-mix(in srgb, var(--e-surface-3) 50%, transparent); border-left-color: var(--e-lamp-edge); }
.e-note__jump {
  flex-shrink: 0;
  min-width: 46px;
  padding: 3px 6px;
  background: var(--e-surface-3);
  border: 1px solid transparent;
  border-radius: var(--e-r-sm);
  color: var(--e-ink-3);
  font: 700 .7rem/1.3 var(--e-mono);
  font-variant-numeric: tabular-nums;
  text-align: center;
  cursor: pointer;
  transition: color var(--e-fast) var(--e-out), background-color var(--e-fast) var(--e-out);
}
.e-note__jump:hover { color: var(--e-lamp-ink); background: var(--e-lamp-wash); border-color: var(--e-lamp-edge); }
.e-note__text {
  flex: 1; min-width: 0;
  color: var(--e-ink-2);
  font: 400 .82rem/1.55 var(--e-font);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.e-note__x {
  flex-shrink: 0;
  border: none; background: none; cursor: pointer;
  color: var(--e-ink-4); padding: 2px; line-height: 1;
  opacity: 0;
  transition: opacity var(--e-fast) var(--e-out), color var(--e-fast) var(--e-out);
}
.e-note:hover .e-note__x,
.e-note:focus-within .e-note__x { opacity: 1; }
.e-note__x:hover { color: var(--e-danger); }
.e-note__x svg { width: 13px; height: 13px; display: block; }

.e-notes__empty {
  padding: 22px 14px;
  text-align: center;
  color: var(--e-ink-4);
  font: 400 .79rem/1.6 var(--e-font);
}
.e-notes__empty strong { color: var(--e-ink-3); font-weight: 600; }

/* Kufizi i ruajtjes lokale */
.e-notes__foot {
  padding: 8px 14px;
  border-top: 1px solid var(--e-rule-soft);
  color: var(--e-ink-4);
  font: 400 .67rem/1.4 var(--e-font);
  display: flex; align-items: center; gap: 6px; justify-content: space-between;
}
.e-notes__export {
  border: none; background: none; cursor: pointer;
  color: var(--e-ink-3); font: 600 .67rem/1 var(--e-font);
  text-decoration: underline; text-underline-offset: 2px; padding: 0;
}
.e-notes__export:hover { color: var(--e-lamp-ink); }

/* Butoni i bookmark-ut mbi player */
.e-bmk {
  position: absolute;
  top: 8px; right: 54px;
  z-index: 40;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  padding: 0; margin: 0;
  background: rgba(0, 0, 0, .55);
  border: none; border-radius: 9px;
  color: #fff; cursor: pointer;
  transition: background-color var(--e-fast) var(--e-out), color var(--e-fast) var(--e-out);
  -webkit-tap-highlight-color: transparent;
}
.e-bmk:hover { background: rgba(0, 0, 0, .8); }
.e-bmk[aria-pressed="true"] { color: var(--e-lamp-bright); }
.e-bmk svg { width: 19px; height: 19px; display: block; pointer-events: none; }

/* ───────────────────────────────────────────────────────────────────────────
   11. VAZHDO KU E LASH + RRËSHQITËSI I PROGRESIT
   Refuzuam kutitë KPI. "12" nuk i tregon studentit asgjë; "3 mësime deri në
   fund" i tregon. Progresi është shteg i ecur, jo përqindje.
   ─────────────────────────────────────────────────────────────────────────── */

.e-resume {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-bottom: 20px;
  background: var(--e-surface-2);
  border: 1px solid var(--e-rule);
  border-left: 3px solid var(--e-lamp);
  border-radius: var(--e-r-lg);
  box-shadow: var(--e-shadow);
  overflow: hidden;
  animation: e-rise var(--e-slow) var(--e-out);
}
@keyframes e-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.e-resume__thumb {
  flex-shrink: 0;
  width: 148px;
  align-self: stretch;
  background: var(--e-surface-3) center/cover no-repeat;
  position: relative;
}
.e-resume__thumb::after {
  content: "";
  position: absolute; inset: auto 0 0 0;
  height: 3px;
  background: var(--e-rule-strong);
}
.e-resume__thumb i {
  position: absolute; inset: auto auto 0 0;
  height: 3px;
  background: var(--e-lamp-ink);
  z-index: 1;
}
@media (max-width: 560px) { .e-resume__thumb { display: none; } }

.e-resume__body { flex: 1; min-width: 0; padding: 13px 16px; display: flex; flex-direction: column; gap: 3px; }
.e-resume__eyebrow {
  display: flex; align-items: center; gap: 6px;
  color: var(--e-lamp-ink);
  font: 700 .64rem/1 var(--e-font);
  letter-spacing: .07em; text-transform: uppercase;
}
.e-resume__eyebrow svg { width: 12px; height: 12px; }
.e-resume__title {
  margin: 2px 0 0;
  color: var(--e-ink-1);
  font: 620 .96rem/1.35 var(--e-font);
  letter-spacing: -.014em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.e-resume__meta {
  color: var(--e-ink-3);
  font: 400 .76rem/1.5 var(--e-font);
  font-variant-numeric: tabular-nums;
}
.e-resume__meta b { color: var(--e-ink-2); font-weight: 600; }
.e-resume__go {
  align-self: flex-start;
  margin-top: 7px;
  display: inline-flex; align-items: center; gap: 6px;
  height: 31px; padding: 0 13px;
  background: var(--e-lamp); border: none;
  border-radius: var(--e-r-md);
  color: var(--e-on-lamp);
  font: 600 .78rem/1 var(--e-font);
  cursor: pointer; text-decoration: none;
  transition: background-color var(--e-fast) var(--e-out);
}
.e-resume__go:hover { background: var(--e-lamp-bright); }
.e-resume__go svg { width: 14px; height: 14px; }
.e-resume__x {
  align-self: flex-start;
  margin: 10px 10px 0 0;
  border: none; background: none; cursor: pointer;
  color: var(--e-ink-4); padding: 2px; line-height: 1;
}
.e-resume__x:hover { color: var(--e-ink-2); }
.e-resume__x svg { width: 14px; height: 14px; display: block; }

/* ── Rrëshqitësi i progresit: shirit vijash, një vijë për mësim ──────────
   Lexohet si shteg i ecur. Vijat e mbushura = të parë. */
.e-rail { display: flex; flex-direction: column; gap: 7px; }
.e-rail__head {
  display: flex; align-items: baseline; gap: 8px;
  color: var(--e-ink-3);
  font: 500 .73rem/1 var(--e-font);
  font-variant-numeric: tabular-nums;
}
.e-rail__head b { color: var(--e-ink-1); font-weight: 620; font-size: .8rem; }
.e-rail__ticks {
  display: flex;
  gap: 2px;
  height: 5px;
}
.e-rail__tick {
  flex: 1 1 0;
  min-width: 2px;
  border-radius: 1px;
  background: var(--e-rule-strong);
  transition: background-color var(--e-slow) var(--e-out);
}
.e-rail__tick--done { background: var(--e-rail-done); }
/* --e-lamp mbi gjurmën e ndritshme jep 1.52:1 — vija "ku ndodhem"
   praktikisht zhdukej në light mode. Tokens të dedikuar kalojnë 3:1. */
.e-rail__tick--now  { background: var(--e-rail-now); box-shadow: 0 0 0 1px var(--e-lamp-edge); }

/* Rrëshqitësi brenda kartelës së kursit */
.e-card-rail { padding: 0 16px 14px; }

/* ───────────────────────────────────────────────────────────────────────────
   12. RESPEKTO PREFERENCAT E SISTEMIT
   ─────────────────────────────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  html[data-e-theme] *,
  html[data-e-theme] *::before,
  html[data-e-theme] *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

@media (prefers-contrast: more) {
  html[data-e-theme] {
    --e-rule:        rgba(148, 172, 205, .34);
    --e-rule-strong: rgba(148, 172, 205, .5);
    --e-ink-3:       var(--e-ink-2);
    --e-ink-4:       var(--e-ink-3);
  }
}

/* Vetëm për lexues ekrani */
.e-sr {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Print: studenti shtyp shënimet e tij. */
@media print {
  .e-toasts, .e-pbar, .e-theme, .e-bmk, .e-resume__x, .e-mini { display: none !important; }
  .e-notes__list { max-height: none !important; overflow: visible !important; }
  .e-notes { border-color: #999 !important; }
}
