@font-face {
  font-family: 'LK Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(../fonts/inter-cyrillic-v20.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'LK Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(../fonts/inter-latin-v20.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* The classic stylesheet is intentionally left untouched. */
.lk-modern-icon, .lk-medal { display: none; }
.lk-theme-picker { margin: 12px 16px 18px; flex-shrink: 0; }
.lk-theme-label { display: block; margin: 0 0 8px 2px; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #c6d0d9; }
.lk-theme-options { display: flex; gap: 3px; padding: 4px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
.lk-theme-options button { flex: 1; min-width: 0; min-height: 40px; padding: 8px 5px; border: 0; border-radius: 8px; background: transparent; color: #d5dfe7; font-size: 11px; font-weight: 600; cursor: pointer; }
.lk-theme-options button[aria-pressed="true"] { background: #f3ead9; color: #183247; box-shadow: 0 2px 5px #0002; }
.lk-theme-options button:focus-visible { outline: 2px solid #b68a40; outline-offset: 2px; }
.auth-box .lk-theme-picker { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #e5e9ec; }
.auth-box .lk-theme-label { color: #526575; }
.auth-box .lk-theme-options { background: #f2f4f6; border-color: #e5e9ec; }
.auth-box .lk-theme-options button { color: #526575; font-size: 12px; }
.auth-box .lk-theme-options button[aria-pressed="true"] { background: #fff; color: #102f45; }

html[data-theme="modern"] {
  --navy: #0c304a; --navy2: #164866; --navy-light: #205879;
  --gold: #89601d; --gold2: #d6b16a; --gold-soft: #f2e4c8;
  --bg: #e8eef3; --gray: #eff3f6; --gray2: #e3ebf1;
  --border: #c6d3de; --text: #122e44; --ink: #122e44;
  --mid: #465e72; --muted: #465e72; --soft: #536b7e;
  --green: #167044; --red: #bb363f;
  --shadow-sm: 0 2px 0 rgba(16,45,67,.07), 0 4px 8px rgba(16,45,67,.06);
  --shadow: 0 2px 0 rgba(16,45,67,.07), 0 9px 22px -9px rgba(16,45,67,.24);
  --shadow-lg: 0 24px 64px -20px rgba(16,45,67,.25), 0 4px 12px rgba(16,45,67,.05);
  --radius-sm: 6px; --radius: 10px; --radius-lg: 12px;
}
html[data-theme="modern"] body { font-family: 'LK Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); background-attachment: scroll; color: var(--text); line-height: 1.55; }
html[data-theme="modern"] :is(h1,h2,h3,.stat-value,.card-title) { letter-spacing: -.035em; }
html[data-theme="modern"] :is(h1,h2,h3,.card-title,.child-info,.page-header) { overflow-wrap: anywhere; }
html[data-theme="modern"] :is(.stat-value,.disc-val,.disc-result-val) { font-variant-numeric: tabular-nums; }
html[data-theme="modern"] .page-header { margin-bottom: 24px; gap: 16px; }
html[data-theme="modern"] .page-header h1 { font-size: clamp(23px, 2.3vw, 30px); font-weight: 800; line-height: 1.2; }
html[data-theme="modern"] .card-title { font-size: 15px; letter-spacing: -.02em; font-weight: 700; }
html[data-theme="modern"] :is(.card,.child-block-card,.child-card,.stat-card,.messages-thread-card) { background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-theme="modern"] :is(.card,.child-block-card,.child-card):is(:hover,:active,:focus-within) { transform: none; box-shadow: var(--shadow); }
html[data-theme="modern"] :is(.card,.child-block-card,.child-card) { transition: border-color .16s ease; }
html[data-theme="modern"] .child-dashboard-grid > div { animation: none; opacity: 1; }
html[data-theme="modern"] :is(.premium-badge,.modal-overlay) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
html[data-theme="modern"] .child-header-card { background: linear-gradient(115deg,#0b2c44,#194c69) !important; border-color: #173f58; border-top: 3px solid #c89e51; padding: 28px; box-shadow: var(--shadow); }
html[data-theme="modern"] .child-header-card::before { display: none; }
html[data-theme="modern"] .child-header-card::after { width: 190px; height: 190px; left: auto; right: -60px; bottom: -110px; background: none; border: 1px solid #d4b77935; box-shadow: 0 0 0 28px #d4b77909, 0 0 0 56px #d4b77905; }
html[data-theme="modern"] .child-info { min-width: 0; }
html[data-theme="modern"] .child-info h1 { font-size: clamp(21px,2.2vw,30px) !important; font-weight: 750 !important; text-shadow: none; color: #fff; }
html[data-theme="modern"] .child-info p { color: #d3dfe8 !important; }
html[data-theme="modern"] .child-photo-wrap { flex-shrink: 0; }
html[data-theme="modern"] .child-photo-wrap img { border: 2px solid #d4b779; box-shadow: 0 4px 16px #0002; }
html[data-theme="modern"] .premium-badge { text-transform: none; letter-spacing: 0; }
html[data-theme="modern"] .premium-badge.gold { color: #e9d8b1; background: #d4b77918; border-color: #d4b77950; }
html[data-theme="modern"] .stat-card { padding: 20px 16px; }
html[data-theme="modern"] .stat-card.green { background: #f3faf6; border-color: #dcece1; }
html[data-theme="modern"] .stat-card.gold { background: #faf7ef; border-color: #eae0c9; }
html[data-theme="modern"] .stat-value { font-size: 30px; font-weight: 750; }
html[data-theme="modern"] .stat-label { text-transform: none; letter-spacing: 0; font-size: 12px; }
html[data-theme="modern"] :is(.progress-bar-wrap,.disc-bar-track) { background: #e7edf1; box-shadow: none; }
html[data-theme="modern"] .progress-bar-fill { background: linear-gradient(90deg,#ae8847,#d4b779); box-shadow: none; }
html[data-theme="modern"] .progress-bar-fill::after { display: none; animation: none; }
html[data-theme="modern"] .disc-bar-prog { box-shadow: none; opacity: 1; }
html[data-theme="modern"] #rating-place { color: var(--gold); background: none; -webkit-text-fill-color: currentColor; text-shadow: none; }
html[data-theme="modern"] .dashboard-banner { background: linear-gradient(110deg,#0b2c44,#194c69); border-radius: 10px; border-top: 3px solid #c89e51; box-shadow: var(--shadow); }
html[data-theme="modern"] .banner-text h2 { font-size: 24px; }
html[data-theme="modern"] .banner-text p { opacity: .85; }
html[data-theme="modern"] #sidebar { background: #102b40; border-right: 1px solid #244154; box-shadow: 4px 0 24px #102d4306; }
html[data-theme="modern"] .sidebar-logo { padding: 28px 22px 22px; }
html[data-theme="modern"] .sidebar-logo h2 { font-size: 16px; letter-spacing: -.025em; }
html[data-theme="modern"] .sidebar-logo p { color: #b7c7d3; font-size: 11px; line-height: 1.65; margin-top: 7px; }
html[data-theme="modern"] .sidebar-nav { padding: 16px 12px; }
html[data-theme="modern"] .nav-item { border: 1px solid transparent; border-radius: 6px; padding: 11px 12px; margin: 3px 0; gap: 12px; color: #d3dfe8; font-size: 13px; font-weight: 600; min-height: 46px; transition: background-color .16s, color .16s; }
html[data-theme="modern"] .nav-item.active { background: #d4b77916; color: #ecd6a8; border-color: #d4b77930; padding-left: 12px; }
html[data-theme="modern"] .nav-item:hover { background: #ffffff0b; color: #fff; }
html[data-theme="modern"] .nav-item.active:hover { background: #d4b77922; color: #ecd6a8; }
html[data-theme="modern"] .nav-item .lk-classic-icon { display: none; }
html[data-theme="modern"] .nav-item .lk-modern-icon { display: block; width: 20px; height: 20px; flex-shrink: 0; }
html[data-theme="modern"] .user-info span { color: #b7c7d3; }
html[data-theme="modern"] .btn-logout { color: #c6d3dd; }
html[data-theme="modern"] .user-avatar { background: #d4b779; color: #102b40; }
html[data-theme="modern"] #mobile-header { background: #102b40; border-bottom: 1px solid #244154; box-shadow: 0 3px 12px #102d4310; }
html[data-theme="modern"] #bottom-nav { background: #fff; border-top: 1px solid var(--border); box-shadow: 0 -4px 20px #102d4308; }
html[data-theme="modern"] .bottom-nav-item { font-weight: 600; font-size: 10px; }
html[data-theme="modern"] .bottom-nav-item.active { color: #102d43; background: #f8f5ee; }
html[data-theme="modern"] .bottom-nav-item.active::before { background: #b28b48; width: 20px; }
html[data-theme="modern"] .bottom-nav-item.active svg { transform: none; }
html[data-theme="modern"] .btn { border-radius: 6px; letter-spacing: -.015em; font-weight: 700; transition: background-color .16s,color .16s,border-color .16s,transform .12s; }
html[data-theme="modern"] .btn-primary { background: linear-gradient(110deg,#153d57,#205474); color: #fff; border: 1px solid #12374f; box-shadow: 0 3px 0 #092b42, 0 7px 13px #102d4326, inset 0 1px 0 #ffffff18; }
html[data-theme="modern"] .btn-gold { background: linear-gradient(110deg,#c99f52,#e0be7e); border: 1px solid #c29849; color: #183247; box-shadow: 0 3px 0 #9a7437, 0 7px 13px #96702f20; }
html[data-theme="modern"] .btn-outline { border: 1px solid #adbfce; background: #f5f8fa; color: #163d56; box-shadow: var(--shadow-sm); }
html[data-theme="modern"] .btn-danger { background: #bb363f; }
html[data-theme="modern"] .btn:active:not(:disabled) { transform: translateY(1px); opacity: 1; }
html[data-theme="modern"] :is(.btn,.roll-call-choice):disabled { opacity: .5; transform: none; box-shadow: none; }
html[data-theme="modern"] :is(.form-input,.filter-bar select,.filter-bar input) { border: 1px solid #afc1cf; border-radius: 6px; background-color: #fff; color: var(--text); box-shadow: inset 0 1px 3px #102d4308; }
html[data-theme="modern"] .form-input { min-height: 46px; padding: 12px 14px; }
html[data-theme="modern"] select.form-input { padding-right: 32px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2356697a' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 16px; }
html[data-theme="modern"] .form-input::placeholder { color: #697b89; }
html[data-theme="modern"] :is(.form-input,.filter-bar select,.filter-bar input):focus { border-color: #a78343; box-shadow: 0 0 0 3px #b28b481a; }
html[data-theme="modern"] .form-input.error { border-color: #bb363f; }
html[data-theme="modern"] :is(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid #a78343; outline-offset: 3px; }
html[data-theme="modern"] .modal-overlay { background: #0c2337a6; }
html[data-theme="modern"] .modal-box { border: 1px solid #b9cbd8; border-top: 3px solid #c89e51; border-radius: 12px; box-shadow: var(--shadow-lg); }
html[data-theme="modern"] .modal-title { font-size: 20px; letter-spacing: -.03em; }
html[data-theme="modern"] .modal-footer { gap: 10px; }
html[data-theme="modern"] .table-wrap { border: 1px solid var(--border); border-radius: 8px; }
html[data-theme="modern"] th { background: #f4f7f9; color: #526575; font-size: 11px; font-weight: 650; letter-spacing: .04em; border-bottom: 1px solid var(--border); padding: 14px; }
html[data-theme="modern"] td { font-size: 13px; padding: 14px; }
html[data-theme="modern"] .page-tabs { gap: 4px; }
html[data-theme="modern"] .page-tab { font-size: 13px; }
html[data-theme="modern"] .page-tab.active { border-color: #b28b48; }
html[data-theme="modern"] .admin-badge { background: #eee2c7; color: #624a20; }
html[data-theme="modern"] .auth-tabs { max-width: 100%; overflow-x: auto; }
html[data-theme="modern"] .auth-tab { flex: 1 0 auto; white-space: nowrap; }
html[data-theme="modern"] :is(.empty-state,.messages-empty) { background: #f9fafb; border-color: #d8e1e7; box-shadow: none; }
html[data-theme="modern"] .empty-icon { filter: none; font-size: 36px; }
html[data-theme="modern"] .messages-thread-card { padding: 22px; }
html[data-theme="modern"] .messages-bubbles { background: #e7eef4; border: 1px solid #c5d4df; border-radius: 8px; padding: 18px; }
html[data-theme="modern"] .messages-bubble { border-radius: 8px; padding: 14px 16px; box-shadow: 0 2px 5px #102d4312; }
html[data-theme="modern"] .messages-bubble.admin { background: #fff; border: 1px solid #a9bdcd; border-left: 3px solid #bd934c; border-top-left-radius: 2px; color: #163247; }
html[data-theme="modern"] .messages-bubble.parent { background: #173f5b; border: 1px solid #12354e; border-top-right-radius: 2px; color: #fff; }
html[data-theme="modern"] .messages-bubble-text { color: inherit; font-size: 14px; font-weight: 450; line-height: 1.65; overflow-wrap: anywhere; }
html[data-theme="modern"] .messages-bubble-meta { opacity: 1; font-weight: 550; color: #4e6577; }
html[data-theme="modern"] .messages-bubble.parent .messages-bubble-meta { color: #d3e1eb; }
html[data-theme="modern"] .roll-call-choice { border-radius: 6px; box-shadow: 0 3px 0 #102d4326,0 6px 12px #102d431c; min-height: 48px; border: 1px solid #102d431f; }
html[data-theme="modern"] .roll-call-choice.coming { background: #147449; color: #fff; box-shadow: 0 3px 0 #0a4e30,0 6px 12px #14744926; }
html[data-theme="modern"] .roll-call-choice:hover { transform: none; filter: none; }
html[data-theme="modern"] #auth-screen { background: #e8eef3; background-image: radial-gradient(ellipse at 50% 0%,#d1dee8,transparent 65%); }
html[data-theme="modern"] .auth-box { width: 100%; max-width: 440px; padding: 36px; border: 1px solid #bfced9; border-top: 3px solid #b89552; border-radius: 12px; box-shadow: var(--shadow-lg); }
html[data-theme="modern"] .auth-logo { margin-bottom: 28px; }
html[data-theme="modern"] .auth-logo h1 { margin-top: 18px; font-size: 26px; letter-spacing: -.045em; }
html[data-theme="modern"] .auth-logo p { font-size: 12px; line-height: 1.65; margin-top: 8px; color: #526575; }
html[data-theme="modern"] .auth-box #l-btn { min-height: 50px; }
@media (hover: hover) {
  html[data-theme="modern"] .btn-primary:hover:not(:disabled) { background: #234d69; }
  html[data-theme="modern"] .btn-outline:hover:not(:disabled) { background: #f5f7f9; border-color: #aebfc9; }
  html[data-theme="modern"] .btn-gold:hover:not(:disabled) { background: #dec48e; }
}
@media (max-width: 768px) {
  html[data-theme="modern"] #main { min-width: 0; }
  html[data-theme="modern"] .card-grid { grid-template-columns: repeat(auto-fill,minmax(min(260px,100%),1fr)); }
  html[data-theme="modern"] .table-wrap { margin: 0; width: 100%; }
  html[data-theme="modern"] .child-dashboard-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
  html[data-theme="modern"] :is(.card,.child-block-card,.messages-thread-card) { padding: 18px 16px; }
  html[data-theme="modern"] .child-header-card { padding: 22px 18px; }
  html[data-theme="modern"] .child-header-content { gap: 16px; }
  html[data-theme="modern"] .card-header-flex { flex-wrap: wrap; }
  html[data-theme="modern"] .modal-box { border-radius: 12px 12px 0 0; }
  html[data-theme="modern"] .modal-footer { flex-wrap: wrap; }
  html[data-theme="modern"] .modal-footer .btn { white-space: normal; }
  html[data-theme="modern"] .auth-box { padding: 28px 22px; }
  html[data-theme="modern"] .roll-call-history-item { flex-wrap: wrap; }
  html[data-theme="modern"] .roll-call-answer-label { white-space: normal; }
}
/* Icons are small inline vectors, with the original symbols retained for classic. */
html[data-theme="modern"] .lk-classic-icon { display: none; }
html[data-theme="modern"] .lk-modern-icon { display: inline-block; vertical-align: -.2em; width: 20px; height: 20px; flex-shrink: 0; }
html[data-theme="modern"] .card-title > .lk-modern-icon { color: #946b25; width: 21px; height: 21px; }
html[data-theme="modern"] .lk-medal { display: inline-flex; width: 30px; height: 36px; color: #6a4714; vertical-align: middle; }
html[data-theme="modern"] .lk-medal svg { width: 100%; height: 100%; font-family: inherit; }
html[data-theme="modern"] .lk-medal-face { fill: #ecd096; stroke: #bc9146; stroke-width: 1; }
html[data-theme="modern"] .lk-medal-ribbon { fill: #a77932; }
html[data-theme="modern"] .lk-medal-2 { color: #344c60; }
html[data-theme="modern"] .lk-medal-2 .lk-medal-face { fill: #d9e3eb; stroke: #91a7b9; }
html[data-theme="modern"] .lk-medal-2 .lk-medal-ribbon { fill: #70899e; }
html[data-theme="modern"] .lk-medal-3 { color: #633e28; }
html[data-theme="modern"] .lk-medal-3 .lk-medal-face { fill: #e5c2a7; stroke: #b37c54; }
html[data-theme="modern"] .lk-medal-3 .lk-medal-ribbon { fill: #a36f49; }
html[data-theme="modern"] .lk-rating-row { border-radius: 6px !important; border-color: #c9d5df !important; background: #f4f7fa !important; min-height: 52px; gap: 10px; padding: 8px 10px !important; }
html[data-theme="modern"] .lk-rating-row.lk-rating-mine { background: #e0edf5 !important; border-color: #7099b5 !important; box-shadow: inset 3px 0 0 #205777 !important; }
html[data-theme="modern"] .lk-rating-rank { min-width: 30px !important; text-align: center; font-variant-numeric: tabular-nums; flex-shrink: 0; color: #26485e !important; }
html[data-theme="modern"] .lk-rating-name { font-family: inherit !important; font-size: 13px; font-weight: 650 !important; letter-spacing: -.025em !important; color: #203e55 !important; }
html[data-theme="modern"] .lk-rating-score { font-size: 15px; font-weight: 800 !important; font-variant-numeric: tabular-nums; color: #163d56 !important; white-space: nowrap; }
html[data-theme="modern"] .lk-rating-mine .lk-rating-score { color: #12613f !important; }
html[data-theme="modern"] .lk-rating-stat { border-radius: 8px !important; border-color: #bfceda !important; background: #eff4f8 !important; box-shadow: inset 0 3px 0 #1b4b69; }
html[data-theme="modern"] .lk-rating-stat-school { background: #f7efdf !important; border-color: #d6bf93 !important; box-shadow: inset 0 3px 0 #b38a41; }
html[data-theme="modern"] #rating-school-place { color: #886021; }
html[data-theme="modern"] #rating-age-place { color: #174c6c; }
html[data-theme="modern"] :is(#rating-school-bar,#rating-age-bar) { border-radius: 3px !important; }
html[data-theme="modern"] #rating-school-bar { background: #b48a40 !important; }
html[data-theme="modern"] #rating-age-bar { background: #1d5678 !important; }
html[data-theme="modern"] .lk-rating-more { border-radius: 6px !important; background: #19445f !important; box-shadow: 0 3px 0 #0c2d43,0 5px 10px #102d4320 !important; font: inherit !important; font-weight: 650 !important; }
html[data-theme="modern"] .lk-subscription-balance { background: linear-gradient(110deg,#0c304a,#1b5172) !important; border-top: 3px solid #c89e51; color: #fff; }
html[data-theme="modern"] #subscriptions-content div[style*="border-radius"] { border-radius: 8px !important; }
html[data-theme="modern"] :is(.history-accordion,.history-summary,.roll-call-history-item,.test-summary-item,.trainer-comment-box) { border-radius: 6px; }
html[data-theme="modern"] .history-summary { background: #e8eff5; color: #193e58; }
html[data-theme="modern"] :is(.lk-theme-options,.lk-theme-options button) { border-radius: 6px; }
@media (max-width: 400px) {
  html[data-theme="modern"] .bottom-nav-item { font-size: 9px; letter-spacing: -.02em; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="modern"] { scroll-behavior: auto; }
  html[data-theme="modern"] *, html[data-theme="modern"] *::before, html[data-theme="modern"] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
