/* EduSprijin – Fișe la română. Toate regulile sunt prefixate cu .esro- ca să nu intre în conflict cu tema. */
.esro-app, .esro-vel {
  --esro-navy: #0b2a56; --esro-green: #5aa02c; --esro-green-d: #46841f; --esro-orange: #f7861a; --esro-red: #c81e2d;
  --esro-ink: #16223d; --esro-mut: #5b6785; --esro-line: #dde5d8;
  --esro-main: #f28a3c; --esro-light: #feeada; --esro-soft: #fff6ee;
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.5; color: var(--esro-ink);
}
.esro-app.esro-t-3 { --esro-main: #4caf50; --esro-light: #dcf2dd; --esro-soft: #f0f9f0; }
.esro-app.esro-t-6 { --esro-main: #3888e8; --esro-light: #dbeafd; --esro-soft: #eff6ff; }
.esro-app.esro-t-7 { --esro-main: #8b5cf6; --esro-light: #ede9fe; --esro-soft: #f6f3ff; }
.esro-app *, .esro-vel * { box-sizing: border-box; }
.esro-app { max-width: 980px; margin: 24px auto; background: #fff; border: 4px solid var(--esro-main); border-radius: 26px; overflow: hidden;
  box-shadow: 0 10px 34px rgba(11, 42, 86, .10); }
.esro-app button, .esro-app input, .esro-vel button { font: inherit; letter-spacing: normal; text-transform: none; }

/* antet */
.esro-head { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 16px 24px; background: var(--esro-soft); border-bottom: 3px solid var(--esro-light); }
.esro-brand { display: flex; align-items: center; gap: 12px; color: inherit; }
.esro-logo { display: block; width: 62px; height: 62px; flex: none; }
.esro-logo svg { width: 100%; height: 100%; display: block; }
.esro-brand b { display: block; font-size: 1.65rem; line-height: 1; color: var(--esro-navy); letter-spacing: -.5px; }
.esro-brand b i { font-style: normal; color: var(--esro-green); }
.esro-titlu { flex: 1; min-width: 220px; }
.esro-titlu h2 { margin: 0; padding: 0; font-size: 1.3rem; line-height: 1.25; color: var(--esro-navy); border: 0; }
.esro-titlu p { margin: 2px 0 0; color: var(--esro-mut); font-size: .92rem; }

/* formular */
.esro-form { padding: 8px 24px 20px; }
.esro-grup { border: 0; margin: 0; padding: 14px 0 6px; min-width: 0; }
.esro-grup legend { padding: 0; font-weight: 700; color: var(--esro-navy); font-size: 1rem; margin-bottom: 8px; float: none; width: auto; }
.esro-rand { display: flex; flex-wrap: wrap; gap: 8px; }
.esro-opt { border: 2px solid var(--esro-light); background: #fff; color: var(--esro-ink); border-radius: 14px; padding: 9px 16px; cursor: pointer; font-weight: 600; box-shadow: none; }
.esro-opt:hover:not(:disabled) { border-color: var(--esro-main); }
.esro-opt.esro-mare { padding: 12px 26px; font-size: 1.15rem; min-width: 130px; }
.esro-opt.esro-on { background: var(--esro-main); border-color: var(--esro-main); color: #fff; }
.esro-opt:disabled, .esro-card:disabled { opacity: .45; cursor: not-allowed; }
.esro-nota { margin: 6px 0 0; color: var(--esro-mut); font-size: .86rem; }
.esro-carduri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 720px) { .esro-carduri { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .esro-carduri { grid-template-columns: 1fr; } }
.esro-card { display: grid; gap: 2px; justify-items: center; text-align: center; border: 2px solid var(--esro-light); background: #fff; border-radius: 16px; padding: 10px 8px 12px; cursor: pointer; color: var(--esro-ink); box-shadow: none; }
.esro-card:hover:not(:disabled) { border-color: var(--esro-main); }
.esro-card.esro-on { border-color: var(--esro-main); background: var(--esro-soft); box-shadow: 0 0 0 2px var(--esro-main) inset; }
.esro-pict { display: block; width: 100px; height: 40px; color: var(--esro-main); }
.esro-pict svg { width: 100%; height: 100%; display: block; }
.esro-cn { font-weight: 700; font-size: .95rem; }
.esro-cd { font-size: .78rem; color: var(--esro-mut); }
.esro-acts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 760px) { .esro-acts { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .esro-acts { grid-template-columns: 1fr; } }
.esro-act { display: grid; gap: 2px; align-content: center; text-align: center; border: 2px solid var(--esro-light); background: #fff; border-radius: 16px; padding: 12px 10px; cursor: pointer; color: var(--esro-ink); box-shadow: none; }
.esro-act:hover { border-color: var(--esro-main); }
.esro-act.esro-on { background: var(--esro-main); border-color: var(--esro-main); color: #fff; }
.esro-act.esro-on .esro-cd { color: rgba(255, 255, 255, .92); }
.esro-act:focus-visible { outline: 3px solid rgba(90, 160, 44, .45); outline-offset: 2px; }
.esro-campuri select { display: block; width: 100%; margin-top: 4px; padding: 9px 12px; border: 2px solid var(--esro-light); border-radius: 12px; background: #fff; color: var(--esro-ink); }
.esro-campuri { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .esro-campuri { grid-template-columns: 1fr; } }
.esro-campuri label { display: block; font-size: .85rem; font-weight: 600; color: var(--esro-mut); }
.esro-campuri input { display: block; width: 100%; margin-top: 4px; padding: 9px 12px; border: 2px solid var(--esro-light); border-radius: 12px; background: #fff; color: var(--esro-ink); }
.esro-campuri input:focus, .esro-opt:focus-visible, .esro-card:focus-visible, .esro-btn:focus-visible { outline: 3px solid rgba(90, 160, 44, .45); outline-offset: 2px; }
.esro-btn { display: inline-block; border: 2px solid #cdd8c6; background: #fff; color: var(--esro-navy) !important; border-radius: 12px; padding: 10px 18px; font-weight: 700; cursor: pointer; text-decoration: none !important; box-shadow: none; }
.esro-btn:hover { border-color: var(--esro-green); }
.esro-prim { background: var(--esro-green); border-color: var(--esro-green); color: #fff !important; }
.esro-prim:hover { background: var(--esro-green-d); border-color: var(--esro-green-d); }
.esro-gen { display: block; width: 100%; margin-top: 18px; padding: 14px; font-size: 1.15rem; border-radius: 16px; }
.esro-gen:disabled { opacity: .6; cursor: progress; }

/* subsol */
.esro-foot { background: var(--esro-light); padding: 14px 24px 16px; font-size: .85rem; color: #33405f; }
.esro-foot p { margin: 2px 0; }

.esro-raporteaza { color: var(--esro-mut) !important; font-size: .82rem; text-decoration: underline !important; cursor: pointer; background: none; border: 0; box-shadow: none !important; }
.esro-raporteaza:hover { color: var(--esro-navy) !important; }
.esro-raporteaza-mod { align-self: center; margin-left: 4px; }
.esro-foot .esro-versiune { margin-top: 6px; font-size: .75rem; color: var(--esro-mut); }

/* ferestre centrate */
body.esro-blocat { overflow: hidden; }
.esro-vel { position: fixed; inset: 0; z-index: 999999; background: rgba(11, 42, 86, .55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.esro-modal { background: #fff; border-radius: 20px; padding: 26px 28px 22px; width: min(480px, 100%); text-align: center; box-shadow: 0 20px 56px rgba(0, 0, 0, .32); animation: esro-apare .18s ease-out; }
.esro-modal h3 { margin: 0 0 6px; padding: 0; font-size: 1.2rem; color: var(--esro-navy); }
.esro-modal p { margin: 6px 0 16px; color: var(--esro-ink); }
.esro-mesaj { min-height: 2.6em; color: var(--esro-mut) !important; font-size: .92rem; }
.esro-bara { height: 14px; background: #eef5e8; border: 1px solid var(--esro-line); border-radius: 999px; overflow: hidden; }
.esro-bara i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #5aa02c, #fbbf0e, #f7861a); background-size: 200% 100%; transition: width .15s ease; animation: esro-curge 1.2s linear infinite; }
.esro-proc { margin-top: 8px; font-weight: 700; color: var(--esro-navy); font-variant-numeric: tabular-nums; }
.esro-ico { width: 58px; height: 58px; margin: 0 auto 12px; border-radius: 50%; color: #fff; font-size: 1.9rem; font-weight: 700; display: flex; align-items: center; justify-content: center; background: var(--esro-green); }
.esro-ico-eroare { background: var(--esro-red); }
.esro-dlg-btn { display: flex; justify-content: center; gap: 10px; }
.esro-prev { width: min(980px, 100%); height: min(90vh, 900px); display: flex; flex-direction: column; padding: 16px 18px 18px; text-align: left; }
.esro-prev-cap { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.esro-prev-cap h3 { margin: 0; }
.esro-prev-btn { display: flex; gap: 8px; flex-wrap: wrap; }
.esro-cadru { flex: 1; width: 100%; border: 1px solid var(--esro-line); border-radius: 10px; min-height: 0; background: #f3f5f2; }
.esro-fara-prev { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 2px dashed var(--esro-line); border-radius: 12px; padding: 24px; color: var(--esro-mut); }
@keyframes esro-apare { from { transform: translateY(8px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes esro-curge { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .esro-modal, .esro-bara i { animation: none; transition: none; } }
.esro-sim { font-size: 1.35em; font-weight: 800; line-height: 1; }
.esro-cap-eq { font-size: 2rem; font-weight: 800; text-align: center; margin: 8px 0 12px; color: var(--esro-ink); }
.esro-cap-rand { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.3rem; font-weight: 700; margin-bottom: 6px; }
.esro-cap-inp { width: 6.5rem; font-size: 1.3rem; text-align: center; padding: 8px; border: 2px solid var(--esro-light); border-radius: 12px; }
.esro-cap-msg { min-height: 1.4em; text-align: center; color: #b32d2e; margin: 4px 0 10px; }
.esro-raporteaza-mod { margin-left: 0; margin-right: 8px; }
.esro-rap-text, .esro-rap-inp { width: 100%; box-sizing: border-box; font: inherit; padding: 10px; border: 2px solid var(--esro-light); border-radius: 12px; margin-bottom: 8px; }
.esro-rap-capcana { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.esro-rap { text-align: left; }
.esro-prev-btn { align-items: center; }

/* română: carduri de lecții pe două coloane, text mai mic în descriere */
.esro-acts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (max-width: 560px) { .esro-acts { grid-template-columns: 1fr; } }
.esro-act { text-align: left; justify-items: start; }
.esro-act .esro-cd { line-height: 1.3; }
.esro-carduri { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 440px) { .esro-carduri { grid-template-columns: 1fr; } }
.esro-ts { display: flex; justify-content: center; min-height: 70px; margin: 8px 0; }

.esro-raporteaza { color: var(--esro-mut) !important; font-size: .82rem; text-decoration: underline !important; cursor: pointer; background: none; border: 0; box-shadow: none !important; padding: 0; }
.esro-raporteaza:hover { color: var(--esro-navy) !important; }
.esro-raporteaza-mod { align-self: center; margin-right: 8px; }
.esro-rap-text, .esro-rap-inp { width: 100%; box-sizing: border-box; font: inherit; padding: 10px; border: 2px solid var(--esro-light); border-radius: 12px; margin-bottom: 8px; }
.esro-rap-capcana { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.esro-rap { text-align: left; }

/* Traseul alegerilor (clasa › tipul › lecția) */
.esro-trasa { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; padding: 10px 24px; background: var(--esro-soft); border-bottom: 1px solid var(--esro-light); font-size: 15px; }
.esro-trasa-e { color: #5b6783; font-weight: 600; margin-right: 4px; }
.esro-sep { color: #8a94a8; }
.esro-pas { border: 0; background: none; padding: 4px 8px; border-radius: 8px; font: inherit; font-weight: 700; color: #1b2137; cursor: pointer; text-decoration: underline; text-decoration-color: var(--esro-main); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.esro-pas:hover, .esro-pas:focus-visible { background: var(--esro-light); }
.esro-pas:focus-visible { outline: 3px solid var(--esro-main); outline-offset: 1px; }
@media print { .esro-trasa { display: none; } }
