/*
 * Kigetss Academy plugin styles: cabinet, teachers, exercises.
 * Ported from the prototype (features.css / polish.css). Uses the theme's --kg-* tokens with fallbacks,
 * every selector is scoped under .kga so the theme and Elementor stay untouched.
 */
.kga {
	--kga-navy: var(--kg-navy, #172838);
	--kga-navy-hover: var(--kg-navy-hover, #2b4357);
	--kga-ink: var(--kg-ink, #202a33);
	--kga-text: var(--kg-text, #33404a);
	--kga-muted: var(--kg-muted, #697179);
	--kga-copper: var(--kg-copper, #b97c60);
	--kga-copper-text: var(--kg-copper-text, #8d5a42);
	--kga-cream: var(--kg-cream, #f7f5f0);
	--kga-paper: var(--kg-paper, #eeece6);
	--kga-line: var(--kg-line, #d9d9d2);
	--kga-card: var(--kg-card, #fffdf8);
	--kga-card-line: var(--kg-card-line, #e5e4dd);
	--kga-radius: var(--kg-radius, 12px);
	--kga-radius-sm: var(--kg-radius-sm, 8px);
	--kga-shadow: var(--kg-shadow-soft, 0 8px 28px rgba(23, 40, 56, .04));
	--kga-ease: var(--kg-ease, cubic-bezier(.2, .7, .25, 1));
	--kga-heading: var(--kg-font-heading, "Manrope", Arial, sans-serif);
	--kga-mark: var(--kg-font-mark, "Manrope", Arial, sans-serif);
	--kga-ok-bg: #dcefe1;
	--kga-ok-line: #87b999;
	--kga-ok-text: #27694a;
	--kga-bad-bg: #f8ded9;
	--kga-bad-line: #e4a8a3;
	--kga-bad-text: #9e3f3d;
	--kga-wait-bg: #f1e7ce;
	--kga-wait-line: #d8c28f;
	--kga-wait-text: #6f5527;
	color: var(--kga-ink);
	font-family: var(--kg-font-body, "Manrope", Arial, sans-serif);
	font-size: 15px;
	line-height: 1.55;
}
.kga *, .kga *::before, .kga *::after { box-sizing: border-box; }
.kga [hidden] { display: none !important; }
.kga img { max-width: 100%; display: block; }
.kga button, .kga input, .kga select, .kga textarea { font: inherit; color: inherit; }
/* The theme colours strong/b inside .entry-content with specificity (0,2,2); keep ours inheriting. */
.kga.kga.kga :is(strong, b, em) { color: inherit; }
.kga.kga.kga .kga-ex-heading em { color: var(--kga-copper-text) !important; } /* theme forces heading children to inherit with !important */
.kga :focus-visible { outline: 3px solid var(--kga-copper); outline-offset: 2px; }
.kga-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.kga-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- type and basic controls ---------- */
.kga-eyebrow { margin: 0 0 10px; text-transform: uppercase; letter-spacing: .18em; font-size: 11px; font-weight: 800; color: var(--kga-copper-text); }
.kga-tiny { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; color: var(--kga-copper-text); }
.kga.kga.kga .kga-h2 { font-family: var(--kga-heading); font-weight: 700; font-size: clamp(24px, 3vw, 32px); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 18px; color: var(--kga-navy); }
.kga.kga.kga .kga-h3 { font-family: var(--kga-heading); font-weight: 700; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.2; letter-spacing: -.015em; margin: 6px 0 14px; color: var(--kga-navy); }
.kga.kga.kga .kga-h4 { font-family: var(--kga-heading); font-weight: 700; font-size: 16px; line-height: 1.3; margin: 22px 0 10px; color: var(--kga-navy); }
.kga-small { font-size: 13px; color: var(--kga-muted); margin: 8px 0; }
.kga-note { font-size: 13px; color: var(--kga-muted); background: var(--kga-paper); padding: 14px 16px; border-radius: var(--kga-radius-sm); margin-top: 18px; }
.kga-link { font-weight: 800; font-size: 13px; color: var(--kga-navy); text-decoration: none; border-bottom: 1px solid currentColor; }
.kga-link:hover { color: var(--kga-copper-text); }
.kga-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 46px; padding: 12px 20px; border: 0; border-radius: var(--kga-radius-sm); background: var(--kga-navy); color: #fff !important; font-size: 14px; font-weight: 800; text-decoration: none; cursor: pointer; transition: transform .2s var(--kga-ease), background .2s; }
.kga-button:hover:not(:disabled) { background: var(--kga-navy-hover); transform: translateY(-2px); }
.kga-button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.kga-button--sm { min-height: 38px; padding: 8px 14px; font-size: 13px; }
.kga-ghost { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; border: 1px solid #bfc4c4; border-radius: var(--kga-radius-sm); background: transparent; color: var(--kga-navy); padding: 8px 14px; cursor: pointer; font-size: 13px; font-weight: 800; text-decoration: none; }
.kga-ghost:hover:not(:disabled) { background: var(--kga-paper); }
.kga-ghost:disabled { opacity: .45; cursor: not-allowed; }
.kga-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.kga-field { display: grid; gap: 6px; font-size: 13px; font-weight: 800; color: #52606a; margin: 0 0 12px; }
.kga-field input, .kga-field select, .kga-field textarea, .kga-mini-form input, .kga-mini-form textarea { width: 100%; min-width: 0; font-size: 15px; font-weight: 500; padding: 11px 12px; border: 1px solid #c8cbc9; border-radius: var(--kga-radius-sm); background: #fff; color: var(--kga-ink); }
.kga-field textarea, .kga-mini-form textarea { resize: vertical; }
.kga-field input:focus, .kga-field textarea:focus, .kga-mini-form input:focus, .kga-mini-form textarea:focus { outline: 2px solid var(--kga-copper); outline-offset: 1px; }
.kga-check { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; font-weight: 600; margin: 10px 0; cursor: pointer; }
.kga-check input { accent-color: var(--kga-navy); width: 18px; height: 18px; margin: 2px 0 0; flex: none; }
.kga-form-error { color: #a13f35; background: #fbeeeb; border-left: 3px solid #c46a5e; padding: 10px 12px; font-size: 14px; margin: 0 0 14px; }
.kga-form-error a { color: inherit; font-weight: 800; }
.kga-status { font-size: 14px; min-height: 20px; color: #306a50; margin: 10px 0 0; }
.kga-status[data-kind="error"] { color: #a13f35; }
.kga-status[data-kind="warn"] { color: var(--kga-wait-text); }
.kga-status[data-kind="muted"] { color: var(--kga-muted); }
.kga-empty { padding: 18px; background: #f2f1ed; color: #69737a; font-size: 14px; border-radius: var(--kga-radius-sm); margin: 8px 0; }
.kga-loading { color: var(--kga-muted); font-size: 14px; }
.kga-panel { background: #fff; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); padding: 26px; box-shadow: var(--kga-shadow); min-width: 0; }
.kga-panel-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.kga-demo-badge { display: inline-block; background: #efe0d6; color: #82492e; padding: 4px 8px; border-radius: 4px; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; vertical-align: middle; }
.kga-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--kga-copper); color: #fff; font-size: 11px; font-weight: 800; }
.kga-badge--muted { background: var(--kga-ok-bg); color: var(--kga-ok-text); }
.kga-pill { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; padding: 5px 8px; border-radius: 4px; background: #e7e9e6; color: #56636a; white-space: nowrap; }
.kga-pill.is-pending { background: var(--kga-wait-bg); color: var(--kga-wait-text); }
.kga-pill.is-confirmed, .kga-pill.is-completed { background: var(--kga-ok-bg); color: var(--kga-ok-text); }
.kga-pill.is-declined, .kga-pill.is-cancelled { background: var(--kga-bad-bg); color: var(--kga-bad-text); }

/* ---------- auth ---------- */
.kga-auth-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.kga-auth-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.kga-auth-tabs button { border: 1px solid #c8c9c6; border-radius: var(--kga-radius-sm); background: #fff; padding: 10px 16px; cursor: pointer; font-weight: 800; font-size: 14px; color: var(--kga-navy); }
.kga-auth-tabs button[aria-selected="true"] { background: var(--kga-navy); color: #fff; border-color: var(--kga-navy); }
.kga-form .kga-button { margin-top: 4px; }
.kga-auth-aside { background: var(--kga-paper); border-radius: var(--kga-radius); padding: 30px; }
/* Guests when the school creates cabinets itself (enrollment mode «admin»): bot + trial form instead of sign-up. */
.kga-auth-note { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--kga-card-line); }
.kga-auth-note p { margin: 0 0 14px; font-size: 15px; line-height: 1.6; color: var(--kga-text); }
.kga-auth-note .kga-auth-note__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0; }
.kga.kga.kga .kga-ticks { list-style: none; padding: 0; margin: 0 0 24px; }
.kga.kga.kga .kga-ticks li { margin: 0; position: relative; padding: 6px 0 6px 26px; font-size: 15px; color: var(--kga-text); }
.kga.kga.kga .kga-ticks li::before { content: "↗"; position: absolute; left: 0; color: var(--kga-copper); font-weight: 800; }

/* ---------- dashboard layout ---------- */
.kga-dash-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.kga.kga.kga .kga-dash-title { font-family: var(--kga-heading); font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; letter-spacing: -.02em; margin: 0; color: var(--kga-navy); }
.kga-tz { font-size: 13px; color: var(--kga-muted); margin: 0 0 16px; }
.kga-app { display: grid; gap: 20px; }
.kga-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 20px; align-items: start; }
.kga-toast-region { position: fixed; z-index: 1000; right: 24px; bottom: 24px; display: grid; gap: 8px; max-width: 360px; pointer-events: none; }
.kga-toast { background: #183d2c; color: #fff; padding: 14px 18px; border-radius: var(--kga-radius-sm); box-shadow: 0 16px 35px rgba(21, 42, 34, .3); font-size: 14px; font-weight: 700; animation: kga-toast-in .3s var(--kga-ease); }
.kga-toast--error { background: #7a2f27; }
.kga-toast--warn { background: #5f4820; }
@keyframes kga-toast-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* teacher picker */
.kga-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 18px 0 8px; }
.kga-pick { display: flex; flex-direction: column; gap: 8px; border: 1px solid #d4d5d1; border-radius: var(--kga-radius-sm); background: #fff; padding: 8px; text-align: left; cursor: pointer; transition: border-color .2s, transform .2s var(--kga-ease); }
button.kga-pick:hover:not(:disabled) { transform: translateY(-2px); border-color: var(--kga-navy); }
.kga-pick img, .kga-pick-initial { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: 6px; background: #e8e5df; }
.kga-pick-initial { display: grid; place-items: center; font: 700 48px var(--kga-mark); color: var(--kga-copper); }
.kga-pick-body { display: grid; gap: 4px; }
.kga-pick strong { font-size: 14px; color: var(--kga-navy); }
.kga-pick small { font-size: 12px; color: var(--kga-muted); line-height: 1.4; }
.kga-pick.is-selected { border: 2px solid var(--kga-navy); padding: 7px; background: #eef1f0; }
.kga-pick:disabled { opacity: .6; cursor: not-allowed; }
.kga-assigned { display: flex; gap: 22px; align-items: center; }
.kga-assigned img { width: 112px; height: 140px; flex: none; object-fit: cover; object-position: center top; border-radius: var(--kga-radius-sm); background: #e8e5df; }
.kga-assigned p { margin: 0; color: var(--kga-muted); font-size: 14px; }

/* week calendar */
.kga-week { margin: 6px 0 12px; }
.kga-week-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.kga-week-nav strong { font-size: 14px; color: var(--kga-navy); text-align: center; }
.kga-week-scroll { overflow-x: auto; }
.kga.kga.kga .kga-week-table { width: 100%; border: 0; border-collapse: separate; border-spacing: 4px; table-layout: fixed; margin: 0; background: none; }
/* The theme styles content tables (borders, zebra, padding); reset them for the calendar. */
.kga.kga.kga .kga-week-table :is(thead, tbody, tr, th, td) { border: 0; background: none; box-shadow: none; }
.kga.kga.kga .kga-week-table :is(th, td) { padding: 0; vertical-align: middle; }
.kga.kga.kga .kga-week-table th { font-size: 12px; font-weight: 800; color: var(--kga-navy); padding: 2px; text-align: center; line-height: 1.3; }
.kga-week-table thead th small { display: block; font-weight: 600; color: var(--kga-muted); font-size: 11px; }
.kga-week-table thead th:first-child, .kga-week-table tbody th { width: 46px; }
.kga.kga.kga .kga-week-table tbody th { font-size: 12px; color: var(--kga-muted); text-align: right; padding: 0 4px 0 0; white-space: nowrap; }
.kga-cell { display: grid; place-items: center; width: 100%; min-height: 40px; border: 1px solid #cfd3d1; border-radius: 6px; background: #fff; font-size: 11px; font-weight: 800; color: var(--kga-navy); padding: 2px; }
button.kga-cell { cursor: pointer; transition: transform .15s var(--kga-ease), background .15s; }
.kga-cell.is-free:hover, .kga-cell.is-free.is-selected { background: var(--kga-navy); color: #fff; border-color: var(--kga-navy); transform: translateY(-1px); }
.kga-cell.is-busy { background: var(--kga-bad-bg); border-color: var(--kga-bad-line); color: var(--kga-bad-text); }
.kga-cell.is-planned { background: var(--kga-ok-bg); border-color: var(--kga-ok-line); color: var(--kga-ok-text); }
.kga-cell.is-planned:hover { background: #c9e8d3; }
.kga-cell.is-pending { background: var(--kga-wait-bg); border-color: var(--kga-wait-line); color: var(--kga-wait-text); }
.kga-cell.is-off { background: #eceeea; border-color: #e1e3df; color: #a2a9ab; }
.kga-short { display: none; font-size: 14px; }
.kga-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--kga-muted); margin-top: 8px; }
.kga-legend span { display: inline-flex; align-items: center; gap: 6px; }
.kga-legend i { width: 12px; height: 12px; border: 1px solid #b7bfbd; border-radius: 3px; background: #fff; }
.kga-legend i.is-planned { background: var(--kga-ok-bg); border-color: var(--kga-ok-line); }
.kga-legend i.is-pending { background: var(--kga-wait-bg); border-color: var(--kga-wait-line); }
.kga-legend i.is-busy { background: var(--kga-bad-bg); border-color: var(--kga-bad-line); }
.kga-booking-form { background: var(--kga-cream); border-radius: var(--kga-radius-sm); padding: 14px 16px; margin: 10px 0; }
.kga-booking-form p { margin: 0; }

/* lessons */
.kga-lessons { display: grid; gap: 8px; }
.kga-lesson { border: 1px solid #e0e0d9; border-radius: var(--kga-radius-sm); padding: 13px 14px; }
.kga-lesson-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.kga-lesson strong { font-size: 14px; }
.kga-lesson small { display: block; color: var(--kga-muted); font-size: 12px; margin-top: 3px; }
.kga-lesson-note { margin-top: 8px !important; color: var(--kga-wait-text) !important; }
.kga-lesson-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.kga-lesson-actions button, .kga-word-actions button { background: #fff; border: 1px solid #bdc3c1; border-radius: 6px; padding: 6px 10px; cursor: pointer; font-size: 12px; font-weight: 700; color: var(--kga-navy); }
.kga-lesson-actions button:hover, .kga-word-actions button:hover { border-color: var(--kga-navy); }
.kga-lesson-panel { background: #f4f3ee; border-radius: var(--kga-radius-sm); padding: 14px; margin-top: 12px; }
.kga-lesson-panel p { margin: 0 0 8px; }
.kga-history { margin-top: 16px; }
.kga-history summary { cursor: pointer; font-weight: 800; font-size: 14px; color: var(--kga-navy); padding: 6px 0; }
.kga-history .kga-lessons { margin-top: 8px; }
.kga-queue-item { border-top: 1px solid #deded8; padding: 14px 0; }
.kga-queue-item p { color: var(--kga-muted); font-size: 14px; margin: 6px 0 0; }
.kga-roster { display: flex; flex-wrap: wrap; gap: 8px; }
.kga-roster-person { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #c9cecb; border-radius: var(--kga-radius-sm); background: #fff; padding: 9px 14px; cursor: pointer; font-size: 14px; font-weight: 800; color: var(--kga-navy); }
.kga-roster-person[aria-pressed="true"] { background: var(--kga-navy); color: #fff; }

/* teacher hours */
.kga-hours-head { display: block; width: 100%; border: 0; border-radius: 4px; background: none; padding: 6px 2px; cursor: pointer; font-size: 12px; font-weight: 800; color: var(--kga-navy); }
.kga-hours-table tbody .kga-hours-head { color: var(--kga-muted); text-align: right; padding-right: 4px; }
.kga-hours-head:hover { background: var(--kga-paper); color: var(--kga-navy); }
.kga-cell.kga-hcell { cursor: pointer; color: #8c9597; }
.kga-cell.kga-hcell:hover { border-color: var(--kga-navy); }
.kga-cell.kga-hcell.is-on { background: var(--kga-ok-bg); border-color: var(--kga-ok-line); color: var(--kga-ok-text); }
.kga-cell.kga-hcell.is-on:hover { background: #c9e8d3; }
.kga-legend i.is-on { background: var(--kga-ok-bg); border-color: var(--kga-ok-line); }
.kga-conflicts { background: var(--kga-wait-bg); border: 1px solid var(--kga-wait-line); color: var(--kga-wait-text); border-radius: var(--kga-radius-sm); padding: 12px 14px; margin-top: 14px; font-size: 14px; }
.kga-conflicts p { margin: 4px 0 6px; }
.kga.kga.kga .kga-conflicts ul { margin: 0; padding-left: 18px; }
.kga.kga.kga .kga-conflicts li { margin: 2px 0; }
.kga-off-form { max-width: 560px; }
.kga-off-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.kga-off-list { display: grid; gap: 8px; }
.kga-off-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid #e0e0d9; border-radius: var(--kga-radius-sm); padding: 12px 14px; }
.kga-off-item strong { font-size: 14px; }
.kga-off-item small { display: block; color: var(--kga-muted); font-size: 12px; margin-top: 3px; }

/* workbench */
.kga-tabs { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--kga-card-line); margin: 4px 0 16px; }
.kga-tabs [role="tab"] { display: inline-flex; align-items: center; gap: 6px; border: 0; border-bottom: 3px solid transparent; background: none; padding: 10px 12px; cursor: pointer; font-size: 14px; font-weight: 800; color: var(--kga-muted); margin-bottom: -1px; }
.kga-tabs [role="tab"][aria-selected="true"] { color: var(--kga-navy); border-bottom-color: var(--kga-copper); }
.kga-tabpanel { min-height: 120px; }
.kga-mini-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; margin: 0 0 12px; align-items: start; }
.kga-mini-form label { display: block; margin: 0; min-width: 0; }
.kga-mini-form .kga-wide { grid-column: 1 / -1; }
.kga-mini-form--msg { grid-template-columns: 1fr; }
.kga-mini-form--msg button { justify-self: start; }
.kga-mini-form--hw button { grid-column: 1 / -1; justify-self: start; }
.kga-mini-form button { border: 0; border-radius: var(--kga-radius-sm); background: var(--kga-navy); color: #fff; font-size: 13px; font-weight: 800; padding: 12px 16px; cursor: pointer; min-height: 46px; }
.kga-mini-form button:disabled { opacity: .5; }
.kga-words { display: grid; }
.kga-word { display: flex; gap: 12px; border-top: 1px solid #e1e2dc; padding: 14px 0; }
.kga-word-pic { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 50%; background: var(--kga-paper); font-size: 20px; color: var(--kga-copper); }
.kga-word-body { min-width: 0; flex: 1; }
.kga-word strong { display: block; font-size: 16px; color: var(--kga-navy); }
.kga-word small { display: block; color: var(--kga-copper-text); font-size: 12px; margin: 2px 0; }
.kga-word p { margin: 4px 0; font-size: 14px; }
.kga-word em { font-size: 13px; color: var(--kga-muted); }
.kga-word-actions { display: flex; gap: 6px; margin-top: 8px; }
.kga-edit-word { border-top: 1px solid #e1e2dc; padding: 14px 0; }
.kga-note-form textarea { min-height: 160px; }
.kga-note-archive { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 16px; font-size: 13px; }
.kga-note-archive strong { width: 100%; }
.kga-note-archive button { border: 1px solid #c9cecb; border-radius: 6px; background: #fff; padding: 6px 10px; font-size: 12px; font-weight: 700; cursor: pointer; color: var(--kga-navy); }
.kga-note-archive button[aria-pressed="true"] { background: var(--kga-navy); color: #fff; }
.kga-note-card { border-top: 1px solid #e1e2dc; padding: 12px 0; }
.kga-note-card p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 6px 0 0; font-size: 14px; }
.kga-hw { border-top: 1px solid #e1e2dc; padding: 12px 0; font-size: 14px; }
.kga-hw .kga-check { margin: 0; }
.kga-hw p { margin: 6px 0 0 27px; color: var(--kga-text); white-space: pre-wrap; }
.kga-hw small { display: block; color: var(--kga-muted); margin: 6px 0 0 27px; font-size: 12px; }
.kga-hw > strong + p, .kga-hw > strong ~ small { margin-left: 0; }
.kga-hw .is-done { text-decoration: line-through; color: #84918a; }
.kga-thread { max-height: 420px; overflow-y: auto; padding: 4px 2px; margin-bottom: 12px; }
.kga-bubble { max-width: 85%; padding: 10px 13px; margin: 8px 0; background: #ebece8; border-radius: 12px 12px 12px 3px; }
.kga-bubble.is-mine { margin-left: auto; background: #dfece4; border-radius: 12px 12px 3px 12px; }
.kga-bubble small { color: #66726e; font-size: 11px; }
.kga-bubble p { margin: 4px 0 0; font-size: 14px; white-space: pre-wrap; overflow-wrap: anywhere; }
.kga-receipt { display: block; text-align: right; margin-top: 4px; }

.kga-privacy { margin: 0 0 10px; }
.kga-pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.kga-note.kga-pre, .kga-note .kga-pre { color: var(--kga-text); }
.kga-note p { margin: 6px 0 0; }
.kga-app-form { max-width: 560px; }

/* ---------- school administrator ---------- */
.kga-mode { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 16px; background: var(--kga-paper); border-radius: var(--kga-radius-sm); }
.kga-mode button { min-height: 38px; border: 0; border-radius: 6px; background: transparent; padding: 8px 18px; cursor: pointer; font-size: 14px; font-weight: 800; color: var(--kga-navy); }
.kga-mode button[aria-pressed="true"] { background: var(--kga-navy); color: #fff; }
.kga-admin-nav { margin: 0; }
.kga-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 0 0 8px; }
.kga-stat { display: grid; gap: 2px; text-align: left; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius-sm); background: var(--kga-cream); padding: 14px 16px; font-size: 13px; color: var(--kga-muted); }
.kga-stat strong { font-family: var(--kga-heading); font-size: 30px; line-height: 1.1; color: var(--kga-navy); }
button.kga-stat { cursor: pointer; transition: border-color .2s, transform .2s var(--kga-ease); }
button.kga-stat:hover { border-color: var(--kga-navy); transform: translateY(-2px); }
.kga-people { display: grid; gap: 8px; }
.kga-people--grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.kga-person { border: 1px solid #e0e0d9; border-radius: var(--kga-radius-sm); padding: 13px 14px; min-width: 0; }
.kga-person-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.kga-person-head > div { min-width: 0; }
.kga-person-head strong { display: block; font-size: 15px; color: var(--kga-navy); }
.kga-person-head small { display: block; color: var(--kga-muted); font-size: 12px; margin-top: 2px; overflow-wrap: anywhere; }
.kga-person-head--photo { justify-content: flex-start; align-items: center; }
.kga-person-photo { width: 56px; height: 56px; flex: none; border-radius: 50%; object-fit: cover; object-position: center top; background: #e8e5df; }
.kga-person-initial { display: grid; place-items: center; font: 700 26px var(--kga-mark); color: var(--kga-copper); }
.kga-person-meta { font-size: 13px; color: var(--kga-text); margin: 6px 0 0; overflow-wrap: anywhere; }
.kga-facts { display: flex; gap: 20px; margin: 12px 0 0; }
.kga-facts div { margin: 0; }
.kga-facts dt { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kga-muted); }
.kga-facts dd { margin: 0; font-family: var(--kga-heading); font-size: 22px; font-weight: 700; color: var(--kga-navy); }
.kga-lesson-actions a { display: inline-flex; align-items: center; gap: 4px; background: #fff; border: 1px solid #bdc3c1; border-radius: 6px; padding: 6px 10px; font-size: 12px; font-weight: 700; color: var(--kga-navy); text-decoration: none; }
.kga-lesson-actions a:hover { border-color: var(--kga-navy); }
.kga-search { max-width: 420px; }
.kga-assign { background: var(--kga-cream); border-radius: var(--kga-radius-sm); padding: 14px 16px; margin-top: 12px; max-width: 520px; }
.kga-card-head { margin: 14px 0 4px; }
.kga-card-head .kga-h3 { margin-bottom: 4px; }
.kga-card-tabs { margin-top: 22px; }
.kga.kga.kga .kga-transfer { list-style: none; margin: 8px 0 0; padding: 0; }
.kga.kga.kga .kga-transfer li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; margin: 0; padding: 6px 0; border-top: 1px solid var(--kga-wait-line); }
.kga-transfer .kga-lesson-actions { margin: 0; }
.kga-sched-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.kga-inline { min-width: 220px; max-width: 340px; flex: 1; }
.kga-day-chips, .kga-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.kga-day-chips button, .kga-chips button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; border: 1px solid #c9cecb; border-radius: 6px; background: #fff; padding: 6px 12px; cursor: pointer; font-size: 13px; font-weight: 700; color: var(--kga-navy); }
.kga-day-chips button[aria-pressed="true"], .kga-chips button[aria-pressed="true"] { background: var(--kga-navy); border-color: var(--kga-navy); color: #fff; }
.kga-sched-day { margin-top: 8px; }
.kga-sched-day .kga-h4 { margin-top: 14px; }
.kga.kga.kga .kga-sched-table thead th { font-size: 12px; overflow-wrap: anywhere; }
.kga-scell { gap: 2px; padding: 2px 4px; }
.kga-cell-name { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kga-cell.is-done { background: #e6ebe7; border-color: #b9c6bd; color: #4c6656; }
.kga-cell.is-pending:is(button) { cursor: pointer; }
.kga-cell.is-pending:is(button):hover { background: #eadbb5; }
.kga-scell-off { cursor: pointer; color: #a2a9ab; }
.kga-scell-off:hover { border-color: var(--kga-navy); background: #f6f6f3; }
.kga-legend i.is-free { background: #fff; }
.kga-legend i.is-off { background: #eceeea; border-color: #e1e3df; }
.kga-legend i.is-done { background: #e6ebe7; border-color: #b9c6bd; }
.kga-lane { border: 1px solid #e0e0d9; border-radius: var(--kga-radius-sm); padding: 10px 12px; margin: 8px 0; }
.kga-lane-name { display: block; font-size: 14px; color: var(--kga-navy); margin-bottom: 6px; }
.kga.kga.kga .kga-lane ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.kga.kga.kga .kga-lane li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 8px; align-items: center; margin: 0; padding: 0; }
.kga-lane-time { font-size: 12px; font-weight: 800; color: var(--kga-muted); }
.kga-lane-cells { display: grid; gap: 4px; min-width: 0; }
.kga-lane .kga-cell { place-items: center start; text-align: left; padding: 8px 10px; font-size: 13px; min-height: 40px; }
.kga-lane .kga-cell small { display: inline; font-weight: 600; opacity: .85; }
.kga-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 0 12px; }
.kga.kga.kga .kga-audit { list-style: none; margin: 0; padding: 0; }
.kga.kga.kga .kga-audit-item { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 14px; margin: 0; padding: 10px 0; border-top: 1px solid #e1e2dc; font-size: 14px; }
.kga-audit-item time { font-size: 12px; color: var(--kga-muted); padding-top: 2px; }
.kga-audit-item small { display: block; color: var(--kga-muted); font-size: 12px; margin-top: 2px; overflow-wrap: anywhere; }
.kga-audit + .kga-ghost { margin-top: 10px; }
.kga-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; border: 0; border-radius: var(--kga-radius); padding: 0; background: #fff; color: var(--kga-ink); box-shadow: 0 24px 60px rgba(23, 40, 56, .28); }
.kga-dialog::backdrop { background: rgba(23, 40, 56, .45); }
.kga-dialog-body { padding: 22px 24px; }
.kga-dialog-body > p { margin: 0 0 10px; font-size: 14px; }
.kga-dialog-form { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--kga-card-line); }
.kga-dialog-form > p { margin: 0 0 10px; font-size: 14px; }
.kga-radios { border: 0; padding: 0; margin: 0 0 6px; }
.kga-radios legend { font-size: 13px; font-weight: 800; color: #52606a; padding: 0; }
.kga-radios .kga-check { margin: 6px 0; }

/* ---------- trial lessons ---------- */
.kga-pills { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.kga-pill.is-trial { background: #e6e1f2; color: #4e3f7a; }
.kga-lesson-note--ok { color: var(--kga-ok-text) !important; }
.kga-trial-note { margin: 0 0 16px; border-left: 3px solid var(--kga-copper); color: var(--kga-text); }
.kga-trial-note strong { color: var(--kga-navy); font-size: 14px; }
.kga-scell.is-trial { box-shadow: inset 0 0 0 2px #b9aedb; }

/* ---------- leads (mini-CRM) ---------- */
.kga-stat--alert { border-color: var(--kga-bad-line); background: var(--kga-bad-bg); }
.kga-stat--alert strong { color: var(--kga-bad-text); }
.kga-lead-tools { display: flex; flex-wrap: wrap; gap: 4px 20px; align-items: flex-end; }
.kga-lead-tools .kga-search { flex: 1 1 280px; margin-bottom: 8px; }
.kga-lead-tools .kga-check { margin: 0 0 18px; }
.kga-kanban { display: grid; grid-template-columns: repeat(6, minmax(168px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 6px; align-items: start; }
.kga-kcol { background: var(--kga-cream); border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius-sm); padding: 10px; min-width: 0; }
.kga.kga.kga .kga-kcol-head { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.kga-kcol--lost .kga-kcol-head, .kga-kcol--student .kga-kcol-head { color: var(--kga-muted); }
.kga-kcol-list, .kga-lead-list { display: grid; gap: 8px; }
.kga-kcol-empty { margin: 0; padding: 10px 4px; font-size: 12px; color: var(--kga-muted); text-align: center; }
.kga-lead-card { display: grid; gap: 3px; width: 100%; text-align: left; border: 1px solid #dcdcd5; border-left: 3px solid #c8cbc9; border-radius: var(--kga-radius-sm); background: #fff; padding: 10px 11px; cursor: pointer; color: var(--kga-ink); font-size: 12px; transition: border-color .15s, transform .15s var(--kga-ease); }
.kga-lead-card:hover { border-color: var(--kga-navy); transform: translateY(-1px); }
.kga-lead-card strong { font-size: 14px; color: var(--kga-navy); overflow-wrap: anywhere; }
.kga-lead-src { color: var(--kga-muted); }
.kga-lead-meta { color: var(--kga-text); overflow-wrap: anywhere; }
.kga-lead-due { justify-self: start; margin-top: 3px; padding: 2px 6px; border-radius: 4px; background: var(--kga-wait-bg); color: var(--kga-wait-text); font-weight: 800; }
.kga-lead-due.is-overdue { background: var(--kga-bad-bg); color: var(--kga-bad-text); }
.kga-lead-card.is-overdue { border-left-color: var(--kga-bad-line); }
.kga-stage-chips .kga-badge { margin-left: 2px; }
.kga-dialog.kga-dialog--wide { width: min(760px, calc(100vw - 32px)); }
.kga-lead-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--kga-muted); }
.kga-pill.kga-stage.is-new { background: var(--kga-wait-bg); color: var(--kga-wait-text); }
.kga-pill.kga-stage.is-contacted { background: #e2ebf3; color: #2f4f6c; }
.kga-pill.kga-stage.is-trial_scheduled, .kga-pill.kga-stage.is-trial_done { background: #e6e1f2; color: #4e3f7a; }
.kga-pill.kga-stage.is-student { background: var(--kga-ok-bg); color: var(--kga-ok-text); }
.kga-pill.kga-stage.is-lost { background: var(--kga-bad-bg); color: var(--kga-bad-text); }
.kga-lead-contacts { font-size: 14px; overflow-wrap: anywhere; }
.kga-lead-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin: 12px 0; padding: 12px 14px; background: var(--kga-cream); border-radius: var(--kga-radius-sm); }
.kga-lead-facts div { margin: 0; min-width: 0; }
.kga-lead-facts dt { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kga-muted); }
.kga-lead-facts dd { margin: 2px 0 0; font-size: 14px; color: var(--kga-ink); }
.kga-lead-actions { margin-top: 4px; }
.kga-mini-form--link { grid-template-columns: minmax(0, 1fr) auto; margin-top: 14px; align-items: end; }
.kga-field-label { display: block; font-size: 13px; font-weight: 800; color: #52606a; margin-bottom: 6px; }
.kga.kga.kga .kga-timeline { list-style: none; margin: 10px 0 0; padding: 0; }
.kga.kga.kga .kga-timeline li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 2px 12px; margin: 0; padding: 9px 0; border-top: 1px solid #e1e2dc; font-size: 13px; }
.kga-timeline time { font-size: 12px; color: var(--kga-muted); padding-top: 1px; }
.kga-timeline small { color: var(--kga-muted); font-size: 12px; }
.kga-timeline p { margin: 3px 0 0; color: var(--kga-text); }
.kga.kga.kga .kga-timeline li.is-note, .kga.kga.kga .kga-timeline li.is-feedback { background: linear-gradient(90deg, var(--kga-cream), transparent); }
.kga.kga.kga .kga-timeline li.is-feedback strong { color: #4e3f7a; }
.kga-lead-danger { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--kga-card-line); }
.kga-lead-danger .kga-small { margin: 0; flex: 1 1 220px; }
.kga-ghost.kga-danger { color: var(--kga-bad-text); border-color: var(--kga-bad-line); }
.kga-ghost.kga-danger:hover:not(:disabled) { background: var(--kga-bad-bg); }

/* ---------- public trial form [kigetss_trial_form] ---------- */
.kga-trial { max-width: 680px; background: #fff; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); padding: 26px; box-shadow: var(--kga-shadow); }
.kga-trial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 12px; }
.kga-trial-contacts { border: 0; padding: 0; margin: 4px 0 6px; min-width: 0; }
.kga-trial-contacts legend { padding: 0; font-size: 14px; font-weight: 800; color: var(--kga-navy); }
.kga-trial-contacts .kga-small { margin: 2px 0 10px; }
.kga-trial .kga-field label { font-size: 13px; font-weight: 800; color: #52606a; }
.kga-trial .kga-field select { width: 100%; font-size: 15px; font-weight: 500; padding: 11px 12px; border: 1px solid #c8cbc9; border-radius: var(--kga-radius-sm); background: #fff; color: var(--kga-ink); }
.kga-trial [aria-invalid="true"] { border-color: #c46a5e !important; outline: 2px solid #f0c4bd; }
.kga-trial .kga-check a { color: var(--kga-navy); font-weight: 800; }
.kga-trial-done { padding: 22px; background: var(--kga-ok-bg); border: 1px solid var(--kga-ok-line); border-radius: var(--kga-radius-sm); }
.kga-trial-done:focus { outline: none; }
.kga-trial-ok { margin: 0; font-size: 17px; font-weight: 700; color: var(--kga-ok-text); }

/* ---------- teachers ---------- */
/* List rules carry .kga.kga.kga: the theme styles ul/li inside .entry-content with specificity (0,2,2). */
.kga.kga.kga .kga-teacher-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
@media (min-width: 1000px) { .kga.kga.kga .kga-teacher-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px 28px; } }
.kga.kga.kga .kga-teacher-card { padding: 0; margin: 0; display: flex; flex-direction: column; }
.kga.kga.kga .kga-teacher-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; background: #e8e5df; border-radius: var(--kga-radius); box-shadow: var(--kg-shadow-lift, 0 18px 40px rgba(23, 40, 56, .12)); }
.kga-teacher-photo--empty { display: grid; place-items: center; font: 700 64px var(--kga-mark); color: var(--kga-copper); }
.kga-teacher-body { padding: 18px 2px 0; display: flex; flex-direction: column; gap: 4px; flex: 1; align-items: flex-start; }
.kga.kga.kga .kga-teacher-name { font-family: var(--kga-heading); font-size: 21px; font-weight: 700; margin: 0; color: var(--kga-navy); line-height: 1.2; letter-spacing: -.015em; }
.kga.kga.kga .kga-teacher-spec { font-size: 14px; font-weight: 500; color: var(--kga-muted); margin: 0; line-height: 1.45; }
.kga.kga.kga .kga-teacher-bio { font-size: 14px; line-height: 1.6; color: var(--kga-muted); margin: 6px 0 0; }
.kga-teacher-body .kga-link { margin-top: 12px; }
.kga.kga.kga .kga-teachers-cta { margin: 44px 0 0; text-align: center; }
@media (max-width: 599px) {
	.kga.kga.kga .kga-teacher-name { font-size: 18px; }
	.kga.kga.kga .kga-teacher-spec { font-size: 13px; }
	.kga.kga.kga .kga-teachers-cta { margin-top: 32px; }
}
.kga.kga.kga.kga-teachers-compact .kga-teacher-grid { grid-template-columns: 1fr; gap: 8px; }
.kga.kga.kga.kga-teachers-compact .kga-teacher-card { flex-direction: row; align-items: center; background: #fff; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); overflow: hidden; }
.kga.kga.kga.kga-teachers-compact .kga-teacher-photo { width: 64px; height: 64px; aspect-ratio: 1; flex: none; border-radius: 0; box-shadow: none; }
.kga-teachers-compact .kga-teacher-photo--empty { font-size: 28px; }
.kga-teachers-compact .kga-teacher-body { padding: 8px 14px; gap: 2px; }
.kga.kga.kga.kga-teachers-compact .kga-teacher-name { font-size: 15px; margin: 0; }
.kga.kga.kga.kga-teachers-compact .kga-teacher-spec { font-size: 12px; font-weight: 600; }

/* ---------- exercises ---------- */
.kga.kga.kga.kga-set-list { list-style: none; padding: 0; margin: 0 0 32px; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.kga.kga.kga .kga-set-card { background: #fff; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); padding: 20px; margin: 0; }
.kga-set-card.is-current { border-color: var(--kga-navy); }
.kga.kga.kga .kga-set-card h3 { font-family: var(--kga-heading); font-size: 20px; margin: 8px 0; }
.kga-set-card h3 a { color: var(--kga-navy); text-decoration: none; }
.kga-set-card p { font-size: 14px; color: var(--kga-muted); margin: 0; }
.kga-exercise { margin: 0 0 40px; }
.kga-ex-intro { display: grid; grid-template-columns: 1.25fr .75fr; gap: 48px; align-items: end; margin-bottom: 24px; }
.kga.kga.kga .kga-ex-heading { font-family: var(--kga-heading); font-weight: 700; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.1; letter-spacing: -.03em; margin: 0; color: var(--kga-navy); }
.kga-ex-heading em { color: var(--kga-copper-text); font-style: normal; }
.kga-ex-intro > p { font-size: 15px; color: var(--kga-muted); margin: 0; }
.kga-rule-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.kga-rule-strip span { padding: 11px 15px; background: #e8e8e0; border-radius: var(--kga-radius-sm); color: #46565e; font-size: 14px; }
.kga-rule-strip strong { color: var(--kga-navy); }
.kga-ex-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 20px; align-items: start; }
.kga-ex-menu { display: grid; gap: 8px; }
.kga-ex-menu button { display: grid; grid-template-columns: 32px 1fr; gap: 1px 11px; text-align: left; border: 1px solid #dedfd9; border-radius: var(--kga-radius-sm); background: #fff; padding: 15px; cursor: pointer; color: var(--kga-navy); transition: transform .2s var(--kga-ease), border-color .2s, background .2s; }
.kga-ex-menu button:hover { transform: translateX(3px); border-color: #9eaaa8; }
.kga-ex-menu button.is-active { background: var(--kga-navy); color: #fff; border-color: var(--kga-navy); }
.kga-ex-menu button > span { grid-row: 1 / 3; color: #bd8667; font: 700 21px var(--kga-mark); }
.kga-ex-menu button strong { font-size: 14px; }
.kga-ex-menu button small { font-size: 12px; color: #7d878e; margin-top: 3px; }
.kga-ex-menu button.is-active small { color: #c3d0d5; }
.kga-ex-main { background: #fff; border: 1px solid #e0e1dc; border-radius: var(--kga-radius); padding: 28px; min-height: 480px; min-width: 0; }
.kga-ex-head { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e0e2dd; padding-bottom: 20px; margin-bottom: 22px; }
.kga.kga.kga .kga-ex-title { font-family: var(--kga-heading); font-size: clamp(24px, 2.6vw, 30px); font-weight: 700; margin: 6px 0; color: var(--kga-navy); }
.kga.kga.kga .kga-ex-head p { font-size: 14px; color: #68747b; max-width: 520px; margin: 0; }
.kga-ex-best { font-size: 12px; color: var(--kga-copper-text); white-space: nowrap; padding-top: 6px; font-weight: 700; }
.kga-ex-stage:focus { outline: none; }
.kga-ex-list { display: grid; gap: 10px; }
.kga-ex-line { display: flex; align-items: center; gap: 18px; background: #fbfaf7; border: 1px solid #e7e7e1; border-radius: var(--kga-radius-sm); padding: 10px 16px; transition: border-color .25s, background .25s, transform .25s; }
.kga-ex-line:hover { transform: translateY(-2px); }
.kga-ex-line.is-correct { border-color: #84b499; background: #eff8f1; }
.kga-ex-line.is-incorrect { border-color: #d49b91; background: #fff2ef; }
.kga-ex-visual { width: 94px; height: 79px; flex: none; position: relative; display: grid; place-items: center; }
.kga-ex-visual svg { width: 100%; height: 100%; overflow: visible; }
.kga-ex-flag { position: absolute; right: -12px; bottom: -5px; font-size: 28px; filter: drop-shadow(0 4px 3px rgba(23, 40, 56, .17)); }
.kga-ex-copy { flex: 1; min-width: 0; }
.kga-ex-index { display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8b9598; }
.kga-ex-copy label { font-size: 18px; color: #263746; line-height: 1.8; }
.kga-ex-copy select, .kga-ex-copy input { border: 0; border-bottom: 2px solid #a6b4b4; border-radius: 0; background: #fff; color: var(--kga-navy); padding: 4px 8px; font-size: 16px; font-weight: 700; min-width: 88px; max-width: 110px; text-align: center; }
.kga-ex-copy input { width: 80px; }
.kga-ex-copy small { display: block; color: #7c5a4b; font-size: 12px; margin-top: 3px; }
.kga-ex-footer { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 22px; }
.kga-ex-footer > span { font-size: 14px; font-weight: 800; color: #366a50; }
.kga-ex-hint { font-size: 14px; color: var(--kga-muted); min-height: 20px; }
.kga-ex-meta { display: flex; justify-content: space-between; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: #7c8585; font-weight: 800; }
.kga-ex-progress { height: 5px; background: #e5e8e3; margin: 12px 0 22px; overflow: hidden; border-radius: 3px; }
.kga-ex-progress i { display: block; height: 100%; background: var(--kga-copper); transition: width .4s; }
.kga-ex-step { display: grid; grid-template-columns: 42% 1fr; gap: 28px; align-items: center; min-height: 340px; background: #fbfaf7; border-radius: var(--kga-radius-sm); padding: 24px; }
.kga-ex-step .kga-ex-visual { width: 100%; height: 240px; }
.kga-ex-step .kga-ex-flag { right: 10px; bottom: 5px; font-size: 48px; }
.kga.kga.kga .kga-ex-step h3 { font-family: var(--kga-heading); font-weight: 600; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.3; margin: 8px 0 22px; color: var(--kga-navy); }
.kga-ex-gap { display: inline-block; min-width: 2.5em; border-bottom: 2px solid var(--kga-copper); color: transparent; }
.kga-ex-answers { display: flex; gap: 9px; flex-wrap: wrap; }
.kga-ex-answers button { min-width: 70px; border: 1px solid #bdc9c6; border-radius: var(--kga-radius-sm); background: #fff; padding: 11px 17px; cursor: pointer; font-size: 15px; font-weight: 800; color: var(--kga-navy); transition: transform .18s, background .18s; }
.kga-ex-answers button:hover:not(:disabled) { transform: translateY(-3px); background: #e6efec; }
.kga-ex-answers button:disabled { cursor: default; }
.kga-ex-answers button.is-correct { background: #d6ecdd; border-color: #75a98b; color: #216444; }
.kga-ex-answers button.is-incorrect { background: #f8ded9; border-color: #d69f92; color: #a14f42; }
.kga-ex-feedback { min-height: 44px; font-size: 14px; color: #59676e; }
.kga-ex-finish { text-align: center; padding: 56px 20px; background: #f1f2ed; border-radius: var(--kga-radius-sm); }
.kga-ex-finish > span { display: block; font-size: 55px; color: var(--kga-copper); animation: kga-pop .5s both; }
.kga.kga.kga .kga-ex-finish h3 { font-family: var(--kga-heading); font-size: 28px; margin: 10px 0; color: var(--kga-navy); }
.kga-ex-finish p { font-size: 15px; color: #67737a; }
.kga-ex-next { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 36px; padding: 24px; background: #e8e8e0; border-radius: var(--kga-radius); }
.kga.kga.kga .kga-ex-next p { font-family: var(--kga-heading); font-size: 20px; font-weight: 700; margin: 0; color: var(--kga-navy); }
@keyframes kga-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }

/* ---------- student card (profile) ---------- */
.kga-pf-line { color: var(--kga-muted); }
.kga-pf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; }
.kga-profile .kga-field { margin-bottom: 4px; }
.kga-pf-note { font-size: 12px; color: var(--kga-muted); margin: 0 0 12px; overflow-wrap: anywhere; }
.kga-pf-error { color: #a13f35; font-weight: 700; }
.kga-pf-error:empty { display: none; }
.kga-profile [aria-invalid="true"] { border-color: #c46a5e !important; outline: 2px solid #f0c4bd; }
.kga-pf-types { margin: 6px 0 4px; }
.kga-pf-checks { display: flex; flex-wrap: wrap; gap: 0 20px; }
.kga-pf-checks .kga-check { margin: 8px 0; }
.kga-text-button { border: 0; background: none; padding: 0; font: inherit; font-weight: 800; color: var(--kga-navy); text-decoration: underline; cursor: pointer; }
.kga-text-button:hover { color: var(--kga-copper-text); }
.kga-pf-box { border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius-sm); background: var(--kga-cream); padding: 2px 16px 14px; margin: 0 0 18px; }
.kga.kga.kga .kga-pf-box .kga-h4 { margin: 12px 0 0; }
.kga-pf-box .kga-small { margin: 2px 0 0; }
.kga-pf-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 18px; margin: 12px 0 0; }
.kga-pf-facts div { margin: 0; min-width: 0; }
.kga-pf-facts dt { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kga-muted); }
.kga-pf-facts dd { margin: 2px 0 0; font-size: 15px; font-weight: 700; color: var(--kga-navy); overflow-wrap: anywhere; }
.kga-pf-comment { margin-top: 12px; background: #fff; }

/* ---------- Google Calendar layer: muted, dashed, never mistaken for a lesson ---------- */
.kga-gcal { display: grid; gap: 1px; justify-items: center; align-content: center; width: 100%; min-width: 0; min-height: 40px; padding: 3px 4px; border: 1px dashed #b3bcc1; border-radius: 6px; background: repeating-linear-gradient(135deg, #f2f4f5 0 6px, #e9edef 6px 12px); color: #56636a; font-size: 11px; font-weight: 700; text-align: center; }
.kga-gcal.is-free { background: #fafbfb; border-style: dotted; color: #7b868b; }
.kga-gcal-badge { display: inline-block; padding: 1px 4px; border-radius: 3px; background: #dde4ea; color: #3f5263; font-size: 9px; font-weight: 800; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; }
.kga-gcal.is-lane { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 4px 8px; padding: 8px 10px; font-size: 13px; text-align: left; }
.kga-gcal.is-lane .kga-cell-name { white-space: normal; }
.kga-gcal small { font-weight: 600; opacity: .85; }
.kga.kga.kga .kga-sched-table td > * + * { margin-top: 3px; }
.kga-gcal-row .kga-gcal { min-height: 30px; }
.kga-gcal-row th small { font-size: 10px; font-weight: 800; color: var(--kga-muted); }
.kga-lane-allday { margin: 0 0 6px; }
.kga-scell-gcal { border-style: dashed; }
.kga-legend i.is-gcal { background: repeating-linear-gradient(135deg, #f2f4f5 0 3px, #e1e6e9 3px 6px); border-style: dashed; }
.kga-pill.is-gcal { background: #dde4ea; color: #3f5263; }
.kga-lesson--gcal { background: #f6f7f8; border-style: dashed; }
.kga-lesson--gcal strong { color: #56636a; }
.kga-gcal-warn { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--kga-wait-line); border-radius: var(--kga-radius-sm); background: var(--kga-wait-bg); color: var(--kga-wait-text); font-size: 13px; }
.kga-gcal-warn:empty { margin: 0; padding: 0; border: 0; }
@media (max-width: 760px) {
	.kga-pf-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- dictionary: spaced repetition and trainers ---------- */
.kga-stats--vocab { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 14px; }
.kga-stats--vocab .kga-stat, .kga-stats--summary .kga-stat { padding: 12px 14px; }
.kga-stats--vocab .kga-stat strong { font-size: 26px; }
.kga-stats--summary { grid-template-columns: repeat(2, minmax(0, 160px)); }
.kga-vocab-switch .kga-badge { margin-left: 4px; }
.kga-vocab-switch button[aria-pressed="true"] .kga-badge { background: #fff; color: var(--kga-navy); }
.kga-mini-form--word { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kga-mini-form--word .kga-wide { grid-column: 1 / 3; }
.kga.kga.kga .kga-srs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 8px 0 0; font-size: 12px; color: var(--kga-muted); }
.kga-train { margin-top: 4px; }
.kga-train-lead { margin: 0 0 4px; }
.kga-trainers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.kga-trainer-wrap { min-width: 0; }
.kga-trainer { display: grid; gap: 6px; align-content: start; width: 100%; min-height: 128px; text-align: left; padding: 16px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); background: var(--kga-cream); color: var(--kga-text); font-size: 13px; line-height: 1.45; cursor: pointer; transition: border-color .2s, transform .2s var(--kga-ease); }
.kga-trainer strong { font-family: var(--kga-heading); font-size: 17px; color: var(--kga-navy); }
.kga-trainer small { font-size: 12px; font-weight: 800; color: var(--kga-copper-text); }
.kga-trainer:hover:not([aria-disabled="true"]) { border-color: var(--kga-navy); transform: translateY(-2px); }
.kga-trainer[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }
.kga-trainer-hint { margin: 6px 2px 0; }
.kga-train-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.kga-train-count { font-size: 13px; font-weight: 800; color: var(--kga-muted); margin-right: auto; }
.kga-train-progress { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 6px; margin: 8px 0 14px; border: 0; border-radius: 3px; background: var(--kga-paper); color: var(--kga-copper); overflow: hidden; }
.kga-train-progress::-webkit-progress-bar { background: var(--kga-paper); border-radius: 3px; }
.kga-train-progress::-webkit-progress-value { background: var(--kga-copper); border-radius: 3px; transition: width .25s var(--kga-ease); }
.kga-train-progress::-moz-progress-bar { background: var(--kga-copper); border-radius: 3px; }
.kga-train-card { padding: 26px 20px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); background: var(--kga-card); text-align: center; animation: kga-train-in .25s var(--kga-ease); }
.kga-train-card.is-right { border-color: var(--kga-ok-line); background: #f4faf6; }
.kga-train-card.is-wrong { border-color: var(--kga-bad-line); background: #fdf6f4; }
.kga-train-card .kga-actions { justify-content: center; }
.kga.kga.kga .kga-train-word { margin: 0 0 6px; font-family: var(--kga-heading); font-size: clamp(26px, 6vw, 36px); font-weight: 700; line-height: 1.15; color: var(--kga-navy); overflow-wrap: anywhere; }
.kga-train-tr { margin: 10px 0 4px; font-size: 20px; font-weight: 700; overflow-wrap: anywhere; }
.kga-train-ex { margin: 6px 0 0; font-style: italic; color: var(--kga-muted); }
.kga-train-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 18px 0 0; }
.kga-train-options button { min-height: 52px; padding: 10px 12px; border: 1px solid #c9cecb; border-radius: var(--kga-radius-sm); background: #fff; color: var(--kga-navy); font-size: 15px; font-weight: 700; cursor: pointer; overflow-wrap: anywhere; }
.kga-train-options button:hover:not(:disabled) { border-color: var(--kga-navy); }
.kga-train-options button:disabled { cursor: default; color: #56636a; }
.kga-train-options button.is-right { background: var(--kga-ok-bg); border-color: var(--kga-ok-line); color: var(--kga-ok-text); }
.kga-train-options button.is-wrong { background: var(--kga-bad-bg); border-color: var(--kga-bad-line); color: var(--kga-bad-text); }
.kga-train-type { max-width: 420px; margin: 16px auto 0; text-align: left; }
.kga-train-type .kga-field input { font-size: 18px; }
.kga-train-verdict { margin: 14px 0 4px; font-weight: 800; }
.kga-train-verdict.is-right { color: var(--kga-ok-text); }
.kga-train-verdict.is-wrong { color: var(--kga-bad-text); }
.kga-train-list { margin: 6px 0 12px; padding-left: 20px; font-size: 14px; }
.kga-train-empty .kga-h4 { margin-top: 6px; }
@keyframes kga-train-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ---------- «Пройденная грамматика» ---------- */
.kga.kga.kga .kga-gram-group .kga-h4 small { font-weight: 600; font-size: 13px; color: var(--kga-muted); }
.kga-gram-item { border-top: 1px solid #e1e2dc; padding: 14px 0; }
.kga-gram-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.kga-gram-head strong { font-size: 16px; color: var(--kga-navy); overflow-wrap: anywhere; }
.kga-gram-item > small { display: block; margin: 4px 0 0; font-size: 12px; color: var(--kga-muted); }
.kga-gram-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 10px 0 2px; }
.kga-gram-item .kga-check { margin: 12px 0 0; }
.kga-gram-done { margin: 8px 0 0; }
.kga-gram-form { margin: 0 0 16px; padding: 16px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); background: var(--kga-cream); }
.kga-gram-form .kga-h4 { margin-top: 0; }
.kga-gram-article { min-width: 0; margin: 0 0 6px; padding: 0; border: 0; }
.kga-gram-article legend { margin: 0 0 8px; padding: 0; font-size: 13px; font-weight: 800; color: var(--kga-navy); }
.kga-gram-results { display: grid; gap: 4px; max-height: 260px; overflow: auto; margin: 0 0 10px; padding: 0; list-style: none; }
.kga-gram-results:empty { display: none; }
.kga-gram-results li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--kga-card-line); border-radius: 6px; background: #fff; }
.kga-gram-results .kga-text-button { text-align: left; overflow-wrap: anywhere; }
.kga-gram-picked { margin: 0 0 10px; font-size: 14px; }
.kga-gram-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
@media (max-width: 760px) {
	.kga-trainers { grid-template-columns: minmax(0, 1fr); }
	.kga-trainer { min-height: 0; }
}
@media (max-width: 520px) {
	.kga-stats--vocab { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kga-stats--vocab .kga-stat strong { font-size: 22px; }
	.kga-mini-form--word { grid-template-columns: minmax(0, 1fr); }
	.kga-mini-form--word .kga-wide { grid-column: auto; }
	.kga-train-options { grid-template-columns: minmax(0, 1fr); }
	.kga-train-card { padding: 20px 14px; }
	.kga-gram-row { grid-template-columns: minmax(0, 1fr); }
	.kga-gram-form { padding: 14px 12px; }
	.kga-vocab-switch button { padding: 8px 10px; white-space: nowrap; }
}

/* ---------- perception types (hints in the card), the perception test, Google events linked to students ---------- */
.kga-pf-checks.kga-pf-types-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
.kga-pf-type { min-width: 0; }
.kga-pf-checks .kga-pf-type .kga-check { margin: 8px 0 2px; }
.kga-pf-type-desc { display: block; margin: 0 0 6px 27px; font-size: 12px; line-height: 1.45; color: var(--kga-muted); }
.kga-pf-typelist { margin: 10px 0 0; padding-left: 18px; font-size: 13px; color: var(--kga-text); }
.kga-pf-typelist li { margin: 4px 0; }
.kga-panel.kga-pt:not(.is-open) { padding-top: 16px; padding-bottom: 16px; }
.kga-pt-entry { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 18px; }
.kga-pt-entry .kga-actions { margin-top: 0; }
.kga-pt-entry .kga-small { margin: 2px 0 0; }
.kga-pt-line { margin: 4px 0 0; font-size: 15px; font-weight: 700; color: var(--kga-navy); }
.kga-pt-intro { max-width: 70ch; }
.kga-pt-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.kga-pt-count { font-size: 13px; font-weight: 800; color: var(--kga-muted); }
.kga-pt-q { min-width: 0; margin: 0; padding: 0; border: 0; }
.kga-pt-q legend { margin: 0 0 14px; padding: 0; }
.kga-pt-qtext { display: block; font-family: var(--kga-heading); font-size: clamp(18px, 2.4vw, 22px); font-weight: 700; line-height: 1.3; color: var(--kga-navy); }
.kga-pt-options { display: grid; gap: 8px; }
.kga-pt-option { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid #c9cecb; border-radius: var(--kga-radius-sm); background: #fff; font-size: 15px; font-weight: 600; line-height: 1.4; cursor: pointer; transition: border-color .15s, background .15s; }
.kga-pt-option:hover { border-color: var(--kga-navy); }
.kga-pt-option input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--kga-navy); }
.kga-pt-option:has(input:checked) { border-color: var(--kga-navy); background: var(--kga-cream); box-shadow: inset 0 0 0 1px var(--kga-navy); }
.kga-pt-option:has(input:focus-visible) { outline: 3px solid var(--kga-copper); outline-offset: 2px; }
.kga-pt-option input:focus-visible { outline: 0; }
.kga-pt-nav { margin-top: 16px; }
.kga-pt-quit { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--kga-muted); }
.kga-pt-tips { margin: 6px 0 12px; padding-left: 20px; max-width: 75ch; }
.kga-pt-tips li { margin: 6px 0; }
.kga-pt-box { margin: 0 0 18px; }
.kga-pt-box:not(.kga-pf-box) { margin: 14px 0 0; padding-top: 4px; border-top: 1px solid var(--kga-card-line); }
.kga-pt-box:not(.kga-pf-box) .kga-h4 { margin-top: 10px; }
.kga-pt-bars { display: grid; gap: 7px; max-width: 560px; margin: 8px 0 10px; padding: 0; list-style: none; }
.kga-pt-bars li { display: grid; grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) 30px; align-items: center; gap: 10px; font-size: 13px; }
.kga-pt-bar-name { min-width: 0; font-weight: 600; color: var(--kga-text); overflow-wrap: anywhere; }
.kga-pt-bar { height: 10px; border-radius: 5px; background: var(--kga-paper); overflow: hidden; }
.kga-pt-bar span { display: block; height: 100%; border-radius: 5px; background: #9fb0bd; }
.kga-pt-bar-n { text-align: right; font-weight: 800; color: var(--kga-navy); }
.kga-pt-bars li.is-lead .kga-pt-bar-name { font-weight: 800; color: var(--kga-navy); }
.kga-pt-bars li.is-lead .kga-pt-bar span { background: var(--kga-copper); }
.kga-pt-suggest { margin: 6px 0; font-size: 14px; }
.kga-pt-confirm { margin-top: 10px; }
.kga-pt-confirm strong { color: var(--kga-navy); }
.kga-gcal-student { display: inline-block; max-width: 100%; padding: 0; border: 0; background: none; font: inherit; font-weight: 800; color: var(--kga-navy); text-decoration: underline; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.kga-gcal-student:hover { color: var(--kga-copper-text); }
.kga-gcal.is-lane .kga-gcal-student { white-space: normal; text-align: left; }
@media (max-width: 600px) {
	.kga-pf-checks.kga-pf-types-grid { grid-template-columns: minmax(0, 1fr); }
	.kga-pt-bars li { grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; }
	.kga-pt-bar-name { grid-column: 1; grid-row: 1; }
	.kga-pt-bar-n { grid-column: 2; grid-row: 1; }
	.kga-pt-bar { grid-column: 1 / -1; grid-row: 2; }
	.kga-pt-option { padding: 11px 12px; font-size: 14px; }
	.kga-pt-quit { margin-left: 0; }
}

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.kga-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 950px) {
	.kga-ex-layout { grid-template-columns: minmax(0, 1fr); }
	.kga-ex-menu { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.kga-ex-menu button { grid-template-columns: 1fr; }
	.kga-ex-menu button > span { grid-row: auto; }
	.kga-ex-menu button small { display: none; }
}
@media (max-width: 760px) {
	.kga-auth-grid, .kga-ex-intro { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.kga-ex-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kga-ex-step { grid-template-columns: minmax(0, 1fr); }
	.kga-ex-step .kga-ex-visual { height: 170px; }
	.kga-ex-next { flex-direction: column; align-items: flex-start; }
	.kga-assigned { align-items: flex-start; }
}
@media (max-width: 600px) {
	.kga-long { display: none; }
	.kga-short { display: inline; }
	.kga.kga.kga .kga-week-table { border-spacing: 3px; }
	.kga-week-table thead th:first-child, .kga-week-table tbody th { width: 38px; }
	.kga.kga.kga .kga-week-table thead th { font-size: 11px; }
	.kga-week-table thead th small { font-size: 10px; }
	.kga-cell { min-height: 36px; }
}
@media (max-width: 520px) {
	.kga-panel, .kga-auth-aside { padding: 18px; }
	.kga-dash-head { align-items: flex-start; }
	.kga-mini-form, .kga-off-grid { grid-template-columns: minmax(0, 1fr); }
	.kga-assigned img { width: 80px; height: 100px; }
	.kga-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kga-toast-region { left: 16px; right: 16px; bottom: 16px; max-width: none; }
	.kga-filters { grid-template-columns: minmax(0, 1fr); }
	.kga-lead-facts { grid-template-columns: minmax(0, 1fr); }
	.kga.kga.kga .kga-timeline li { grid-template-columns: minmax(0, 1fr); }
	.kga-trial { padding: 18px; }
	.kga-mini-form--link { grid-template-columns: minmax(0, 1fr); }
	.kga.kga.kga .kga-audit-item { grid-template-columns: minmax(0, 1fr); }
	.kga-dialog-body { padding: 18px; }
	.kga-mode { display: flex; }
	.kga-mode button { flex: 1; }
	.kga-admin-nav [role="tab"] { padding: 8px 9px; font-size: 13px; }
	.kga-ex-main { padding: 16px; }
	.kga-ex-head { display: block; }
	.kga-ex-best { margin-top: 10px; white-space: normal; }
	.kga-ex-line { gap: 10px; padding: 8px; }
	.kga-ex-line .kga-ex-visual { width: 62px; height: 62px; }
	.kga-ex-copy label { font-size: 15px; }
	.kga-ex-copy select, .kga-ex-copy input { font-size: 15px; min-width: 70px; }
	.kga-ex-menu button { padding: 11px; }
	.kga-rule-strip { gap: 6px; }
	.kga-rule-strip span { padding: 8px 10px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.kga *, .kga *::before, .kga *::after { animation: none !important; transition: none !important; }
	.kga-toast { animation: none; }
}

/* ---------- «Уровень и навыки»: level badge, points per skill with a growth line, progress to the next level ---------- */
.kga-lv-draft { margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--kga-wait-line); border-radius: var(--kga-radius-sm); background: var(--kga-wait-bg); color: var(--kga-wait-text); font-size: 13px; font-weight: 600; }
.kga-lv-top { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px 22px; margin: 6px 0 4px; }
.kga-lv-badge { display: grid; place-items: center; min-width: 104px; padding: 12px 16px; border-radius: var(--kga-radius); background: var(--kga-navy); color: #fff; text-align: center; }
.kga-lv-badge .kga-small { margin: 0; color: rgba(255, 255, 255, .78); }
.kga-lv-badge strong { font-family: var(--kga-heading); font-size: 30px; line-height: 1.1; }
.kga-lv-badge.is-empty { background: var(--kga-paper); color: var(--kga-muted); }
.kga-lv-badge.is-empty .kga-small { color: var(--kga-muted); }
.kga-lv-current { flex: 1 1 260px; min-width: 0; }
.kga-lv-current > p:first-child { margin: 4px 0; font-weight: 700; color: var(--kga-navy); }
.kga-lv-level { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 12px; margin-top: 8px; }
.kga-lv-level .kga-field { margin-bottom: 0; min-width: 160px; }
.kga-lv-skills { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.kga-lv-skill { display: grid; gap: 4px; align-content: start; padding: 12px 14px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius-sm); background: var(--kga-cream); }
.kga-lv-skill .kga-small { margin: 0; }
.kga-lv-skill.is-empty { background: #fff; }
.kga-lv-skill-name { font-size: 13px; font-weight: 800; color: var(--kga-navy); }
.kga-lv-score { display: flex; align-items: baseline; gap: 4px; }
.kga-lv-score strong { font-family: var(--kga-heading); font-size: 28px; line-height: 1.1; color: var(--kga-navy); }
.kga-lv-delta { margin-left: 6px; padding: 2px 6px; border-radius: 4px; font-size: 12px; font-weight: 800; background: #e7e9e6; color: #56636a; }
.kga-lv-delta.is-up { background: var(--kga-ok-bg); color: var(--kga-ok-text); }
.kga-lv-delta.is-down { background: var(--kga-bad-bg); color: var(--kga-bad-text); }
.kga-lv-spark { display: block; color: var(--kga-copper); max-width: 100%; height: auto; }
.kga-lv-form { margin: 14px 0 0; padding: 16px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); background: #fff; }
.kga-lv-form .kga-h4 { margin-top: 0; }
.kga-lv-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 12px; }
.kga-lv-progress { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.kga-lv-row details { border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius-sm); background: #fff; }
.kga-lv-row summary { display: grid; grid-template-columns: 64px minmax(0, 1fr) 46px; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; list-style: none; }
.kga-lv-row summary::-webkit-details-marker { display: none; }
.kga-lv-row details > :not(summary) { margin-left: 14px; margin-right: 14px; }
.kga-lv-row-name { font-weight: 800; color: var(--kga-navy); }
.kga-lv-row-n { text-align: right; font-weight: 800; color: var(--kga-navy); font-size: 13px; }
.kga-lv-bar { height: 10px; border-radius: 5px; background: var(--kga-paper); overflow: hidden; }
.kga-lv-bar span { display: block; height: 100%; border-radius: 5px; background: #9fb0bd; }
.kga-lv-row.is-met .kga-lv-bar span { background: var(--kga-ok-line); }
.kga-lv-row.is-met .kga-lv-row-n { color: var(--kga-ok-text); }
.kga-lv-topics { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; padding: 0; list-style: none; }
.kga-lv-topics li { padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--kga-paper); color: var(--kga-muted); }
.kga-lv-topics li.is-studied { background: #e2ebf3; color: #2f4f6c; }
.kga-lv-topics li.is-done { background: var(--kga-ok-bg); color: var(--kga-ok-text); }
.kga-lv-list { margin: 8px 0 0; padding: 0; list-style: none; }
.kga-lv-list li { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 8px 0; border-top: 1px solid var(--kga-card-line); font-size: 13px; }
.kga-lv-list small { color: var(--kga-muted); }

/* ---------- mini-dialogues ---------- */
/* Communicative practice: filters, word order, translation, continuous dialogue. */
.kga-expression-bank { margin: 20px 0 26px; padding: 22px; border-radius: 12px; background: var(--kga-paper); border: 1px solid var(--kga-card-line); }
.kga-expression-bank dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 14px 0 0; }
.kga-expression-bank dl > div { min-width: 0; padding: 10px 0; border-top: 1px solid var(--kga-card-line); }
.kga-expression-bank dt { font-weight: 700; color: var(--kga-navy); }
.kga-expression-bank dd { margin: 4px 0 0; font-size: 14px; color: var(--kga-muted); }
.kga-gap-sentence { display: flex !important; flex-wrap: wrap; align-items: center; gap: 7px; line-height: 1.8; }
.kga-gap-sentence input { width: min(220px, 100%); min-width: 100px; padding: 8px 12px; border: 1px solid #bfc8cb; border-radius: 8px; font: inherit; background: #fffdf8; color: var(--kga-navy); }
.kga-dlg-gap { margin-top: 24px; }
@media (max-width: 640px) {
 .kga-expression-bank { padding: 16px; }
 .kga-expression-bank dl { grid-template-columns: minmax(0, 1fr); gap: 4px; }
 .kga-gap-sentence { display: block !important; }
 .kga-gap-sentence input { display: inline-block; max-width: 100%; margin: 6px 0; }
}
.kga-practice-catalog { padding: clamp(20px, 3vw, 36px); margin: 24px 0; background: var(--kga-paper); border-radius: var(--kga-radius); border: 1px solid var(--kga-card-line); }
.kga-practice-filters { display: grid; grid-template-columns: 140px minmax(180px, 1.3fr) minmax(170px, 1fr) auto; gap: 14px; align-items: end; margin: 24px 0 16px; }
.kga-practice-filters label { display: grid; gap: 8px; font-size: 13px; font-weight: 800; min-width: 0; }
.kga-practice-filters select, .kga-dlg-tools select { width: 100%; padding: 12px; border: 1px solid #c8cbc9; border-radius: 8px; background: #fffdf8; color: var(--kga-navy); font: inherit; min-width: 0; }
.kga-sentence-task { padding: 20px; border: 1px solid var(--kga-card-line); border-radius: 12px; background: #fff; }
.kga-sentence-task.is-correct, .kga-dlg-quiz fieldset.is-correct { border-color: #72a487; background: #f4faf6; }
.kga-sentence-task.is-incorrect, .kga-dlg-quiz fieldset.is-incorrect { border-color: #c78370; background: #fff8f5; }
.kga-sentence-task textarea { width: 100%; min-height: 85px; padding: 12px; border: 1px solid #c8cbc9; border-radius: 8px; resize: vertical; font: inherit; background: #fffdf8; }
.kga-order-answer, .kga-order-bank { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.kga-order-answer { min-height: 56px; padding: 10px; background: var(--kga-paper); border: 1px dashed #b7bdba; border-radius: 10px; align-items: center; }
.kga-order-answer > span { color: var(--kga-muted); font-size: 13px; }
.kga-order-answer button, .kga-order-bank button { padding: 10px 14px; border-radius: 8px; border: 1px solid #c8cbc9; color: var(--kga-navy); background: #fffdf8; font: inherit; cursor: pointer; }
.kga-order-bank button:disabled { opacity: .32; cursor: default; }
.kga-order-answer button { border-color: var(--kga-copper); }
.kga-answer-note { font-size: 14px; margin-bottom: 0; }
.kga-dlg-audio { width: 100%; margin: 12px 0 4px; }
.kga.kga.kga.kga-dlg--continuous .kga-dlg-lines { display: block; padding: 16px; background: var(--kga-paper); border-radius: 12px; }
.kga.kga.kga.kga-dlg--continuous .kga-dlg-line { display: grid; grid-template-columns: 70px minmax(0, 1fr); padding: 8px 0; border: 0; background: transparent !important; border-radius: 0; }
.kga-dlg-quiz { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--kga-card-line); }
.kga-dlg-quiz fieldset { margin: 16px 0; padding: 16px; border: 1px solid var(--kga-card-line); border-radius: 10px; min-width: 0; }
.kga-dlg-quiz legend { font-weight: 800; padding: 0 6px; font-size: 15px; }
.kga-dlg-quiz fieldset label { display: flex; gap: 10px; align-items: flex-start; padding: 7px 0; cursor: pointer; }
.kga-dlg-quiz input { margin-top: 5px; flex-shrink: 0; accent-color: var(--kga-navy); }
.kga-quiz-feedback { font-size: 14px; margin: 8px 0 0; }
.kga-article-practice { margin: 40px 0; }
@media (max-width: 1024px) { .kga-practice-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
 .kga-practice-catalog { padding: 18px 14px; }
 .kga-practice-filters { grid-template-columns: minmax(0, 1fr); }
 .kga-sentence-task { padding: 14px; }
 .kga.kga.kga.kga-dlg--continuous .kga-dlg-line { grid-template-columns: minmax(0, 1fr); gap: 4px; }
 .kga-order-bank button, .kga-order-answer button { padding: 10px 12px; }
}

.kga-dlg { margin: 24px 0; padding: 22px; border: 1px solid var(--kga-card-line); border-radius: var(--kga-radius); background: var(--kga-card); box-shadow: var(--kga-shadow); }
.kga-dlg-head .kga-h3 { margin-bottom: 6px; }
.kga-dlg-draft { display: inline-block; margin: 6px 0 0; padding: 4px 10px; border-radius: 4px; background: var(--kga-wait-bg); color: var(--kga-wait-text); font-size: 12px; font-weight: 700; }
.kga-dlg-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 14px 0 6px; }
.kga-dlg-tools .kga-ghost[aria-pressed="true"] { background: var(--kga-navy); color: #fff; border-color: var(--kga-navy); }
.kga-dlg-engine { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 800; color: #52606a; }
.kga-dlg-role { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; color: #52606a; }
.kga-dlg-role select { padding: 8px 10px; border: 1px solid #c8cbc9; border-radius: var(--kga-radius-sm); background: #fff; font-weight: 600; }
.kga-dlg-note { flex-basis: 100%; margin: 2px 0 0; }
.kga.kga.kga .kga-dlg-lines { display: grid; gap: 8px; margin: 12px 0 8px; padding: 0; list-style: none; }
.kga.kga.kga .kga-dlg-line { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 4px 12px; margin: 0; padding: 10px 12px; border-radius: var(--kga-radius-sm); background: #fff; border: 1px solid var(--kga-card-line); transition: border-color .2s, background .2s; }
.kga.kga.kga.is-enhanced .kga-dlg-line { grid-template-columns: 36px 64px minmax(0, 1fr); }
.kga-dlg-line--b { background: var(--kga-cream) !important; }
.kga-dlg-line.is-playing { border-color: var(--kga-copper) !important; box-shadow: inset 3px 0 0 var(--kga-copper); }
.kga-dlg-who { font-size: 13px; font-weight: 800; color: var(--kga-copper-text); padding-top: 2px; }
.kga-dlg-text { display: grid; gap: 2px; min-width: 0; }
.kga-dlg-en { font-size: 16px; font-weight: 600; color: var(--kga-navy); }
.kga-dlg-en mark { background: #f3e2d6; color: inherit; padding: 0 2px; border-radius: 3px; }
.kga-dlg-ru { font-size: 14px; color: var(--kga-muted); }
.kga-dlg.hide-ru .kga-dlg-ru { display: none; }
.kga-dlg-say { width: 32px; height: 32px; border: 1px solid var(--kga-card-line); border-radius: 50%; background: #fff; color: var(--kga-navy); cursor: pointer; font-size: 12px; line-height: 1; }
.kga-dlg-say:hover { border-color: var(--kga-navy); }
.kga-dlg-yours { display: none; font-size: 14px; font-style: italic; color: var(--kga-muted); }
.kga-dlg-line.is-yours:not(.is-revealed) .kga-dlg-en, .kga-dlg-line.is-yours:not(.is-revealed) .kga-dlg-ru { display: none; }
.kga-dlg-line.is-yours:not(.is-revealed) .kga-dlg-yours { display: block; }
.kga-dlg-legend { margin-top: 4px; }
@media (max-width: 520px) {
	.kga-dlg { padding: 16px 12px; }
	.kga.kga.kga.is-enhanced .kga-dlg-line { grid-template-columns: 32px minmax(0, 1fr); }
	.kga-dlg.is-enhanced .kga-dlg-who { grid-column: 2; }
	.kga-dlg.is-enhanced .kga-dlg-text { grid-column: 2; }
	.kga-dlg.is-enhanced .kga-dlg-say { grid-row: span 2; }
	.kga-lv-row summary { grid-template-columns: 52px minmax(0, 1fr) 40px; gap: 8px; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.kga-dlg-line { transition: none; }
}

/* Vocabulary practice under media articles: a situation card with phrases, a word bank, item hints. */
.kga-ex-step--choice { grid-template-columns: minmax(0, 1fr); min-height: 0; }
.kga.kga.kga .kga-ex-step--choice h3 { font-size: clamp(19px, 2.1vw, 24px); font-weight: 600; }
.kga-ex-answers--phrases { flex-direction: column; align-items: stretch; }
.kga-ex-answers--phrases button { text-align: left; font-weight: 700; line-height: 1.35; }
.kga-ex-hint-line { margin: 12px 0 0; font-size: 14px; color: var(--kga-muted); }
.kga-ex-hint-line > span { display: inline-block; padding: 6px 10px; border-radius: var(--kga-radius-sm); background: var(--kga-wait-bg); color: var(--kga-wait-text); }
.kga-word-bank { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; padding: 12px 14px; border: 1px dashed #c9b39f; border-radius: var(--kga-radius-sm); background: #fbf6ef; font-size: 13px; color: var(--kga-muted); }
.kga-word-bank b { padding: 3px 9px; border-radius: 999px; background: #fff; border: 1px solid #e3d6c8; color: var(--kga-navy); font-size: 14px; }
.kga-ex-line--plain .kga-ex-copy label { font-size: 17px; }
.kga-ex-line--plain .kga-ex-copy input { width: 110px; max-width: 140px; }
.kga-media-practice { margin: 40px 0 28px; }
.kga-media-practice > h2 { margin-bottom: 8px; }

/* Children's picture word games (Kids.php): bright cards, big pictures, stars. */
.kga-kids { margin: 40px 0; padding: clamp(16px, 3vw, 32px); border: 2px solid #ffe0b5; border-radius: 22px; background: linear-gradient(160deg, #fff6e6 0%, #eef7ff 100%); }
.kga-kids-head > p { color: var(--kga-muted); max-width: 720px; }
.kga-kids-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 18px 0; }
.kga-kids-tabs button { display: grid; gap: 2px; justify-items: start; padding: 12px 14px; border: 2px solid #ffd9a8; border-radius: 16px; background: #fff; color: var(--kga-navy); text-align: left; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.kga-kids-tabs button:hover { transform: translateY(-2px); }
.kga-kids-tabs button.is-active { border-color: #ff9f43; background: #ff9f43; color: #fff; box-shadow: 0 5px 0 #e0801f; }
.kga-kids-tabs strong { font-size: 15px; }
.kga-kids-tabs small { font-size: 12px; opacity: .85; }
.kga-kids-tab-n { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #ffe6c7; color: #c75f00; font-weight: 900; }
.kga-kids-tabs .is-active .kga-kids-tab-n { background: #fff; }
.kga-kids-stage { min-height: 320px; padding: clamp(14px, 3vw, 26px); border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(255, 159, 67, .12); }
.kga-kids-stage:focus { outline: none; }
.kga-kids-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; font-weight: 800; color: #8a6d4f; }
.kga-kids-meta span:last-child { color: #ffb400; letter-spacing: 2px; }
.kga-kids-bar { height: 10px; margin: 10px 0 16px; overflow: hidden; border-radius: 6px; background: #fff0db; }
.kga-kids-bar i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #ffb400, #ff7a59); transition: width .4s; }
.kga-kids-task { margin: 0 0 12px; font-size: 16px; font-weight: 800; color: var(--kga-navy); }
.kga-kids-match { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.kga-kids-col { display: grid; align-content: start; gap: 10px; }
.kga-kids-card { position: relative; display: flex; align-items: center; justify-content: center; min-height: 72px; padding: 10px; border: 3px solid #e6edf4; border-radius: 16px; background: #fff; color: var(--kga-navy); font-size: 20px; font-weight: 800; cursor: pointer; transition: transform .15s, border-color .15s, background .15s; }
.kga-kids-card:hover:not(:disabled) { transform: translateY(-2px); border-color: #ffd28a; }
.kga-kids-card.is-picked { border-color: #ff9f43; background: #fff4e5; transform: scale(1.03); }
.kga-kids-card.is-matched { border-color: #7bc67e; background: var(--pair, #dff5e0); cursor: default; }
.kga-kids-card.is-matched::after { content: '✓'; position: absolute; top: 4px; right: 9px; font-size: 16px; color: #2e7d32; }
.kga-kids-card.is-wrong { border-color: #ff8a80; animation: kga-kids-shake .4s; }
.kga .kga-kids-card:disabled:not(.is-matched) { opacity: .55; background: #fff; cursor: default; }
.kga .kga-kids-card.is-wrong:disabled { background: #fff1ef; color: #b04a3a; text-decoration: line-through; }
.kga-kids-sound, .kga-kids-play { display: inline-flex; align-items: center; justify-content: center; }
@keyframes kga-kids-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.kga-kids-pic { display: block; width: 56px; height: 56px; }
.kga-kids-tile { font-size: 34px; font-weight: 900; line-height: 1; color: #ff7a59; }
.kga-kids-swatch { display: block; width: 52px; height: 52px; border: 3px solid rgba(0, 0, 0, .08); border-radius: 50%; background: var(--swatch); }
.kga-kids-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kga-kids-options .kga-kids-card { min-height: 112px; }
.kga-kids-options .kga-kids-pic { width: 74px; height: 74px; }
.kga-kids-options .kga-kids-swatch { width: 70px; height: 70px; }
.kga-kids-options .kga-kids-tile { font-size: 46px; }
.kga .kga-kids-tile--l { font-size: 24px; }
.kga .kga-kids-tile--xl { font-size: 17px; }
.kga-kids-tile { max-width: 100%; overflow-wrap: anywhere; text-align: center; }
.kga-kids-options--words { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kga-kids-options--words .kga-kids-card { min-height: 64px; }
.kga-kids-prompt { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 6px 0 18px; }
.kga-kids-prompt strong { font-size: clamp(30px, 5vw, 44px); color: #3a7bd5; }
.kga-kids-sound, .kga-kids-play { border: 0; border-radius: 999px; background: #3a7bd5; color: #fff; font-size: 20px; cursor: pointer; padding: 10px 14px; box-shadow: 0 5px 0 #285ea8; }
.kga-kids-sound:active, .kga-kids-play:active { transform: translateY(3px); box-shadow: 0 2px 0 #285ea8; }
.kga-kids-play { display: inline-flex; align-items: center; gap: 10px; padding: 16px 28px; font-size: 26px; }
.kga-kids-play span { font-size: 18px; font-weight: 800; }
.kga-kids-sentence { display: flex; align-items: center; gap: 18px; margin: 6px 0 18px; padding: 14px; border-radius: 16px; background: #f4f9ff; }
.kga-kids-sentence-pic { display: grid; flex: 0 0 auto; place-items: center; width: 96px; height: 96px; border-radius: 16px; background: #fff; }
.kga-kids-sentence-pic .kga-kids-pic { width: 76px; height: 76px; }
.kga-kids-sentence p { margin: 0; font-size: clamp(20px, 3vw, 26px); font-weight: 700; color: var(--kga-navy); }
.kga-kids-gap { display: inline-block; min-width: 80px; margin: 0 6px; padding: 0 8px; border-bottom: 3px dashed #ff9f43; color: #ff9f43; text-align: center; }
.kga-kids-gap.is-filled { border-bottom-style: solid; border-color: #7bc67e; color: #2e7d32; }
.kga-kids-feedback { min-height: 26px; margin: 14px 0 6px; font-size: 17px; font-weight: 800; color: #2e7d32; }
.kga-kids-feedback[data-state="bad"] { color: #c2410c; }
.kga-kids-finish { padding: 30px 10px; text-align: center; }
.kga.kga.kga .kga-kids-finish h3 { margin: 8px 0; font-size: 28px; color: var(--kga-navy); }
.kga-kids-stars span { display: inline-block; font-size: 56px; color: #ffc107; animation: kga-pop .5s both; }
.kga-kids-stars span:nth-child(2) { animation-delay: .15s; }
.kga-kids-stars span:nth-child(3) { animation-delay: .3s; }
.kga-kids-stars span.is-off { color: #e7e2d8; }
.kga-kids-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 14px; }
@media (max-width: 767px) {
	.kga-kids-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kga-kids-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kga-kids-options--words { grid-template-columns: minmax(0, 1fr); }
	.kga-kids-card { min-height: 60px; font-size: 18px; }
	.kga-kids-pic { width: 46px; height: 46px; }
	.kga-kids-sentence { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.kga-kids-card.is-wrong, .kga-kids-stars span { animation: none; }
}

/* Song quiz (Songs.php): lines with a gap and three word buttons. */
.kga-song { margin: 40px 0; padding: clamp(16px, 3vw, 30px); border: 1px solid #d9cdea; border-radius: 18px; background: linear-gradient(160deg, #f6f1ff 0%, #fff8f1 100%); }
.kga-song-head > p { color: var(--kga-muted); max-width: 720px; }
.kga-song-levels { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 4px; }
.kga-song-levels button { display: grid; gap: 2px; min-width: 150px; padding: 10px 16px; border: 1px solid #cdbfe6; border-radius: 12px; background: #fff; color: #4b3a75; text-align: left; cursor: pointer; transition: background .15s, border-color .15s; }
.kga-song-levels button span { color: var(--kga-muted); font-size: 13px; }
.kga-song-levels button[aria-pressed="true"] { border-color: #6b4fa3; background: #6b4fa3; color: #fff; }
.kga-song-levels button[aria-pressed="true"] span { color: #e9e0fb; }
.kga .kga-song-lines { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.kga-song-line { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid #e6e0ef; border-radius: 12px; background: #fff; }
.kga-song-n { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #efe7fb; color: #6b4fa3; font-size: 12px; font-weight: 800; }
.kga-song-text { font-size: 17px; line-height: 1.5; color: var(--kga-navy); }
.kga-song-gap { display: inline-block; min-width: 56px; margin: 0 4px; border-bottom: 2px dashed #a58bd1; color: #a58bd1; text-align: center; font-weight: 800; }
.kga-song-options { display: flex; flex-wrap: wrap; gap: 6px; }
.kga-song-options button { padding: 7px 12px; border: 1px solid #cdbfe6; border-radius: 999px; background: #fff; color: #4b3a75; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform .15s, background .15s; }
.kga-song-options button:hover:not(:disabled) { transform: translateY(-2px); background: #f3edfd; }
.kga-song-options button.is-wrong { border-color: #e4a8a3; background: #f8ded9; color: #9e3f3d; text-decoration: line-through; cursor: default; }
.kga-song-line.is-correct { border-color: #9fd0ae; background: #f0faf2; }
.kga-song-line.is-fixed { border-color: #e8cf97; background: #fdf7ea; }
.kga-song-line.is-correct .kga-song-gap, .kga-song-line.is-fixed .kga-song-gap { border-bottom-style: solid; color: #2e7d32; border-color: #7bc67e; }
.kga-song-line.is-fixed .kga-song-gap { color: #8a6418; border-color: #e0b44e; }
.kga-song-result { margin-top: 16px; }
.kga-song-result p { font-size: 17px; color: var(--kga-navy); }
@media (max-width: 767px) {
	.kga-song-line { grid-template-columns: 26px minmax(0, 1fr); }
	.kga-song-options { grid-column: 2; }
}
