/* =====================================================================================================================
   ОФОРМЛЕНИЕ 3.0 «Нефрит и персик» (06.10.2026; утверждено и включено для всех 06.10.2026). Файл загружается только
   в версии 3 (настройка «Оформление платформы», по умолчанию 3; ?skdesign=3), у страницы тогда классы sk-v2 и sk-v3:
   всё оформление 2.0 остаётся, здесь — только добавки и поправки. Выбранное оформление 2.0 (?skdesign=2) этот файл
   не видит.
   Идеи: глубина и воздух; крупные иероглифы-водяные знаки за заголовками (课, 学, 书…); тёмно-нефритовые
   «герои» с персиковыми акцентами; кольцо остатка занятий; лента расписания; крупные цветные значки элементов курса;
   на телефоне — нижняя панель как в приложении.
   ===================================================================================================================== */
.sk-v3 {
  --sk3-jade: #0b5a43; --sk3-jade-deep: #06392b; --sk3-jade-ink: #04261d; --sk3-jade-glow: #2f9a74;
  --sk3-peach: #ffb98a; --sk3-peach-deep: #f39a5c; --sk3-cream: #fbf7f1; --sk3-gold: #e7b65c; --sk3-red: #c8463a;
  --sk3-card: #ffffff; --sk3-line: rgba(6, 57, 43, .08);
  --sk3-r: 1.4rem; --sk3-r-lg: 2rem;
  --sk3-shadow: 0 1px 2px rgba(4, 38, 29, .05), 0 18px 40px -22px rgba(4, 38, 29, .28);
  --sk3-shadow-lift: 0 4px 10px rgba(4, 38, 29, .06), 0 30px 60px -26px rgba(4, 38, 29, .36);
  --sk3-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Фон: молочный, мягкие пятна и едва заметная сетка точек ---------- */
body.sk-v3 {
  background:
    radial-gradient(60rem 30rem at 108% -10%, rgba(255, 185, 138, .34), transparent 60%) no-repeat,
    radial-gradient(52rem 28rem at -14% 104%, rgba(11, 90, 67, .12), transparent 62%) no-repeat,
    radial-gradient(1.2px 1.2px at 1px 1px, rgba(6, 57, 43, .10) 1px, transparent 1.6px) 0 0 / 22px 22px,
    var(--sk3-cream);
  background-attachment: fixed, fixed, scroll, scroll;
  -webkit-font-smoothing: antialiased;
}

/* ---------- Верхняя панель ---------- */
.sk-v3 nav.navbar { background: rgba(255, 253, 249, .78) !important; backdrop-filter: saturate(1.6) blur(14px);
  border-bottom: 1px solid var(--sk3-line); box-shadow: none; transition: box-shadow .25s var(--sk3-ease); }
.sk-v3.sk3-scrolled nav.navbar { box-shadow: 0 10px 30px -20px rgba(4, 38, 29, .45); }
.sk-v3 .primary-navigation .navigation .nav-link { font-weight: 600; letter-spacing: .005em; }
.sk-v3 .primary-navigation .navigation .nav-link.active { background: linear-gradient(135deg, var(--sk3-jade), var(--sk3-jade-glow));
  box-shadow: 0 8px 18px -10px rgba(11, 90, 67, .8); }

/* ---------- Заголовок страницы: крупный иероглиф-водяной знак ---------- */
.sk-v3 #page-header { position: relative; }
.sk-v3 #page-header::after { position: absolute; right: 0; top: -1.2rem; font: 700 7.5rem/1 "Noto Serif SC", "Songti SC", "SimSun", serif;
  color: rgba(11, 90, 67, .07); pointer-events: none; z-index: 0; }
.sk-v3#page-local-shangke-schedule #page-header::after { content: "课"; }
.sk-v3#page-local-shangke-my #page-header::after { content: "学"; }
.sk-v3#page-local-shangke-trial #page-header::after { content: "试"; }
.sk-v3#page-local-shangke-admission #page-header::after { content: "梦"; }
.sk-v3#page-local-shangke-requirements #page-header::after { content: "路"; }
.sk-v3#page-local-shangke-timezone #page-header::after, .sk-v3#page-local-shangke-timezones #page-header::after { content: "时"; }
.sk-v3.path-course-view #page-header::after { content: "书"; }
.sk-v3#page-my-index #page-header::after, .sk-v3#page-my-courses #page-header::after { content: "学"; }
.sk-v3#page-local-shangke-home #page-header { display: none; } /* на главной вместо заголовка — приветствие */

/* ---------- Карточки, кнопки, поля ---------- */
.sk-v3 .shangke-section, .sk-v3 .shangke-board-tile, .sk-v3 .shangke-trial-card, .sk-v3 .card, .sk-v3 .shangke-lesson {
  border-radius: var(--sk3-r); border: 1px solid var(--sk3-line); box-shadow: var(--sk3-shadow); }
.sk-v3 .shangke-lesson, .sk-v3 .shangke-tile, .sk-v3 .shangke-board-tile, .sk-v3 .dashboard-card {
  transition: transform .25s var(--sk3-ease), box-shadow .25s var(--sk3-ease); }
.sk-v3 .shangke-lesson:hover, .sk-v3 .shangke-tile:hover, .sk-v3 .shangke-board-tile:hover, .sk-v3 .dashboard-card:hover {
  transform: translateY(-3px); box-shadow: var(--sk3-shadow-lift); }
.sk-v3 .btn { border-radius: 999px; font-weight: 700; letter-spacing: .01em; }
.sk-v3 .btn-primary { background: linear-gradient(135deg, var(--sk3-peach) 0%, var(--sk3-peach-deep) 100%); border: 0; color: var(--sk3-jade-ink);
  box-shadow: 0 10px 22px -12px rgba(243, 154, 92, .95), inset 0 1px 0 rgba(255, 255, 255, .45); }
.sk-v3 .btn-primary:hover, .sk-v3 .btn-primary:focus { filter: saturate(1.08) brightness(1.03); color: var(--sk3-jade-ink);
  box-shadow: 0 14px 26px -12px rgba(243, 154, 92, 1), inset 0 1px 0 rgba(255, 255, 255, .5); }
.sk-v3 .btn-secondary { background: #fff; border: 1.5px solid rgba(11, 90, 67, .22); color: var(--sk3-jade); }
.sk-v3 .btn-secondary:hover { background: #eef6f1; color: var(--sk3-jade-deep); }
.sk-v3 .form-control, .sk-v3 .form-select, .sk-v3 .custom-select { border-radius: .9rem; min-height: 2.75rem;
  border-color: rgba(6, 57, 43, .16); background-color: #fffefc; }
.sk-v3 .form-control:focus, .sk-v3 .form-select:focus, .sk-v3 .custom-select:focus { border-color: var(--sk3-jade-glow);
  box-shadow: 0 0 0 .25rem rgba(47, 154, 116, .18); }
.sk-v3 .shangke-chip { border-radius: 999px; font-weight: 700; }
.sk-v3 :focus-visible { outline: 3px solid rgba(243, 154, 92, .65); outline-offset: 2px; }

/* ---------- Главная: «герой», слово дня, ближайший урок, цифры ---------- */
.sk3-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1.25rem 2rem; margin: .5rem 0 1.25rem; padding: 2rem 2.25rem; border-radius: var(--sk3-r-lg); color: #fff;
  background:
    radial-gradient(28rem 16rem at 100% 0%, rgba(255, 185, 138, .38), transparent 70%),
    radial-gradient(22rem 14rem at 0% 110%, rgba(47, 154, 116, .55), transparent 70%),
    linear-gradient(135deg, var(--sk3-jade) 0%, var(--sk3-jade-deep) 100%);
  box-shadow: 0 24px 50px -28px rgba(4, 38, 29, .7); }
.sk3-hero::before { content: "你好"; position: absolute; right: 13rem; bottom: -2.4rem; font: 700 9rem/1 "Noto Serif SC", "Songti SC", "SimSun", serif;
  color: rgba(255, 255, 255, .06); pointer-events: none; }
.sk3-hero-text { position: relative; z-index: 1; min-width: 16rem; }
.sk3-hero-title { font: 700 2.25rem/1.15 Jost, Manrope, sans-serif; letter-spacing: -.01em; }
.sk3-hero-sub { margin-top: .5rem; color: rgba(255, 255, 255, .78); font-size: 1rem; }
.sk3-word { position: relative; z-index: 1; min-width: 11rem; padding: 1rem 1.4rem; border-radius: 1.25rem; text-align: center;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22); backdrop-filter: blur(6px); }
.sk3-word-label { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sk3-peach); }
.sk3-word-hanzi { font: 700 2.6rem/1.15 "Noto Serif SC", "Songti SC", "SimSun", serif; margin-top: .2rem; }
.sk3-word-pinyin { font-size: 1rem; color: rgba(255, 255, 255, .9); font-style: italic; }
.sk3-word-meaning { font-size: .92rem; color: rgba(255, 255, 255, .78); }
.sk3-row { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 1.25rem; margin-bottom: 1.5rem; }
.sk3-card { position: relative; padding: 1.4rem 1.6rem; border-radius: var(--sk3-r); background: var(--sk3-card);
  border: 1px solid var(--sk3-line); box-shadow: var(--sk3-shadow); }
.sk3-card-label { font-size: .82rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #9a3f1b; }
.sk3-countdown { text-transform: none; letter-spacing: 0; color: var(--sk3-jade); background: #eaf4ef; border-radius: 999px; padding: .1rem .6rem; }
.sk3-next { border-left: .45rem solid var(--sk3-peach-deep); }
.sk3-next-running { border-left-color: var(--sk3-jade-glow); }
.sk3-next-title { margin-top: .45rem; font: 700 1.45rem/1.25 Jost, Manrope, sans-serif; }
.sk3-next-title a { color: var(--sk3-jade-deep); }
.sk3-next-meta, .sk3-next-date { color: #626c65; margin-top: .25rem; }
.sk3-next-time { margin-top: .35rem; font-size: 1.05rem; }
.sk3-next-action { margin-top: 1rem; }
.sk3-join { font-size: 1.1rem; padding: .7rem 1.8rem; }
.sk3-next-empty { border-left-color: #cfd8d3; }
.sk3-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(6.2rem, 1fr)); align-items: start; gap: 1rem .5rem; }
.sk3-stat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .45rem; }
.sk3-stat-label { min-height: 2.3em; display: flex; align-items: flex-end; justify-content: center; color: #626c65; font-size: .82rem;
  font-weight: 700; line-height: 1.15; }
.sk3-stat-number { display: grid; place-items: center; width: 5.4rem; height: 5.4rem; border-radius: 50%; background: #f1f7f3;
  font: 700 2.2rem/1 Jost, Manrope, sans-serif; color: var(--sk3-jade); }
.sk3-stat-sub { color: #626c65; font-size: .85rem; margin-top: -.15rem; }
.sk3-stat-ring .sk3-stat-number { font-size: 2.1rem;
  background:
    radial-gradient(closest-side, #fff 78%, transparent 80% 100%),
    conic-gradient(var(--sk3-peach-deep) calc(var(--sk3-pct, 0) * 1%), #f1e9e2 0); }
@media (max-width: 991.98px) { .sk3-row { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575.98px) {
  .sk3-hero { padding: 1.4rem 1.25rem; }
  .sk3-hero-title { font-size: 1.7rem; }
  .sk3-hero::before { right: -1rem; font-size: 6.5rem; }
  .sk3-word { width: 100%; }
}

/* Разделы на главной — крупные карточки с цветным кружком-значком */
.sk-v3 .shangke-tile { border-radius: var(--sk3-r); padding: 1.4rem 1.5rem; }
.sk-v3 .shangke-tile-icon { display: inline-grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 1rem; font-size: 1.6rem;
  background: linear-gradient(135deg, #fff3ea, #ffe1cc); box-shadow: inset 0 0 0 1px rgba(243, 154, 92, .25); }
.sk-v3 .shangke-tile-study .shangke-tile-icon, .sk-v3 .shangke-tile-teach .shangke-tile-icon { background: linear-gradient(135deg, #eaf6f0, #cfeadd); }
.sk-v3 .shangke-tile-title { font: 700 1.25rem/1.25 Jost, Manrope, sans-serif; }

/* ---------- Расписание: лента ---------- */
.sk-v3#page-local-shangke-schedule .shangke-lesson { margin-left: 1.6rem; }
.sk-v3#page-local-shangke-schedule .shangke-lesson::before { content: ""; position: absolute; left: -1.25rem; top: 50%; width: .8rem; height: .8rem;
  margin-top: -.4rem; border-radius: 50%; background: #fff; border: 3px solid var(--sk3-peach-deep); box-shadow: 0 0 0 4px rgba(255, 185, 138, .25); }
.sk-v3#page-local-shangke-schedule .shangke-lesson { overflow: visible; }
.sk-v3#page-local-shangke-schedule [role="main"] { position: relative; }
.sk-v3#page-local-shangke-schedule .shangke-day { margin-left: 1.6rem; }
.sk-v3#page-local-shangke-schedule .shangke-now::before { border-color: var(--sk3-jade-glow); animation: sk3-pulse 1.8s ease-out infinite; }
@keyframes sk3-pulse { 0% { box-shadow: 0 0 0 0 rgba(47, 154, 116, .55); } 100% { box-shadow: 0 0 0 14px rgba(47, 154, 116, 0); } }
.sk-v3 .shangke-time { border-radius: 1rem; }
.sk-v3 .shangke-what a { font-weight: 700; font-size: 1.08rem; color: var(--sk3-jade-deep); }

/* ---------- «Мои занятия»: остаток — кольцо ---------- */
.sk-v3 .shangke-balance { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.3rem; align-items: center;
  padding: 1.3rem 1.6rem; min-width: 22rem; background: #fff; border: 1px solid var(--sk3-line); box-shadow: var(--sk3-shadow); }
.sk-v3 .shangke-balance::after { content: none; }
.sk-v3 .shangke-balance-number { grid-row: 1 / span 2; display: grid; place-items: center; width: 6.2rem; height: 6.2rem; border-radius: 50%;
  font: 700 2.5rem/1 Jost, Manrope, sans-serif; color: var(--sk3-jade);
  background: radial-gradient(closest-side, #fff 78%, transparent 80% 100%),
    conic-gradient(var(--sk3-peach-deep) calc(var(--sk3-pct, 100) * 1%), #f1e9e2 0); }
.sk-v3 .shangke-balance-number.shangke-low { color: #b0412e; }
.sk-v3 .shangke-balance-label { align-self: end; font: 700 1.15rem/1.25 Jost, Manrope, sans-serif; color: var(--sk3-jade-deep); }
.sk-v3 .shangke-balance-detail { align-self: start; color: #626c65; margin-top: .2rem; }
@media (max-width: 575.98px) { .sk-v3 .shangke-balance { min-width: 0; width: 100%; } }

/* ---------- Курс: шапка-баннер и крупные значки элементов ---------- */
.sk-v3.path-course-view #page-header { padding: 1.6rem 1.8rem; margin-bottom: 1rem; border-radius: var(--sk3-r-lg); overflow: hidden;
  background:
    radial-gradient(24rem 12rem at 100% 0%, rgba(255, 185, 138, .4), transparent 70%),
    linear-gradient(135deg, var(--sk3-jade) 0%, var(--sk3-jade-deep) 100%);
  box-shadow: 0 24px 50px -30px rgba(4, 38, 29, .7); }
.sk-v3.path-course-view #page-header::after { color: rgba(255, 255, 255, .08); top: auto; bottom: -1.6rem; right: 1.2rem; font-size: 8.5rem; }
.sk-v3.path-course-view #page-header h1, .sk-v3.path-course-view #page-header .h2 { color: #fff; position: relative; z-index: 1; }
.sk-v3.path-course-view #page-header h1::after, .sk-v3.path-course-view #page-header .h2::after { background: linear-gradient(90deg, var(--sk3-peach), var(--sk3-gold)); }
.sk-v3 .activity-item { border-radius: 1.1rem; }
.sk-v3 .activity-item .activityiconcontainer, .sk-v3 .activity-item .activityiconcontainer.smaller {
  width: 3.25rem; height: 3.25rem; min-width: 3.25rem; border-radius: 1rem; box-shadow: inset 0 0 0 1px rgba(6, 57, 43, .06); }
.sk-v3 .activity-item .activityiconcontainer .activityicon, .sk-v3 .activity-item .activityiconcontainer.smaller .activityicon {
  width: 1.65rem; height: 1.65rem; max-width: none; }
.sk-v3 .activity-item .activityname, .sk-v3 .activity-item .instancename { font-weight: 700; font-size: 1.05rem; }
.sk-v3 .activityiconcontainer.assessment { background: linear-gradient(135deg, #ffe7d6, #ffd1b2); }
.sk-v3 .activityiconcontainer.collaboration, .sk-v3 .activityiconcontainer.communication { background: linear-gradient(135deg, #e3f4ec, #c4e7d6); }
.sk-v3 .activityiconcontainer.content, .sk-v3 .activityiconcontainer.interactivecontent { background: linear-gradient(135deg, #e8f1fc, #d2e3f8); }
.sk-v3 .activityiconcontainer.administration, .sk-v3 .activityiconcontainer.other { background: linear-gradient(135deg, #f1ecfb, #e1d8f6); }
.sk-v3 .course-section { border-radius: var(--sk3-r); }
.sk-v3 .course-section .sectionname, .sk-v3 .course-section h3.sectionname { font: 700 1.3rem/1.3 Jost, Manrope, sans-serif; }

/* Карточки курсов в «Личном кабинете» и «Моих курсах»: вместо случайного узора — нефрит и иероглиф */
.sk-v3 .course-card { border-radius: var(--sk3-r); overflow: hidden; transition: transform .25s var(--sk3-ease), box-shadow .25s var(--sk3-ease); }
.sk-v3 .course-card:hover { transform: translateY(-3px); box-shadow: var(--sk3-shadow-lift); }
.sk-v3 .course-card .card-img-top { position: relative; height: 8.5rem; overflow: hidden;
  background-image:
    radial-gradient(14rem 7rem at 100% 0%, rgba(255, 185, 138, .45), transparent 70%),
    linear-gradient(135deg, var(--sk3-jade), var(--sk3-jade-deep)) !important; }
.sk-v3 .course-card:nth-child(3n+2) .card-img-top { background-image:
    radial-gradient(14rem 7rem at 100% 0%, rgba(255, 220, 160, .5), transparent 70%), linear-gradient(135deg, #8a3e52, #592b39) !important; }
.sk-v3 .course-card:nth-child(3n+3) .card-img-top { background-image:
    radial-gradient(14rem 7rem at 100% 0%, rgba(190, 230, 255, .45), transparent 70%), linear-gradient(135deg, #2d6cb0, #1d4a7c) !important; }
.sk-v3 .course-card .card-img-top::after { content: "汉"; position: absolute; right: .8rem; bottom: -1rem;
  font: 700 5.8rem/1 "Noto Serif SC", "Songti SC", "SimSun", serif; color: rgba(255, 255, 255, .17); }
.sk-v3 .course-card .coursename { font: 700 1.08rem/1.3 Jost, Manrope, sans-serif; color: var(--sk3-jade-deep); }

/* ---------- Пробный урок ребёнка: праздник ---------- */
.sk-v3 .shangke-trial-hero { position: relative; overflow: visible; }
.sk-v3 .shangke-trial-hero::before, .sk-v3 .shangke-trial-hero::after { content: ""; position: absolute; top: -.6rem; width: 2.6rem; height: 4.2rem;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 64'%3E%3Cpath d='M20 0v8' stroke='%23b08a3a' stroke-width='2'/%3E%3Crect x='13' y='8' width='14' height='5' rx='2' fill='%23e7b65c'/%3E%3Cellipse cx='20' cy='30' rx='17' ry='18' fill='%23d9473b'/%3E%3Cpath d='M20 12c-9 6-9 30 0 36M20 12c9 6 9 30 0 36' stroke='%23f2a08f' stroke-width='1.6' fill='none'/%3E%3Crect x='13' y='46' width='14' height='5' rx='2' fill='%23e7b65c'/%3E%3Cpath d='M17 51l-2 11M20 51v12M23 51l2 11' stroke='%23e7b65c' stroke-width='1.6'/%3E%3C/svg%3E");
  animation: sk3-swing 3.2s ease-in-out infinite; transform-origin: 50% 0; }
.sk-v3 .shangke-trial-hero::before { left: 1.4rem; }
.sk-v3 .shangke-trial-hero::after { right: 1.4rem; animation-delay: -1.6s; }
@keyframes sk3-swing { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
.sk-v3 .shangke-trial-hello { font-size: 2.6rem; }
.sk-v3 .sk-when-card { border-radius: 1.3rem; box-shadow: inset 0 0 0 1px rgba(6, 57, 43, .06); }
.sk-v3 .sk-when-time { font-size: 2.6rem; }
.sk-v3 .shangke-countdown, .sk-v3 .shangke-timer { border-radius: 1rem; }

/* ---------- Вход ---------- */
.sk-v3#page-login-index .login-split, .sk-v3#page-login-index { position: relative; }
.sk-v3#page-login-index .card, .sk-v3#page-login-index .login-container { border-radius: var(--sk3-r-lg); box-shadow: var(--sk3-shadow-lift); }

/* ---------- Таблицы ---------- */
.sk-v3 :is(.shangke-table, .shangke-section, .shangke-card) table.generaltable thead th, .sk-v3 table.generaltable.shangke-table thead th {
  background: #eef6f1; color: var(--sk3-jade-deep); font-weight: 800; }

/* ---------- Телефон: нижняя панель ---------- */
.sk3-tabbar { display: none; }
@media (max-width: 767.98px) {
  .sk-v3 .sk3-tabbar { position: fixed; left: .6rem; right: .6rem; bottom: calc(.6rem + env(safe-area-inset-bottom)); z-index: 1040;
    display: flex; justify-content: space-around; padding: .35rem .3rem; border-radius: 1.4rem;
    background: rgba(255, 253, 249, .9); backdrop-filter: saturate(1.6) blur(14px); border: 1px solid var(--sk3-line);
    box-shadow: 0 16px 40px -18px rgba(4, 38, 29, .55); }
  .sk-v3 .sk3-tab { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: .1rem; padding: .35rem 0 .3rem;
    border-radius: 1rem; color: #6b7570; font-size: .68rem; font-weight: 700; text-decoration: none; }
  .sk-v3 .sk3-tab svg { width: 1.45rem; height: 1.45rem; fill: currentColor; }
  .sk-v3 .sk3-tab-active { color: var(--sk3-jade); background: #e7f3ed; }
  .sk-v3 #page-footer, .sk-v3 #page { padding-bottom: 5.5rem; }
  .sk-v3 .btn-footer-popover, .sk-v3 [data-region="footer-container-popover"] { bottom: 6.2rem !important; }
}

/* Меньше движения — для тех, кто так настроил устройство */
@media (prefers-reduced-motion: reduce) {
  .sk-v3 *, .sk-v3 *::before, .sk-v3 *::after { animation: none !important; transition: none !important; }
}

/* ---------- Поправки после первого просмотра ---------- */
/* лента расписания: линия через все точки */
.sk-v3#page-local-shangke-schedule .shangke-lesson::after { content: ""; position: absolute; left: calc(-.85rem - 1px); top: -1.6rem;
  bottom: -1.6rem; width: 2px; z-index: -1; background: repeating-linear-gradient(180deg, rgba(243, 154, 92, .45) 0 6px, transparent 6px 11px); }
/* цифры на главной — три в ряд */
.sk3-stats { grid-template-columns: repeat(auto-fit, minmax(5.2rem, 1fr)); }
.sk3-stat-number { width: 4.8rem; height: 4.8rem; font-size: 2rem; }
.sk3-stat-ring .sk3-stat-number { font-size: 1.9rem; }
/* значки элементов курса: квадрат с закруглением, значок по центру */
.sk-v3 .activity-item .activityiconcontainer, .sk-v3 .activity-item .activityiconcontainer.smaller {
  height: 3.25rem !important; width: 3.25rem !important; display: inline-flex !important; align-items: center; justify-content: center; padding: 0; }
.sk3-stats-caption { grid-column: 1 / -1; text-align: center; font-weight: 800; color: var(--sk3-jade-deep); }
/* «Привет» в герое не перекрываем: иероглиф-водяной знак — внизу слева */
.sk3-hero::before { right: auto; left: 1.2rem; bottom: -3.6rem; color: rgba(255, 255, 255, .055); }
/* фонарики на телефоне — меньше и выше, текст героя с отступами */
@media (max-width: 575.98px) {
  .sk-v3 .shangke-trial-hero { padding-left: 2.4rem; padding-right: 2.4rem; }
  .sk-v3 .shangke-trial-hero::before, .sk-v3 .shangke-trial-hero::after { width: 1.7rem; height: 2.8rem; top: -.9rem; }
  .sk-v3 .shangke-trial-hero::before { left: .45rem; }
  .sk-v3 .shangke-trial-hero::after { right: .45rem; }
  .sk-v3 .shangke-trial-hello { font-size: 2rem; }
}
/* ---------- Вход: иероглифы медленно плывут над зелёной половиной (только на широком экране) ---------- */
@media (min-width: 992px) {
  .sk-v3#page-login-index::before, .sk-v3#page-login-index::after { position: fixed; z-index: 0; pointer-events: none;
    font-family: "Noto Serif SC", "Songti SC", "SimSun", serif; font-weight: 700; line-height: 1; }
  .sk-v3#page-login-index::before { content: "学"; left: 4vw; top: 7vh; font-size: 10rem; color: rgba(255, 255, 255, .07);
    animation: sk3-float 9s ease-in-out infinite; }
  .sk-v3#page-login-index::after { content: "中文"; left: 14vw; bottom: 5vh; font-size: 6.5rem; color: rgba(255, 185, 138, .16);
    animation: sk3-float 12s ease-in-out infinite reverse; }
}
@keyframes sk3-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }

/* ---------- Страница видеоурока: вход в урок — нефритовая карточка ---------- */
.sk-v3 #bigbluebuttonbn-room-view { position: relative; overflow: hidden; align-items: center; gap: 1rem; padding: 1.6rem 1.9rem !important;
  border: 0; border-radius: var(--sk3-r-lg); color: #fff;
  background:
    radial-gradient(26rem 13rem at 100% 0%, rgba(255, 185, 138, .42), transparent 70%),
    radial-gradient(20rem 12rem at 0% 120%, rgba(47, 154, 116, .55), transparent 70%),
    linear-gradient(135deg, var(--sk3-jade) 0%, var(--sk3-jade-deep) 100%);
  box-shadow: 0 24px 50px -30px rgba(4, 38, 29, .75); }
.sk-v3 #bigbluebuttonbn-room-view::before { content: "课"; position: absolute; left: 40%; bottom: -3.4rem; pointer-events: none;
  font: 700 9rem/1 "Noto Serif SC", "Songti SC", "SimSun", serif; color: rgba(255, 255, 255, .06); }
.sk-v3 #bigbluebuttonbn-room-view .status-message { position: relative; font: 700 1.5rem/1.3 Jost, Manrope, sans-serif; color: #fff; }
.sk-v3 #bigbluebuttonbn-status-bar, .sk-v3 #bigbluebuttonbn-status-bar .fw-bold { color: rgba(255, 255, 255, .85); }
.sk-v3 #bigbluebuttonbn-room-view .bbb-btn-action { position: relative; font-size: 1.15rem; padding: .8rem 2.1rem; }
.sk-v3 #bigbluebuttonbn-room-view .btn-secondary { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .35); }

/* ---------- Главная: «Мои курсы» — цветные карточки ---------- */
.sk3-h { margin: .5rem 0 .75rem; font: 700 1.35rem/1.3 Jost, Manrope, sans-serif; color: var(--sk3-jade-deep); }
.sk3-courses { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.sk3-course { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 7.5rem;
  padding: 1.1rem 1.3rem; border-radius: var(--sk3-r); color: #fff !important; text-decoration: none !important;
  background: radial-gradient(14rem 7rem at 100% 0%, rgba(255, 185, 138, .45), transparent 70%), linear-gradient(135deg, var(--sk3-jade), var(--sk3-jade-deep));
  box-shadow: 0 18px 36px -24px rgba(4, 38, 29, .8); transition: transform .25s var(--sk3-ease), box-shadow .25s var(--sk3-ease); }
.sk3-course:hover, .sk3-course:focus { transform: translateY(-3px); box-shadow: 0 26px 44px -24px rgba(4, 38, 29, .9); }
.sk3-course-1 { background: radial-gradient(14rem 7rem at 100% 0%, rgba(255, 220, 160, .5), transparent 70%), linear-gradient(135deg, #8a3e52, #592b39); }
.sk3-course-2 { background: radial-gradient(14rem 7rem at 100% 0%, rgba(190, 230, 255, .45), transparent 70%), linear-gradient(135deg, #2d6cb0, #1d4a7c); }
.sk3-course::after { content: "汉"; position: absolute; right: .7rem; bottom: -1.1rem; font: 700 5.4rem/1 "Noto Serif SC", "Songti SC", "SimSun", serif;
  color: rgba(255, 255, 255, .16); pointer-events: none; }
.sk3-course-name { position: relative; z-index: 1; font: 700 1.15rem/1.25 Jost, Manrope, sans-serif; }
.sk3-course-short { position: relative; z-index: 1; margin-top: .2rem; font-size: .85rem; color: rgba(255, 255, 255, .78); }

/* ---------- Главная: «герой» по времени суток ---------- */
.sk3-hero-morning { background:
    radial-gradient(18rem 18rem at 92% 8%, rgba(255, 222, 150, .55), transparent 60%),
    radial-gradient(26rem 14rem at 0% 110%, rgba(255, 185, 138, .38), transparent 70%),
    linear-gradient(135deg, #12775a 0%, #0b5a43 55%, #2f7d5c 100%); }
.sk3-hero-evening, .sk3-hero-night { background:
    radial-gradient(1.6px 1.6px at 18% 22%, rgba(255, 255, 255, .85) 1px, transparent 2px),
    radial-gradient(1.4px 1.4px at 34% 70%, rgba(255, 255, 255, .7) 1px, transparent 2px),
    radial-gradient(1.8px 1.8px at 52% 18%, rgba(255, 255, 255, .8) 1px, transparent 2px),
    radial-gradient(1.3px 1.3px at 63% 62%, rgba(255, 255, 255, .6) 1px, transparent 2px),
    radial-gradient(1.6px 1.6px at 78% 34%, rgba(255, 255, 255, .75) 1px, transparent 2px),
    radial-gradient(1.2px 1.2px at 9% 78%, rgba(255, 255, 255, .6) 1px, transparent 2px),
    radial-gradient(24rem 14rem at 100% 0%, rgba(255, 185, 138, .30), transparent 70%),
    linear-gradient(135deg, #0a4a39 0%, #062b25 100%); }
.sk3-hero-night { background-color: #0b1f33; background-image:
    radial-gradient(1.6px 1.6px at 18% 22%, rgba(255, 255, 255, .85) 1px, transparent 2px),
    radial-gradient(1.4px 1.4px at 34% 70%, rgba(255, 255, 255, .7) 1px, transparent 2px),
    radial-gradient(1.8px 1.8px at 52% 18%, rgba(255, 255, 255, .8) 1px, transparent 2px),
    radial-gradient(1.6px 1.6px at 78% 34%, rgba(255, 255, 255, .75) 1px, transparent 2px),
    radial-gradient(3.2rem 3.2rem at 88% 22%, rgba(255, 244, 214, .9) 45%, rgba(255, 244, 214, .15) 52%, transparent 60%),
    linear-gradient(135deg, #12304f 0%, #081a2c 100%); }

/* слово дня: кнопка «послушать» */
.sk3-say { margin-top: .55rem; padding: .3rem .9rem; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; cursor: pointer;
  background: rgba(255, 255, 255, .14); color: #fff; font-weight: 700; font-size: .85rem; }
.sk3-say:hover, .sk3-say:focus { background: rgba(255, 255, 255, .26); }

/* курс: номера разделов в персиковых кружках («Общее» — без номера) */
.sk-v3 .course-content { counter-reset: sk3sec; }
.sk-v3 .course-content .course-section:not(#section-0) { counter-increment: sk3sec; }
.sk-v3 .course-content .course-section:not(#section-0) .sectionname::before { content: counter(sk3sec); display: inline-grid; place-items: center;
  width: 2.1rem; height: 2.1rem; margin-right: .65rem; border-radius: 50%; vertical-align: middle;
  background: linear-gradient(135deg, var(--sk3-peach), var(--sk3-peach-deep)); color: var(--sk3-jade-ink); font: 700 1rem/1 Jost, Manrope, sans-serif;
  box-shadow: 0 6px 14px -8px rgba(243, 154, 92, .9); }

/* главная: разделы — компактные карточки «значок · название · пояснение» */
.sk-v3 .shangke-tiles { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; }
.sk-v3 .shangke-tile { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; align-items: center; padding: 1rem 2.6rem 1rem 1.1rem; }
.sk-v3 .shangke-tile::before { display: none; }
.sk-v3 .shangke-tile::after { top: 50%; margin-top: -.8rem; }
.sk-v3 .shangke-tile .shangke-tile-icon { grid-row: 1 / span 3; margin: 0; }
.sk-v3 .shangke-tile .shangke-tile-title, .sk-v3 .shangke-tile .shangke-tile-text, .sk-v3 .shangke-tile .shangke-chip { grid-column: 2; }
.sk-v3 .shangke-tile .shangke-tile-title { font-size: 1.15rem; }
.sk-v3 .shangke-tile .shangke-tile-text { font-size: .92rem; }
.sk-v3 .activity-item .activityiconcontainer, .sk-v3 .activity-item .activityiconcontainer.smaller { max-height: none !important; max-width: none !important; }

/* =====================================================================================================================
   ВСЕ РАЗДЕЛЫ (06.10.2026, после проверки всех страниц — docs/оформление-3/audit.sh). Раньше особые черты 3.0 были
   только у главных страниц; теперь у каждого раздела: иероглиф-водяной знак за заголовком, формы на белой карточке,
   таблицы списков без вертикальных линий, вкладки разделов — «таблетки», третьи кнопки — сплошные (в 2.0 — пунктир),
   выбранные значения в полях поиска — мягкие «таблетки».
   ===================================================================================================================== */
/* водяные знаки: семейства страниц по началу id — 试 у всех страниц пробных уроков, 梦 — у всех страниц поступления */
.sk-v3[id^="page-local-shangke-trial"] #page-header::after { content: "试"; }
.sk-v3[id^="page-local-shangke-admission"] #page-header::after { content: "梦"; }
.sk-v3#page-local-shangke-admission_doc #page-header::after { content: "文"; }     /* документ */
.sk-v3#page-admin-local-shangke-payments #page-header::after { content: "付"; }   /* оплата */
.sk-v3#page-admin-local-shangke-balances #page-header::after { content: "余"; }   /* остаток */
.sk-v3#page-admin-local-shangke-import #page-header::after { content: "入"; }     /* перенос */
.sk-v3#page-local-shangke-join #page-header::after { content: "等"; }             /* ожидание */
.sk-v3[id^="page-mod-assign-"] #page-header::after { content: "作"; }              /* домашнее задание */
.sk-v3[id^="page-mod-quiz-"] #page-header::after { content: "考"; }                /* тест */
.sk-v3[id^="page-mod-attendance-"] #page-header::after { content: "到"; }          /* «присутствую» */
.sk-v3[id^="page-mod-bigbluebuttonbn-"] #page-header::after { content: "课"; }     /* видеоурок */
.sk-v3[id^="page-grade-report-"] #page-header::after { content: "分"; }            /* оценки */
.sk-v3[id^="page-calendar-"] #page-header::after { content: "历"; }                /* календарь */
.sk-v3[id^="page-message-"] #page-header::after { content: "信"; }                 /* сообщения */
.sk-v3:is(#page-user-profile, #page-user-edit, #page-user-preferences, #page-user-language, #page-user-forum,
  #page-admin-user, #page-admin-user-editadvanced) #page-header::after { content: "人"; }
.sk-v3#page-user-contactsitesupport #page-header::after { content: "助"; }         /* поддержка */

/* формы страницы — на белой карточке (только форма самой страницы, не вложенные в карточки разделов) */
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"], #page-user-edit, #page-admin-user-editadvanced,
  #page-user-contactsitesupport, #page-login-forgot_password) [role="main"] > form.mform {
  padding: 1.5rem 1.7rem 1.2rem; background: #fff; border: 1px solid var(--sk3-line); border-radius: var(--sk3-r); box-shadow: var(--sk3-shadow); }

/* таблицы разделов школы: без вертикальных линий, строки с подсветкой */
/* с #region-main: правило темы для простых таблиц (table:not(.table):not(…) td — четыре :not) иначе сильнее */
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) #region-main table.generaltable :is(th, td) { border-left: 0; border-right: 0; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) table.generaltable > tbody > tr:hover > td { background: #fff6ec; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) table.generaltable > thead > tr > th { font-weight: 800; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) table.generaltable td:first-child a { font-weight: 700; }

/* вкладки разделов школы («Ближайшие · Сегодня…», «В работе · Документы на проверке…») — «таблетки» */
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) [role="main"] .nav-tabs { gap: .45rem; flex-wrap: wrap;
  margin-bottom: 1rem; border-bottom: 0; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) [role="main"] .nav-tabs .nav-link { border: 1px solid var(--sk3-line);
  border-radius: 999px; background: #fff; color: var(--sk3-jade); font-weight: 700; padding: .45rem 1.05rem; margin: 0; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) [role="main"] .nav-tabs .nav-link:hover { background: #eef6f1; }
.sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) [role="main"] .nav-tabs .nav-link.active {
  background: linear-gradient(135deg, var(--sk3-jade), var(--sk3-jade-glow)); color: #fff; border-color: transparent;
  box-shadow: 0 8px 18px -10px rgba(11, 90, 67, .8); }

/* третьи кнопки («Выгрузить в Excel», «← К досье», «Не требуется») — сплошная рамка вместо пунктира 2.0;
   «Нужно исправить» — тёплая и спокойная, чтобы не спорить с главной кнопкой «Принять» */
.sk-v3 .btn-outline-secondary { border: 1.5px solid rgba(11, 90, 67, .2); background: #fff; color: var(--sk3-jade); }
.sk-v3 .btn-outline-secondary:hover, .sk-v3 .btn-outline-secondary:focus { background: #eef6f1; color: var(--sk3-jade-deep);
  border-color: rgba(11, 90, 67, .3); }
.sk-v3 .btn-warning { background: #fff4ec; color: #9a3f1b; border: 1.5px solid #f5c3a5; box-shadow: none; }
.sk-v3 .btn-warning:hover, .sk-v3 .btn-warning:focus { background: #fde7d9; color: #7f3214; border-color: #ef9f74; }

/* выбранные значения в полях с поиском (ученик, вуз…) — «таблетки» без тяжёлой рамки */
.sk-v3 .form-autocomplete-selection [role="option"] { border: 1px solid rgba(11, 90, 67, .18); border-radius: 999px;
  background: #eef6f1 !important; color: var(--sk3-jade-deep) !important; font-weight: 700; padding: .45rem .85rem; }
.sk-v3 .form-autocomplete-selection [role="option"][data-active-selection="true"] { box-shadow: 0 0 0 3px rgba(47, 154, 116, .22); }

/* телефон: таблицы списков школы прокручиваются по горизонтали, а не сжимаются по слову в строке */
@media (max-width: 767.98px) {
  .sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) table.generaltable { display: block; max-width: 100%; overflow-x: auto; }
  .sk-v3:is([id^="page-local-shangke-"], [id^="page-admin-local-shangke-"]) table.generaltable :is(th, td) { min-width: 6.5rem; }
}

/* записи на странице видеоурока (таблица модуля, 1195 точек): была шире окна во всех оформлениях — теперь в ширину
   страницы с прокруткой внутри; шапка и кнопки листания — в цветах 3.0 */
.sk-v3 .yui3-datatable { max-width: 100%; overflow-x: auto; }
.sk-v3 .yui3-datatable-table { border: 1px solid var(--sk3-line); border-radius: var(--sk3-r); border-collapse: separate; border-spacing: 0;
  overflow: hidden; background: #fff; }
.sk-v3 .yui3-datatable-columns th, .sk-v3 .yui3-datatable-header { background: #eef6f1 !important; color: var(--sk3-jade-deep);
  font-weight: 800; border-color: transparent !important; }
.sk-v3 .yui3-datatable-paginator { background: transparent !important; border: 0 !important; }
.sk-v3 .yui3-datatable-paginator :is(button, select, input) { border-radius: 999px; border: 1px solid rgba(11, 90, 67, .2);
  background: #fff; color: var(--sk3-jade); padding: .2rem .7rem; box-shadow: none; }

/* ——— Уроки школы (08.10.2026): водяные знаки 课 (уроки) и 班 (ученики и группы), отметки — «таблетки» оформления 3.0 ——— */
.sk-v3[id^="page-local-shangke-lesson"] #page-header::after { content: "课"; }
.sk-v3[id^="page-local-shangke-group"] #page-header::after { content: "班"; }
.sk-v3 .shangke-mark { border-color: var(--sk3-line); }
.sk-v3 .shangke-mark:has(input:checked) { background: linear-gradient(135deg, #e3f3ea, #f2faf5); border-color: var(--sk3-jade-glow);
  box-shadow: 0 6px 14px -10px rgba(11, 90, 67, .7); }
.sk-v3 .shangke-weeklabel { color: var(--sk3-jade); }
.sk-v3 .shangke-history li { border-left-color: var(--sk3-jade-glow); border-radius: 0 .7rem .7rem 0; }
