/* УчуРулить · светлая система оформления. Этот файл общий для всех кабинетов. */
:root {
  color-scheme:light; --font:"Segoe UI",system-ui,-apple-system,sans-serif;
  --c-primary:#007f9f; --c-primary-dark:#006d88; --c-primary-light:#e7f5fb; --c-accent:#ee8b32;
  --c-bg:#f5f8fc; --c-surface:#fff; --c-surface-2:#f7fafd; --c-text:#24364a;
  --c-text-muted:#61758b; --c-text-soft:#6d8297; --c-border:#e1eaf3; --c-border-strong:#bfd2e3;
  --c-success:#16845c; --c-warning:#b86a13; --sidebar-w:256px; --topbar-h:72px;
  --radius-s:8px; --radius-m:12px; --radius-l:16px;
  --shadow-s:0 2px 6px #193e6410; --shadow-m:0 6px 24px #193e6410; --shadow-l:0 20px 60px #193e6424;
  --ink:var(--c-text); --muted:var(--c-text-muted); --cyan:var(--c-primary); --line:var(--c-border); --paper:var(--c-bg);
}
body { background:var(--c-bg); color:var(--c-text); font:14px/1.5 var(--font); }
body.accountant-cabinet { --topbar-h:72px; --sidebar-w:256px; }
body [hidden] { display:none!important; }
body :is(button,input,select,textarea) { font-family:var(--font); }
body :is(h1,h2,h3) { color:var(--c-text); letter-spacing:-.025em; }
body :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #0085a566; outline-offset:3px; }
body :is(input[type=checkbox],input[type=radio]) { accent-color:var(--c-primary); }
body ::selection { background:#d3ecfb; color:#163e61; }

/* Общая оболочка CRM и кабинетов сотрудников. */
body .topbar { left:var(--sidebar-w); height:var(--topbar-h); padding:0 24px; gap:16px; background:#fff; color:var(--c-text-muted); border:0; border-bottom:1px solid var(--c-border); box-shadow:none; }
body .topbar__brand { width:auto; padding:0; gap:12px; }
body .topbar__logo { color:var(--c-text); font-size:17px; font-weight:700; line-height:1.2; gap:8px; }
body .topbar__logo svg { width:25px; height:25px; }
body .topbar__logo img { width:26px; height:26px; }
body .topbar__logo span { white-space:nowrap; }
body .topbar a,body .topbar button { color:var(--c-text-muted); }
body .topbar__burger { width:34px; height:36px; border:1px solid var(--c-border); border-radius:8px; color:var(--c-text-muted); }
body .topbar__search { height:40px; max-width:560px; border:1px solid var(--c-border); border-radius:9px; background:var(--c-surface-2); overflow:hidden; }
body .topbar__search input { background:transparent; color:var(--c-text); border-radius:0; padding:0 14px; font-size:13px; }
body .topbar__search input::placeholder { color:var(--c-text-muted); }
body .topbar__search button { height:38px; width:30px; background:transparent; color:var(--c-text-muted); }
body .topbar__search input:focus { box-shadow:none; }
body .topbar__search:focus-within { border-color:var(--c-primary); box-shadow:0 0 0 3px var(--c-primary-light); }
body .topbar__actions { gap:7px; }
body .topbar .icon-btn { width:36px; height:36px; border-radius:8px; color:var(--c-text-muted); }
body .topbar .icon-btn:hover,body .topbar__link:hover,body .topbar__burger:hover { background:var(--c-primary-light); color:var(--c-primary); }
body .topbar__link { font-size:12px; font-weight:600; gap:5px; padding:0 7px; }
body .topbar__balance { color:var(--c-text); width:135px; font-size:12px; line-height:1.4; }
body .topbar__balance small { color:var(--c-text-muted); }
body .sidebar { inset:0 auto 0 0; background:#ecf5fc; color:var(--c-text); border-right:1px solid #dbe8f3; z-index:70; }
.workspace-brand { display:flex; flex:none; align-items:center; gap:10px; min-height:80px; padding:20px 22px; font-size:23px; font-weight:750; letter-spacing:-.8px; color:#153d68; }
.workspace-brand:hover { color:#153d68; text-decoration:none; }
.workspace-brand svg { width:29px; height:29px; color:#009bbe; flex:none; }
.workspace-brand b { color:#0093b6; }
body .sidebar__menu-search { margin:0 16px 14px; min-height:38px; flex:0 0 38px; border:1px solid #d5e4f0; border-radius:8px; background:#ffffffb3; }
body .sidebar__menu-search input { color:var(--c-text); font-size:12px; font-style:normal; padding:9px 10px; }
body .sidebar__menu-search input::placeholder { color:var(--c-text-muted); }
body .sidebar__menu-search span { color:var(--c-text-muted); padding:2px 9px; }
body .sidebar__nav { padding:0 12px 18px; flex:1; min-height:0; }
body .sidebar__nav::-webkit-scrollbar-thumb { background:#c5d8e7; border-radius:8px; }
body .nav__group { margin:3px 0; }
body .nav__group-head,body .nav__single { padding:11px 12px; min-height:43px; border-radius:9px; font-size:13px; font-weight:500; color:var(--c-text); gap:11px; }
body :is(.nav__group-head,.nav__single) .ico { width:19px; height:19px; stroke:currentColor; color:#51718f; flex:none; }
body .nav__group-head .arrow { color:#6f8ca6; }
body .nav__group.is-open > .nav__group-head { background:#dfeef9; color:#1c6383; }
body .nav__group.is-open > .nav__group-head .ico { stroke:currentColor; }
body .nav__list { padding:3px 0 5px; }
body .nav__list a { padding:9px 12px 9px 42px; border-radius:7px; min-height:35px; font-size:12.5px; color:#50677e; line-height:1.5; }
body .nav__single:hover,body .nav__list a:hover,body .nav__group-head:hover { background:#ffffffb0; color:var(--c-primary); text-decoration:none; }
body .nav__list a.is-active,body .nav__single.is-active { background:#fff; color:#007fa3; font-weight:650; box-shadow:inset 3px 0 #009bbe,0 2px 5px #193e6406; }
body .nav__count { background:#dceef8; color:#17688a; }
body .sidebar__profile { order:5; flex:0 0 auto; height:auto; min-height:85px; flex-direction:row; gap:10px; text-align:left; background:transparent; color:var(--c-text); border:0; border-top:1px solid #d9e7f2; border-radius:0; padding:16px 18px; }
body .sidebar__profile .avatar { width:35px; height:35px; background:#d9edf9; }
body .sidebar__profile .user-chip__name { color:var(--c-text); text-shadow:none; font-size:12px; line-height:1.4; }
body .sidebar__profile .user-chip__login { color:var(--c-text-muted); text-shadow:none; font-size:11px; }
body .sidebar__profile .user-chip__org { color:var(--c-text-muted); text-shadow:none; font-size:10px; }
body .profile-chevron { position:static; margin-left:auto; color:var(--c-text-muted); }
body .sidebar__foot { order:4; background:transparent; padding:12px 20px; border-top:1px solid #d9e7f2; }
body .sidebar__support { color:#526e86; font-size:11px; line-height:1.5; }
body .sidebar__support svg { width:30px; height:30px; padding:6px; background:#dceefa; color:var(--c-primary); border-radius:8px; }
body .profile-menu { border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-l); overflow:hidden; color:var(--c-text); }
body .profile-menu button { color:var(--c-text); font-size:13px; }
body .profile-menu button:hover { background:var(--c-primary-light); }
body .main { padding-top:var(--topbar-h); }
body .container,body .container[data-section=dashboard] { max-width:1800px; padding:28px; }
body.sidebar-collapsed .topbar { left:0; }
body .breadcrumbs { font-size:12px; color:var(--c-text-muted); margin-bottom:12px; }
body .page-head { margin:0 0 22px; gap:16px; }
body .page-head__title { font-size:27px; font-weight:700; color:var(--c-text); line-height:1.3; }
body .page-head__sub { margin-top:6px; color:var(--c-text-muted); font-size:13px; }
body :is(.card,.stat) { border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); background:#fff; }
body .card__head { padding:20px 22px; border-bottom:1px solid var(--c-border); }
body .card__title { font-size:17px; font-weight:650; }
body .card__body { padding:20px 22px; }
body .btn { min-height:38px; padding:8px 14px; border-radius:8px; font-weight:600; font-size:13px; text-transform:none; box-shadow:none; }
body .btn--primary,body .profile-overlay .btn--primary { background:var(--c-primary); border-color:var(--c-primary); color:#fff; box-shadow:none; }
body .btn--primary:hover { background:var(--c-primary-dark); border-color:var(--c-primary-dark); }
body .btn--ghost { color:var(--c-text-muted); }
body .btn--outline { background:#fff; color:var(--c-primary); border-color:#a6d5e2; }
body :is(.record-page,.report-page) { min-height:calc(100dvh - var(--topbar-h) - 56px); border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); }
body :is(.record-page,.report-page,.reference-lists) > .page-head { padding:20px 22px; margin:0; min-height:74px; background:#fff; color:var(--c-text); border-bottom:1px solid var(--c-border); }
body :is(.record-page,.report-page,.reference-lists) .page-head__title { color:var(--c-text); font-size:23px; font-weight:700; }
body :is(.record-page,.report-page,.reference-lists) .page-head__sub { color:var(--c-text-muted); }
body :is(.record-commandbar,.report-commandbar) { padding:12px 18px; gap:9px; border-color:var(--c-border); background:#fff; }
body :is(.record-commandbar,.report-commandbar) .btn { border-radius:8px; text-transform:none; font-size:12px; min-height:36px; padding:7px 12px; }
body .record-menu summary { font-size:12px; text-transform:none; color:var(--c-text-muted); border-radius:7px; }
body .record-menu > div,body .desk-actions > div { border:1px solid var(--c-border); border-radius:10px; padding:6px; box-shadow:var(--shadow-m); }
body .record-menu button { border-radius:6px; font-size:13px; }
body .record-menu button:hover { background:var(--c-primary-light); }
body .record-toolbar { padding:12px 18px; background:var(--c-surface-2); border-color:var(--c-border); }
body :is(.record-toolbar,.report-commandbar,.report-chart,.toolbar) :is(input,select),body .form-grid :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { min-height:38px; border:1px solid var(--c-border-strong); border-radius:8px; padding:8px 11px; color:var(--c-text); background:#fff; }
body :is(.record-page,.report-page,.reference-lists) table thead th,body table.tbl thead th { background:#f4f8fd; color:#60758b; border-color:var(--c-border); font-size:12px; font-weight:600; text-transform:none; letter-spacing:0; padding:13px 12px; }
body .main :is(table.tbl,.record-table) tbody td { padding:13px 12px; font-size:13px; color:var(--c-text); border-color:#edf2f7; }
body .record-table :is(th,td) { border-right:0; }
body .main table tbody tr:hover > td { background:#f5faff; }
body .record-table tr.is-selected > td { background:#e7f4fb; }
body .record-column-filters th { padding:7px 10px; border-bottom-color:#d6e8f4; }
body .record-column-filters :is(input,select) { height:34px; border-radius:6px; border:1px solid var(--c-border); color:var(--c-text); padding:5px 8px; }
body .record-footer { padding:12px 18px; background:#fafcfe; color:var(--c-text-muted); border-color:var(--c-border); font-size:12px; }
body .badge { border-radius:6px; padding:4px 8px; font-weight:500; font-size:11px; }
body .reference-lists { height:calc(100dvh - var(--topbar-h) - 56px); }
body .reference-lists > .page-head { border-radius:12px 12px 0 0; }
body .reference-lists .card { border-radius:0 0 12px 12px; box-shadow:var(--shadow-s); }
body .overlay { background:#1b354e66; backdrop-filter:blur(3px); }
body :is(.modal,.record-overlay .modal,.profile-overlay .modal) { border:1px solid var(--c-border); border-radius:16px; box-shadow:var(--shadow-l); color:var(--c-text); }
body :is(.record-overlay,.profile-overlay) .modal__head { padding:22px 26px; justify-content:flex-start; border-bottom:1px solid var(--c-border); }
body :is(.record-overlay,.profile-overlay) .modal__head h3 { font-size:21px; font-weight:650; text-align:left; }
body :is(.record-overlay,.profile-overlay) .modal__head p { text-align:left; }
body :is(.record-overlay,.profile-overlay) .modal__body { padding:22px; }
body :is(.record-overlay,.profile-overlay) .modal__foot { padding:16px 22px; border-top:1px solid var(--c-border); background:#fafcfe; }
body .record-overlay .field > label,body .profile-field { color:var(--c-text-muted); font-size:13px; }
body .record-overlay .field :is(input:not([type=checkbox]):not([type=radio]),select:not([multiple]),textarea),body .profile-field :is(input,select) { padding:9px 11px; border:1px solid var(--c-border-strong); border-radius:8px; font-size:14px; color:var(--c-text); box-shadow:none; }
body .record-overlay .field :is(input,select,textarea):focus { border-color:var(--c-primary); box-shadow:0 0 0 3px var(--c-primary-light); }
body :is(.record-tabs,.profile-tabs) button { text-transform:none; color:var(--c-text-muted); }
body :is(.record-tabs,.profile-tabs) button[aria-selected=true] { color:var(--c-primary); background:var(--c-primary-light); border-bottom-color:var(--c-primary); }
body .record-overlay .modal__foot .btn,body .profile-overlay #modalCancel { border-radius:8px; text-transform:none; }
body .footer { color:var(--c-text-muted); padding:18px 28px; font-size:11px; }

/* Вход и обучение. */
body .login-screen,body .login { background:radial-gradient(ellipse at 20% 0,#e0f3fb,transparent 55%),#f5f8fc; }
body .login-card { border-radius:20px; border:1px solid var(--c-border); box-shadow:0 16px 60px #193e6412; color:var(--c-text); }
body .login-brand { font-size:26px; letter-spacing:-.8px; color:#153d68; margin-bottom:26px; }
body .login-brand span { color:#009bbe; }
body .login-card h1 { font-size:25px; font-weight:700; }
body .login-card :is(input,select) { border-color:var(--c-border-strong); border-radius:9px; }
body .login-card button { background:var(--c-primary); border-radius:9px; min-height:42px; }
body .login-card button:hover { background:var(--c-primary-dark); }
body .login-card .login-forgot { color:var(--c-primary); background:transparent; }
body .login-card .login-social button { color:var(--c-text); background:#fff; border-color:var(--c-border); }
body .login-card .login-social button:hover { background:var(--c-surface-2); }
body.school-training { background:var(--c-bg); color:var(--c-text); }
body.school-training > aside { background:#ecf5fc; color:var(--c-text); border-right:1px solid var(--c-border); }
body.school-training > aside :is(a,button) { color:var(--c-text); border-radius:8px; }
body.school-training > aside :is(a,button):hover { background:#fff; color:var(--c-primary); }
body :is(.tr-card,.tr-panel) { border-color:var(--c-border); border-radius:12px; }

/* Отдельная оболочка ученика. */
body.student-app { font:14px/1.5 var(--font); background:var(--c-bg); color:var(--c-text); --ink:#24364a; --muted:#61758b; --cyan:#0085a5; --line:#e1eaf3; --paper:#f5f8fc; }
body.student-app .top { height:72px; padding:0 24px; background:#fff; color:var(--c-text); border-bottom:1px solid var(--c-border); }
body.student-app .brand { font-size:21px; font-weight:750; letter-spacing:-.6px; color:#153d68; }
body.student-app .brand b { color:#009bbe; font-size:28px; }
body.student-app .top button { color:var(--c-text-muted); border-radius:8px; }
body.student-app .side { top:72px; width:256px; padding:0 12px 20px; background:#ecf5fc; border-right:1px solid #dbe8f3; color:var(--c-text); }
body.student-app .student-person { padding:22px 12px; background:transparent; text-align:left; border-bottom:1px solid #dbe8f3; margin-bottom:16px; }
body.student-app .student-person strong { color:var(--c-text); font-size:14px; }
body.student-app .student-person small { color:var(--c-text-muted); font-size:12px; }
body.student-app .side .nav-group-title { margin:18px 12px 8px; color:#728aa1; font-size:10px; letter-spacing:.09em; }
body.student-app .side :is(a,summary) { padding:10px 12px; border-radius:8px; color:#405e79; font-size:13px; gap:10px; }
body.student-app .side a .student-nav-label { font-size:13px; max-width:none; }
body.student-app .student-nav-icon { width:21px; height:21px; }
body.student-app .side a:hover { background:#ffffffb0; color:var(--c-primary); }
body.student-app .side a[aria-current=page] { background:white; color:var(--c-primary); box-shadow:inset 3px 0 #009bbe; font-weight:650; }
body.student-app main { margin:72px 0 0 256px; padding:28px; }
body.student-app .workspace { background:transparent; border:0; box-shadow:none; min-height:calc(100dvh - 128px); }
body.student-app .page-head { padding:0 0 20px; border:0; margin:0; }
body.student-app h1 { font-size:27px; font-weight:700; }
body.student-app h2 { font-size:18px; font-weight:650; }
body.student-app .content { padding:24px; border:1px solid var(--c-border); border-radius:14px; background:#fff; box-shadow:var(--shadow-s); }
body.student-app :is(button,.button) { border-radius:8px; min-height:38px; padding:8px 14px; font-size:13px; font-weight:550; border-color:var(--c-border-strong); color:var(--c-text); }
body.student-app .primary { color:#fff; background:var(--c-primary); border-color:var(--c-primary); }
body.student-app .primary:hover { color:#fff; background:var(--c-primary-dark); }
body.student-app .tile { border:1px solid var(--c-border); border-radius:12px; padding:22px; background:#f3faff; }
body.student-app .tile.dark { background:#eaf6fc; color:var(--c-text); border-color:#d1e7f3; }
body.student-app .tile strong { color:var(--c-text); font-size:20px; font-weight:650; }
body.student-app :is(.finance>div,.student-group-fields>div,.student-learning-stats>div) { border-color:var(--c-border); background:#fff; border-radius:12px; }
body.student-app :is(input,select,textarea) { border-color:var(--c-border-strong); border-radius:8px; min-height:38px; }
body.student-app :is(th,td) { padding:13px 12px; font-size:13px; border-color:var(--c-border); }
body.student-app th { background:#f4f8fd; color:var(--c-text-muted); font-size:12px; }
body.student-app .tag { background:#e7f5fb; color:#00728e; border-radius:6px; }
body.student-app dialog { border:1px solid var(--c-border); border-radius:16px; box-shadow:var(--shadow-l); }
body.student-app .empty { border-radius:10px; color:var(--c-text-muted); background:#fafcfe; }
body.student-app .mobile-tabs { background:#fff; border-color:var(--c-border); }
body.student-app .mobile-tabs a { color:var(--c-text-muted); }
body.student-app .mobile-tabs a[aria-current=page] { color:var(--c-primary); }

.student-bottom-nav { display:none; }
.student-bottom-nav svg { width:22px; height:22px; display:block; }
body.student-app .brand img { flex:none; }
body.student-app .brand span b { font-size:inherit; font-weight:inherit; }
.student-home-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:20px; }
.student-next,.student-home-contacts { border:1px solid var(--c-border); border-radius:12px; padding:24px; }
.student-next { background:#f0f9fd; border-color:#d7eaf5; }
.student-home-label { font-size:11px; color:var(--c-primary); font-weight:650; margin-bottom:15px; }
body.student-app .student-next h2 { font-size:24px; margin:0 0 8px; }
.student-next-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.student-home-contacts { display:flex; flex-direction:column; background:#fff; }
.student-home-contacts small { font-size:11px; color:var(--c-text-muted); margin:6px 0; }
.student-home-contacts strong { font-size:14px; font-weight:600; }
.student-home-contacts > span { font-size:12px; color:var(--c-text-muted); margin:3px 0 12px; }
.student-feature-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:22px; }
.student-feature-grid a { position:relative; padding:18px; border:1px solid var(--c-border); border-radius:11px; background:#fff; color:var(--c-text); transition:border-color .18s,box-shadow .18s; }
.student-feature-grid a:hover { border-color:#a9d5e7; box-shadow:var(--shadow-s); text-decoration:none; }
.student-feature-icon { display:grid; place-items:center; width:34px; height:34px; background:#eaf6fc; color:#0085a5; border-radius:8px; font-size:22px; margin-bottom:12px; }
.student-feature-grid strong { display:block; font-size:13px; }
.student-feature-grid small { display:block; color:var(--c-text-muted); font-size:11px; margin-top:5px; }
.student-feature-arrow { position:absolute; top:21px; right:18px; color:#7697b0; font-size:20px; }
body .workspace-title { background:#fff; color:var(--c-text); border-bottom:1px solid var(--c-border); }
body .workspace-title h2 { color:var(--c-text); font-family:var(--font); font-weight:650; }
body .workspace-list { background:#f5f9fd; border-color:var(--c-border); }
body .workspace-list :is(.is-selected,.is-active) { background:#e4f2fb; color:var(--c-primary); }
body.instructor-cabinet .page-head { padding:20px 22px; margin:0; background:#fff; color:var(--c-text); border-bottom:1px solid var(--c-border); border-radius:12px 12px 0 0; }
body.instructor-cabinet .page-head__title { color:var(--c-text); font-size:23px; font-weight:700; }
body .instructor-panel { border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); }
body .instructor-toolbar { padding:12px 16px; background:#fafcfe; gap:9px; border-color:var(--c-border); }
body .instructor-toolbar .btn { border-radius:8px; text-transform:none; font-size:12px; min-height:36px; }
body .instructor-toolbar :is(input,select) { min-height:36px; border:1px solid var(--c-border-strong); border-radius:8px; color:var(--c-text); padding:6px 9px; }
body .instructor-day-head { background:#f4f8fd; color:var(--c-text-muted); border-color:var(--c-border); font-family:var(--font); }
body .instructor-day-head.today { background:#e7f5fb; color:var(--c-primary); }
body .instructor-event { border-radius:6px; font-family:var(--font); }
body .instructor-form :is(input,select,textarea) { border-radius:8px; border-color:var(--c-border-strong); color:var(--c-text); }
body .instructor-count { color:var(--c-text-muted); background:#fafcfe; border-color:var(--c-border); }
body .acc-intro { background:#edf7fd; border-color:#d8e9f5; border-radius:12px; }
body .acc-intro h2 { font-weight:650; }
@media(max-width:1100px) { .student-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
  .student-home-grid { grid-template-columns:1fr; gap:14px; }
  body.student-app .content:has(.student-home-grid) { display:flex; flex-direction:column; }
  body.student-app .content:has(.student-home-grid) .welcome { order:0; }
  body.student-app .content:has(.student-home-grid) .student-home-grid { display:contents; }
  body.student-app .content:has(.student-home-grid) .student-next { order:1; }
  body.student-app .content:has(.student-home-grid) .student-feature-grid { order:2; }
  body.student-app .content:has(.student-home-grid) .section { order:3; }
  body.student-app .content:has(.student-home-grid) .student-home-contacts { order:4; margin-top:20px; }
  .student-next,.student-home-contacts { padding:20px; }
  .student-home-contacts { order:2; }
  body.student-app .student-next h2 { font-size:22px; }
  .student-next-actions { flex-direction:column; }
  .student-next-actions .button { width:100%; }
  body.student-app:not(.mobile-app) main { padding-bottom:100px; }
  body.student-app .student-bottom-nav { display:flex; align-items:center; justify-content:space-around; position:fixed; bottom:0; inset-inline:0; z-index:12; background:#fff; border-top:1px solid var(--c-border); padding:8px 8px calc(8px + env(safe-area-inset-bottom)); box-shadow:0 -4px 20px #193e6408; }
  .student-bottom-nav a { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:48px; color:var(--c-text-muted); font-size:10px; text-decoration:none; }
  .student-bottom-nav a > span { font-size:22px; line-height:1.2; }
  .student-bottom-nav a[aria-current=page] { color:var(--c-primary); font-weight:650; }
  .student-feature-grid { gap:10px; }
  .student-feature-grid a { padding:15px; }
}

/* Отдельная панель владельца. Копия файла подключается последней в её HTML. */
body #workspace > aside { background:#ecf5fc; color:var(--c-text); border-right:1px solid #dbe8f3; padding:24px 16px; overflow-y:auto; }
body #workspace .brand { color:#153d68; padding:0 6px 20px; font-size:22px; font-weight:750; letter-spacing:-.6px; }
body #workspace .brand > div > span { color:var(--c-text-muted); font-size:11px; letter-spacing:0; }
body .brand-mark { background:#e7f5fb; color:#0085a5; border-radius:10px; }
body .brand-mark img { display:block; width:28px; height:28px; }
body #workspace .nav-label { color:#738aa1; font-size:10px; letter-spacing:.12em; margin:20px 12px 8px; }
body #workspace > aside > .nav { display:grid; grid-template-columns:20px minmax(0,1fr) auto; align-items:center; gap:10px; flex-shrink:0; padding:10px 12px; color:#405e79; font-size:13px; font-weight:500; border-radius:8px; line-height:1.5; }
body #workspace .nav-text { min-width:0; }
body #workspace .nav.active { color:var(--c-primary); background:#fff; box-shadow:inset 3px 0 #009bbe; font-weight:650; }
body #workspace .nav:hover { background:#ffffffc0; color:var(--c-primary); }
body #workspace .aside-bottom { color:var(--c-text); border-top-color:#dbe8f3; padding:20px 6px 0; }
body #workspace .aside-bottom small { color:var(--c-text-muted); }
body #workspace .aside-bottom button { color:var(--c-text-muted); }
body #workspace > main { padding:32px; background:var(--c-bg); }
body #workspace h1 { font-size:28px; font-weight:700; }
body #workspace h2 { font-size:18px; font-weight:650; }
body #workspace .eyebrow { color:#71869a; font-size:10px; }
body #workspace .muted { color:var(--c-text-muted); }
body #workspace .stats { gap:16px; }
body #workspace .stats article { padding:22px; border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); }
body #workspace .stats strong { font-size:30px; margin:10px 0 5px; color:var(--c-text); }
body #workspace .stats :is(span,small) { color:var(--c-text-muted); }
body #workspace :is(.panel,.catalog-card) { border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); }
body #workspace .toolbar { padding:20px 22px; }
body #workspace :is(button,.button),body dialog button { border-radius:8px; min-height:36px; font:550 13px/1.4 var(--font); }
body :is(#workspace,.login-card,dialog) :is(button.primary,.button.primary) { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
body #workspace .nav { border-color:transparent; }
body #workspace a { color:var(--c-primary); }
body #workspace :is(input,select,textarea),body dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { border:1px solid var(--c-border-strong); border-radius:8px; color:var(--c-text); min-height:38px; font-family:var(--font); }
body #workspace table { color:var(--c-text); font-variant-numeric:tabular-nums; }
body #workspace th { background:#f4f8fd; color:var(--c-text-muted); padding:13px 18px; font-size:12px; text-transform:none; }
body #workspace td { padding:16px 18px; border-color:var(--c-border); font-size:13px; }
body #workspace td small { color:var(--c-text-muted); }
body #workspace tbody tr:hover { background:#f6faff; }
body dialog { border:1px solid var(--c-border); border-radius:16px; color:var(--c-text); }
body dialog::backdrop { background:#1b354e66; backdrop-filter:blur(3px); }
.owner-mobile-bar,.owner-menu-backdrop { display:none; }
@media(max-width:800px) {
  body #workspace .owner-mobile-bar { display:flex; align-items:center; gap:12px; position:fixed; top:0; left:0; right:0; height:64px; z-index:80; background:#fff; padding:0 16px; border-bottom:1px solid var(--c-border); }
  .owner-mobile-bar a { font-size:19px; font-weight:750; letter-spacing:-.6px; }
  .owner-mobile-bar > span { margin-left:auto; font-size:10px; color:var(--c-text-muted); }
  .owner-mobile-bar button { width:36px; height:36px; padding:8px; border:1px solid var(--c-border); background:#fff; border-radius:8px; }
  .owner-mobile-bar svg { width:20px; height:20px; }
  body #workspace > aside { display:none; position:fixed; inset:64px auto 0 0; z-index:75; width:min(290px,85vw); height:calc(100dvh - 64px); flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; padding:20px 14px; }
  body #workspace.owner-menu-open > aside { display:flex; }
  body #workspace.owner-menu-open > .owner-menu-backdrop { display:block; position:fixed; inset:64px 0 0 min(290px,85vw); z-index:70; width:auto; height:calc(100dvh - 64px); border:0; background:#1b354e66; border-radius:0; }
  body #workspace > aside .nav-label { display:block; }
  body #workspace > aside .aside-bottom { margin-top:auto; padding-top:18px; }
  body #workspace > main { margin-left:0; padding-top:90px; }
}

/* Рабочий стол: реальные занятия, курсанты, задачи и оплаты. */
body #liveDashboard { color:var(--c-text); }
.overview-head { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:24px; }
.overview-head h1 { margin:0; font-size:29px; line-height:1.3; font-weight:700; }
.overview-head p { margin:5px 0 0; color:var(--c-text-muted); font-size:13px; }
.overview-head .overview-eyebrow { margin:0 0 6px; font-size:10px; letter-spacing:.13em; color:#71879c; }
.overview-head__actions { display:flex; align-items:center; gap:10px; }
.overview-head__actions svg { width:17px; height:17px; }
.overview-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:22px; }
.overview-stat { min-width:0; display:flex; align-items:flex-start; gap:13px; padding:22px 18px; min-height:126px; border:1px solid var(--c-border); border-radius:12px; background:#fff; box-shadow:var(--shadow-s); color:var(--c-text); transition:box-shadow .18s,border-color .18s; }
.overview-stat:hover { text-decoration:none; color:var(--c-text); border-color:#b7d7e9; box-shadow:var(--shadow-m); }
.overview-stat__icon { display:grid; place-items:center; flex:none; width:42px; height:42px; background:#e7f5fc; color:#0086ad; border-radius:11px; }
.overview-stat__icon svg { width:23px; height:23px; }
.overview-stat--attention .overview-stat__icon { background:#fff2e5; color:#c97923; }
.overview-stat__label { display:block; color:var(--c-text-muted); font-size:12px; margin:0 0 6px; }
.overview-stat strong { display:block; font-size:27px; line-height:1.15; font-weight:700; letter-spacing:-.7px; font-variant-numeric:tabular-nums; }
.overview-stat small { display:block; color:var(--c-text-muted); font-size:11px; margin-top:8px; }
.overview-stat__arrow { margin-left:auto; color:#86a4be; font-size:20px; }
.overview-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:20px; }
.overview-panel { min-width:0; background:#fff; border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); overflow:hidden; }
.overview-panel__head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:21px 20px 16px; }
.overview-panel__head h2 { margin:0; font-size:17px; font-weight:650; }
.overview-panel__head a { color:var(--c-primary); font-size:11px; white-space:nowrap; }
.overview-scroll { overflow-x:auto; padding:0 16px 12px; }
.overview-table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
body .overview-table th { background:#f4f8fd; color:var(--c-text-muted); font-size:11px; font-weight:500; padding:11px 10px; white-space:nowrap; }
body .main .overview-table td { padding:15px 10px; border-bottom:1px solid #edf2f7; color:var(--c-text); font-size:12px; }
.overview-table tr:last-child td { border-bottom:0; }
.overview-table a { color:var(--c-text); }
.overview-table a:hover { color:var(--c-primary); }
.overview-time,.overview-money { white-space:nowrap; font-variant-numeric:tabular-nums; }
.overview-time { font-weight:600; }
.overview-status { display:inline-block; padding:4px 7px; border-radius:6px; font-size:10px; color:#4e708d; background:#eef3fa; white-space:nowrap; }
.overview-status.is-complete { color:#137449; background:#e4f6ed; }
.overview-status.is-cancelled { color:#a54545; background:#fff0ef; }
.overview-person { display:flex; align-items:center; gap:9px; min-width:155px; }
.overview-avatar { display:grid; place-items:center; width:30px; height:30px; flex:none; border-radius:50%; background:#e4f5fc; color:#007f9e; font-size:11px; font-weight:600; }
.overview-empty { padding:25px 20px; font-size:13px; color:var(--c-text-muted); line-height:1.7; }
body #liveDashboard .desk-warnings { height:100%; max-height:345px; border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); background:#fff; overflow:hidden; }
body #liveDashboard #deskWarnings { overflow:auto; min-height:0; }
body #liveDashboard .desk-panel h2 { padding:21px 20px 16px; margin:0; flex:none; background:none; color:var(--c-text); font-size:17px; font-weight:650; }
body #liveDashboard .desk-warnings > select { margin:0 20px 10px; width:calc(100% - 40px); border:1px solid var(--c-border); border-radius:7px; height:34px; color:var(--c-text-muted); font-size:11px; padding:5px 8px; }
body #liveDashboard .desk-warning { margin:0 16px 10px; padding:12px; border:1px solid var(--c-border); border-radius:9px; background:#fbfdff; gap:4px; }
body #liveDashboard .desk-warning strong { color:#b57325; font-size:10px; font-weight:600; }
body #liveDashboard .desk-warning span { font-size:12px; color:var(--c-text); }
body #liveDashboard .desk-warning small { color:var(--c-text-muted); font-size:10px; }
body #liveDashboard .desk-no-warnings { padding:10px 20px 24px; color:var(--c-text-muted); font-size:13px; }
.overview-revenue { padding:0 20px 20px; }
.overview-revenue > strong { display:block; font-size:28px; letter-spacing:-.8px; }
.overview-revenue > span { display:block; font-size:11px; color:var(--c-text-muted); margin-top:4px; }
.overview-bars { display:flex; align-items:end; gap:3px; height:130px; margin-top:20px; border-bottom:1px solid var(--c-border); background:repeating-linear-gradient(to top,transparent 0,transparent 31px,#edf3f8 32px); }
.overview-bar-day { height:100%; flex:1; display:flex; align-items:end; min-width:0; }
.overview-bar-day i { display:block; width:100%; background:#16a3c5; border-radius:3px 3px 0 0; min-height:2px; }
.overview-bar-day i.is-zero { background:#e1edf5; }
.overview-axis { display:flex; justify-content:space-between; color:var(--c-text-muted); font-size:10px; margin-top:7px; }
.overview-revenue__foot { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:17px; }
.overview-revenue__foot > span { background:#f0f7fc; border-radius:8px; padding:10px; font-size:10px; color:var(--c-text-muted); }
.overview-revenue__foot strong { display:block; color:var(--c-text); font-size:14px; margin-top:3px; }
.overview-finance { margin:22px 0; border:1px solid var(--c-border); border-radius:12px; background:#fff; padding:18px; }
.overview-finance > summary { cursor:pointer; font-size:14px; font-weight:600; color:var(--c-text); }
.overview-finance > summary span { margin-left:12px; font-size:11px; font-weight:400; color:var(--c-text-muted); }
body #liveDashboard .desk-stats { margin:18px 0 0; gap:12px; }
body #liveDashboard .desk-stat { height:105px; padding:13px; text-align:left; border:1px solid var(--c-border); border-radius:10px; background:#f5faff; color:var(--c-text); box-shadow:none; }
body #liveDashboard .desk-stat__icon { display:none; }
body #liveDashboard .desk-stat__value { font-size:22px; padding:0; }
body #liveDashboard .desk-stat__label { padding:3px 0; font-size:11px; white-space:normal; }
body #liveDashboard .desk-stat__footer { text-align:left; background:none; color:var(--c-primary); font-size:10px; }
body #liveDashboard .desk-columns { display:block; min-height:0; }
body #liveDashboard .desk-feed { border:1px solid var(--c-border); border-radius:12px; box-shadow:var(--shadow-s); overflow:hidden; }
body #liveDashboard .desk-toolbar { padding:0 20px 12px; flex-wrap:wrap; gap:12px; }
body #liveDashboard .desk :is(select,input),body #liveDashboard :is(.desk-toolbar,.desk-filters) :is(select,input) { border:1px solid var(--c-border); border-radius:6px; color:var(--c-text); min-height:34px; padding:5px 8px; }
body #liveDashboard .desk-table { table-layout:auto; min-width:700px; }
body #liveDashboard .desk-table th { background:#f4f8fd; color:var(--c-text-muted); font-size:11px; height:auto; border-color:var(--c-border); }
body #liveDashboard .desk-table thead tr:first-child { height:auto; }
body #liveDashboard .desk-table td { font-size:12px; padding:12px; }
body #liveDashboard .desk-feed footer { padding:12px 20px; color:var(--c-text-muted); background:#fafcfe; }
@media(max-width:1250px) { .overview-stats { gap:12px; } .overview-stat { padding:18px 14px; gap:9px; } .overview-stat strong { font-size:23px; } .overview-stat__icon { width:35px; height:35px; } .overview-stat__arrow { display:none; } }
@media(max-width:1100px) { .overview-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .overview-grid { grid-template-columns:1fr; } .overview-tasks { grid-row:4; } .overview-head__actions .btn--outline { display:none; } }
@media(max-width:600px) { .overview-head { align-items:flex-start; gap:10px; } .overview-head h1 { font-size:25px; } .overview-head .overview-eyebrow { font-size:8px; } .overview-head__actions .btn { font-size:11px; padding:8px 10px; } .overview-stat { min-height:113px; padding:15px 12px; gap:9px; } .overview-stat__icon { width:29px; height:29px; border-radius:8px; } .overview-stat__icon svg { width:18px; height:18px; } .overview-stat strong { font-size:21px; } .overview-stat__label { font-size:10px; } .overview-stat small { font-size:9px; } .overview-panel__head { padding:18px 16px; } .overview-panel__head h2 { font-size:16px; } .overview-scroll { padding:0 8px 8px; } .overview-table { min-width:520px; } .overview-finance > summary span { display:block; margin:6px 0 0; } }

@media(min-width:901px) { body .topbar__logo { display:none; } }
@media(max-width:1200px) {
  body .topbar { padding:0 18px; gap:10px; }
  body .topbar__balance { display:none; }
  body .topbar__link span { display:none; }
  body .container,body .container[data-section=dashboard] { padding:22px; }
}
@media(max-width:900px) {
  :root { --topbar-h:64px; }
  body .topbar { left:0; padding:0 14px; }
  body .sidebar { width:min(290px,85vw); transform:translateX(-100%); }
  body .sidebar.is-open { transform:translateX(0); }
  body .sidebar-backdrop { z-index:65; background:#1b354e66; backdrop-filter:blur(2px); }
  body .topbar__search { max-width:none; }
  body .topbar__logo { font-size:17px; }
  body .main { margin-left:0; }
  body.accountant-cabinet { --topbar-h:64px; }
  body .container,body .container[data-section=dashboard] { padding:18px; }
}
@media(max-width:760px) {
  body.student-app .top { height:64px; padding:0 14px; }
  body.student-app .brand { font-size:19px; }
  body.student-app .side { top:64px; width:256px; }
  body.student-app main { margin:64px 0 0; padding:16px; }
  body.student-app .page-head { padding-bottom:16px; }
  body.student-app h1 { font-size:23px; }
  body.student-app .content { padding:18px; }
  body.student-app :is(button,.button) { min-height:42px; }
  body.student-app .tiles { gap:12px; }
  body.student-app .top-actions { gap:2px; }
  body.student-app .top .brand { flex-shrink:0; gap:8px; }
  body.student-app .top-actions #profileButton { font-size:0; min-width:34px; width:34px; height:36px; padding:7px; border-radius:8px; background:#edf7fc; }
  body.student-app #profileButton::before { content:''; display:block; width:20px; height:20px; background:url('/img/user-outline.svg') center/contain no-repeat; flex:none; }
  body.student-app #logoutButton { font-size:0; width:38px; }
  body.student-app #logoutButton::after { content:'↪'; font-size:20px; }
  body.student-app .welcome { gap:12px; padding-bottom:18px; }
  body.student-app .quick { gap:8px; }
  body #workspace > main { padding:90px 16px 22px; }
  body #workspace > main > header { flex-wrap:wrap; gap:12px; margin-bottom:22px; }
  body #workspace .stats { gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  body #workspace .stats article { padding:16px; }
  body #workspace .toolbar { padding:16px; flex-wrap:wrap; }
  body #workspace .filters { flex-wrap:wrap; width:100%; }
  body #workspace .filters :is(input,select) { flex:1; min-width:130px; max-width:100%; }
}
@media(max-width:600px) {
  body .topbar__search { display:none; }
  body .topbar__brand { flex:1; }
  body .topbar__actions { gap:2px; }
  body .topbar__link { padding:0 4px; }
  body .container,body .container[data-section=dashboard] { padding:16px 12px; }
  body .page-head__title { font-size:24px; }
  body :is(.record-page,.report-page,.reference-lists) > .page-head { padding:18px 16px; }
  body :is(.record-page,.report-page,.reference-lists) .page-head__title { font-size:21px; }
  body :is(.record-commandbar,.report-commandbar) { padding:10px; gap:6px; }
  body .reference-lists { height:calc(100dvh - var(--topbar-h) - 32px); }
  body :is(.record-overlay,.profile-overlay) .modal__body { padding:16px; }
  body .profile-personal .profile-field { display:block; margin:10px 0 18px; }
  body .footer { padding:16px 12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Проверка сессии не должна на мгновение показывать форму входа. */
body.auth-pending:not(.login-ready) > *,
body.auth-pending #login-screen,
body.auth-pending:not(.login-ready) .login-screen { display:none!important; }
body.auth-pending:not(.login-ready)::before { content:"Загрузка…"; position:fixed; inset:0; display:grid; place-items:center; color:var(--c-text-muted); background:var(--c-bg); }
