:root {
  --ink: #18211f;
  --muted: #66706c;
  --pine: #153b33;
  --pine-dark: #0d2923;
  --pine-soft: #dfe9e3;
  --clay: #b96448;
  --sand: #d6a449;
  --sand-soft: #f4e8ce;
  --paper: #fbfaf6;
  --white: #fff;
  --surface: #f3f1ea;
  --line: rgba(24, 33, 31, .12);
  --line-strong: rgba(24, 33, 31, .22);
  --danger: #aa3f3f;
  --success: #2f7655;
  --warning: #9a6826;
  --blue: #4f7584;
  --berry: #7d5363;
  --violet: #695d83;
  --ochre: #b88831;
  --radius-xs: 8px;
  --radius-sm: 13px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --shadow-sm: 0 8px 24px rgba(16, 36, 31, .07);
  --shadow: 0 22px 58px rgba(16, 36, 31, .13);
  --container: 1180px;
  --header: 72px;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font: 400 16px/1.62 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: #ead29d; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.narrow-container { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.section { padding: 88px 0; }
.section-soft { background: #f2efe6; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 10000; left: 16px; top: -100px; padding: 10px 15px; border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.skip-link:focus { top: 16px; }

h1, h2, h3, h4 { margin: 0; color: inherit; line-height: 1.16; text-wrap: balance; }
h1, h2 { letter-spacing: -.035em; }
h1 { font-size: clamp(2.35rem, 4vw, 3.55rem); }
h2 { font-size: clamp(1.82rem, 2.8vw, 2.55rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1.15em; }
.eyebrow { margin: 0 0 14px; color: var(--clay); font-size: .73rem; font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.eyebrow.light { color: #f3cf85; }
.lead-small { max-width: 670px; color: var(--muted); font-size: 1.08rem; }
.section-heading { margin-bottom: 40px; }
.section-heading h2 { max-width: 760px; }
.compact-heading { display: grid; grid-template-columns: 1fr minmax(260px, 420px); gap: 56px; align-items: end; }
.compact-heading > p { margin: 0 0 6px; color: var(--muted); }
.split-heading { display: grid; grid-template-columns: 1fr minmax(260px, 420px); gap: 56px; align-items: end; }
.split-heading > p { color: var(--muted); margin: 0; }
.centered-heading { text-align: center; }
.centered-heading h2 { margin-inline: auto; }

.button {
  display: inline-flex;
  min-height: 48px;
  padding: 12px 20px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-weight: 750;
  line-height: 1.15;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible { outline: 3px solid rgba(214, 164, 73, .58); outline-offset: 3px; }
.button-primary, .button-accent { background: var(--sand); color: #211a0d; box-shadow: 0 10px 24px rgba(160, 110, 32, .18); }
.button-primary:hover, .button-accent:hover { background: #e0b258; }
.button-secondary { color: var(--pine); background: #fff; border-color: var(--line-strong); }
.button-secondary:hover { border-color: var(--pine); }
.button-dark { color: #fff; background: var(--pine); }
.button-dark:hover { background: var(--pine-dark); }
.button-light { color: var(--pine-dark); background: rgba(255,255,255,.92); }
.button-light:hover { background: #fff; }
.button-ghost-light { color: #fff; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.06); }
.button-ghost-light:hover { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.72); }
.button-dashboard-ghost { color: #fff; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.08); }
.button-small { min-height: 42px; padding: 10px 15px; font-size: .9rem; }
.button-full { width: 100%; }
.text-link, .text-link-light { font-weight: 750; text-decoration: none; }
.text-link { color: var(--pine); }
.text-link-light { color: #f4d494; }

/* Public shell */
.site-header { position: sticky; z-index: 1000; top: 0; height: var(--header); border-bottom: 1px solid rgba(24,33,31,.08); background: rgba(251,250,246,.94); backdrop-filter: blur(18px); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--pine); font-size: 1.28rem; font-weight: 850; letter-spacing: -.035em; text-decoration: none; }
.brand img { width: 36px; height: 36px; }
.primary-nav { display: flex; align-items: center; gap: 25px; font-size: .91rem; font-weight: 720; }
.primary-nav a { text-decoration: none; }
.primary-nav a:hover { color: var(--clay); }
.primary-nav .nav-account { padding: 10px 15px; border-radius: 11px; color: #fff; background: var(--pine); }
.primary-nav .nav-account:hover { color: #fff; background: var(--pine-dark); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; }
.menu-toggle span:not(.sr-only) { display: block; width: 23px; height: 2px; margin: 5px auto; border-radius: 2px; background: var(--ink); transition: .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
.mobile-dock { display: none; }

.flash-stack { position: fixed; z-index: 1200; top: 86px; left: 50%; width: min(calc(100% - 32px), 700px); transform: translateX(-50%); pointer-events: none; }
.flash { padding: 13px 16px; border: 1px solid var(--line); border-left: 4px solid var(--pine); border-radius: 12px; background: #fff; box-shadow: var(--shadow-sm); pointer-events: auto; }
.flash-success { border-left-color: var(--success); }
.flash-error { border-left-color: var(--danger); }
.flash-floating { top: 22px; }

/* Home */
.hero-refined { position: relative; overflow: hidden; padding: 74px 0 82px; color: #fff; background: linear-gradient(135deg, #102f29 0%, #18483d 64%, #173b33 100%); }
.hero-refined::before { content: ""; position: absolute; inset: 0; opacity: .11; background-image: linear-gradient(30deg, transparent 0 48%, #fff 49% 50%, transparent 51%), linear-gradient(150deg, transparent 0 48%, #fff 49% 50%, transparent 51%); background-size: 54px 32px; mask-image: linear-gradient(90deg, #000, transparent 45%); }
.hero-refined-grid { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr); gap: 64px; align-items: center; }
.hero-copy h1 { max-width: 690px; font-size: clamp(2.5rem, 4.35vw, 3.95rem); }
.hero-copy h1 span { color: #f0c676; font-family: var(--serif); font-style: italic; font-weight: 400; }
.hero-lead { max-width: 650px; margin-top: 22px; color: rgba(255,255,255,.77); font-size: 1.12rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.phrase-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 34px; }
.phrase-row span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.76); background: rgba(255,255,255,.05); font-size: .8rem; }
.hero-facts { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.66); font-size: .83rem; }
.hero-facts b { display: block; color: #fff; font-size: .98rem; }
.hero-visual { position: relative; min-height: 530px; }
.hero-photo { position: absolute; inset: 0 24px 20px 0; overflow: hidden; border-radius: 26px 100px 26px 26px; box-shadow: 0 26px 80px rgba(4,15,12,.34); }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(11,35,29,.36), transparent 56%); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-note { position: absolute; z-index: 2; right: 0; bottom: 0; width: 190px; padding: 18px; border-radius: 18px; color: var(--ink); background: #f4e8cf; box-shadow: var(--shadow); }
.hero-note span, .hero-note small { display: block; color: #716653; font-size: .75rem; }
.hero-note-meta { display: flex; align-items: center; gap: 7px; }
.hero-note-meta span { min-width: 0; }
.hero-note strong { display: block; margin: 5px 0 1px; font-family: var(--serif); font-size: 1.65rem; }
.hero-note-language { display: flex; justify-content: flex-end; margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(92,81,64,.16); }
.hero-note-language em { display: inline-flex; padding: 3px 7px; border-radius: 999px; color: #5c5140; background: rgba(255,255,255,.58); font-size: .59rem; font-style: normal; font-weight: 850; letter-spacing: .04em; }
.ornament-card { position: absolute; z-index: 2; top: 22px; right: 1px; width: 86px; height: 86px; border-radius: 50%; background: var(--clay); box-shadow: inset 0 0 0 14px rgba(255,255,255,.09); }
.ornament-card::before, .ornament-card::after { content: ""; position: absolute; inset: 20px; border: 2px solid rgba(255,255,255,.65); transform: rotate(45deg); }
.ornament-card::after { inset: 30px; }

.refined-language-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.language-tile { min-height: 315px; display: flex; flex-direction: column; padding: 23px; border: 1px solid var(--line); border-top: 4px solid var(--accent, var(--sand)); border-radius: 16px; background: #fff; transition: transform .2s, box-shadow .2s; }
.language-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.accent-ochre { --accent: #bb8730; --accent-soft: #f4e7ce; }
.accent-blue { --accent: #517b8e; --accent-soft: #e1ebef; }
.accent-green { --accent: #4e7f62; --accent-soft: #e0ebe4; }
.accent-berry { --accent: #845568; --accent-soft: #eee1e6; }
.accent-violet { --accent: #6c6087; --accent-soft: #e8e5ef; }
.language-tile-top { display: flex; justify-content: space-between; gap: 12px; color: var(--accent); font-size: .78rem; font-weight: 800; }
.tile-arrow { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--accent-soft); }
.language-tile h3 { margin-top: 52px; font-size: 1.45rem; }
.language-tile p { margin-top: 12px; color: var(--muted); font-size: .92rem; }
.language-tile-footer { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); }
.language-tile-footer span { font-family: var(--serif); font-size: 1.02rem; }
.language-tile-footer a { color: var(--accent); font-size: .83rem; font-weight: 800; text-decoration: none; }

.format-grid { display: grid; grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr); gap: 70px; align-items: center; }
.story-image { position: relative; }
.story-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px 76px 22px 22px; }
.story-caption { position: absolute; right: -22px; bottom: 26px; width: 210px; padding: 16px 18px; border-radius: 14px; color: #fff; background: var(--pine); font-size: .88rem; box-shadow: var(--shadow-sm); }
.format-content > h2 { margin-bottom: 20px; }
.step-list { display: grid; margin-top: 30px; border-top: 1px solid var(--line); }
.step-list article { display: grid; grid-template-columns: 50px 1fr; gap: 16px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.step-list article > span { color: var(--clay); font-family: var(--serif); }
.step-list h3 { font-size: 1.08rem; }
.step-list p { margin: 5px 0 0; color: var(--muted); font-size: .92rem; }

.culture-band { color: #fff; background: var(--pine-dark); }
.culture-band-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 62px; align-items: center; }
.culture-band h2 { max-width: 560px; }
.culture-band p:not(.eyebrow) { max-width: 590px; color: rgba(255,255,255,.7); }
.culture-band img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 22px; box-shadow: 0 26px 70px rgba(0,0,0,.28); }

.consultation-shell { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: start; }
.consultation-copy p:not(.eyebrow) { max-width: 540px; color: var(--muted); }
.check-list, .feature-list { padding: 0; margin: 26px 0 0; list-style: none; }
.check-list li, .feature-list li { position: relative; margin: 10px 0; padding-left: 26px; }
.check-list li::before, .feature-list li::before { content: "✓"; position: absolute; left: 0; color: var(--success); font-weight: 900; }
.light-list li::before { color: #f4cc80; }
.consultation-form, .form-card, .admin-card { padding: 30px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.form-grid-2, .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { display: grid; gap: 7px; margin-bottom: 16px; }
.field label { color: #36413e; font-size: .83rem; font-weight: 780; }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #c9cec9; border-radius: 10px; color: var(--ink); background: #fff; transition: border-color .18s, box-shadow .18s; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--pine); box-shadow: 0 0 0 3px rgba(21,59,51,.1); outline: none; }
.field [aria-invalid="true"] { border-color: var(--danger); }
.field small { color: var(--muted); font-size: .78rem; }
.checkbox-row, .checkbox-field { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 18px; color: var(--muted); font-size: .82rem; }
.checkbox-row input, .checkbox-field input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; accent-color: var(--pine); }
.form-status { min-height: 20px; color: var(--danger); font-size: .82rem; }

.faq-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 72px; align-items: start; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list details:first-child { border-top: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 1.04rem; font-weight: 750; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--clay); font-size: 1.5rem; font-weight: 400; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { padding-right: 48px; color: var(--muted); }

/* Public inner pages */
.page-hero, .language-hero { color: #fff; background: linear-gradient(135deg, var(--pine-dark), var(--pine)); }
.page-hero-grid { min-height: 460px; display: grid; grid-template-columns: 1fr .8fr; gap: 64px; align-items: center; padding-top: 62px; padding-bottom: 62px; }
.page-hero h1, .language-hero h1 { max-width: 790px; }
.page-hero p:not(.eyebrow), .language-hero .hero-lead { max-width: 660px; color: rgba(255,255,255,.72); }
.hero-pattern-card { min-height: 270px; display: grid; place-content: center; gap: 6px; padding: 38px; border: 1px solid rgba(255,255,255,.16); border-radius: 80px 20px 80px 20px; text-align: center; background: linear-gradient(145deg, rgba(214,164,73,.22), rgba(255,255,255,.04)); }
.hero-pattern-card span { font-family: var(--serif); font-size: 2.6rem; }
.hero-pattern-card span:nth-child(2) { color: #efca83; }
.page-hero-image { overflow: hidden; border-radius: 86px 20px 86px 20px; }
.page-hero-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.teacher-hero .button { margin-top: 18px; }

.language-grid-large { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.language-card { position: relative; overflow: hidden; min-height: 350px; padding: 30px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.language-card::after { content: ""; position: absolute; right: -65px; bottom: -85px; width: 210px; height: 210px; border-radius: 50%; background: var(--accent-soft); }
.language-card-number { color: var(--accent); font-family: var(--serif); font-size: 1.1rem; }
.language-native { margin-top: 44px; color: var(--accent); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.language-card h2 { font-size: 2rem; }
.language-card > p:not(.language-native) { max-width: 520px; color: var(--muted); }
.language-family { margin: 22px 0; color: var(--muted); font-size: .82rem; }
.language-card .button { position: relative; z-index: 1; }

.language-hero { position: relative; overflow: hidden; padding: 72px 0; }
.language-hero::after { content: ""; position: absolute; right: -160px; top: -160px; width: 470px; height: 470px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025), 0 0 0 110px rgba(255,255,255,.018); }
.language-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 360px; gap: 70px; align-items: center; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 31px; color: rgba(255,255,255,.56); font-size: .79rem; }
.breadcrumbs a { text-decoration: none; }
.native-title { margin: 5px 0 18px; color: #f1cd87; font-family: var(--serif); font-size: 1.45rem; }
.language-fact-card { padding: 28px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.07); backdrop-filter: blur(12px); }
.language-fact-card span { display: block; color: rgba(255,255,255,.55); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.language-fact-card strong { display: block; margin-top: 7px; font-size: .99rem; }
.fact-divider { height: 1px; margin: 18px 0; background: rgba(255,255,255,.13); }
.two-column-copy { display: grid; grid-template-columns: .72fr 1.28fr; gap: 68px; align-items: start; }
.prose-lead p { color: #3d4b47; font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.72rem); line-height: 1.55; }
.program-section { background: #f2efe6; }
.module-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.module-card { min-height: 250px; padding: 25px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.module-card > span { color: var(--clay); font-family: var(--serif); }
.module-card h3 { margin-top: 48px; font-size: 1.22rem; }
.module-card p { color: var(--muted); font-size: .9rem; }
.audience-section { color: #fff; background: var(--pine); }
.audience-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 65px; align-items: center; }
.audience-grid p:not(.eyebrow) { color: rgba(255,255,255,.68); }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0; list-style: none; }
.check-grid li { position: relative; min-height: 116px; padding: 21px 21px 21px 50px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.055); }
.check-grid li::before { content: "✓"; position: absolute; left: 20px; color: #f1cc84; font-weight: 900; }
.consultation-section { background: #f7f3e9; }
.consultation-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; }
.consultation-grid > div > p:not(.eyebrow) { color: var(--muted); }
.form-card h3 { margin-bottom: 24px; font-size: 1.55rem; }
.faq-section { background: #fbfaf6; }
.accordion { border-top: 1px solid var(--line); }
.accordion-item { border-bottom: 1px solid var(--line); }
.accordion-item h3 { margin: 0; }
.accordion-item button { width: 100%; display: flex; justify-content: space-between; gap: 22px; padding: 21px 0; border: 0; color: var(--ink); background: transparent; text-align: left; font-size: 1.03rem; font-weight: 760; }
.accordion-item button span:last-child { color: var(--clay); font-size: 1.4rem; font-weight: 400; }
.accordion-panel { padding: 0 48px 19px 0; color: var(--muted); }

.value-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.value-grid article { min-height: 245px; padding: 28px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.value-grid article > span { color: var(--clay); font-family: var(--serif); }
.value-grid h3 { margin-top: 52px; }
.value-grid p { margin-top: 10px; color: var(--muted); }
.teacher-form-section { color: #fff; background: var(--pine-dark); }
.teacher-form-section .form-card { color: var(--ink); }


.compact-legal-hero { padding: 62px 0; color: #fff; background: var(--pine-dark); }
.light-breadcrumbs { margin-bottom: 22px; }
.legal-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 55px; align-items: start; }
.legal-aside { position: sticky; top: 96px; display: grid; gap: 14px; padding: 20px; color: var(--muted); font-size: .9rem; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.legal-aside strong { color: var(--ink); font-size: 1rem; }
.legal-document-links { display: grid; gap: 6px; }
.legal-document-links a { display: block; padding: 10px 12px; border-radius: 10px; color: #35564c; background: #f4f7f4; }
.legal-document-links a:hover, .legal-document-links a[aria-current="page"] { color: #fff; background: var(--pine); }
.legal-note { display: block; line-height: 1.55; color: #747c77; }
.legal-section { background: #f8f7f2; }
.legal-content { max-width: 820px; }
.legal-content h2 { margin: 38px 0 16px; font-size: 1.45rem; }
.legal-content h3 { margin: 28px 0 12px; font-size: 1.1rem; }
.legal-content p, .legal-content li { color: #4d5754; }
.result-page { min-height: 68vh; display: grid; place-items: center; padding: 80px 20px; }
.result-card { width: min(100%, 620px); padding: 42px; border: 1px solid var(--line); border-radius: 22px; background: #fff; text-align: center; box-shadow: var(--shadow-sm); }
.result-card .eyebrow { text-align: center; }
.result-card p { color: var(--muted); }
.result-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 26px; }
.error-code { color: var(--clay); font-family: var(--serif); font-size: 3rem; }

.site-footer { padding: 62px 0 0; color: rgba(255,255,255,.72); background: #0c2822; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3,1fr); gap: 48px; }
.footer-grid > div:not(.footer-brand) { display: grid; align-content: start; gap: 10px; font-size: .86rem; }
.footer-grid strong { color: #fff; }
.footer-grid a { text-decoration: none; }
.footer-grid a:hover { color: #f0ca82; }
.brand-footer { color: #fff; }
.footer-brand p { max-width: 340px; margin-top: 15px; font-size: .88rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 48px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.11); font-size: .78rem; }

/* Authentication */
.auth-page { overflow: hidden; background: #152823; }
.auth-screen { position: relative; min-height: 100svh; display: grid; align-items: center; overflow: auto; padding: 84px 0 54px; color: #fff; background: #1b322b url('/assets/img/auth-bg.webp') center/cover no-repeat; }
.auth-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,35,29,.77) 0%, rgba(13,35,29,.46) 46%, rgba(13,26,23,.74) 100%), linear-gradient(0deg, rgba(8,23,19,.45), transparent 52%); }
.auth-brand { position: absolute; z-index: 2; top: 25px; left: 34px; display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: 1.18rem; font-weight: 850; text-decoration: none; }
.auth-brand img { width: 38px; height: 38px; object-fit: contain; opacity: 1; flex: 0 0 auto; filter: drop-shadow(0 3px 8px rgba(0,0,0,.22)); }
.auth-container { position: relative; z-index: 1; width: min(calc(100% - 40px), 1080px); margin-inline: auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: 92px; align-items: center; }
.auth-container-narrow { grid-template-columns: .82fr 1.18fr; }
.auth-welcome { max-width: 470px; }
.auth-kicker { margin: 0 0 16px; color: #f4d08c; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.auth-welcome h1 { min-height: 1.18em; font-size: clamp(2.15rem, 4vw, 3.2rem); font-family: var(--serif); font-weight: 400; }
.auth-welcome > p:not(.auth-kicker) { max-width: 430px; color: rgba(255,255,255,.72); }
.rotating-greeting::after { content: ""; display: inline-block; width: 2px; height: .83em; margin-left: 5px; vertical-align: -.06em; background: currentColor; animation: cursor-blink .75s steps(1) infinite; }
@keyframes cursor-blink { 50% { opacity: 0; } }
.auth-switch { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 30px; color: rgba(255,255,255,.68); font-size: .86rem; }
.auth-panel { padding: 34px; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; background: rgba(13,31,27,.72); box-shadow: 0 28px 90px rgba(0,0,0,.28); backdrop-filter: blur(22px); }
.auth-panel-head > span { color: #f1cb82; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.auth-panel-head h2 { margin-top: 8px; font-size: clamp(1.8rem,3vw,2.35rem); }
.auth-panel-head p { margin: 9px 0 24px; color: rgba(255,255,255,.63); font-size: .9rem; }
.auth-form { display: grid; }
.field-dark label { color: rgba(255,255,255,.82); }
.field-dark input { color: #fff; border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.08); }
.field-dark input::placeholder { color: rgba(255,255,255,.48); }
.field-dark input:focus { border-color: #efca83; box-shadow: 0 0 0 3px rgba(239,202,131,.14); }
.auth-form-row { display: flex; justify-content: flex-end; margin: -5px 0 18px; font-size: .82rem; }
.auth-form-row a, .auth-back { color: #f3d292; }
.auth-footnote { margin: 18px 0 0; color: rgba(255,255,255,.5); font-size: .76rem; text-align: center; }
.auth-panel-switch { display: none; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.68); font-size: .86rem; text-align: center; }
.auth-panel-switch a { color: #f3d292; font-weight: 750; }
.checkbox-light { color: rgba(255,255,255,.7); }
.checkbox-light a { color: #f1cf8a; }
.auth-back { display: inline-block; margin-bottom: 20px; font-size: .84rem; }

/* Dashboard shell */
.dashboard-page { min-width: 320px; background: #eff1ed; }
.dashboard-shell { min-height: 100svh; }
.dashboard-sidebar { position: fixed; z-index: 900; inset: 0 auto 0 0; width: 252px; display: flex; flex-direction: column; padding: 22px 17px 16px; color: rgba(255,255,255,.72); background: #102d27; box-shadow: 12px 0 35px rgba(10,30,25,.08); }
.dashboard-brand { display: flex; align-items: center; gap: 11px; padding: 4px 8px 25px; color: #fff; text-decoration: none; }
.dashboard-brand img { width: 42px; height: 42px; flex: 0 0 auto; }
.dashboard-brand span { display: grid; line-height: 1.2; }
.dashboard-brand b { font-size: 1.08rem; }
.dashboard-brand small { color: rgba(255,255,255,.46); font-size: .69rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-nav { display: grid; gap: 5px; }
.dashboard-nav a { display: flex; min-height: 44px; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: rgba(255,255,255,.68); font-size: .88rem; font-weight: 650; text-decoration: none; }
.dashboard-nav a > span { width: 21px; color: rgba(255,255,255,.42); text-align: center; }
.dashboard-nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
.dashboard-nav a.active { color: #fff; background: rgba(214,164,73,.17); }
.dashboard-nav a.active > span { color: #f2ca7e; }
.dashboard-nav-divider { height: 1px; margin: 11px 6px; background: rgba(255,255,255,.1); }
.dashboard-user { display: grid; grid-template-columns: 38px 1fr auto; gap: 9px; align-items: center; margin-top: auto; padding: 13px 8px 0; border-top: 1px solid rgba(255,255,255,.1); }
.avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #1b291f; background: #e5c57f; font-weight: 850; }
.dashboard-user > div { min-width: 0; display: grid; line-height: 1.25; }
.dashboard-user strong, .dashboard-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-user strong { color: #fff; font-size: .79rem; }
.dashboard-user small { color: rgba(255,255,255,.42); font-size: .68rem; }
.dashboard-user form { margin: 0; }
.dashboard-user button { border: 0; color: rgba(255,255,255,.48); background: transparent; }
.dashboard-main { min-height: 100svh; margin-left: 252px; }
.dashboard-topbar { height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 34px; border-bottom: 1px solid rgba(24,33,31,.08); background: rgba(255,255,255,.85); backdrop-filter: blur(14px); }
.dashboard-topbar > div p { margin: 0; color: var(--muted); font-size: .72rem; letter-spacing: .06em; }
.dashboard-topbar h1 { margin-top: 2px; font-size: 1.55rem; letter-spacing: -.025em; }
.topbar-home { color: var(--pine); font-size: .82rem; font-weight: 760; text-decoration: none; }
.dashboard-menu-button { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.dashboard-content { max-width: 1440px; margin-inline: auto; padding: 30px 34px 60px; }
.dashboard-section { margin-top: 34px; }
.dashboard-section:first-child { margin-top: 0; }
.dashboard-section-head { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 16px; }
.dashboard-section-head span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.dashboard-section-head h2 { margin-top: 3px; font-size: 1.48rem; }
.dashboard-section-head > a { color: var(--pine); font-size: .82rem; font-weight: 750; text-decoration: none; }
.dashboard-notice { display: flex; gap: 12px; margin-top: 18px; padding: 15px 17px; border: 1px solid #d8d2c2; border-radius: 12px; color: #675e4a; background: #fff8e7; font-size: .84rem; }
.dashboard-notice p { margin: 0; }

.welcome-panel { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr 230px; min-height: 300px; padding: 34px 38px; border-radius: 22px; color: #fff; background: linear-gradient(130deg,#18443a,#0f3029); box-shadow: var(--shadow-sm); }
.welcome-panel::before { content: ""; position: absolute; inset: 0; opacity: .09; background-image: linear-gradient(30deg, transparent 0 48%, #fff 49% 50%, transparent 51%), linear-gradient(150deg, transparent 0 48%, #fff 49% 50%, transparent 51%); background-size: 48px 28px; }
.welcome-panel > div { position: relative; z-index: 1; }
.welcome-label { margin: 0 0 13px; color: #e6c27a; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.welcome-panel h2 { min-height: 2.28em; font-size: clamp(1.75rem,2.8vw,2.55rem); }
.welcome-panel h2 .rotating-greeting { font-family: var(--serif); font-weight: 400; color: #f2d08c; }
.welcome-panel p:not(.welcome-label) { max-width: 600px; color: rgba(255,255,255,.66); }
.welcome-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.welcome-mountain { align-self: center; display: grid; justify-items: center; gap: 13px; }
.welcome-mountain > span { display: grid; width: 150px; height: 150px; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: rgba(255,255,255,.055); font-size: 3rem; }
.welcome-mountain small { color: rgba(255,255,255,.58); }
.dashboard-stat-grid, .admin-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; margin-top: 14px; }
.dashboard-stat-grid article, .admin-stat-grid article { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.dashboard-stat-grid span, .admin-stat-grid span { color: var(--muted); font-size: .72rem; font-weight: 760; text-transform: uppercase; letter-spacing: .08em; }
.dashboard-stat-grid strong, .admin-stat-grid strong { display: block; margin: 7px 0 1px; color: var(--pine); font-size: 1.85rem; line-height: 1; }
.dashboard-stat-grid small, .admin-stat-grid small { color: var(--muted); font-size: .76rem; }
.today-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; margin-top: 14px; }
.today-card { min-height: 185px; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.today-word { background: linear-gradient(135deg,#fffaf0,#fff); }
.today-next { color: #fff; border-color: transparent; background: linear-gradient(135deg,#315d52,#173c34); }
.today-card-label, .today-card footer { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.today-card-label { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.today-next .today-card-label { color: rgba(255,255,255,.58); }
.today-card strong { display: block; margin-top: 28px; color: var(--pine); font-family: var(--serif); font-size: 1.65rem; font-weight: 500; }
.today-next strong { color: #fff; font-family: var(--sans); font-size: 1.32rem; font-weight: 780; }
.today-card > p { margin: 4px 0 20px; color: var(--muted); font-size: .86rem; }
.today-next > p { color: rgba(255,255,255,.65); }
.today-card footer { margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }
.today-next footer { border-top-color: rgba(255,255,255,.13); color: rgba(255,255,255,.55); }
.today-card footer a { color: var(--pine); font-weight: 800; text-decoration: none; }
.today-next footer a { color: #f3d18c; }

.empty-state { padding: 38px; border: 1px dashed var(--line-strong); border-radius: 16px; background: rgba(255,255,255,.65); text-align: center; }
.empty-state h2, .empty-state h3 { margin-bottom: 9px; }
.empty-state p { max-width: 600px; margin-inline: auto; color: var(--muted); }
.empty-icon { margin-bottom: 12px; color: var(--clay); font-size: 2rem; }
.inline-empty { padding: 18px; border: 1px dashed var(--line-strong); border-radius: 12px; color: var(--muted); background: #fff; }
.course-dashboard-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }
.course-dashboard-card { padding: 23px; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 15px; background: #fff; }
.course-card-head, .course-card-footer { display: flex; justify-content: space-between; gap: 18px; align-items: center; }
.course-card-head span { color: var(--accent); font-size: .75rem; font-weight: 800; }
.course-card-head b { color: var(--pine); }
.course-dashboard-card h3 { margin-top: 20px; }
.course-dashboard-card p { margin: 8px 0 19px; color: var(--muted); font-size: .86rem; }
.progress-line { height: 7px; overflow: hidden; border-radius: 99px; background: #e7e9e5; }
.progress-line span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.course-card-footer { margin-top: 12px; color: var(--muted); font-size: .79rem; }
.course-card-footer a { color: var(--pine); font-weight: 800; text-decoration: none; }
.vocab-preview-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.vocab-preview { min-height: 175px; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: 14px; background: #fff; text-decoration: none; }
.vocab-preview > span { color: var(--accent); font-family: var(--serif); font-size: .95rem; }
.vocab-preview h3 { margin-top: 26px; font-size: 1.08rem; }
.vocab-preview p { color: var(--muted); font-size: .75rem; }
.vocab-preview b { margin-top: auto; color: var(--accent); }
.achievement-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.achievement-row article { display: flex; gap: 14px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.achievement-row article > span { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 12px; background: #f3e7cf; font-size: 1.3rem; }
.achievement-row h3 { font-size: .96rem; }
.achievement-row p { margin: 4px 0 0; color: var(--muted); font-size: .76rem; }

/* Vocabulary */
.dashboard-intro { display: flex; justify-content: space-between; gap: 30px; align-items: center; padding: 24px 28px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.dashboard-intro p { max-width: 700px; margin: 8px 0 0; color: var(--muted); }
.dashboard-intro-badge { flex: 0 0 auto; padding: 10px 14px; border-radius: 999px; color: var(--pine); background: var(--pine-soft); font-size: .78rem; font-weight: 800; }
.vocabulary-language-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 20px; }
.vocabulary-language-card { min-height: 245px; display: flex; flex-direction: column; padding: 23px; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: 16px; background: #fff; text-decoration: none; transition: transform .18s, box-shadow .18s; }
.vocabulary-language-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.vocabulary-language-card .vocab-native { color: var(--accent); font-family: var(--serif); }
.vocabulary-language-card h2 { margin-top: 30px; font-size: 1.45rem; }
.vocabulary-language-card p { color: var(--muted); font-size: .86rem; }
.vocab-card-stats { display: flex; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }
.vocab-workspace { display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 18px; align-items: start; }
.vocab-game-panel, .music-panel { border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.vocab-game-panel { min-height: 720px; padding: 24px; }
.vocab-game-head { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .82rem; }
.vocab-game-head a { color: var(--pine); font-weight: 750; text-decoration: none; }
.vocab-game-head strong { color: var(--ink); }
.vocab-progress { height: 6px; margin: 17px 0 24px; overflow: hidden; border-radius: 99px; background: #e8ebe7; }
.vocab-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--sand),var(--clay)); transition: width .3s; }
.vocab-question { width: min(100%,760px); margin-inline: auto; }
.vocab-question-title { margin-bottom: 17px; }
.vocab-question-title > span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.vocab-question-title h2 { margin-top: 5px; font-size: clamp(1.45rem,3vw,2rem); }
.vocab-picture-frame { overflow: hidden; aspect-ratio: 25 / 17; border-radius: 16px; background: #edf0ed; box-shadow: 0 12px 32px rgba(24,49,41,.1); }
.vocab-picture-frame img { width: 100%; height: 100%; display: block; object-fit: cover; }
.vocab-options { display: grid; gap: 9px; margin-top: 20px; }
.vocab-option { position: relative; display: grid; grid-template-columns: 28px 1fr 30px; gap: 12px; align-items: center; min-height: 62px; width: 100%; padding: 11px 14px; border: 1px solid #dfe3df; border-radius: 12px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; transition: border-color .16s,background .16s,transform .16s; }
.vocab-option:hover:not(:disabled), .vocab-option:focus-visible { border-color: #9bb5aa; background: #f7faf8; transform: translateY(-1px); outline: none; }
.vocab-option:disabled { cursor: default; opacity: 1; }
.vocab-option-icon { width: 22px; height: 22px; border: 2px solid #99a29e; border-radius: 50%; }
.vocab-option-copy { display: grid; gap: 3px; }
.vocab-option-copy strong { font-size: .96rem; font-weight: 650; }
.vocab-option-copy small { display: none; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.vocab-option-state { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; font-size: 1rem; font-weight: 850; }
.vocab-option.is-correct { border-color: #48a579; background: #eff9f3; }
.vocab-option.is-correct .vocab-option-icon { border-color: #199b67; background: #199b67; box-shadow: inset 0 0 0 5px #eff9f3; }
.vocab-option.is-correct .vocab-option-state { color: #fff; background: #199b67; }
.vocab-option.is-correct .vocab-option-copy small { display: block; color: #24704f; }
.vocab-option.is-wrong { border-color: #e36c6c; background: #fff2f1; }
.vocab-option.is-wrong .vocab-option-icon { border-color: #e65353; background: #e65353; box-shadow: inset 0 0 0 5px #fff2f1; }
.vocab-option.is-wrong .vocab-option-state { color: #fff; background: #e65353; }
.vocab-option.is-wrong .vocab-option-copy small { display: block; color: #a84242; }
.vocab-answer-summary { min-height: 24px; margin: 14px 0 0; font-size: .84rem; font-weight: 720; }
.vocab-answer-summary.is-correct { color: #17784f; }
.vocab-answer-summary.is-wrong { color: #b24747; }
.vocab-next { margin-top: 12px; }
.vocab-result { width: min(100%,620px); margin: 70px auto 0; padding: 35px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(145deg,#f8f2e6,#fff); text-align: center; }
.vocab-result > span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.vocab-result > strong { display: block; margin: 10px 0; color: var(--pine); font-size: clamp(2.4rem,7vw,4rem); }
.vocab-result h2 { font-size: 1.45rem; }
.vocab-result p { color: var(--muted); }
.music-panel { position: sticky; top: 20px; overflow: hidden; }
.music-panel-head { padding: 24px; }
.music-panel-head > span { color: var(--clay); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.music-panel-head h2 { margin-top: 7px; font-size: 1.35rem; }
.music-panel-head p { margin: 8px 0 0; color: var(--muted); font-size: .84rem; }
.vocab-deck-data { display: none !important; }

/* Courses and lessons */
.course-hero-dashboard { display: grid; grid-template-columns: 1fr 170px; gap: 30px; align-items: center; padding: 30px; border: 1px solid var(--line); border-left: 5px solid var(--accent); border-radius: 18px; background: #fff; }
.course-hero-dashboard p { max-width: 750px; margin: 10px 0 0; color: var(--muted); }
.course-progress-circle { display: grid; width: 130px; height: 130px; place-content: center; justify-self: end; border: 10px solid var(--accent-soft); border-top-color: var(--accent); border-radius: 50%; text-align: center; }
.course-progress-circle strong { color: var(--pine); font-size: 1.65rem; }
.course-progress-circle span, .course-progress-circle small { color: var(--muted); font-size: .69rem; }
.course-modules { display: grid; gap: 14px; margin-top: 18px; }
.course-module-card { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.module-card-head { display: flex; justify-content: space-between; gap: 28px; padding: 22px 24px; background: #f7f6f1; }
.module-card-head span { color: var(--clay); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.module-card-head h2 { margin-top: 4px; font-size: 1.28rem; }
.module-card-head p { margin: 6px 0 0; color: var(--muted); font-size: .84rem; }
.lesson-list { display: grid; }
.lesson-row { display: grid; grid-template-columns: 42px 1fr auto; gap: 14px; align-items: center; padding: 16px 22px; border-top: 1px solid var(--line); text-decoration: none; }
.lesson-row:hover { background: #fbfaf6; }
.lesson-state { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--muted); font-size: .77rem; }
.lesson-row.completed .lesson-state { color: #fff; border-color: var(--success); background: var(--success); }
.lesson-row h3 { font-size: .98rem; }
.lesson-row p { margin: 4px 0 0; color: var(--muted); font-size: .78rem; }
.lesson-row > span:last-child { color: var(--pine); font-weight: 800; }
.lesson-layout { display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 20px; align-items: start; }
.lesson-content { min-width: 0; }
.lesson-breadcrumb { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 14px; color: var(--muted); font-size: .79rem; }
.lesson-breadcrumb a { color: var(--pine); font-weight: 750; text-decoration: none; }
.lesson-header, .lesson-block, .motivation-card { padding: 28px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.lesson-header { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.lesson-header p { margin: 0; color: var(--muted); }
.lesson-status { flex: 0 0 auto; padding: 8px 12px; border-radius: 999px; color: var(--warning); background: #fff4dc; font-size: .76rem; font-weight: 800; }
.lesson-status.done { color: var(--success); background: #eaf5ee; }
.lesson-block { margin-top: 14px; }
.lesson-block-label { margin-bottom: 8px; color: var(--clay); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lesson-block h2 { margin-bottom: 20px; font-size: 1.55rem; }
.theory-text { color: #3f4a46; white-space: normal; }
.video-frame { overflow: hidden; aspect-ratio: 16/9; border-radius: 13px; background: #111; }
.video-frame iframe { width: 100%; height: 100%; border: 0; }
.quiz-form { display: grid; gap: 18px; }
.quiz-form fieldset { padding: 18px; border: 1px solid var(--line); border-radius: 13px; }
.quiz-form legend { display: flex; gap: 10px; padding: 0 7px; font-weight: 750; }
.quiz-form legend span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: #fff; background: var(--pine); font-size: .7rem; }
.quiz-option { display: flex; gap: 10px; align-items: flex-start; margin-top: 10px; padding: 11px; border: 1px solid transparent; border-radius: 9px; background: #f7f7f3; cursor: pointer; }
.quiz-option:has(input:checked) { border-color: var(--pine); background: #edf4f0; }
.quiz-option input { margin-top: 4px; accent-color: var(--pine); }
.quiz-result { display: flex; gap: 16px; align-items: center; margin-top: 20px; padding: 17px; border-radius: 13px; background: #fff1e6; }
.quiz-result.success { background: #e8f4ec; }
.quiz-result strong { font-size: 1.6rem; }
.quiz-result h3 { font-size: 1rem; }
.quiz-result p { margin: 4px 0 0; color: var(--muted); font-size: .8rem; }
.homework-block .homework-state { margin-bottom: 17px; }
.homework-state { padding: 14px; border-radius: 12px; background: #f5f4ef; color: var(--muted); font-size: .85rem; }
.homework-state.done { color: var(--success); background: #e9f4ed; }
.homework-state.status-revision { color: var(--warning); background: #fff4dc; }
.homework-state.status-approved { color: var(--success); background: #e9f4ed; }
.motivation-card { margin-top: 14px; color: #fff; background: linear-gradient(135deg,#1b483d,#103128); }
.motivation-card p { margin: 0; color: rgba(255,255,255,.75); }
.lesson-sidebar { position: sticky; top: 20px; display: grid; gap: 12px; }
.lesson-side-card { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.lesson-side-card > span { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.lesson-side-card h3 { margin-top: 8px; font-size: .98rem; }
.lesson-side-card p { margin: 7px 0 0; color: var(--muted); font-size: .77rem; }

.achievement-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 18px; }
.achievement-card { min-height: 210px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; color: #818885; background: #f7f7f3; filter: grayscale(.75); }
.achievement-card.earned { color: var(--ink); background: #fff; filter: none; box-shadow: var(--shadow-sm); }
.achievement-card > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; background: #ecece7; font-size: 1.5rem; }
.achievement-card.earned > span { background: #f3e6cb; }
.achievement-card h3 { margin-top: 30px; }
.achievement-card p { color: var(--muted); font-size: .83rem; }

/* Admin */
.admin-quick-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; margin-top: 18px; }
.admin-quick-grid a { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-decoration: none; }
.admin-quick-grid a:hover { box-shadow: var(--shadow-sm); }
.admin-quick-grid strong { display: block; margin-bottom: 6px; }
.admin-quick-grid span { color: var(--muted); font-size: .81rem; }
.data-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.data-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.data-table th, .data-table td { padding: 13px 15px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table th { color: var(--muted); background: #f5f5f0; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.data-table td strong { display: block; }
.data-table td small { display: block; margin-top: 2px; color: var(--muted); }
.data-table tbody tr:hover { background: #fbfaf7; }
.table-empty { padding: 30px !important; color: var(--muted); text-align: center !important; }
.status-pill { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; color: #59625e; background: #eceeeb; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.status-new, .status-submitted { color: #2e6683; background: #e8f2f7; }
.status-contacted, .status-revision { color: #8b6229; background: #fff2da; }
.status-qualified, .status-approved, .status-published, .status-paid { color: #2d6c4e; background: #e4f1e8; }
.status-invoice, .status-thinking { color: #71588a; background: #eee8f5; }
.status-waitlist { color: #526b78; background: #e9f0f3; }
.status-consultation { color: #5f5688; background: #eceaf7; }
.status-access_granted { color: #246346; background: #dff0e5; }
.status-refund { color: #9a4d25; background: #fae9dd; }
.status-lost, .status-archived { color: #874242; background: #f7e8e8; }
.status-draft { color: #6d6250; background: #f0ece4; }
.filter-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 15px; }
.filter-tabs a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: #fff; font-size: .74rem; font-weight: 700; text-decoration: none; }
.filter-tabs a.active { color: #fff; border-color: var(--pine); background: var(--pine); }
.admin-toolbar { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 16px; }
.admin-course-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.admin-course-card { padding: 21px; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: 15px; background: #fff; }
.admin-course-card h2 { margin-top: 20px; font-size: 1.25rem; }
.admin-course-card p { color: var(--muted); font-size: .82rem; }
.admin-course-card .status-pill { margin-bottom: 8px; }
.admin-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.admin-card h2 { margin-bottom: 20px; font-size: 1.35rem; }
.admin-card hr { height: 1px; margin: 24px 0; border: 0; background: var(--line); }
.admin-form .button + .button { margin-left: 8px; }
.admin-help { color: var(--muted); font-size: .78rem; }
.back-link { display: inline-block; margin-bottom: 14px; color: var(--pine); font-size: .8rem; font-weight: 750; text-decoration: none; }
.detail-list { display: grid; margin: 0; }
.detail-list div { display: grid; grid-template-columns: 130px 1fr; gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.detail-list dt { color: var(--muted); font-size: .76rem; }
.detail-list dd { margin: 0; font-size: .88rem; }
.course-editor-top { display: grid; grid-template-columns: 1fr 340px; gap: 16px; align-items: start; }
.admin-module-list { display: grid; gap: 12px; }
.admin-module { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.admin-module > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; background: #f6f6f1; }
.admin-module header span { color: var(--muted); font-size: .7rem; }
.admin-module header h3 { margin-top: 3px; }
.module-actions { display: flex; gap: 8px; }
.module-actions a, .module-actions button { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--pine); background: #fff; font-size: .73rem; text-decoration: none; }
.admin-lesson-list { display: grid; }
.admin-lesson-list > a { display: flex; justify-content: space-between; gap: 18px; padding: 13px 20px; border-top: 1px solid var(--line); text-decoration: none; }
.admin-lesson-list small { color: var(--muted); }
.add-lesson-row { display: grid; grid-template-columns: 1fr 1fr 80px auto; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--line); }
.add-lesson-row input { min-width: 0; padding: 9px 10px; border: 1px solid #c9cec9; border-radius: 8px; }
.admin-editor-layout { display: grid; grid-template-columns: minmax(0,1fr) 390px; gap: 16px; align-items: start; }
.checkbox-row.compact, .checkbox-row:last-child { align-items: center; }
.question-admin-list { display: grid; gap: 8px; }
.question-admin-list article { display: flex; justify-content: space-between; gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.question-admin-list small { display: block; color: var(--muted); }
.question-admin-list button, .vocab-admin-row button { border: 0; color: var(--danger); background: transparent; font-size: 1.3rem; }
.danger-form { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.danger-form button { border: 0; color: var(--danger); background: transparent; font-weight: 750; }
.music-admin-list { display: grid; border-top: 1px solid var(--line); }
.music-admin-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: .8rem; }
.music-admin-list a { color: var(--pine); }
.admin-notice { margin-bottom: 16px; padding: 17px 20px; border: 1px solid #c9ddd3; border-radius: 14px; background: #eef7f2; }
.admin-notice strong { color: var(--pine); }
.admin-notice p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }
.vocab-question-editor { display: grid; gap: 10px; }
.vocab-question-editor fieldset { padding: 13px; border: 1px solid var(--line); border-radius: 11px; }
.vocab-question-editor legend { padding-inline: 7px; color: var(--pine); font-size: .76rem; font-weight: 800; }
.vocab-question-editor .field { margin-bottom: 9px; }
.vocab-question-editor .field:last-child { margin-bottom: 0; }
.admin-step-list { display: grid; gap: 13px; margin-top: 18px; }
.admin-step-list > div { display: flex; gap: 12px; align-items: flex-start; }
.admin-step-list > div > b { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; border-radius: 8px; color: #fff; background: var(--pine); font-size: .72rem; }
.admin-step-list span { display: grid; }
.admin-step-list small { margin-top: 3px; color: var(--muted); line-height: 1.45; }
.vocab-admin-groups { display: grid; gap: 12px; }
.vocab-admin-group { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.vocab-admin-group summary { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 17px; background: #f6f6f1; cursor: pointer; list-style: none; }
.vocab-admin-group summary::-webkit-details-marker { display: none; }
.vocab-admin-group summary::after { content: '+'; color: var(--pine); font-size: 1.3rem; }
.vocab-admin-group[open] summary::after { content: '−'; }
.vocab-admin-group summary span, .vocab-admin-group summary b { color: var(--muted); font-size: .72rem; }
.vocab-admin-group summary h3 { margin-top: 2px; font-size: 1rem; }
.vocab-admin-question-list { max-height: 620px; overflow: auto; }
.vocab-admin-row { display: grid; grid-template-columns: 80px minmax(0,1fr) 32px; align-items: center; gap: 13px; padding: 10px 16px; border-top: 1px solid var(--line); }
.vocab-admin-row img { width: 80px; height: 55px; border-radius: 8px; object-fit: cover; background: #eef0ed; }
.vocab-admin-row span { display: grid; }
.vocab-admin-row small { color: var(--muted); }
.inline-access-form { display: flex; gap: 7px; min-width: 300px; }
.inline-access-form select { flex: 1; min-width: 170px; padding: 8px; border: 1px solid #c9cec9; border-radius: 8px; }
.inline-access-form button { border: 0; border-radius: 8px; color: #fff; background: var(--pine); }
.homework-admin-list { display: grid; gap: 14px; }
.homework-review-card header { display: flex; justify-content: space-between; gap: 20px; }
.homework-review-card header span { color: var(--muted); font-size: .72rem; }
.homework-review-card header h2 { margin: 4px 0; }
.homework-review-card header p { color: var(--muted); font-size: .78rem; }
.homework-answer { margin: 20px 0; padding: 16px; border-radius: 11px; background: #f5f5f0; white-space: pre-wrap; }
.review-actions { display: flex; gap: 9px; }

@media (max-width: 1180px) {
  .refined-language-grid, .vocab-preview-grid { grid-template-columns: repeat(3,1fr); }
  .module-grid { grid-template-columns: repeat(2,1fr); }
  .admin-course-grid { grid-template-columns: repeat(2,1fr); }
  .vocab-workspace { grid-template-columns: minmax(0,1fr) 320px; }
}

@media (max-width: 960px) {
  .section { padding: 72px 0; }
  .primary-nav { position: fixed; inset: var(--header) 0 auto 0; display: none; max-height: calc(100svh - var(--header)); padding: 18px 20px 24px; background: rgba(251,250,246,.98); box-shadow: var(--shadow-sm); }
  .primary-nav.is-open { display: grid; }
  .primary-nav a { padding: 10px 4px; border-bottom: 1px solid var(--line); }
  .primary-nav .nav-account { text-align: center; }
  .menu-toggle { display: block; }
  .hero-refined-grid, .format-grid, .culture-band-grid, .consultation-shell, .page-hero-grid, .language-hero-grid, .two-column-copy, .audience-grid, .consultation-grid { grid-template-columns: 1fr; }
  .hero-refined-grid { gap: 48px; }
  .hero-visual { min-height: 500px; }
  .compact-heading, .split-heading { grid-template-columns: 1fr; gap: 18px; }
  .format-grid { gap: 44px; }
  .story-image { max-width: 580px; }
  .culture-band-grid img { order: -1; }
  .page-hero-grid { min-height: auto; }
  .hero-pattern-card { display: none; }
  .language-hero-grid { gap: 34px; }
  .language-fact-card { max-width: 580px; }
  .auth-container, .auth-container-narrow { grid-template-columns: 1fr; gap: 30px; max-width: 640px; }
  .auth-welcome { max-width: none; }
  .auth-welcome > p:not(.auth-kicker), .auth-switch { display: none; }
  .auth-panel-switch { display: flex; }
  .auth-welcome h1 { font-size: 2.25rem; }
  .dashboard-sidebar { transform: translateX(-105%); transition: transform .22s ease; }
  .dashboard-sidebar.is-open { transform: translateX(0); }
  .dashboard-main { margin-left: 0; }
  .dashboard-menu-button { display: block; }
  .dashboard-topbar { padding: 0 20px; }
  .dashboard-content { padding: 24px 20px 48px; }
  .vocab-workspace { grid-template-columns: 1fr; }
  .music-panel { position: static; }
  .music-embed iframe { min-height: 320px; }
  .lesson-layout, .course-editor-top, .admin-editor-layout { grid-template-columns: 1fr; }
  .lesson-sidebar { position: static; grid-template-columns: repeat(2,1fr); }
  .vocabulary-language-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 720px) {
  body:not(.dashboard-page):not(.auth-page) { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .container, .narrow-container { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 58px 0; }
  h1 { font-size: clamp(2rem, 9vw, 2.75rem); }
  h2 { font-size: clamp(1.55rem, 7vw, 2.05rem); }
  .site-header { height: 64px; }
  :root { --header: 64px; }
  .brand { font-size: 1.12rem; }
  .brand img { width: 32px; height: 32px; }
  .mobile-dock { position: fixed; z-index: 950; inset: auto 0 0; display: grid; grid-template-columns: repeat(4,1fr); padding: 6px 7px calc(6px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255,255,255,.97); backdrop-filter: blur(16px); }
  .mobile-dock a { display: grid; justify-items: center; gap: 1px; min-height: 50px; align-content: center; color: #59635f; font-size: .65rem; font-weight: 700; text-decoration: none; }
  .dock-icon { color: var(--pine); font-size: 1rem; }
  .hero-refined { padding: 56px 0 64px; }
  .hero-copy h1 { font-size: clamp(2.15rem,10vw,3rem); }
  .hero-lead { font-size: 1rem; }
  .hero-actions .button { width: 100%; }
  .hero-facts { gap: 16px; }
  .hero-visual { min-height: 390px; }
  .hero-photo { right: 10px; border-radius: 20px 62px 20px 20px; }
  .hero-note { width: 155px; padding: 14px; }
  .ornament-card { width: 66px; height: 66px; }
  .refined-language-grid, .language-grid-large, .module-grid, .check-grid, .value-grid, .vocab-preview-grid, .dashboard-stat-grid, .admin-stat-grid, .course-dashboard-grid, .achievement-row, .vocabulary-language-grid, .achievement-grid, .admin-quick-grid, .admin-course-grid, .admin-detail-grid, .vocab-admin-groups, .today-grid { grid-template-columns: 1fr; }
  .language-tile { min-height: 245px; }
  .language-tile h3 { margin-top: 35px; }
  .story-caption { right: 12px; }
  .consultation-form, .form-card, .admin-card { padding: 22px; }
  .form-grid-2, .field-row { grid-template-columns: 1fr; gap: 0; }
  .faq-layout { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { display: grid; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .auth-screen { align-items: start; padding: 84px 0 32px; }
  .auth-brand { left: 18px; top: 18px; }
  .auth-container { width: min(calc(100% - 28px), 640px); }
  .auth-welcome h1 { min-height: 2.3em; font-size: 2.05rem; }
  .auth-panel { padding: 24px; border-radius: 18px; }
  .welcome-panel { grid-template-columns: 1fr; padding: 27px; }
  .welcome-mountain { display: none; }
  .welcome-panel h2 { min-height: 3.25em; }
  .dashboard-topbar { height: 76px; }
  .dashboard-topbar h1 { font-size: 1.22rem; }
  .topbar-home { display: none; }
  .dashboard-content { padding-inline: 14px; }
  .dashboard-intro { display: grid; padding: 20px; }
  .vocab-game-panel { min-height: 620px; padding: 16px; }
  .vocab-picture-frame { border-radius: 13px; }
  .vocab-option { grid-template-columns: 25px 1fr 26px; min-height: 58px; padding: 10px 12px; }
  .vocab-question-title h2 { font-size: 1.5rem; }
  .course-hero-dashboard { grid-template-columns: 1fr; }
  .course-progress-circle { justify-self: start; width: 105px; height: 105px; }
  .module-card-head { display: grid; }
  .lesson-row { grid-template-columns: 36px 1fr; }
  .lesson-row > span:last-child { display: none; }
  .lesson-header { display: grid; }
  .lesson-layout { gap: 14px; }
  .lesson-header, .lesson-block, .motivation-card { padding: 21px; }
  .lesson-sidebar { grid-template-columns: 1fr; }
  .add-lesson-row { grid-template-columns: 1fr; }
  .detail-list div { grid-template-columns: 1fr; gap: 3px; }
  .inline-access-form { min-width: 250px; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-aside { position: static; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.vocab-result-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 18px; }
.brand > small { margin-left: 2px; color: #7f8884; font-size: .62rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
@media (max-width: 560px) { .brand > small { display: none; } }


/* v3.3 dashboard clarity */
.dashboard-icon { width: 21px; height: 21px; flex: 0 0 21px; color: rgba(255,255,255,.62); transition: color .18s ease, transform .18s ease; }
.dashboard-nav a:hover .dashboard-icon { color: #fff; transform: translateY(-1px); }
.dashboard-nav a.active .dashboard-icon { color: #f3cb7a; }
.dashboard-user button .dashboard-icon { width: 19px; height: 19px; }
.dashboard-menu-button .dashboard-icon { width: 22px; height: 22px; color: var(--pine); }
.topbar-home { display: inline-flex; align-items: center; gap: 7px; }
.topbar-home .dashboard-icon { width: 17px; height: 17px; color: currentColor; }

/* Rich course descriptions */
.rich-description, .course-description-rich, .module-description-rich { display: grid; gap: 10px; }
.rich-description p, .course-description-rich p, .module-description-rich p { margin: 0; }
.course-hero-dashboard .course-description-rich { max-width: 760px; margin-top: 14px; }
.course-hero-dashboard .course-description-rich p { color: var(--muted); line-height: 1.72; }
.module-description-rich { margin-top: 6px; }
.module-description-rich p { color: var(--muted); font-size: .87rem; line-height: 1.62; }

/* Yandex Music player is visually centred inside its card. */
.music-embed { display: flex; justify-content: center; padding: 0 20px 18px; }
.music-embed iframe { display: block; width: min(100%, 310px); min-height: 450px; border: 0; border-radius: 14px; background: #f3f2ef; }
.music-link { display: block; margin: 0 20px 22px; text-align: center; }

@media (max-width: 1100px) {
  .music-embed iframe { width: min(100%, 520px); }
}

/* v3.3.1: editable vocabulary imagery */
.vocab-admin-row {
  grid-template-columns: 120px minmax(150px,1fr) minmax(320px,460px);
  scroll-margin-top: 96px;
  padding-block: 13px;
}
.vocab-admin-row:target { background: #f2f8f4; box-shadow: inset 4px 0 0 var(--pine); }
.vocab-admin-row img { width: 120px; height: 82px; border-radius: 10px; }
.vocab-admin-word-copy { gap: 2px; }
.vocab-admin-word-copy small:last-child { margin-top: 3px; color: #80908a; font-size: .68rem; }
.vocab-admin-media-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.vocab-image-upload-form { display: grid; grid-template-columns: minmax(145px,1fr) auto; align-items: center; gap: 8px; min-width: 0; }
.vocab-file-picker { position: relative; display: flex; min-width: 0; height: 42px; align-items: center; padding: 0 12px; overflow: hidden; border: 1px dashed #aebbb5; border-radius: 10px; color: var(--pine); background: #f8faf8; cursor: pointer; font-size: .73rem; font-weight: 760; }
.vocab-file-picker:hover, .vocab-file-picker:focus-within { border-color: var(--pine); background: #eff6f2; }
.vocab-file-picker span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vocab-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.vocab-admin-row .vocab-image-upload-form .button { min-height: 42px; border: 1px solid var(--line-strong); color: var(--pine); background: #fff; font-size: .76rem; }
.vocab-admin-row .vocab-image-upload-form .button:hover { border-color: var(--pine); background: #f6faf7; }
.vocab-admin-row .vocab-delete-button { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #f0d7d5; border-radius: 9px; color: var(--danger); background: #fff7f6; font-size: 1.1rem; cursor: pointer; }
.vocab-admin-row .vocab-delete-button:hover { border-color: var(--danger); }

@media (max-width: 1100px) {
  .vocab-admin-row { grid-template-columns: 100px minmax(130px,1fr) minmax(270px,390px); }
  .vocab-admin-row img { width: 100px; height: 68px; }
}

@media (max-width: 760px) {
  .vocab-admin-question-list { max-height: none; }
  .vocab-admin-row { grid-template-columns: 92px 1fr; align-items: start; }
  .vocab-admin-row img { width: 92px; height: 63px; }
  .vocab-admin-media-actions { grid-column: 1 / -1; justify-content: stretch; }
  .vocab-image-upload-form { flex: 1; }
}

@media (max-width: 500px) {
  .vocab-admin-row { grid-template-columns: 76px 1fr; padding-inline: 11px; }
  .vocab-admin-row img { width: 76px; height: 52px; }
  .vocab-image-upload-form { grid-template-columns: 1fr; }
  .vocab-admin-row .vocab-image-upload-form .button { width: 100%; }
}

/* v4.0.0 — production LMS additions */
.nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:#d98845;color:#fff;font-size:12px;font-weight:800}.course-meta-line{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:22px}.course-meta-line strong{font-size:20px}.course-meta-line span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:13px}.course-rule-card{display:flex;gap:18px;align-items:flex-start;padding:22px 24px;margin:0 0 24px;border:1px solid #e1ddd2;border-radius:18px;background:#fff}.course-rule-card>span{font-size:26px}.course-rule-card h2{font-size:20px;margin:0 0 6px}.course-rule-card p{margin:0;color:#5b625e}.lesson-row.locked{cursor:not-allowed;opacity:.62;background:#f3f1eb}.lesson-row.locked .lesson-state{background:#e5e1d8}.lesson-row.available{border-color:#cfc9bc}.lesson-row small small{display:block}.lesson-hint{color:#66716c}.locked-note{padding:14px 16px;border-radius:12px;background:#f1eee6;color:#68635a}.inline-answer-feedback{display:none;margin:10px 0 0;padding:12px 14px;border-radius:10px;font-size:14px}.inline-answer-feedback.correct,.inline-answer-feedback.wrong{display:block}.inline-answer-feedback.correct{background:#e6f4ed;color:#176648}.inline-answer-feedback.wrong{background:#fbeaea;color:#9d3434}.quiz-option.is-correct{border-color:#24956c;background:#eff9f4}.quiz-option.is-wrong{border-color:#d55959;background:#fff2f2}.attempt-review{display:grid;gap:12px;margin-top:18px}.attempt-answer{padding:18px;border-radius:14px;border:1px solid #ddd9cf;background:#fff}.attempt-answer.correct{border-left:4px solid #23956b}.attempt-answer.wrong{border-left:4px solid #d65757}.attempt-answer h3{font-size:16px;margin:0 0 8px}.attempt-answer p{margin:5px 0}.answer-explanation{color:#5c6761}.pronunciation-slot{display:flex;justify-content:center;margin:14px 0}.pronunciation-button{display:inline-flex;gap:8px;align-items:center;border:1px solid #c8d6d0;background:#f5faf8;color:#1c6250;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer}.pronunciation-button:hover{background:#eaf6f1}.external-embed-placeholder,.external-video-placeholder{min-height:220px;display:grid;place-items:center;text-align:center;border:1px dashed #c9c3b7;border-radius:16px;background:#f7f5ef;padding:24px}.external-embed-placeholder>div,.external-video-placeholder>div{max-width:480px}.external-embed-placeholder iframe,.external-video-placeholder iframe{width:100%;height:100%;min-height:360px;border:0;border-radius:12px}.external-embed-placeholder.is-loaded,.external-video-placeholder.is-loaded{padding:0;border:0;background:transparent}.music-embed{max-width:520px;margin-inline:auto;width:100%}.mini-test-hero{padding:118px 0 44px;background:#eef2ed}.narrow-container{max-width:900px}.mini-language-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.mini-language-tabs a{padding:9px 13px;border:1px solid #cfd6d0;border-radius:999px;background:#fff}.mini-language-tabs a.active{background:#1e5548;color:#fff;border-color:#1e5548}.mini-test-section{padding-top:36px}.public-mini-test{max-width:760px;margin-inline:auto}.admin-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.admin-stat-grid article{padding:22px;border:1px solid #dedad0;border-radius:16px;background:#fff}.admin-stat-grid span{font-size:13px;color:#727a76}.admin-stat-grid strong{display:block;font-size:34px;margin:7px 0}.admin-stat-grid p{margin:0;color:#626a66}.dashboard-card{border:1px solid #dedad0;border-radius:18px;background:#fff;padding:22px}.card-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.card-heading h2{margin:2px 0 0}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px;border-bottom:1px solid #ebe8df;vertical-align:top}.admin-table small{display:block;color:#7a817d;margin-top:3px}.filter-bar,.crm-filter-panel{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px;padding:16px;border:1px solid #dedad0;border-radius:16px;background:#fff}.filter-grow{flex:1;min-width:220px}.filter-bar label{display:grid;gap:6px}.filter-bar input,.filter-bar select{min-height:42px}.admin-editor-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.7fr);gap:18px}.submission-answer{white-space:pre-wrap;padding:18px;border-radius:12px;background:#f5f3ed;line-height:1.7}.notifications-list{max-width:900px}.notification-item{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid #ece9e1}.notification-item:last-child{border-bottom:0}.notification-dot{width:9px;height:9px;margin-top:8px;border-radius:50%;background:#c9cec9}.notification-item.unread .notification-dot{background:#d27b36}.notification-item h3{margin:3px 0 5px;font-size:17px}.notification-item p{margin:0;color:#626a66}.notification-item a{display:inline-block;margin-top:7px;font-weight:700}.text-button{border:0;background:none;color:#1f6352;font-weight:700;cursor:pointer}.question-option-editor{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-form-card{max-width:850px}.admin-form-card pre,.admin-table pre{white-space:pre-wrap;max-width:520px;font-size:12px}.assigned-teachers{display:grid;gap:8px;margin:14px 0}.assigned-teachers article{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#f5f3ed;border-radius:10px}.assigned-teachers small{display:block}.assigned-teachers button,.access-chip button{border:0;background:none;color:#a33838;cursor:pointer}.boxed-checkbox{align-self:end;padding:14px;border:1px solid #dedad0;border-radius:12px}.user-admin-list{display:grid;gap:14px}.user-admin-card header{display:flex;justify-content:space-between;gap:18px;align-items:center}.user-identity{display:flex;gap:12px;align-items:center}.user-identity h2{margin:0;font-size:18px}.user-identity p{margin:3px 0 0;color:#707773}.inline-role-form{display:flex;gap:8px;align-items:end}.inline-role-form label{display:grid;gap:4px}.inline-role-form select,.inline-role-form button{height:38px}.access-management{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-top:18px;padding-top:16px;border-top:1px solid #ebe8df}.access-chip-list{display:flex;gap:8px;flex-wrap:wrap}.access-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#edf4f0;font-size:13px}.access-chip form{display:inline}.crm-filter-panel .field{min-width:150px}.crm-filter-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%}.crm-summary-line{display:flex;justify-content:space-between;margin:10px 0 14px}.pagination{display:flex;gap:6px;justify-content:center;margin:18px 0}.pagination a{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid #d9d5cb;border-radius:8px;background:#fff}.pagination a.active{background:#1d5548;color:#fff}.lead-timeline{margin-top:20px}.lead-timeline article{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:12px 0}.lead-timeline article>span{width:10px;height:10px;margin-top:5px;background:#d38a4b;border-radius:50%}.lead-timeline strong{display:block;margin:2px 0}.lead-timeline p{margin:0}.compact-rich p{margin:.5em 0}.course-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.muted{color:#777f7a}.status-submitted{background:#fff2cc}.status-revision{background:#fde7e7}.status-approved{background:#e3f3eb}.admin-help{color:#6c746f}.vocab-admin-word-copy audio{display:block;width:220px;margin-top:8px;height:34px}.vocab-admin-media-actions{display:grid;gap:8px}.lesson-theory-rich p{margin:0 0 1.15em;line-height:1.75}.teacher-public-grid,.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.teacher-public-card,.testimonial-card{padding:24px;border:1px solid #ded9cf;border-radius:18px;background:#fff}.teacher-public-card .profile-placeholder{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#e8efe9;font-weight:800;color:#275a4d}.teacher-public-card h3,.testimonial-card h3{margin:15px 0 5px}.teacher-public-card p,.testimonial-card p{color:#626a66}.demo-badge{display:inline-block;margin-top:12px;padding:5px 8px;border-radius:999px;background:#fff1d9;color:#87531e;font-size:12px}
@media(max-width:980px){.admin-stat-grid,.teacher-public-grid,.testimonial-grid{grid-template-columns:1fr 1fr}.admin-editor-grid{grid-template-columns:1fr}.course-admin-grid{grid-template-columns:1fr}.user-admin-card header,.access-management{align-items:flex-start;flex-direction:column}.admin-detail-grid{grid-template-columns:1fr}}
@media(max-width:680px){.admin-stat-grid,.teacher-public-grid,.testimonial-grid,.question-option-editor{grid-template-columns:1fr}.crm-filter-panel .field{width:100%}.inline-role-form{width:100%;flex-wrap:wrap}.inline-role-form label{flex:1}.course-meta-line{align-items:flex-start;flex-direction:column}.external-embed-placeholder iframe,.external-video-placeholder iframe{min-height:240px}.vocab-admin-media-actions{width:100%}}

/* v4.1.0 — course audio, teacher onboarding and mini-test contrast */
.mini-test-hero{color:#17231e;background:linear-gradient(180deg,#edf3ee 0%,#f7f5ef 100%)}
.mini-test-hero h1,.mini-test-hero .hero-lead,.mini-test-hero .breadcrumbs,.mini-test-hero .breadcrumbs a,.mini-test-hero .breadcrumbs span{color:#17231e}
.mini-test-hero .eyebrow{color:#b45f2d}
.mini-test-hero .hero-lead{max-width:760px;opacity:.86}

.lesson-audio-card,.quiz-audio{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:22px 0;padding:18px 20px;border:1px solid #d6ded8;border-radius:16px;background:#f3f8f5}
.lesson-audio-card>div,.quiz-audio>div{display:grid;gap:3px}
.lesson-audio-card span,.quiz-audio>span{display:block;color:#4e655c;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.lesson-audio-card strong{display:block;margin-top:4px}
.lesson-audio-card audio,.quiz-audio audio,.course-audio-player,.submission-audio audio{width:min(100%,430px)}
.quiz-audio{align-items:center;margin:10px 0 16px;background:#f7f5ef}
.quiz-audio audio{width:min(100%,360px)}
.course-audio-admin{margin-top:28px;padding:22px;border:1px solid #dcd8ce;border-radius:18px;background:#fbfaf7}
.course-audio-admin h3{margin:0 0 8px}
.course-audio-admin audio{width:100%;margin:10px 0}
.compact-upload-form{margin-top:14px;padding-top:14px;border-top:1px solid #e5e1d8}
.inline-danger-form{display:inline-block;margin:4px 0 8px}
.inline-danger-form button{border:0;background:transparent;color:#9e3535;font-weight:700;cursor:pointer;padding:5px 0}

.audio-recorder{margin:18px 0;padding:18px;border:1px solid #d8ddd8;border-radius:16px;background:#f8faf8}
.audio-recorder-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.audio-recorder-head svg,.audio-recorder-head .audio-recorder-icon{flex:0 0 auto}
.audio-recorder-head h3{margin:0 0 4px;font-size:17px}
.audio-recorder-head p{margin:0;color:#65706a;font-size:14px}
.audio-recorder-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.audio-recorder-actions button{min-height:42px}
.audio-recorder-status{margin:12px 0 0;color:#59645e;font-size:14px}
.audio-recorder-status[data-state="recording"]{color:#a43c35;font-weight:800}
.audio-recorder-status[data-state="ready"]{color:#17684b}
.audio-recorder-status[data-state="error"]{color:#9e3535}
.audio-recorder.is-recording{border-color:#d88278;box-shadow:0 0 0 3px rgba(190,73,62,.08)}
.audio-recorder.is-recording [data-record-start]{opacity:.55}
.audio-recorder [data-record-preview]{display:block;width:100%;margin-top:14px}
.audio-recorder [data-record-preview][hidden]{display:none}
.audio-upload-separator{display:flex;align-items:center;gap:12px;margin:16px 0;color:#7b827e;font-size:13px}
.audio-upload-separator::before,.audio-upload-separator::after{content:"";height:1px;flex:1;background:#dedbd3}
.submission-audio{margin-top:16px;padding:16px;border-radius:14px;background:#f2f6f3}
.submission-audio strong{display:block;margin-bottom:8px}

.teacher-create-card{margin-bottom:18px;border-color:#cfdcd5;background:linear-gradient(145deg,#fff 0%,#f2f7f3 100%)}
.teacher-create-card .card-heading p{max-width:760px;margin:7px 0 0;color:#64706a}
.teacher-create-form .form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.teacher-create-form .form-actions p{margin:0;max-width:640px}
.teacher-course-field{max-width:520px}
.teacher-steps-note span{min-width:48px;font-weight:900;font-size:13px}
.form-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width:900px){
  .lesson-audio-card,.quiz-audio{align-items:flex-start;flex-direction:column}
  .lesson-audio-card audio,.quiz-audio audio{width:100%}
  .form-grid-three{grid-template-columns:1fr}
}
@media (max-width:560px){
  .mini-test-hero{padding-top:94px}
  .audio-recorder-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .audio-recorder-actions button{width:100%}
  .teacher-create-card{padding:18px}
}


/* v4.1.1 — compact tariff, legal navigation and cultural section cleanup */
.price-summary-section{padding-top:34px;padding-bottom:34px;background:#f4f1e9}
.price-summary-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:38px;align-items:center;padding:30px 34px;border:1px solid #dcd7ca;border-radius:22px;background:#fff;box-shadow:0 16px 45px rgba(33,49,42,.07)}
.price-summary-copy h2{max-width:680px;margin:5px 0 16px;font-size:clamp(1.65rem,2.5vw,2.35rem)}
.price-summary-features{display:flex;gap:8px;flex-wrap:wrap}
.price-summary-features span{padding:7px 11px;border-radius:999px;background:#edf3ef;color:#315a4d;font-size:.82rem;font-weight:700}
.price-summary-note{max-width:660px;margin:15px 0 0;color:#68716c;font-size:.92rem}
.price-summary-action{min-width:210px;display:grid;justify-items:start;gap:3px;padding-left:30px;border-left:1px solid #ded9ce}
.price-summary-action strong{font-family:var(--serif);font-size:2.55rem;line-height:1;color:var(--pine-dark)}
.price-summary-action small{margin-bottom:13px;color:#777e79}
.culture-band-note{margin-top:18px;padding-left:16px;border-left:2px solid rgba(255,255,255,.45);font-size:.94rem}
@media(max-width:860px){.price-summary-card{grid-template-columns:1fr;gap:24px}.price-summary-action{padding:22px 0 0;border-left:0;border-top:1px solid #ded9ce}.price-summary-action .button{width:100%;text-align:center}}
@media(max-width:560px){.price-summary-section{padding:22px 0}.price-summary-card{padding:23px 20px;border-radius:18px}.price-summary-action strong{font-size:2.15rem}.legal-aside{padding:16px}}

/* v4.2.0 — final interface polish and branded 404 */
.tile-arrow-icon,.button-icon,.meta-icon,.feature-svg,.lesson-state-icon,.empty-icon-svg,.card-arrow-icon,.achievement-svg,.quick-svg,.quick-arrow,.music-svg,.music-chevron,.welcome-mountain-icon,.notice-svg,.recorder-svg,.motivation-svg,.inline-svg{display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.tile-arrow-icon{width:18px;height:18px}
.button-icon{width:18px;height:18px}
.meta-icon{width:16px;height:16px}
.feature-svg{width:26px;height:26px}
.lesson-state-icon{width:17px;height:17px}
.empty-icon-svg{width:36px;height:36px;margin-inline:auto}
.card-arrow-icon{width:18px;height:18px}
.achievement-svg{width:25px;height:25px}
.quick-svg{width:24px;height:24px}
.quick-arrow{width:18px;height:18px;color:#71807a}
.music-svg{width:23px;height:23px}
.music-chevron{width:18px;height:18px;margin-left:auto;transition:transform .18s ease}
.welcome-mountain-icon{width:72px;height:72px}
.notice-svg{width:20px;height:20px}
.recorder-svg{width:24px;height:24px}
.motivation-svg{width:26px;height:26px}
.inline-svg{display:inline-block;width:15px;height:15px;vertical-align:-2px;margin-right:4px}

/* Public language cards: wider and easier to scan. */
.refined-language-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.language-tile{grid-column:span 2;min-height:260px;padding:24px}
.language-tile:nth-child(4){grid-column:2/span 2}
.language-tile h3{margin-top:34px}
.tile-arrow{width:32px;height:32px}
.culture-band.section{padding-top:64px;padding-bottom:64px}

/* Stronger small-text contrast. */
.dashboard-brand small{color:rgba(255,255,255,.7)}
.dashboard-nav a{color:rgba(255,255,255,.78)}
.dashboard-nav a>span,.dashboard-user button{color:rgba(255,255,255,.68)}
.dashboard-user small{color:rgba(255,255,255,.66)}
.welcome-panel p:not(.welcome-label){color:rgba(255,255,255,.78)}
.welcome-mountain small{color:rgba(255,255,255,.72)}
.today-next .today-card-label,.today-next footer{color:rgba(255,255,255,.72)}
.today-next>p{color:rgba(255,255,255,.78)}

/* Course clarity after purchase. */
.course-meta-line>span{display:inline-flex;align-items:center;gap:6px}
.course-access-active{color:#245d45!important;background:#e6f2ea!important}
.course-rule-icon{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:14px;color:#255f4e;background:#e5f0ea}
.lesson-row.locked{opacity:1;color:var(--ink);background:#f5f3ed}
.lesson-row.locked .lesson-state{color:#65706b;border-color:#cbcfc9;background:#e8e9e4}
.lesson-row.locked h3{color:#4c5552}
.lesson-row.locked p,.lesson-row.locked small{color:#707773}
.lesson-row.locked .lesson-state-icon{width:16px;height:16px}

/* Dashboard illustration and unified utility icons. */
.welcome-mountain>span{color:#f0cd85}
.empty-icon{display:grid;place-items:center}
.achievement-row article>span,.achievement-card>span{color:#755727}
.audio-recorder-icon,.motivation-icon,.notice-icon{display:grid;place-items:center;flex:0 0 auto}
.audio-recorder-icon{width:42px;height:42px;border-radius:12px;color:#285e50;background:#e5f1eb}
.motivation-icon{width:46px;height:46px;border-radius:14px;color:#f1cf87;background:rgba(255,255,255,.1)}
.audio-present{display:inline-flex!important;align-items:center}

/* Admin quick actions now use the same icon language as the rest of the app. */
.admin-quick-grid a{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 20px;gap:14px;align-items:center}
.admin-quick-grid h2{font-size:1.02rem}
.admin-quick-grid p{margin:5px 0 0;color:var(--muted);font-size:.8rem}
.admin-quick-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;color:var(--pine);background:#eaf1ed}
.admin-quick-grid a:hover .quick-arrow{transform:translateX(3px);color:var(--pine)}
.quick-arrow{transition:transform .18s ease,color .18s ease}

/* Collapsible Yandex Music card. */
details.music-panel>summary{list-style:none}
details.music-panel>summary::-webkit-details-marker{display:none}
.music-panel-summary{display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;background:#faf9f5}
.music-summary-icon{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:12px;color:#a45c3f;background:#f4e8dd}
.music-panel-summary>span:nth-child(2){display:grid;min-width:0}
.music-panel-summary small{color:var(--clay);font-size:.67rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.music-panel-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}
.music-panel[open] .music-chevron{transform:rotate(180deg)}
.music-panel-content{border-top:1px solid var(--line)}
.music-panel-note{margin:0;padding:16px 20px 4px;color:var(--muted);font-size:.82rem}
.music-panel .music-embed{padding-top:14px}

/* Branded 404 page. */
.not-found-body{padding-bottom:0!important;background:#12372f}.not-found-page{position:relative;min-height:100svh;overflow:hidden;color:#fff;background:linear-gradient(180deg,#12372f 0%,#245849 61%,#d8c28f 61.2%,#f4ecd8 100%)}
.not-found-sky{position:absolute;inset:0 0 48%}
.not-found-sun{position:absolute;right:12%;top:12%;width:92px;height:92px;border-radius:50%;background:#efc76f;box-shadow:0 0 0 18px rgba(239,199,111,.08),0 0 70px rgba(239,199,111,.25)}
.cloud{position:absolute;width:120px;height:24px;border-radius:999px;background:rgba(255,255,255,.13)}
.cloud::before,.cloud::after{content:"";position:absolute;bottom:0;border-radius:50%;background:inherit}
.cloud::before{left:18px;width:42px;height:42px}.cloud::after{right:20px;width:58px;height:58px}
.cloud-one{left:9%;top:23%}.cloud-two{right:29%;top:34%;transform:scale(.72)}
.not-found-mountains{position:absolute;inset:auto 0 0;height:65%;pointer-events:none}.not-found-number{position:absolute;right:6%;top:-15%;color:rgba(255,255,255,.075);font-family:var(--serif);font-size:clamp(9rem,23vw,22rem);font-weight:900;line-height:1;letter-spacing:-.08em}
.mountain{position:absolute;bottom:-12%;width:62%;height:100%;clip-path:polygon(50% 0,100% 100%,0 100%)}
.mountain-back{left:-8%;background:#436f60}
.mountain-mid{right:-9%;height:88%;background:#315b50}
.mountain-front{left:24%;bottom:-24%;width:68%;height:86%;background:#193f36}
.mountain::after{content:"";position:absolute;left:39%;top:0;width:22%;height:28%;clip-path:polygon(50% 0,100% 100%,68% 82%,51% 100%,28% 77%,0 100%);background:rgba(255,255,255,.72)}.mountain-village{position:absolute;right:13%;bottom:17%;display:flex;align-items:flex-end;gap:7px;opacity:.78}.mountain-village i{position:relative;display:block;width:22px;height:17px;border-radius:2px 2px 0 0;background:#e7cf99;box-shadow:0 6px 0 #8e6448}.mountain-village i::before{content:"";position:absolute;left:3px;right:3px;bottom:100%;height:11px;clip-path:polygon(50% 0,100% 100%,0 100%);background:#a96043}.mountain-village i:nth-child(2){width:28px;height:23px}.mountain-village i:nth-child(3){width:18px;height:14px}

.not-found-content{position:relative;z-index:2;min-height:100svh;display:flex;flex-direction:column;padding-top:28px;padding-bottom:70px}
.not-found-brand{display:inline-flex;align-items:center;gap:10px;width:max-content;color:#fff;font-size:1.18rem;font-weight:850;text-decoration:none}
.not-found-card{width:min(100%,610px);margin:auto 0;padding:34px 38px;border:1px solid rgba(255,255,255,.18);border-radius:24px;color:#fff;background:rgba(10,35,29,.72);box-shadow:0 30px 90px rgba(4,20,16,.28);backdrop-filter:blur(16px)}
.not-found-card h1{font-size:clamp(2.1rem,4.8vw,3.7rem)}
.not-found-card>p:not(.eyebrow){max-width:520px;color:rgba(255,255,255,.79)}
.not-found-phrase{display:inline-grid;margin:8px 0 6px;padding:10px 14px;border-left:3px solid #efc76f;color:#fff;background:rgba(255,255,255,.06)}
.not-found-phrase span{font-family:var(--serif);font-size:1.35rem}.not-found-phrase small{color:rgba(255,255,255,.68)}
.not-found-card .result-actions{justify-content:flex-start}

@media (max-width:1180px){
  .refined-language-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .language-tile,.language-tile:nth-child(4){grid-column:auto}
}

@media (max-width:720px){
  /* One clear public navigation pattern on phones: the bottom dock. */
  .site-header .menu-toggle{display:none!important}
  .site-header .primary-nav{display:none!important}
  .header-inner{justify-content:flex-start}
  .mobile-dock{padding:7px 9px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(18,39,32,.08)}
  .mobile-dock a{min-height:53px;gap:3px;border-radius:10px;font-size:.75rem}
  .mobile-dock a.active{color:var(--pine);background:#edf3ef}
  .dock-icon{width:21px;height:21px;color:currentColor}

  .refined-language-grid{grid-template-columns:1fr;gap:10px}
  .language-tile{min-height:0;padding:17px 18px}
  .language-tile h3{margin-top:12px;font-size:1.28rem}
  .language-tile p{display:-webkit-box;margin:7px 0 12px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.84rem}
  .language-tile-footer{padding-top:12px}
  .language-tile-top{align-items:center}
  .culture-band.section{padding-top:48px;padding-bottom:48px}

  .course-rule-card{padding:18px}
  .course-rule-icon{width:42px;height:42px}
  .lesson-row.locked{grid-template-columns:36px 1fr}

  /* CRM rows become touch-friendly cards instead of horizontal tables. */
  .responsive-data-table,.responsive-data-table tbody,.responsive-data-table tr,.responsive-data-table td{display:block;width:100%}
  .responsive-data-table thead{display:none}
  .responsive-data-table tbody{padding:8px}
  .responsive-data-table tr{margin-bottom:10px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}
  .responsive-data-table tr:last-child{margin-bottom:0}
  .responsive-data-table td{display:grid;grid-template-columns:minmax(105px,.48fr) minmax(0,1fr);gap:12px;padding:8px 0!important;border-bottom:1px solid #eeece6!important;overflow-wrap:anywhere}
  .responsive-data-table td:last-child{border-bottom:0!important}
  .responsive-data-table td::before{content:attr(data-label);color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
  .responsive-data-table td>a{min-width:0}
  .data-table-wrap:has(.responsive-data-table){overflow:visible;border:0;background:transparent}

  .admin-quick-grid a{grid-template-columns:42px minmax(0,1fr) 18px;padding:17px}
  .admin-quick-icon{width:40px;height:40px}

  .music-panel{position:static}
  .music-panel-summary{padding:15px 16px}
  .music-panel-note{padding-inline:16px}
  .music-panel .music-embed{padding-inline:14px}

  .not-found-page{min-height:100svh;background:linear-gradient(180deg,#12372f 0%,#245849 63%,#f1e5c9 63.2%,#f4ecd8 100%)}
  .not-found-content{min-height:100svh;padding-top:20px;padding-bottom:42px}
  .not-found-card{margin-top:38px;padding:26px 22px;border-radius:20px}
  .not-found-card h1{font-size:2.25rem}
  .not-found-card .result-actions{display:grid;grid-template-columns:1fr}
  .not-found-mountains{height:45%;opacity:.78}
  .not-found-sun{right:8%;top:9%;width:64px;height:64px}
  .cloud-one{left:2%}.cloud-two{right:20%}
}

.field-help{display:block;margin-top:6px;color:var(--muted);font-size:.76rem;line-height:1.45}


/* v4.2.2 — word-of-the-day language label moved to the card footer. */
@media (max-width:720px){
  .dashboard-topbar{height:auto;min-height:76px;align-items:flex-start;padding:12px 14px}
  .dashboard-topbar>div{min-width:0;flex:1;padding-top:1px}
  .dashboard-topbar>div p{white-space:normal;line-height:1.3;overflow-wrap:anywhere}
  .dashboard-topbar h1{margin-top:3px;font-size:1.12rem;line-height:1.24;white-space:normal;overflow-wrap:anywhere;word-break:normal}
  .dashboard-menu-button{flex:0 0 auto;margin-top:2px}
  .hero-note{width:166px}
  .hero-note-meta{align-items:flex-start}
  .hero-note-language em{font-size:.54rem}
  .not-found-number{right:-3%;top:-2%;font-size:9.5rem}
  .mountain-village{right:8%;bottom:14%;transform:scale(.8);transform-origin:right bottom}
}

/* v4.3.0 — daily review, weekly goal, practical phrases, language map,
   certificates and expanded administrator account management. */
.learning-focus-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:14px;margin-top:14px}
.review-today-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:18px;align-items:center;border-color:#cbdad3;background:linear-gradient(135deg,#f5faf7,#fff)}
.learning-feature-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:17px;color:#fff;background:var(--pine);box-shadow:0 12px 28px rgba(21,59,51,.18)}
.learning-feature-svg{width:29px;height:29px}
.learning-feature-copy .eyebrow,.weekly-goal-card .eyebrow{margin-bottom:7px}
.learning-feature-copy h2,.weekly-goal-card h2{font-size:1.25rem}
.learning-feature-copy p{margin:7px 0 9px;color:var(--muted);font-size:.84rem}
.review-today-meta{display:flex;gap:8px;align-items:baseline;color:var(--muted);font-size:.75rem}
.review-today-meta strong{color:var(--clay);font-size:1.2rem}
.weekly-goal-card{padding:23px;background:linear-gradient(145deg,#fffaf0,#fff)}
.weekly-goal-head{display:flex;justify-content:space-between;gap:18px;align-items:start}
.weekly-goal-head>strong{display:grid;min-width:58px;height:58px;place-items:center;border:1px solid #eadbb9;border-radius:50%;color:var(--pine);background:#fff;font-size:1.08rem}
.weekly-goal-progress{height:7px;margin:18px 0 15px;overflow:hidden;border-radius:99px;background:#e9e4d8}
.weekly-goal-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sand),var(--clay))}
.weekly-day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.weekly-day-row>span{display:grid;justify-items:center;gap:5px;color:#8b908d}
.weekly-day-row i{display:grid;width:29px;height:29px;place-items:center;border:1px solid #dedbd3;border-radius:50%;background:#f7f6f2;font-style:normal}
.weekly-day-row .is-active i{color:#fff;border-color:var(--success);background:var(--success)}
.weekly-day-row .is-today i{outline:2px solid #e6bd68;outline-offset:2px}
.weekly-day-row small{font-size:.68rem;font-weight:760}
.weekly-check{width:15px;height:15px}
.weekly-goal-card>p{margin:15px 0 0;color:var(--muted);font-size:.78rem}
.learning-discovery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.learning-discovery-card{display:grid;grid-template-columns:48px minmax(0,1fr) 20px;gap:13px;align-items:center;min-height:150px;padding:19px;border:1px solid var(--line);border-radius:15px;background:#fff;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.learning-discovery-card:hover{transform:translateY(-2px);border-color:#bacdc4;box-shadow:var(--shadow-sm)}
.learning-discovery-card>span{display:grid;width:48px;height:48px;place-items:center;border-radius:14px;color:var(--pine);background:var(--pine-soft)}
.discovery-icon{width:25px;height:25px}
.learning-discovery-card small{color:var(--clay);font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.learning-discovery-card h3{margin:4px 0 5px;font-size:1.02rem}
.learning-discovery-card p{margin:0;color:var(--muted);font-size:.75rem;line-height:1.5}
.discovery-arrow{width:19px;height:19px;color:var(--pine)}

.review-intro-card{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:20px;align-items:center;margin-bottom:16px;padding:24px 26px;border:1px solid #d8d4ca;border-radius:18px;background:linear-gradient(135deg,#fffaf0,#fff)}
.review-intro-icon{display:grid;width:62px;height:62px;place-items:center;border-radius:18px;color:#fff;background:var(--pine)}
.review-feature-icon{width:31px;height:31px}
.review-intro-card h2{font-size:1.42rem}
.review-intro-card p{margin:7px 0 0;color:var(--muted);font-size:.86rem}
.review-intro-meta{display:grid;justify-items:end}
.review-intro-meta strong{color:var(--clay);font-size:1.7rem}
.review-intro-meta small{color:var(--muted);font-size:.72rem}
.review-game{max-width:900px;margin-inline:auto}

.phrase-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;background:linear-gradient(135deg,#f9f4e8,#fff)}
.phrase-hero h2,.map-intro h2,.certificate-list-hero h2{font-size:1.65rem}
.phrase-hero p,.map-intro p,.certificate-list-hero p{max-width:760px;margin:9px 0 0;color:var(--muted)}
.phrase-hero-mark{display:grid;min-width:122px;height:112px;place-items:center;border-radius:24px;color:#fff;background:var(--pine)}
.phrase-hero-mark span{align-self:start;margin-top:-22px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.phrase-hero-icon{align-self:end;width:41px;height:41px;margin-top:18px}
.phrase-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:14px;padding:17px}
.phrase-filter label{display:grid;min-width:210px;gap:6px;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.phrase-filter select{min-height:44px;padding:8px 38px 8px 11px;border:1px solid var(--line-strong);border-radius:10px;background:#fff}
.phrase-situation .dashboard-section-head p{max-width:680px;margin:5px 0 0;color:var(--muted);font-size:.83rem}
.living-phrase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.living-phrase-card{display:flex;min-height:235px;flex-direction:column;padding:20px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:15px;background:#fff}
.living-phrase-card header{display:flex;justify-content:space-between;gap:14px;color:var(--accent);font-size:.72rem;font-weight:800}
.living-phrase-card header small{color:var(--muted);font-weight:600}
.phrase-russian{margin:27px 0 3px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.living-phrase-card h3{font-family:var(--serif);font-size:1.48rem;font-weight:500;overflow-wrap:anywhere}
.phrase-note{margin:10px 0 18px;color:var(--muted);font-size:.78rem;line-height:1.5}
.living-phrase-card>a{margin-top:auto;color:var(--pine);font-size:.7rem;font-weight:750;text-decoration:none}
.phrase-review-note{margin-top:30px}

.map-intro{display:flex;justify-content:space-between;gap:25px;align-items:center;background:linear-gradient(135deg,#eef4ef,#fff)}
.map-intro-badge{flex:0 0 auto;padding:9px 13px;border-radius:999px;color:var(--pine);background:var(--pine-soft);font-size:.72rem;font-weight:800}
.language-map-layout{display:grid;grid-template-columns:minmax(420px,.88fr) minmax(0,1.12fr);gap:16px;margin-top:16px;align-items:start}
.dagestan-map-card{position:sticky;top:18px;padding:18px;background:linear-gradient(160deg,#f9faf6,#eef3eb)}
.dagestan-language-map{width:100%;min-height:520px;overflow:visible}
.dagestan-outline{stroke:#aebcaf;stroke-width:.8}
.map-ridge{fill:none;stroke:#a9b3a6;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.map-coast{fill:none;stroke:#6f9bac;stroke-width:1.2;stroke-dasharray:2 2;opacity:.8}
.map-marker{cursor:pointer;color:var(--accent)}
.marker-ochre{--accent:#bb8730}.marker-blue{--accent:#517b8e}.marker-green{--accent:#4e7f62}.marker-berry{--accent:#845568}.marker-violet{--accent:#6c6087}
.map-marker circle:first-child{fill:var(--accent);opacity:.23;transition:transform .18s,opacity .18s}
.map-marker .marker-core{fill:var(--accent);opacity:1}
.map-marker text{fill:#21312b;font:700 3.2px var(--sans);paint-order:stroke;stroke:#f2f5ef;stroke-width:1.2px;stroke-linejoin:round}
.map-marker:hover circle:first-child{transform:scale(1.25);opacity:.35}
.map-caption{margin:7px 8px 2px;color:var(--muted);font-size:.73rem;line-height:1.5}
.map-language-cards{display:grid;gap:13px}
.map-language-card{border-left:4px solid var(--accent);scroll-margin-top:24px}
.map-language-card header{display:flex;justify-content:space-between;gap:16px;align-items:start}
.map-language-card header span{color:var(--accent);font-family:var(--serif)}
.map-language-card header h2{margin-top:3px;font-size:1.35rem}
.map-language-card header>a,.map-source{color:var(--pine);font-size:.75rem;font-weight:800;text-decoration:none}
.map-region{margin:15px 0 3px;color:var(--ink);font-size:.86rem}
.map-family{display:block;color:var(--muted)}
.map-language-card h3{margin-top:17px;font-size:.88rem}
.map-language-card ul{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 14px;padding:0;list-style:none}
.map-language-card li{padding:6px 9px;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:.7rem;font-weight:760}
.literary-note{margin:0 0 11px;padding:11px 13px;border-radius:10px;background:#f5f3ed;color:var(--muted);font-size:.76rem}

.certificate-list-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#fff8e9,#fff)}
.certificate-hero-icon{width:82px;height:82px;flex:0 0 auto;color:var(--clay)}
.certificate-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:18px}
.certificate-preview-card{position:relative;overflow:hidden;padding:25px;border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:18px;background:linear-gradient(145deg,#fff,#faf5e9)}
.certificate-preview-card::after{content:"";position:absolute;right:-65px;bottom:-80px;width:190px;height:190px;border:26px double var(--accent-soft);border-radius:50%;opacity:.75}
.certificate-preview-top{position:relative;z-index:1;display:flex;gap:10px;align-items:center;color:var(--pine);font-weight:850}
.certificate-preview-card>small{display:block;margin-top:24px;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.certificate-preview-card h2{position:relative;z-index:1;margin-top:7px;font-size:1.35rem}
.certificate-preview-card>p{position:relative;z-index:1;margin:15px 0;color:var(--pine);font-family:var(--serif);font-size:1.5rem}
.certificate-preview-card>div:not(.certificate-preview-top){position:relative;z-index:1;display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;color:var(--muted);font-size:.75rem}
.certificate-preview-card>.button{position:relative;z-index:1}
.certificate-empty{margin-top:18px}
.certificate-page{min-height:100vh;padding:24px;background:#e7e3d9}
.certificate-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;width:min(100%,1120px);margin:0 auto 16px}
.certificate-toolbar>a{color:var(--pine);font-weight:800;text-decoration:none}
.button-icon{width:18px;height:18px}
.certificate-sheet{width:min(100%,1120px);min-height:790px;margin-inline:auto;padding:18px;background:#fff;box-shadow:0 25px 80px rgba(24,33,31,.2)}
.certificate-border{position:relative;min-height:754px;overflow:hidden;display:flex;flex-direction:column;padding:54px 68px 34px;border:2px solid var(--pine);outline:7px double #d2a34e;outline-offset:-14px;background:radial-gradient(circle at 50% 42%,rgba(214,164,73,.08),transparent 42%),linear-gradient(145deg,#fffdf7,#fff)}
.certificate-border::before{content:"";position:absolute;inset:24px;border:1px solid rgba(21,59,51,.22);pointer-events:none}
.certificate-corner{position:absolute;width:92px;height:92px;border:13px double var(--sand);opacity:.7}
.corner-one{left:18px;top:18px;border-right:0;border-bottom:0}.corner-two{right:18px;top:18px;border-left:0;border-bottom:0}.corner-three{left:18px;bottom:18px;border-right:0;border-top:0}.corner-four{right:18px;bottom:18px;border-left:0;border-top:0}
.certificate-brand{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:14px}
.certificate-brand div{display:grid;line-height:1.05}.certificate-brand strong{color:var(--pine);font-size:1.5rem}.certificate-brand span{color:var(--clay);font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.certificate-copy{position:relative;z-index:1;display:grid;justify-items:center;max-width:800px;margin:auto;text-align:center}
.certificate-kicker{margin:26px 0 12px;color:var(--clay);font-size:.72rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase}
.certificate-copy h1{font-size:1.25rem;font-weight:500;letter-spacing:0}
.certificate-name{min-width:65%;margin:24px 0 17px;padding:0 20px 9px;border-bottom:1px solid #ad8951;color:var(--pine);font-family:var(--serif);font-size:clamp(2.2rem,4.6vw,4rem);line-height:1.1}
.certificate-copy>p:not(.certificate-kicker):not(.certificate-details){margin:0;color:var(--muted)}
.certificate-copy h2{max-width:720px;margin:14px 0 12px;color:var(--pine);font-family:var(--serif);font-size:2rem;font-weight:500}
.certificate-details{color:var(--clay);font-weight:800}
.certificate-footer{position:relative;z-index:1;display:grid;grid-template-columns:1fr 120px 1fr;gap:28px;align-items:end;margin-top:auto}
.certificate-footer>div:not(.certificate-seal){display:grid;gap:4px;padding-top:11px;border-top:1px solid #b9b2a2;text-align:center}
.certificate-footer span{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
.certificate-footer strong{color:var(--pine);font-size:.78rem;overflow-wrap:anywhere}
.certificate-seal{display:grid;width:92px;height:92px;place-content:center;justify-self:center;border:3px double #c7953c;border-radius:50%;color:#9c6829;text-align:center;transform:rotate(-7deg)}
.certificate-seal span{color:inherit;font-family:var(--serif);font-size:1.7rem}.certificate-seal small{font-size:.62rem;font-weight:850;text-transform:uppercase}
.certificate-disclaimer{position:relative;z-index:1;margin:18px 0 0;color:#8a8c87;font-size:.62rem;text-align:center}

.account-create-card{margin-bottom:18px;background:linear-gradient(135deg,#f8fbf9,#fff)}
.account-create-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:18px;color:#fff;background:var(--pine)}
.account-create-svg{width:31px;height:31px}
.account-create-form .form-grid-three{grid-template-columns:1fr 1fr .72fr}
.account-create-secondary{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);margin-top:13px}
.password-generate-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}
.password-generate-row .button{min-height:44px;padding-inline:14px}
.account-create-form .field>small{display:block;margin-top:6px;color:var(--muted);font-size:.72rem}
.account-create-form .form-actions{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:18px}
.account-create-form .admin-help{max-width:570px;margin:0;font-size:.75rem}
.user-admin-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap;justify-content:flex-end}
.danger-text-button{display:inline-flex;min-height:38px;align-items:center;gap:7px;padding:7px 10px;border:1px solid #e6caca;border-radius:9px;color:var(--danger);background:#fff7f7;font-size:.76rem;font-weight:800}
.danger-text-button:hover{background:#fdecec}.danger-text-button:disabled{cursor:not-allowed;opacity:.45}
.small-action-icon{width:17px;height:17px}
.self-badge{display:inline-block;margin-left:7px;padding:3px 6px;border-radius:999px;color:var(--pine);background:var(--pine-soft);font-size:.58rem;vertical-align:middle}

@media (max-width:1100px){
  .learning-focus-grid,.language-map-layout{grid-template-columns:1fr}
  .dagestan-map-card{position:static}
  .living-phrase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .account-create-form .form-grid-three{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .review-today-card{grid-template-columns:52px minmax(0,1fr)}
  .review-today-card>.button{grid-column:1/-1;width:100%}
  .learning-discovery-grid,.certificate-list-grid{grid-template-columns:1fr}
  .certificate-page{padding:10px}.certificate-sheet{padding:9px;min-height:0}.certificate-border{min-height:720px;padding:46px 34px 27px}.certificate-footer{grid-template-columns:1fr 90px 1fr;gap:12px}
  .account-create-form .form-grid-three,.account-create-secondary{grid-template-columns:1fr}
}
@media (max-width:720px){
  .learning-focus-grid{gap:10px}
  .review-today-card{padding:18px;gap:13px}.learning-feature-icon{width:50px;height:50px;border-radius:14px}.learning-feature-svg{width:25px;height:25px}
  .weekly-goal-card{padding:19px}.weekly-goal-head>strong{min-width:50px;height:50px}.weekly-day-row{gap:4px}.weekly-day-row i{width:27px;height:27px}
  .learning-discovery-card{min-height:128px;padding:16px}
  .review-intro-card{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:19px}.review-intro-icon{width:52px;height:52px}.review-intro-meta{grid-column:1/-1;display:flex;justify-content:flex-start;align-items:baseline;gap:7px}
  .phrase-hero,.map-intro,.certificate-list-hero{display:grid;padding:20px}.phrase-hero-mark{display:none}.map-intro-badge{justify-self:start}.certificate-hero-icon{width:54px;height:54px;grid-row:1}
  .phrase-filter{display:grid}.phrase-filter label{min-width:0}.phrase-filter .button{width:100%}
  .living-phrase-grid{grid-template-columns:1fr}.living-phrase-card{min-height:210px}
  .dagestan-map-card{padding:8px}.dagestan-language-map{min-height:430px}.map-marker text{font-size:3.6px}
  .map-language-card header{display:grid}.map-language-card header>a{justify-self:start}
  .certificate-page{background:#fff}.certificate-toolbar{padding:4px 5px}.certificate-toolbar>a{font-size:.76rem}.certificate-toolbar .button{min-height:42px;padding:9px 11px;font-size:.74rem}
  .certificate-border{min-height:680px;padding:48px 22px 23px}.certificate-corner{width:62px;height:62px}.certificate-brand img{width:54px;height:54px}.certificate-name{min-width:88%;font-size:2.25rem}.certificate-copy h2{font-size:1.55rem}.certificate-footer{grid-template-columns:1fr 70px 1fr}.certificate-seal{width:68px;height:68px}.certificate-seal span{font-size:1.25rem}.certificate-footer strong{font-size:.64rem}
  .password-generate-row{grid-template-columns:1fr}.account-create-form .form-actions{display:grid}.account-create-form .form-actions .button{width:100%}
  .user-admin-card header,.user-admin-actions,.access-management{align-items:stretch;display:grid}.inline-role-form{display:grid;grid-template-columns:1fr auto}.danger-text-button{width:100%;justify-content:center}.inline-access-form{display:grid;grid-template-columns:1fr auto}
}
@media print{
  @page{size:A4 landscape;margin:0}
  body.certificate-page{padding:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  [data-no-print],.skip-link,.flash-stack{display:none!important}
  .certificate-sheet{width:297mm;height:210mm;min-height:210mm;margin:0;padding:5mm;box-shadow:none}
  .certificate-border{height:200mm;min-height:200mm;padding:13mm 18mm 8mm}
}
.dashboard-nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}

/* v4.4 — pilot launch, sales analytics and quality workflow */
.onboarding-card{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(360px,1.4fr) auto;gap:26px;align-items:center;margin-bottom:18px;padding:24px;background:linear-gradient(135deg,#f2f8f4,#fff 66%);border-left:5px solid var(--pine)}
.onboarding-copy h2{margin:4px 0 7px;font-size:1.25rem}.onboarding-copy p{margin:0;color:var(--muted)}
.onboarding-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.onboarding-checklist>span{display:flex;align-items:center;gap:9px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#fff;font-size:.76rem}
.onboarding-checklist>span.is-done{border-color:#c9ded2;color:var(--pine);background:#f2f8f4}.onboarding-check-icon{width:18px;height:18px;flex:0 0 auto}
.onboarding-actions{display:grid;gap:8px}.onboarding-actions form,.onboarding-actions button{width:100%}

.module-feedback-cta{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:14px 18px 18px;padding:14px 16px;border:1px dashed #d7b779;border-radius:13px;background:#fffaf0}
.module-feedback-cta>div{display:flex;align-items:center;gap:12px}.module-feedback-cta span{display:grid;gap:2px}.module-feedback-cta small{color:var(--muted)}.module-feedback-cta.is-complete{border-color:#bdd6c8;background:#f1f8f4}.module-feedback-icon{width:25px;height:25px;color:var(--clay);flex:0 0 auto}.module-feedback-cta.is-complete .module-feedback-icon{color:var(--pine)}
.feedback-form-card{max-width:900px}.feedback-hero-icon{width:56px;height:56px;color:var(--clay)}
.feedback-rating-form{margin-top:20px}.rating-fieldset{margin:0 0 20px;padding:18px;border:1px solid var(--line);border-radius:14px}.rating-fieldset legend{padding:0 7px;color:var(--ink);font-weight:850}.rating-fieldset>small{display:block;margin-top:9px;color:var(--muted)}
.rating-options{display:flex;gap:8px;flex-wrap:wrap}.rating-options label{cursor:pointer}.rating-options input{position:absolute;opacity:0;pointer-events:none}.rating-options span{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:850;transition:.18s}.rating-options input:checked+span{border-color:var(--pine);color:#fff;background:var(--pine);box-shadow:0 0 0 3px var(--pine-soft)}.rating-options input:focus-visible+span{outline:3px solid #d9ad61;outline-offset:2px}.nps-options span{width:38px;height:38px}

.sales-headline{max-width:760px}.sales-subtitle{max-width:720px}.course-outcomes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-outcomes-grid article{display:flex;gap:11px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff}.outcome-icon{width:22px;height:22px;color:var(--pine);flex:0 0 auto}.course-audience-list{display:grid;gap:9px}.course-audience-list li{padding:10px 13px;border-left:3px solid var(--sand);background:#fffaf1}.teacher-profile-card{display:grid;grid-template-columns:68px minmax(0,1fr);gap:16px;align-items:center;padding:20px;border-radius:18px;background:linear-gradient(135deg,var(--pine),#234d43);color:#fff}.teacher-profile-mark{display:grid;width:68px;height:68px;place-items:center;border-radius:50%;background:rgba(255,255,255,.12)}.teacher-profile-mark svg{width:34px;height:34px}.teacher-profile-card p{margin:5px 0 0;color:rgba(255,255,255,.76)}.waitlist-count{display:inline-flex;align-items:center;gap:7px;margin-top:10px;color:var(--pine);font-size:.76rem;font-weight:800}

.business-filter{margin-bottom:18px}.business-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.business-kpi-grid article{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.business-kpi-grid span{display:block;color:var(--muted);font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.business-kpi-grid strong{display:block;margin:8px 0 2px;color:var(--pine);font-size:1.45rem}.business-kpi-grid small{color:var(--muted)}
.business-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.business-two-column>.dashboard-card,.marketing-expense-card,.feedback-summary-card,.admin-teacher-health{margin:0 0 18px}.business-section-icon{width:38px;height:38px;color:var(--clay);flex:0 0 auto}.form-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.marketing-expense-form{margin-top:18px}.expense-list{display:grid;gap:8px;margin-top:18px}.expense-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.expense-list p{margin:3px 0 0;color:var(--muted)}.metric-warning{color:#996517;font-weight:900}.metric-danger{color:var(--danger);font-weight:900}.feedback-summary-card{display:flex;justify-content:space-between;align-items:center;gap:20px}.feedback-summary-card p{margin-bottom:0}
.feedback-admin-list{display:grid;gap:13px}.feedback-admin-list article{margin:0}.feedback-admin-list header{display:flex;justify-content:space-between;gap:18px}.feedback-admin-list header p{margin:4px 0 0;color:var(--muted)}.feedback-admin-list time{color:var(--muted);font-size:.72rem}.feedback-score-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.feedback-score-row span{padding:7px 10px;border-radius:999px;background:#f2f5f3;color:var(--muted);font-size:.72rem}.feedback-score-row b{color:var(--pine)}.feedback-admin-list blockquote{margin:0;padding:14px 16px;border-left:4px solid var(--sand);border-radius:0 12px 12px 0;background:#fffaf0;color:var(--ink)}

.quality-notice{margin-bottom:18px}.quality-stats{margin-bottom:18px}.quality-editor-grid{align-items:start}.quality-course-list{display:grid;gap:7px}.quality-course-list button{display:flex;gap:10px;align-items:center;width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;text-align:left;background:#fff}.quality-course-list button:hover{border-color:var(--pine)}.quality-course-list span{color:var(--clay);font-weight:900}.content-status-needs_review,.quality-needs_review{color:#8e381f;background:#fff0e9}.content-status-native_checked,.quality-native_checked,.content-status-published,.quality-published{color:#165742;background:#eaf6ef}.content-status-teacher_checked,.quality-teacher_checked{color:#395a79;background:#edf4fb}.content-status-draft,.quality-draft{color:#6b6f6d;background:#f0f1f0}.quality-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.72rem;font-weight:850}
.course-marketing-editor{margin-bottom:18px}.marketing-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:16px 0}.marketing-list-grid fieldset{padding:16px;border:1px solid var(--line);border-radius:14px}.marketing-list-grid legend{padding:0 6px;font-weight:850}.course-quality-card{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(0,1.5fr);gap:24px;align-items:start;margin-bottom:18px}.inline-quality-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inline-quality-form .button{align-self:end}.course-quality-card>.text-link{grid-column:2;justify-self:start}.detail-url{overflow-wrap:anywhere}.lead-card-title{display:flex;justify-content:space-between;gap:16px;align-items:start}.refund-small{display:block;color:var(--danger);margin-top:3px}

.admin-teacher-health{margin-top:18px}.teacher-health-row{display:grid;gap:8px}.teacher-health-row article{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-top:1px solid var(--line)}.teacher-health-row article div{display:grid}.teacher-health-row small{color:var(--muted)}

.certificate-verification{position:relative;z-index:1;display:grid;justify-items:center;gap:3px;margin-top:14px;color:var(--muted);font-size:.62rem}.certificate-verification span{text-transform:uppercase;letter-spacing:.08em}.certificate-verification a{max-width:100%;color:var(--pine);font-weight:800;text-decoration:none;overflow-wrap:anywhere}
.certificate-verify-page{min-height:70vh;padding:72px 0;background:linear-gradient(145deg,#f5f1e8,#fff)}.certificate-verify-card{padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.certificate-verify-brand{display:flex;align-items:center;gap:12px}.certificate-verify-brand div{display:grid}.certificate-verify-brand strong{color:var(--pine);font-size:1.15rem}.certificate-verify-brand span{color:var(--clay);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}.certificate-verify-card h1{margin:24px 0 6px}.certificate-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:24px 0}.certificate-search-form input{min-height:48px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;text-transform:uppercase}.certificate-valid-result,.certificate-invalid-result{display:grid;grid-template-columns:54px minmax(0,1fr);gap:16px;margin-top:22px;padding:20px;border-radius:16px}.certificate-valid-result{background:#eaf6ef}.certificate-invalid-result{background:#fff2ed}.certificate-result-icon{width:44px;height:44px}.certificate-valid-result .certificate-result-icon{color:var(--pine)}.certificate-invalid-result .certificate-result-icon{color:var(--danger)}.certificate-valid-result small,.certificate-invalid-result small{font-weight:900;text-transform:uppercase;letter-spacing:.06em}.certificate-valid-result dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 0}.certificate-valid-result dl div{padding:9px;border-radius:9px;background:rgba(255,255,255,.7)}.certificate-valid-result dt{color:var(--muted);font-size:.66rem}.certificate-valid-result dd{margin:3px 0 0;font-weight:850}.certificate-verify-note{margin:22px 0 0;color:var(--muted);font-size:.72rem}

.legal-document-links{display:grid;gap:4px}.legal-document-links a{padding:7px 9px;border-radius:8px}.legal-document-links a[aria-current="page"]{color:#fff;background:var(--pine)}

@media(max-width:1100px){.onboarding-card{grid-template-columns:1fr 1.3fr}.onboarding-actions{grid-column:1/-1;display:flex}.business-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.course-quality-card{grid-template-columns:1fr}.course-quality-card>.text-link{grid-column:1}}
@media(max-width:820px){.business-two-column,.marketing-list-grid{grid-template-columns:1fr}.onboarding-card{grid-template-columns:1fr}.onboarding-checklist{grid-template-columns:1fr 1fr}.inline-quality-form{grid-template-columns:1fr}.feedback-summary-card{display:grid}.course-outcomes-grid{grid-template-columns:1fr}}
@media(max-width:720px){.onboarding-checklist{grid-template-columns:1fr}.onboarding-actions{display:grid}.business-kpi-grid{grid-template-columns:1fr 1fr}.business-kpi-grid article{padding:14px}.business-kpi-grid strong{font-size:1.15rem}.form-grid-four{grid-template-columns:1fr}.expense-list article{grid-template-columns:1fr auto}.expense-list form{grid-column:1/-1}.module-feedback-cta{display:grid;margin:10px}.module-feedback-cta .button{width:100%}.rating-options{gap:6px}.nps-options span{width:34px;height:34px}.feedback-admin-list header,.teacher-health-row article{display:grid}.certificate-search-form{grid-template-columns:1fr}.certificate-valid-result,.certificate-invalid-result{grid-template-columns:1fr}.certificate-valid-result dl{grid-template-columns:1fr}.certificate-verify-card{padding:22px}.teacher-profile-card{grid-template-columns:52px minmax(0,1fr)}.teacher-profile-mark{width:52px;height:52px}.lead-card-title{display:grid}}
@media print{.certificate-verification{font-size:7pt}}
.outcome-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.outcome-grid article{display:flex;gap:11px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.outcome-grid p{margin:0}.teacher-profile-avatar{display:grid;width:68px;height:68px;place-items:center;border-radius:50%;background:rgba(255,255,255,.12)}.teacher-profile-icon{width:34px;height:34px}.course-outcomes-section{background:#f8f6ef}.course-outcomes-section .split-heading p{color:var(--muted)}.quality-course-list button.is-copied{border-color:var(--pine);background:var(--pine-soft)}
@media(max-width:720px){.outcome-grid{grid-template-columns:1fr}.teacher-profile-avatar{width:52px;height:52px}.teacher-profile-icon{width:27px;height:27px}}

/* v4.4.2 — compact admin navigation and single-source course assignments */
.dashboard-nav-group{border-radius:11px}
.dashboard-nav-group>summary{display:flex;min-height:44px;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:rgba(255,255,255,.78);font-size:.88rem;font-weight:700;cursor:pointer;list-style:none;user-select:none}
.dashboard-nav-group>summary::-webkit-details-marker{display:none}
.dashboard-nav-group>summary:hover,.dashboard-nav-group>summary.is-current{color:#fff;background:rgba(255,255,255,.06)}
.dashboard-nav-group>summary.is-current{background:rgba(214,164,73,.12)}
.dashboard-nav-group>summary>.dashboard-icon{width:21px;height:21px;flex:0 0 auto;color:rgba(255,255,255,.68)}
.dashboard-nav-group>summary.is-current>.dashboard-icon{color:#f2ca7e}
.dashboard-nav-group>summary>span{min-width:0;flex:1}
.dashboard-nav-chevron{width:16px;height:16px;flex:0 0 auto;color:rgba(255,255,255,.48);transition:transform .18s ease}
.dashboard-nav-group[open]>summary .dashboard-nav-chevron{transform:rotate(180deg)}
.dashboard-nav-submenu{display:grid;gap:3px;margin:3px 0 7px 21px;padding-left:12px;border-left:1px solid rgba(255,255,255,.12)}
.dashboard-nav-submenu a{min-height:36px;padding:8px 10px;color:rgba(255,255,255,.66);font-size:.79rem;font-weight:650}
.dashboard-nav-submenu a:hover{color:#fff;background:rgba(255,255,255,.05)}
.dashboard-nav-submenu a.active{color:#fff;background:rgba(214,164,73,.16)}
.dashboard-nav-workspaces>summary{color:rgba(255,255,255,.65)}

.account-create-password-row{max-width:820px;margin-top:13px}
.teacher-course-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid #ebe8df}
.teacher-course-summary h3{margin:0 0 8px}
.teacher-course-chip{text-decoration:none;color:var(--pine);transition:border-color .15s ease,background .15s ease}
.teacher-course-chip:hover{border-color:#b8cfc3;background:#e6f1eb}
.role-course-note{display:flex;align-items:center;gap:10px;margin-top:18px;padding:13px 15px;border-top:1px solid #ebe8df;color:var(--muted)}
.role-course-note p{margin:0}
.filter-bar .button-ghost{min-height:42px;display:inline-flex;align-items:center}

@media(max-width:980px){
  .teacher-course-summary{align-items:flex-start;flex-direction:column}
}
@media(max-width:760px){
  .dashboard-nav-group>summary{min-height:46px}
  .dashboard-nav-submenu{margin-left:20px}
  .teacher-course-summary>.button{width:100%}
}

/* v4.4.3 — read-only course workspace for teachers */
.teacher-courses-intro{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px;background:linear-gradient(135deg,#f4f8f5,#fff)}
.teacher-courses-intro h2{margin:0 0 6px}.teacher-courses-intro p{margin:0;color:var(--muted)}
.teacher-courses-intro-icon{width:38px;height:38px;color:var(--pine)}
.teacher-course-grid{align-items:stretch}.teacher-course-card{display:flex;flex-direction:column}.teacher-course-card header{display:flex;justify-content:space-between;gap:12px;align-items:center}.teacher-course-card header small{color:var(--muted)}
.teacher-course-card h2{margin:18px 0 8px}.teacher-course-card .compact-rich{flex:1}.teacher-course-card>.button{margin-top:18px}
.teacher-course-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.teacher-course-card-stats span{padding:10px;border-radius:11px;background:#f3f6f4;color:var(--muted);font-size:.72rem}.teacher-course-card-stats strong{display:block;color:var(--pine);font-size:1.05rem}
.teacher-course-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:24px;align-items:center;margin-bottom:18px;background:linear-gradient(135deg,#fff,#f7f3e8)}
.teacher-course-hero-copy h2{margin:16px 0 8px;font-size:clamp(1.7rem,3vw,2.5rem)}.teacher-course-hero-copy>.text-link{display:inline-flex;margin-bottom:12px}
.teacher-readonly-badge{display:inline-flex;gap:7px;align-items:center;margin-left:12px;padding:7px 10px;border-radius:999px;background:#e9f3ee;color:var(--pine);font-size:.72rem;font-weight:850}.teacher-readonly-badge svg{width:16px;height:16px}
.teacher-course-metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.teacher-course-metrics span{min-width:112px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.72);color:var(--muted);font-size:.72rem}.teacher-course-metrics strong{display:block;color:var(--pine);font-size:1rem}
.teacher-course-hero-note{display:flex;gap:13px;padding:18px;border-radius:16px;background:var(--pine);color:#fff}.teacher-course-hero-note strong{display:block}.teacher-course-hero-note p{margin:5px 0 0;color:rgba(255,255,255,.76);font-size:.78rem;line-height:1.55}.teacher-course-note-icon{width:32px;height:32px;flex:0 0 auto;color:#f0c979}
.teacher-program-list{display:grid;gap:16px}.teacher-module-card>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.teacher-module-card>header span{color:var(--clay);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.teacher-module-card>header h2{margin:4px 0 0}.teacher-module-card>header small{color:var(--muted)}
.teacher-lesson-list{display:grid;gap:8px;margin-top:16px}.teacher-lesson-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto 20px;gap:13px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-decoration:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.teacher-lesson-row:hover{transform:translateY(-1px);border-color:#b8cfc3;box-shadow:var(--shadow-sm)}
.teacher-lesson-number{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:#edf4f0;color:var(--pine);font-weight:900}.teacher-lesson-copy{min-width:0}.teacher-lesson-copy strong,.teacher-lesson-copy small{display:block}.teacher-lesson-copy small{margin-top:4px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-lesson-meta{display:grid;justify-items:end;gap:5px}.teacher-lesson-meta small{color:var(--muted)}.teacher-lesson-arrow{width:18px;height:18px;color:var(--clay)}
.teacher-readonly-banner{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;padding:14px 16px;border:1px solid #cdded5;border-radius:14px;background:#f0f7f3}.teacher-readonly-banner>svg{width:24px;height:24px;flex:0 0 auto;color:var(--pine)}.teacher-readonly-banner strong{display:block;color:var(--pine)}.teacher-readonly-banner p{margin:3px 0 0;color:var(--muted)}
.teacher-question-card{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff}.teacher-question-card+ .teacher-question-card{margin-top:12px}.teacher-question-card>header{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start}.teacher-question-card>header>span{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:var(--pine);color:#fff;font-weight:900}.teacher-question-card h3{margin:4px 0 0;font-size:1rem}
.teacher-answer-options{display:grid;gap:8px;margin-top:14px}.teacher-answer-option{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#faf9f6}.teacher-answer-option>span{display:grid;width:26px;height:26px;place-items:center;border-radius:8px;background:#e9e7e0;color:var(--muted);font-weight:900}.teacher-answer-option>span svg{width:16px;height:16px}.teacher-answer-option p{margin:0}.teacher-answer-option>strong{color:var(--pine);font-size:.7rem}.teacher-answer-option.is-correct{border-color:#9bcab4;background:#edf8f2}.teacher-answer-option.is-correct>span{background:var(--pine);color:#fff}.teacher-answer-explanation{margin-top:12px;padding:12px 14px;border-left:4px solid var(--sand);border-radius:0 10px 10px 0;background:#fffaf0}.teacher-answer-explanation p{margin:4px 0 0;color:var(--muted)}
.teacher-homework-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.teacher-homework-meta span{display:grid;grid-template-columns:24px minmax(0,1fr);gap:2px 9px;padding:13px;border-radius:12px;background:#f3f6f4;color:var(--muted)}.teacher-homework-meta svg{grid-row:1/3;width:22px;height:22px;color:var(--pine)}.teacher-homework-meta strong{color:var(--ink)}
.teacher-lesson-facts{display:grid;gap:10px;margin:12px 0 0}.teacher-lesson-facts div{padding-bottom:9px;border-bottom:1px solid var(--line)}.teacher-lesson-facts div:last-child{border-bottom:0}.teacher-lesson-facts dt{color:var(--muted);font-size:.68rem}.teacher-lesson-facts dd{margin:3px 0 0;font-weight:800}
.homework-context-card{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px;background:linear-gradient(135deg,#f6f8f6,#fff)}.homework-context-copy>span{color:var(--clay);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.homework-context-copy h2{margin:4px 0}.homework-context-copy>p{margin:0 0 12px;color:var(--muted)}.homework-context-copy h3{margin:12px 0 5px;font-size:1rem}.homework-prompt{max-width:820px;color:var(--ink);line-height:1.65}.homework-context-card>.button{flex:0 0 auto}.button-icon{width:18px;height:18px}
@media(max-width:980px){.teacher-course-hero{grid-template-columns:1fr}.teacher-course-hero-note{max-width:none}.teacher-lesson-row{grid-template-columns:42px minmax(0,1fr) 18px}.teacher-lesson-meta{grid-column:2;justify-items:start}.teacher-lesson-arrow{grid-column:3;grid-row:1/3}.homework-context-card{display:grid}.homework-context-card>.button{justify-self:start}}
@media(max-width:640px){.teacher-course-card-stats{grid-template-columns:1fr 1fr}.teacher-course-metrics{display:grid;grid-template-columns:1fr 1fr}.teacher-course-metrics span{min-width:0}.teacher-readonly-badge{margin:8px 0 0}.teacher-lesson-row{padding:12px;grid-template-columns:38px minmax(0,1fr) 16px}.teacher-lesson-copy small{white-space:normal}.teacher-lesson-meta small{font-size:.65rem}.teacher-homework-meta{grid-template-columns:1fr}.teacher-answer-option{grid-template-columns:28px minmax(0,1fr)}.teacher-answer-option>strong{grid-column:2}.homework-context-card>.button{width:100%}}

/* v4.5.0 — purposeful motion and mobile interaction polish */
@property --animated-progress {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

/* Content remains fully visible without JavaScript. Motion is enabled only after app.js starts. */
.motion-enabled [data-reveal-ready="true"] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .38s ease var(--reveal-delay, 0ms), transform .38s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.motion-enabled [data-reveal-ready="true"].is-revealed {
  opacity: 1;
  transform: translateY(0);
  will-change: auto;
}

.progress-line span,
.weekly-goal-progress span {
  transition: width .65s cubic-bezier(.2,.75,.25,1);
}
.motion-enabled .progress-line span,
.motion-enabled .weekly-goal-progress span {
  width: 0 !important;
}
.motion-enabled .progress-line span.is-filled,
.motion-enabled .weekly-goal-progress span.is-filled {
  width: var(--progress-target, 0%) !important;
}

.course-progress-circle {
  --animated-progress: var(--progress);
  position: relative;
  isolation: isolate;
  border: 0;
  background: conic-gradient(var(--accent) calc(var(--animated-progress) * 1%), var(--accent-soft) 0);
}
.course-progress-circle::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 10px;
  border-radius: 50%;
  background: #fff;
}
.course-progress-circle > * { position: relative; z-index: 1; }
.motion-enabled .course-progress-circle { --animated-progress: 0; }
.motion-enabled .course-progress-circle.is-filled {
  --animated-progress: var(--progress);
  transition: --animated-progress .8s cubic-bezier(.2,.75,.25,1);
}
.motion-enabled .course-progress-circle.is-complete.is-filled strong {
  animation: course-complete-pop .55s cubic-bezier(.2,.8,.25,1) .55s both;
}
@keyframes course-complete-pop {
  from { opacity: .45; transform: scale(.78); }
  to { opacity: 1; transform: scale(1); }
}

/* Test feedback: clear, restrained and useful. */
.vocab-option.is-answer-pop { animation: vocab-answer-pop .46s cubic-bezier(.2,.8,.25,1); }
.vocab-option.is-answer-shake { animation: vocab-answer-shake .36s ease; }
.vocab-answer-summary.is-feedback-visible { animation: vocab-feedback-in .24s ease-out; }
.vocab-result { position: relative; overflow: hidden; }
.vocab-result.is-result-visible { animation: vocab-result-in .42s cubic-bezier(.2,.75,.25,1); }
.result-sparkles { position: absolute; inset: 0; pointer-events: none; }
.result-sparkles i {
  --angle: calc(var(--spark-index) * 36deg);
  position: absolute;
  left: 50%;
  top: 42%;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: var(--sand);
  opacity: 0;
  transform: translate(-50%,-50%) rotate(var(--angle)) translateY(-18px) scale(.4);
  animation: result-spark .8s ease-out calc(var(--spark-index) * 25ms) forwards;
}
.result-sparkles i:nth-child(3n) { background: var(--clay); }
.result-sparkles i:nth-child(3n + 1) { border-radius: 50%; background: var(--pine); }

@keyframes vocab-answer-pop {
  0% { transform: scale(1); }
  45% { transform: scale(1.018); box-shadow: 0 8px 22px rgba(25,155,103,.14); }
  100% { transform: scale(1); }
}
@keyframes vocab-answer-shake {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  50% { transform: translateX(4px); }
  75% { transform: translateX(-2px); }
}
@keyframes vocab-feedback-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes vocab-result-in {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes result-spark {
  0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--angle)) translateY(-18px) scale(.4); }
  24% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--angle)) translateY(-94px) scale(1); }
}

/* Earned badges and selected map areas receive a short confirmation, not a permanent effect. */
.motion-enabled .achievement-card.earned.is-revealed > span,
.motion-enabled .achievement-row article.is-revealed > span {
  animation: achievement-medal-in .5s cubic-bezier(.2,.8,.25,1) var(--reveal-delay, 0ms) both;
}
.map-marker.is-selected circle:first-child { animation: map-marker-pulse .72s ease-out; }
.map-language-card.is-highlighted { animation: map-card-highlight .72s ease-out; }
@keyframes achievement-medal-in {
  from { opacity: 0; transform: scale(.72) rotate(-7deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}
@keyframes map-marker-pulse {
  0% { transform: scale(1); opacity: .23; }
  45% { transform: scale(1.55); opacity: .42; }
  100% { transform: scale(1.12); opacity: .3; }
}
@keyframes map-card-highlight {
  0% { box-shadow: 0 0 0 0 rgba(214,164,73,.32); }
  100% { box-shadow: 0 0 0 10px rgba(214,164,73,0); }
}

@media (max-width: 960px) {
  /* Tablet public menu: animate visibility instead of switching display. */
  .primary-nav {
    display: grid;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    background: var(--paper);
    overflow-y: auto;
    overscroll-behavior: contain;
    transition: opacity .2s ease, transform .22s cubic-bezier(.2,.75,.25,1), visibility 0s linear .22s;
  }
  .primary-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition-delay: 0s;
  }
  .primary-nav a {
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .18s ease, transform .18s ease, color .18s ease, background-color .18s ease;
  }
  .primary-nav.is-open a { opacity: 1; transform: translateY(0); }
  .primary-nav.is-open a:nth-child(2) { transition-delay: 25ms; }
  .primary-nav.is-open a:nth-child(3) { transition-delay: 50ms; }
  .primary-nav.is-open a:nth-child(4) { transition-delay: 75ms; }
  .primary-nav.is-open a:nth-child(5) { transition-delay: 100ms; }

  body.dashboard-menu-open { overflow: hidden; }
  body.dashboard-menu-open::after {
    content: "";
    position: fixed;
    z-index: 850;
    inset: 0;
    background: rgba(7,25,20,.32);
    backdrop-filter: blur(2px);
    animation: dashboard-overlay-in .2s ease-out;
  }
  .dashboard-sidebar {
    visibility: hidden;
    transition: transform .24s cubic-bezier(.2,.75,.25,1), visibility 0s linear .24s;
  }
  .dashboard-sidebar.is-open {
    visibility: visible;
    transition-delay: 0s;
  }
  .dashboard-menu-button {
    transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
  }
  .dashboard-menu-button[aria-expanded="true"] { transform: rotate(90deg); background: var(--pine-soft); border-color: #bdd1c6; }
}
@keyframes dashboard-overlay-in { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 720px) {
  .motion-enabled [data-reveal-ready="true"] {
    transform: translateY(9px);
    transition-duration: .3s;
  }
  .motion-enabled [data-reveal-ready="true"].is-revealed { transform: translateY(0); }
  .mobile-dock a {
    transition: transform .16s ease, background-color .16s ease, color .16s ease;
  }
  .mobile-dock a:active { transform: scale(.96); }
  .mobile-dock a.active .dock-icon { animation: dock-active-in .3s cubic-bezier(.2,.8,.25,1); }
  .vocab-result { margin-top: 38px; padding: 26px 18px; }
  .result-sparkles i { top: 36%; }
  .faq-list summary { min-height: 58px; padding-block: 16px; }
  .faq-list details p { padding-right: 20px; }
  .accordion-item button { min-height: 58px; padding-block: 16px; }
  .accordion-panel { padding-right: 16px; }
  .dashboard-sidebar { width: min(86vw, 300px); }
  .dagestan-language-map { min-height: 360px; }
  .map-marker text { font-size: 4px; }
}
@keyframes dock-active-in {
  from { transform: translateY(2px) scale(.88); }
  to { transform: translateY(0) scale(1); }
}

@media (max-width: 420px) {
  .vocab-option { grid-template-columns: 22px minmax(0,1fr) 24px; gap: 9px; padding-inline: 10px; }
  .vocab-option-copy strong { font-size: .9rem; }
  .vocab-option-copy small { font-size: .72rem; }
  .vocab-game-panel { padding: 13px; }
  .dagestan-language-map { min-height: 320px; }
}

@media (prefers-reduced-motion: reduce) {
  .result-sparkles { display: none !important; }
  .primary-nav, .primary-nav a, .dashboard-sidebar { transition: none !important; }
}

/* v4.6.0 — PWA install page and native shell states */
.app-download-hero{padding:clamp(72px,9vw,128px) 0 clamp(58px,7vw,96px);background:radial-gradient(circle at 80% 16%,rgba(234,174,33,.2),transparent 25%),linear-gradient(145deg,#f8f5eb,#eef4f0)}
.app-download-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.62fr);gap:clamp(36px,7vw,92px);align-items:center}
.app-download-copy h1{max-width:880px;margin:10px 0 20px;font-size:clamp(2.45rem,6.4vw,5.25rem);line-height:.98;letter-spacing:-.055em}
.app-download-lead{max-width:720px;margin:0;color:var(--muted);font-size:clamp(1.03rem,1.8vw,1.25rem);line-height:1.65}
.app-download-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.install-status{margin:15px 0 0;color:var(--muted);font-size:.88rem}.install-status.is-success{color:var(--pine);font-weight:800}.install-status.is-error{color:#8f352d}
.app-phone-card{width:min(100%,370px);justify-self:center;padding:12px;border:1px solid rgba(23,27,24,.12);border-radius:38px;background:#171b18;box-shadow:0 34px 90px rgba(23,27,24,.25);transform:rotate(2deg)}
.app-phone-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 14px 14px;color:#fff;font-size:.72rem}.app-phone-top span{justify-self:start;width:8px;height:8px;border-radius:50%;background:#57bd89}.app-phone-top small{justify-self:end;color:#eaae21}
.app-phone-content{min-height:510px;padding:28px 22px;border-radius:27px;background:#fff}.app-phone-kicker{color:var(--clay);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.app-phone-content h2{margin:7px 0 18px;font-size:1.85rem;line-height:1.04}.app-progress-demo{height:9px;margin-bottom:22px;border-radius:999px;background:#e9eee9;overflow:hidden}.app-progress-demo span{
  width: 72%;display:block;height:100%;border-radius:inherit;background:var(--pine)}.app-phone-task{padding:16px;margin-top:11px;border:1px solid var(--line);border-radius:15px;background:#faf9f6}.app-phone-task strong,.app-phone-task small{display:block}.app-phone-task small{margin-top:5px;color:var(--muted)}.app-phone-button{margin-top:24px;padding:14px;border-radius:13px;background:var(--pine);color:#fff;text-align:center;font-weight:900}
.app-channel-section{overflow:hidden}.app-channel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.app-channel-card{display:flex;min-width:0;min-height:255px;flex-direction:column;gap:15px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm)}.app-channel-card>div:nth-child(2){flex:1}.app-channel-card h3{margin:0 0 7px}.app-channel-card p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}.app-channel-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:17px;background:#f5f6f3;box-shadow:0 8px 24px rgba(23,27,24,.08);overflow:hidden}.app-channel-icon img{display:block;width:58px;height:58px;object-fit:contain}.app-channel-card.is-ready .app-channel-icon{box-shadow:0 10px 28px rgba(23,27,24,.12)}.app-channel-state{display:inline-flex;align-self:flex-start;padding:8px 10px;border-radius:999px;background:#f1f0eb;color:var(--muted);font-size:.72rem;font-weight:850}
.app-native-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.65fr);gap:clamp(28px,6vw,72px);align-items:start}.app-native-grid h2{margin:8px 0 22px;font-size:clamp(2rem,4vw,3.5rem)}.app-feature-list{display:grid;gap:12px;padding:0;margin:0;list-style:none}.app-feature-list li{display:grid;grid-template-columns:minmax(130px,.35fr) 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.app-feature-list span{color:var(--muted)}.native-controls-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-sm)}.native-controls-card h3{margin:9px 0 18px;font-size:1.4rem}.native-controls-card p{margin:14px 0 0;color:var(--muted);font-size:.83rem}.native-only-label{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f0eee7;color:var(--muted);font-size:.69rem;font-weight:850}.native-controls-card .button-full+.button-full{margin-top:10px}.native-only-control{display:none!important}.capacitor-native .native-only-control{display:flex!important}.native-reminder-field{flex-direction:column;gap:8px;margin:14px 0}.native-reminder-field span{font-size:.78rem;font-weight:850}.native-reminder-field input{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit}
.install-help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.install-help-grid article{padding:22px;border:1px solid var(--line);border-radius:17px;background:#fff}.install-help-grid strong{font-size:1.05rem}.install-help-grid p{margin:8px 0 0;color:var(--muted)}
.pwa-install-banner{position:fixed;z-index:80;right:18px;bottom:18px;left:auto;display:flex;width:min(560px,calc(100vw - 36px));gap:18px;align-items:center;justify-content:space-between;padding:16px 18px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:#171b18;color:#fff;box-shadow:0 24px 70px rgba(23,27,24,.32)}.pwa-install-banner[hidden]{display:none}.pwa-install-banner strong,.pwa-install-banner span{display:block}.pwa-install-banner span{margin-top:4px;color:rgba(255,255,255,.72);font-size:.78rem;line-height:1.45}.pwa-install-actions{display:flex;gap:8px;align-items:center;flex:0 0 auto}.pwa-install-banner .icon-button{display:grid;width:38px;height:38px;place-items:center;padding:0;border:0;border-radius:11px;background:rgba(255,255,255,.1);color:#fff;font-size:1.45rem;cursor:pointer}
.connectivity-toast{position:fixed;z-index:90;top:max(14px,env(safe-area-inset-top));left:50%;max-width:calc(100vw - 28px);padding:10px 15px;border-radius:999px;background:#171b18;color:#fff;box-shadow:var(--shadow-md);font-size:.78rem;font-weight:850;transform:translateX(-50%)}.connectivity-toast[hidden]{display:none}.connectivity-toast.is-offline{background:#8c3f34}.connectivity-toast.is-online{background:var(--pine)}
.capacitor-native body{padding-top:env(safe-area-inset-top)}.capacitor-native .site-header{padding-top:env(safe-area-inset-top)}.capacitor-native .mobile-dock{padding-bottom:max(8px,env(safe-area-inset-bottom))}.capacitor-native .pwa-install-banner{display:none!important}

@media(max-width:1100px){.app-channel-grid{grid-template-columns:repeat(3,1fr)}.app-channel-card{min-height:230px}}
@media(max-width:820px){.app-download-grid,.app-native-grid{grid-template-columns:1fr}.app-phone-card{margin-top:8px}.app-channel-grid{grid-template-columns:repeat(2,1fr)}.install-help-grid{grid-template-columns:1fr}.app-feature-list li{grid-template-columns:1fr;gap:4px}.app-download-copy h1{font-size:clamp(2.4rem,11vw,4.5rem)}}
@media(max-width:560px){.app-download-hero{padding-top:48px}.app-download-actions .button{width:100%}.app-channel-grid{grid-template-columns:1fr}.app-channel-card{min-height:0}.app-phone-card{width:min(92%,350px);transform:none}.app-phone-content{min-height:470px}.pwa-install-banner{right:10px;bottom:calc(78px + env(safe-area-inset-bottom));width:calc(100vw - 20px);align-items:flex-start;flex-direction:column}.pwa-install-actions{width:100%}.pwa-install-actions .button{flex:1}.connectivity-toast{top:max(8px,env(safe-area-inset-top))}}
.account-danger-zone{margin-top:34px}.account-delete-details{border:1px solid #e4c9c5;border-radius:16px;background:#fff8f7;overflow:hidden}.account-delete-details summary{padding:17px 20px;color:#8f352d;font-weight:900;cursor:pointer}.account-delete-body{padding:0 20px 20px;border-top:1px solid #eed8d4}.account-delete-body>p{max-width:780px;color:var(--muted)}.account-delete-body form{display:grid;max-width:620px;gap:12px}.button-danger{background:#8f352d;color:#fff;border-color:#8f352d}.button-danger:hover{background:#742a24}
