/* Biology LMS — restrained teal/green identity on Bootstrap 5 */
:root {
  --bio-ink: #10302c;
  --bio-teal: #0f766e;
  --bio-teal-dark: #0b5953;
  --bio-leaf: #3f8f4f;
  --bio-mint: #e7f4f1;
  --bio-paper: #f7faf9;
  --bio-line: #d6e6e2;
  --bs-primary: #0f766e;
  --bs-primary-rgb: 15, 118, 110;
  --bs-link-color: #0b5953;
  --bs-link-color-rgb: 11, 89, 83;
  --bs-link-hover-color: #073f3b;
  --bs-body-color: #1d2b29;
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Bengali", "Noto Sans Devanagari", sans-serif;
}
body { background: var(--bio-paper); line-height: 1.6; }
.btn-primary { --bs-btn-bg: var(--bio-teal); --bs-btn-border-color: var(--bio-teal); --bs-btn-hover-bg: var(--bio-teal-dark); --bs-btn-hover-border-color: var(--bio-teal-dark); --bs-btn-active-bg: #084c47; --bs-btn-disabled-bg: #5f9e98; --bs-btn-disabled-border-color: #5f9e98; }
.btn-outline-primary { --bs-btn-color: var(--bio-teal); --bs-btn-border-color: var(--bio-teal); --bs-btn-hover-bg: var(--bio-teal); --bs-btn-hover-border-color: var(--bio-teal); --bs-btn-active-bg: var(--bio-teal-dark); }
.text-teal { color: var(--bio-teal) !important; }
.bg-mint { background: var(--bio-mint) !important; }
.navbar-bio { background: #fff; border-bottom: 1px solid var(--bio-line); }
.navbar-bio .navbar-brand { font-weight: 700; color: var(--bio-ink); letter-spacing: -.01em; }
.navbar-bio .navbar-brand .bi { color: var(--bio-leaf); }
.navbar-bio .nav-link.active { color: var(--bio-teal); font-weight: 600; }
.hero { background: linear-gradient(160deg, #0f766e 0%, #155e57 55%, #2f6f3e 100%); color: #fff; }
.hero .lead { color: #d8efe9; }
.hero .btn-light { color: var(--bio-teal-dark); font-weight: 600; }
.card { border-color: var(--bio-line); border-radius: .75rem; }
.card-feature .bi { font-size: 1.75rem; color: var(--bio-teal); }
.auth-card { max-width: 460px; margin: 3rem auto; }
.auth-card .card-body { padding: 2rem; }
.form-control:focus, .form-select:focus { border-color: #4fb3a8; box-shadow: 0 0 0 .2rem rgba(15,118,110,.18); }
.stat-tile { border-left: 4px solid var(--bio-teal); }
.stat-tile .stat-value { font-size: 1.75rem; font-weight: 700; color: var(--bio-ink); }
.stat-tile.warn { border-left-color: #b45309; }
.badge-locked { background: #eef2f1; color: #4b5d5a; }
.badge-preview { background: #dff3e4; color: #23613a; }
.lesson-row { border-bottom: 1px solid var(--bio-line); }
.code-block { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.qr-box { width: 200px; height: 200px; }
.qr-box img, .qr-box svg { width: 100%; height: 100%; }
.recovery-codes li { font-family: ui-monospace, monospace; font-size: 1.05rem; }
.site-footer { border-top: 1px solid var(--bio-line); background: #fff; color: #51625f; }
.site-footer a { color: #3d5652; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 1000; background: #fff; padding: .5rem 1rem; }
.skip-link:focus { left: 1rem; top: 1rem; }
.admin-sidebar .nav-link { color: #2a3f3c; border-radius: .5rem; }
.admin-sidebar .nav-link.active, .admin-sidebar .nav-link:hover { background: var(--bio-mint); color: var(--bio-teal-dark); }
.table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #5b6c69; }
.empty-state { padding: 2.5rem 1rem; text-align: center; color: #5b6c69; }
.empty-state .bi { font-size: 2.5rem; color: #9cbdb7; display: block; margin-bottom: .5rem; }
@media (max-width: 575.98px) { .auth-card { margin: 1rem auto; } .auth-card .card-body { padding: 1.25rem; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---- Milestone 2: courses, lessons, editor ---- */
.rte-area { min-height: 260px; background: #fff; outline: none; }
.rte-area:focus { box-shadow: inset 0 0 0 2px rgba(15,118,110,.25); }
.rte-source { min-height: 260px; border: 0; border-radius: 0; }
.lesson-content { font-size: 1.05rem; max-width: 46rem; }
.lesson-content h2 { font-size: 1.4rem; margin-top: 1.75rem; }
.lesson-content h3 { font-size: 1.2rem; margin-top: 1.5rem; }
.lesson-content img { max-width: 100%; height: auto; border-radius: .5rem; }
.lesson-content table { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
.lesson-content th, .lesson-content td { border: 1px solid var(--bio-line); padding: .4rem .6rem; }
.lesson-content blockquote { border-left: 4px solid var(--bio-teal); padding: .25rem 1rem; color: #3d5652; background: var(--bio-mint); border-radius: 0 .5rem .5rem 0; }
.curriculum-nav { max-height: calc(100vh - 6rem); overflow-y: auto; position: sticky; top: 5rem; }
.curriculum-nav .list-group-item { border-left: 0; border-right: 0; font-size: .92rem; }
.curriculum-nav .list-group-item.active { background: var(--bio-mint); color: var(--bio-teal-dark); border-color: var(--bio-line); font-weight: 600; }
.curriculum-nav .chapter-title { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: #5b6c69; padding: .75rem 1rem .25rem; }
.course-hero { background: #fff; border-bottom: 1px solid var(--bio-line); }
.price-tag { font-size: 1.75rem; font-weight: 700; color: var(--bio-ink); }
.sticky-buy { position: sticky; top: 5rem; }
.status-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; margin-right: .35rem; vertical-align: middle; }
.status-dot.published { background: #198754; } .status-dot.draft { background: #adb5bd; } .status-dot.archived { background: #6c757d; }
.authoring-banner { background: #fff7e6; border-bottom: 1px solid #f3d9a4; }
.video-placeholder { aspect-ratio: 16 / 9; background: #10302c; color: #b9d8d2; border-radius: .75rem; display: flex; align-items: center; justify-content: center; }
