*{box-sizing:border-box}
[hidden]{display:none!important}
html{color-scheme:light}
body{margin:0;background:var(--pt-bg);color:var(--pt-ink);font:15px/1.45 var(--pt-font);-webkit-font-smoothing:antialiased}
main{max-width:1280px;margin:0 auto;padding:18px 16px 60px}
h1{font-size:28px;letter-spacing:-.02em;margin:6px 0 10px}
h2{font-size:20px;letter-spacing:-.015em;margin:26px 0 10px}
h3{font-size:16px;margin:18px 0 8px}
a{color:var(--pt-navy)}
.muted{color:var(--pt-ink-2)} .small{font-size:13px} .mono{font-family:var(--pt-mono)}
.who{margin-left:auto;color:var(--pt-ink-2);font-weight:500;font-size:13px;white-space:nowrap}
.who a{margin-left:8px}
.card{background:var(--pt-surface);border-radius:var(--pt-r);box-shadow:var(--pt-shadow-1);padding:16px 18px;margin:12px 0}
.hero{max-width:560px;margin:60px auto;text-align:center;padding:36px 28px}
.hero-logo{width:72px;height:72px;border-radius:50%;box-shadow:0 0 0 .5px var(--pt-sep-strong)}
.btn{display:inline-block;border:0;border-radius:999px;padding:9px 16px;font:600 14px var(--pt-font);background:var(--pt-fill);color:var(--pt-ink);cursor:pointer;text-decoration:none}
.btn.primary{background:var(--pt-navy);color:#fff}
.btn.go{background:var(--pt-green);color:#fff}
.btn.sm{padding:5px 11px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.grid{display:grid;gap:12px}
.grid.k{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.kpi{background:var(--pt-surface);border-radius:var(--pt-r);box-shadow:var(--pt-shadow-1);padding:12px 14px}
.kpi .v{font-size:26px;font-weight:700;letter-spacing:-.02em}
.kpi .l{font-size:12.5px;color:var(--pt-ink-2);margin-top:2px}
.kpi.good .v{color:var(--pt-green)} .kpi.bad .v{color:var(--pt-red)} .kpi.warn .v{color:var(--pt-orange)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
select,input[type=text],input[type=search],input[type=email]{font:14px var(--pt-font);padding:7px 10px;border:1px solid var(--pt-sep-strong);border-radius:10px;background:var(--pt-surface);color:var(--pt-ink)}
.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--pt-fill);color:var(--pt-ink-2);margin:1px 3px 1px 0;white-space:nowrap}
.chip.red{background:var(--pt-red-soft);color:var(--pt-red)} .chip.orange{background:var(--pt-orange-soft);color:var(--pt-orange)} .chip.green{background:var(--pt-go-soft);color:var(--pt-green)} .chip.navy{background:var(--pt-tint-soft);color:var(--pt-navy)}
.tbl{width:100%;border-collapse:collapse;background:var(--pt-surface);border-radius:var(--pt-r);box-shadow:var(--pt-shadow-1);overflow:hidden;font-size:13.5px}
.tbl th,.tbl td{padding:8px 10px;text-align:left;border-bottom:.5px solid var(--pt-sep);vertical-align:top}
.tbl th{font-size:12px;color:var(--pt-ink-2);font-weight:600;background:var(--pt-surface-2);cursor:pointer;user-select:none;white-space:nowrap}
.tbl th.on{color:var(--pt-navy)}
.tbl td.n,.tbl th.n{text-align:right;font-variant-numeric:tabular-nums}
.tbl tr.row{cursor:pointer} .tbl tr.row:hover{background:var(--pt-surface-2)}
.tbl .name{font-weight:600;white-space:nowrap}
.tbl td:last-child .flags{min-width:280px}
.tbl .flags .chip{font-size:11.5px}
.wrap{overflow-x:auto;border-radius:var(--pt-r)}
.pill{display:inline-block;min-width:38px;text-align:center;padding:2px 7px;border-radius:8px;font-weight:600;font-variant-numeric:tabular-nums}
.p-g{background:var(--pt-go-soft);color:var(--pt-green)} .p-o{background:var(--pt-orange-soft);color:var(--pt-orange)} .p-r{background:var(--pt-red-soft);color:var(--pt-red)} .p-n{background:var(--pt-fill-2);color:var(--pt-ink-3)}
.bar{height:8px;background:var(--pt-fill);border-radius:4px;overflow:hidden;min-width:70px}
.bar i{display:block;height:100%;background:var(--pt-green)}
.bar.o i{background:var(--pt-orange)} .bar.r i{background:var(--pt-red)}
.flags{display:flex;flex-wrap:wrap;gap:4px}
.drawer{position:fixed;inset:0;background:rgba(17,12,46,.35);z-index:100;display:flex;justify-content:flex-end}
.drawer-panel{width:min(820px,100%);height:100%;overflow:auto;background:var(--pt-bg);padding:22px 22px 60px;box-shadow:var(--pt-shadow-3);position:relative}
.drawer .close{position:absolute;top:14px;right:16px;border:0;background:var(--pt-fill);width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer}
.chart{position:relative;height:260px}
.chart.sm{height:200px}
.legend{font-size:12px;color:var(--pt-ink-2)}
.note{background:var(--pt-yellow-soft);border-radius:var(--pt-r-s);padding:10px 12px;font-size:13.5px}
.err{background:var(--pt-red-soft);color:var(--pt-red);border-radius:var(--pt-r-s);padding:10px 12px}
.ok{background:var(--pt-go-soft);color:var(--pt-green);border-radius:var(--pt-r-s);padding:10px 12px}
.row2{display:flex;gap:16px;flex-wrap:wrap}
.row2>*{flex:1 1 300px}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13.5px}
dl.kv dt{color:var(--pt-ink-2)} dl.kv dd{margin:0}
textarea{width:100%;min-height:120px;font:13px var(--pt-mono);border:1px solid var(--pt-sep-strong);border-radius:10px;padding:8px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.tabs button{border:0;background:var(--pt-fill);padding:6px 12px;border-radius:999px;font:600 13px var(--pt-font);cursor:pointer}
.tabs button.on{background:var(--pt-navy);color:#fff}
.help{font-size:13px;color:var(--pt-ink-2);margin:4px 0 10px}
@media (max-width:760px){main{padding:10px 8px 50px} h1{font-size:23px}}

/* Сверка данных */
.chip.lk { text-decoration: none; background: #eef2ff; color: #3730a3; }
.chip.lk.amo { background: #e0f2fe; color: #075985; }
.chip.lk.teams { background: #ede9fe; color: #5b21b6; }
.chip.lk.edupage { background: #dcfce7; color: #166534; }
.chip.green { background: #dcfce7; color: #166534; }
.chip.orange { background: #ffedd5; color: #9a3412; }
.warnt { color: #b45309; }
.tbl.kids td { vertical-align: top; }
.tbl.kids .name { min-width: 180px; }
h4 { margin: 18px 0 6px; font-size: 15px; }

/* Уточнения / Ученики */
.badge { display: inline-block; min-width: 18px; padding: 1px 6px; margin-left: 4px; border-radius: 999px; background: #FF453A; color: #fff; font-size: 11px; font-weight: 600; line-height: 16px; text-align: center; }
.doubt { border-left: 4px solid #FF9F0A; }
.doubt.done { border-left-color: #34C759; opacity: .85; }
.doubt h3 { margin: 6px 0 4px; }
.doubt .vals { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 8px 0; }
.doubt .opts { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.doubt .ans { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.doubt .ans input { flex: 1 1 220px; }
.btn.small { padding: 4px 10px; font-size: 13px; }
.segbar { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: #E5E5EA; }
.segbar span { display: block; height: 100%; }

.card.advice { border-left: 4px solid #30B0C7; }
.card.hyp { border-left: 4px solid #BF5AF2; background: #FBF7FF; }
.card.hyp .reason { padding: 8px 0; border-top: 1px solid #ECE6F5; }
.post { padding: 10px 0; border-top: 1px solid #EEE; }
.post .tip { color: #0A7E8C; }

/* ===== Дизайн в духе Apple HIG (28.10): воздух, крупная типографика, мягкие тени, тёмная тема, нижняя навигация на телефоне ===== */
:root { --ap-bg: #F2F2F7; --ap-card: #FFFFFF; --ap-text: #1C1C1E; --ap-sub: #6E6E73; --ap-line: #E5E5EA; --ap-green: #34C759; --ap-yellow: #FF9F0A; --ap-red: #FF453A; --ap-blue: #0A84FF; --ap-indigo: #5E5CE6; --ap-teal: #30B0C7; --ap-coral: #FF6B5E; }
body { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Inter, "Segoe UI", Roboto, sans-serif; background: var(--ap-bg); color: var(--ap-text); -webkit-font-smoothing: antialiased; }
h1 { font-size: 34px; font-weight: 700; letter-spacing: -0.02em; }
h2 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; margin-top: 28px; }
h3 { font-size: 17px; font-weight: 600; }
.card { background: var(--ap-card); border-radius: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 24px rgba(0,0,0,.05); border: none; }
.kpi { border-radius: 16px; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 18px rgba(0,0,0,.04); background: var(--ap-card); }
.kpi .v { font-weight: 700; letter-spacing: -0.02em; }
.kpi.good .v { color: var(--ap-green); } .kpi.warn .v { color: var(--ap-yellow); } .kpi.bad .v { color: var(--ap-red); }
.help { color: var(--ap-sub); line-height: 1.5; }
.btn { border-radius: 12px; }
select, input[type=search], input[type=text] { border-radius: 12px; border: 1px solid var(--ap-line); background: var(--ap-card); color: var(--ap-text); padding: 9px 12px; font-size: 15px; }
.tbl th { color: var(--ap-sub); font-weight: 600; }
.tbl tr.row:hover td { background: rgba(94,92,230,.05); }
.pill.p-g, .chip.green { background: rgba(52,199,89,.14); color: #1E7F3C; }
.pill.p-o { background: rgba(255,159,10,.16); color: #9A5B00; }
.pill.p-r, .chip.red { background: rgba(255,69,58,.12); color: #C0261C; }
.drawer-panel { border-radius: 22px 0 0 22px; }
@media (prefers-color-scheme: dark) {
  :root { --ap-bg: #000000; --ap-card: #1C1C1E; --ap-text: #F2F2F7; --ap-sub: #98989D; --ap-line: #38383A; }
  body, main, #app { background: var(--ap-bg); color: var(--ap-text); }
  .pt-nav { background: rgba(28,28,30,.85) !important; color: var(--ap-text); border-color: #2C2C2E !important; }
  .pt-nav a { color: #D1D1D6 !important; }
  .card, .kpi, .drawer-panel, .tbl, .tbl td, .tbl th, .wrap, .scroll { background: var(--ap-card) !important; color: var(--ap-text); border-color: #2C2C2E !important; }
  .tbl td, .tbl th { border-color: #2C2C2E !important; }
  .muted, .help, .small.muted { color: var(--ap-sub) !important; }
  .card.hyp { background: #231B2E !important; }
  .chip { background: #2C2C2E; color: #E5E5EA; }
  .segbar { background: #2C2C2E; }
}
@media (max-width: 760px) {
  h1 { font-size: 28px; }
  .pt-nav { position: fixed !important; bottom: 0; left: 0; right: 0; top: auto !important; z-index: 50; display: flex; overflow-x: auto; gap: 4px; padding: 8px 8px calc(8px + env(safe-area-inset-bottom)) !important; background: rgba(249,249,249,.92) !important; backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border-top: 1px solid var(--ap-line); white-space: nowrap; }
  .pt-nav .pt-b span, .pt-nav .who { display: none; }
  .pt-nav a { flex: 0 0 auto; font-size: 14px; padding: 8px 12px !important; border-radius: 12px; }
  main#app { padding-bottom: 96px; }
  .grid.k { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .toolbar { flex-wrap: wrap; }
  .toolbar > * { flex: 1 1 140px; }
  .drawer-panel { width: 100% !important; border-radius: 22px 22px 0 0; }
}

.card.assign { border-left: 4px solid #5E5CE6; }
.assign-text { white-space: pre-wrap; font: 14px/1.5 -apple-system, Inter, sans-serif; background: rgba(94,92,230,.06); padding: 14px; border-radius: 12px; }

/* ===== Аналитика: учителя, оценки, ДЗ, обратная связь (28.10) ===== */
.g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.g4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.g2 > .card, .g3 > .card, .g4 > .card { margin: 0; }
@media (max-width: 900px) { .g2, .g3, .g4 { grid-template-columns: 1fr; } }
.toolbar.sticky { position: sticky; top: 64px; z-index: 5; background: var(--ap-bg); padding: 8px 0; }
.person { display: block; padding: 10px 0; border-top: 1px solid var(--ap-line); text-decoration: none; color: inherit; }
.person:hover { background: rgba(94,92,230,.05); }
.thead { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ring { --p: 50; --c: #5E5CE6; width: 104px; height: 104px; border-radius: 50%; background: conic-gradient(var(--c) calc(var(--p) * 1%), #E5E5EA 0); display: grid; place-items: center; position: relative; flex: 0 0 auto; }
.ring::before { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: var(--ap-card); }
.ring span { position: relative; font-size: 30px; font-weight: 700; margin-top: -10px; }
.ring small { position: absolute; bottom: 22px; font-size: 10px; color: var(--ap-sub); max-width: 80px; text-align: center; line-height: 1.1; }
.ring.big { width: 128px; height: 128px; }
.ep-head { background: #3C9D46; color: #fff; padding: 12px 16px; border-radius: 14px; margin-bottom: 10px; }
.ep-hw { border: 1px solid #D9E7D9; border-radius: 12px; margin: 8px 0; background: #FAFDF9; }
.ep-hw summary { display: flex; gap: 10px; align-items: center; padding: 10px 12px; cursor: pointer; flex-wrap: wrap; }
.ep-date { font-weight: 700; color: #3C9D46; min-width: 44px; } .ep-cls { background: #E3F1E3; color: #2D6E33; padding: 2px 8px; border-radius: 8px; font-size: 13px; }
.ep-title { flex: 1 1 200px; font-weight: 600; } .ep-body { padding: 0 14px 12px; } .ep-body pre { white-space: pre-wrap; font: 14px/1.5 -apple-system, Inter, sans-serif; background: #fff; padding: 10px; border-radius: 10px; border: 1px solid #E5EFE5; }
.tm-head { background: #5B5FC7; color: #fff; padding: 12px 16px; border-radius: 14px; margin-bottom: 10px; }
.tm-post { display: flex; gap: 12px; padding: 12px; border-radius: 12px; background: #F5F5FB; margin: 8px 0; }
.tm-ava { width: 36px; height: 36px; border-radius: 50%; background: #5B5FC7; color: #fff; display: grid; place-items: center; font-weight: 600; font-size: 13px; flex: 0 0 auto; }
.tm-main { flex: 1; min-width: 0; } .tm-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13px; } .tm-meta span { color: var(--ap-sub); }
.tm-subj { font-weight: 700; margin: 4px 0; } .tm-post summary { cursor: pointer; }
.heat table { border-collapse: separate; border-spacing: 2px; width: 100%; } .heat th { font-size: 11px; color: var(--ap-sub); font-weight: 500; } .heat td { height: 22px; border-radius: 4px; background: #F2F2F7; }
.proto-note { background: #FFF8E6; border: 1px solid #FFE2A6; border-radius: 14px; padding: 12px 16px; margin: 8px 0 16px; }
.me-hero { display: flex; justify-content: space-between; align-items: center; background: linear-gradient(135deg, #EEF0FF, #E8FBF7); border-radius: 22px; padding: 22px 26px; }
.me-hi { font-size: 30px; font-weight: 700; letter-spacing: -.02em; }
.me-card.good { border-top: 4px solid #34C759; } .me-card.todo { border-top: 4px solid #5E5CE6; }
.feat .fi { font-size: 28px; }
@media (prefers-color-scheme: dark) { .ep-hw, .tm-post { background: #1C1C1E !important; border-color: #2C2C2E; } .ep-body pre { background: #000; border-color: #2C2C2E; color: #F2F2F7; } .me-hero { background: linear-gradient(135deg, #1E1B3A, #0F2A27); } .proto-note { background: #2A2210; border-color: #4A3A12; } }
\n.cv { position: relative; width: 100%; }

.btn.big { font-size: 17px; padding: 14px 26px; }

/* Светофор: ленты недель */
.lane { display: inline-flex; gap: 3px; margin-top: 4px; }
.lane i, .lg { display: inline-block; width: 14px; height: 16px; border-radius: 4px; background: #D1D1D6; }
.lane i.g, .lg.g { background: #34C759; } .lane i.y, .lg.y { background: #FF9F0A; } .lane i.r, .lg.r { background: #FF453A; } .lane i.n, .lg.n { background: #D1D1D6; } .lane i.e, .lg.e { background: transparent; border: 1px dashed #D1D1D6; }
.lg { width: 12px; height: 12px; vertical-align: middle; }
.tbl.light tr.grp td { background: rgba(94,92,230,.07); font-weight: 600; }
.lanes .lrow { display: flex; align-items: center; gap: 10px; padding: 6px 0; } .lanes .ll { width: 120px; color: var(--ap-sub); } .lanes .ls { font-weight: 600; }
@media (prefers-color-scheme: dark) { .lane i.n, .lg.n { background: #3A3A3C; } }

.toolbar.seg { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.segb { border: 1px solid var(--ap-line, #e5e5ea); background: var(--ap-card, #fff); color: inherit; border-radius: 999px; padding: 7px 14px; font: inherit; cursor: pointer; }
.segb.on { background: #1C1C3A; color: #fff; border-color: #1C1C3A; }
.pnav { display: inline-flex; gap: 6px; align-items: center; margin-left: 10px; } .pnav input[type=date] { font: inherit; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--ap-line, #e5e5ea); background: var(--ap-card, #fff); color: inherit; }
@media (prefers-color-scheme: dark) { .segb.on { background: #5E5CE6; border-color: #5E5CE6; } }
/* широкие таблицы прокручиваются внутри карточки, а не всей страницей */
.scroll, .wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
.card { min-width: 0; overflow: hidden; }
main { overflow-x: clip; }

/* классы по учебным годам в карточке и кабинете учителя */
.years{margin-top:6px;display:grid;gap:2px}
.years.big .small{font-size:14px}

/* Часы: вложенная таблица по классам */
.tbl.inner{margin:4px 0 8px;font-size:12px}
tr.sub>td{background:var(--pt-bg2,rgba(127,127,127,.06))}

/* Часы: изменение к прошлому месяцу */
.small.good{color:var(--pt-green,#009A44)} .small.bad{color:var(--pt-red,#D33)}

/* провал в цифру */
td.drill{cursor:pointer} td.drill:hover{background:rgba(10,132,255,.08)}

/* баннер проверки здоровья */
.banner{margin:8px 16px;padding:10px 14px;border-radius:10px;font-size:14px}
.banner.bad{background:rgba(211,51,51,.12);border:1px solid rgba(211,51,51,.4)}
.banner.warn{background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.4)}
.small.bad,.bad{color:var(--pt-red,#D33)}

/* Главная учителя «Моя неделя» (30.10.2026): ИИ-подсказка, «Что горит», направления */
.th { display: flex; flex-direction: column; gap: 14px; margin: 14px 0; }
.th-ai { background: linear-gradient(150deg, #20275F, #3E4294); color: #fff; border-radius: 20px; padding: 18px 20px; box-shadow: 0 14px 34px rgba(32,39,95,.22); }
.th-ai-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 17px; }
.th-re { border: 0; background: rgba(255,255,255,.15); color: #fff; border-radius: 10px; width: 34px; height: 30px; cursor: pointer; font-size: 16px; }
.th-load { opacity: .8; margin: 8px 0 0; }
.th-sum { margin: 8px 0 0; font-size: 15px; line-height: 1.5; }
.th-praise { margin-top: 10px; background: rgba(158,220,18,.18); border: 1px solid rgba(158,220,18,.45); border-radius: 12px; padding: 8px 12px; font-size: 14px; }
.th-acts { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 8px; }
.th-acts li { display: flex; gap: 10px; background: rgba(255,255,255,.08); border-radius: 14px; padding: 10px 12px; }
.th-acts .th-ic { flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.14); display: grid; place-items: center; }
.th-acts p { margin: 4px 0; font-size: 14px; line-height: 1.45; opacity: .95; }
.th-acts small { opacity: .7; font-size: 12.5px; }
.th-note { opacity: .7; font-size: 12.5px; margin: 8px 0 0; }
.th-fires h3 { margin: 0 0 8px; }
.th-f { border-radius: 12px; padding: 8px 12px; margin-top: 8px; background: #FFF8E1; border-left: 4px solid #F2C230; }
.th-f.red { background: #FDECEC; border-left-color: #E5484D; }
.th-f.info { background: #EEF0FA; border-left-color: #3E4294; }
.th-f summary { cursor: pointer; display: flex; gap: 8px; align-items: center; list-style: none; }
.th-f summary::-webkit-details-marker { display: none; }
.th-f ul { margin: 6px 0 4px 18px; padding: 0; font-size: 13.5px; }
.th-f p { margin: 4px 0 2px; }
.th-h2 { margin: 6px 0 0; font-size: 18px; }
.th-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.th-d { display: flex; flex-direction: column; gap: 6px; margin: 0; border-top: 4px solid #3E4294; }
.th-dh { display: flex; gap: 8px; align-items: center; font-size: 15px; }
.th-dm { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.th-big { font-size: 30px; font-weight: 800; color: #20275F; }
.th-delta { font-size: 13px; font-weight: 700; color: #6b7090; }
.th-delta.up { color: #2f8a00; } .th-delta.down { color: #c0392b; }
.th-sp { display: flex; align-items: flex-end; gap: 3px; height: 36px; margin: 4px 0; }
.th-sp i { flex: 1; background: #C9CBE6; border-radius: 3px; min-height: 2px; }
.th-sp i.now { background: #3E4294; }
.th-x { margin: 0; padding-left: 16px; font-size: 13px; color: #4b5079; }
.th-d .btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 640px) { .th-ai { padding: 14px; border-radius: 16px; } .th-big { font-size: 26px; } }
/* Расписание на 4 дня с подсказками и подпиской на календарь */
.sc { display: flex; flex-direction: column; gap: 10px; }
.sc-g { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 4px; }
.sc-d { background: var(--ap-card, #fff); border-radius: 16px; padding: 10px; display: flex; flex-direction: column; gap: 8px; border: 1px solid #e9eaf3; min-width: 220px; }
.sc-d.today { border: 2px solid #3E4294; box-shadow: 0 8px 22px rgba(62,66,148,.14); }
.sc-d.past { opacity: .85; background: #f7f8fb; }
.sc-dh { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.sc-dh b { font-size: 16px; } .sc-dh span { color: #6b7090; font-size: 13px; } .sc-dh small { width: 100%; color: #8a6d00; font-size: 11.5px; }
.sc-l, .sc-s { display: grid; grid-template-columns: 52px 1fr; gap: 8px; border-radius: 12px; padding: 8px; font-size: 13.5px; }
.sc-l { background: color-mix(in srgb, var(--cc) 10%, #fff); border-left: 4px solid var(--cc); }
.sc-l.off { opacity: .5; text-decoration: line-through; }
.sc-t { font-weight: 700; font-size: 12px; color: #4b5079; line-height: 1.3; }
.sc-c { color: #fff; border-radius: 7px; padding: 1px 7px; font-weight: 800; font-size: 12px; }
.sc-bs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.sc-b { font-size: 11px; font-weight: 700; border-radius: 7px; padding: 1px 6px; }
.sc-b.ok { background: #e3f6d6; color: #2f7a00; } .sc-b.bad { background: #fde3e3; color: #b42318; } .sc-b.warn { background: #fff1c9; color: #8a6400; } .sc-b.info { background: #e6edff; color: #2a45b0; } .sc-b.gray { background: #eceef4; color: #5d6380; }
.sc-s { border: 1.5px dashed #9aa0c8; background: #fbfbff; }
.sc-s.approved { border-style: solid; border-color: #3E4294; background: #eef0fa; }
.sc-s.rejected { opacity: .55; }
.sc-s.done { border-color: #2f8a00; background: #eefbe6; }
.sc-st { font-size: 12px; font-weight: 700; margin-top: 4px; color: #3E4294; }
.sc-btns { grid-column: 2; display: flex; gap: 6px; flex-wrap: wrap; }
.sc-cal h3 { margin-top: 0; }
.sc-cb { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
@media (max-width: 900px) { .sc-g { grid-template-columns: repeat(4, 78vw); scroll-snap-type: x mandatory; } .sc-d { scroll-snap-align: start; } }
.th-focus { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; } .th-focus span { background: rgba(255,255,255,.12); border-radius: 10px; padding: 4px 10px; font-size: 13px; }
.th-who { color: #F2C230; font-size: 13px; font-weight: 600; margin-top: 3px; }
.th-f summary a { color: inherit; } .th-f summary .small { margin-left: 6px; }

/* Меню группами (30.10.2026) */
.pt-nav .pt-g { position: relative; }
.pt-nav .pt-g[hidden] { display: none !important; }
.pt-nav .pt-gb, .pt-nav .pt-help { display: flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--pt-ink-2, #6C6C72); font: inherit; font-weight: 600; padding: 7px 11px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.pt-nav .pt-gb:hover, .pt-nav .pt-g.pt-open > .pt-gb { background: var(--pt-fill, rgba(118,118,128,.12)); color: var(--pt-ink, #1C1C1E); }
.pt-nav .pt-g.on > .pt-gb { background: var(--pt-tint, #211A5B); color: #fff; }
.pt-nav .pt-cur { font-weight: 500; opacity: .85; }
.pt-nav .pt-ga { font-size: 10px; opacity: .6; }
.pt-nav .pt-help { margin-left: auto; color: #3E4294; }
.pt-nav .pt-dd { display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 230px; background: var(--ap-card, #fff); border-radius: 16px; padding: 6px; box-shadow: 0 18px 44px rgba(31,40,72,.18), 0 0 0 1px rgba(62,66,148,.08); z-index: 60; flex-direction: column; gap: 2px; }
.pt-nav .pt-g.pt-open > .pt-dd { display: flex; }
.pt-nav .pt-dd a { padding: 10px 12px; border-radius: 10px; }
.pt-nav .pt-dd a.on { background: var(--pt-tint, #211A5B); color: #fff !important; }
@media (max-width: 1100px) { .pt-nav .pt-cur { display: none; } }
@media (max-width: 760px) {
  .pt-nav .pt-gb, .pt-nav .pt-help { flex: 0 0 auto; font-size: 14px; padding: 8px 12px; border-radius: 12px; }
  .pt-nav .pt-g.pt-open > .pt-dd { position: fixed; left: 8px; right: 8px; top: auto; bottom: calc(70px + env(safe-area-inset-bottom)); }
  .pt-nav .pt-help { margin-left: 0; }
}
@media (max-width: 760px) { .pt-nav:has(.pt-g.pt-open) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; overflow: visible !important; } }
/* Загруженность (31.10.2026): полоса 0–150 %, отметка 100 % */
.wl-bar{display:flex;align-items:center;gap:8px;min-width:150px}.wl-bar .bar{flex:1;position:relative;overflow:visible}.wl-bar .bar i{border-radius:4px}.wl-bar .bar b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--pt-ink-3);opacity:.5}
.bar.n i{background:#A8ADC2}

/* Тёмная тема (02.11.2026, Влад Поклоннов: «в тёмной теме шрифт белый и теряется»). У светлых плашек и цветного текста
   выше не было тёмных вариантов: белый текст темы ложился на светлый фон. Здесь — тёмные варианты для всего такого.
   Проверка: node scripts/check-dark.cjs (контраст текста в тёмной теме на демо-данных). */
@media (prefers-color-scheme: dark) {
  a { color: #B4B7FF; }
  .chip.lk { background: rgba(99,102,241,.2); color: #C7D2FE; }
  .chip.lk.amo { background: rgba(14,165,233,.2); color: #BAE6FD; }
  .chip.lk.teams { background: rgba(139,92,246,.22); color: #DDD6FE; }
  .chip.lk.edupage, .chip.green { background: rgba(34,197,94,.18); color: #BBF7D0; }
  .chip.orange { background: rgba(249,115,22,.2); color: #FED7AA; }
  .chip.red, .pill.p-r { background: rgba(255,69,58,.2); color: #FFB4AE; }
  .pill.p-g { background: rgba(52,199,89,.18); color: #A7F0BA; }
  .pill.p-o { background: rgba(255,159,10,.2); color: #FFD08A; }
  .segbar, .ring { background: #2C2C2E; }
  .ep-cls { background: rgba(52,199,89,.16); color: #A7E8B5; }
  .heat td { background: #2C2C2E; }
  .lane i, .lg { background: #3A3A3C; }
  .segb { background: #2C2C2E; color: #F2F2F7; border-color: #3A3A3C; }
  .pnav input[type=date], select, input[type=search], input[type=text] { background: #1C1C1E; color: #F2F2F7; border-color: #3A3A3C; color-scheme: dark; }
  .banner { color: #F2F2F7; }
  /* Главная учителя */
  .th-f { background: rgba(242,194,48,.13); color: #F2F2F7; }
  .th-f.red { background: rgba(229,72,77,.16); }
  .th-f.info { background: rgba(124,130,230,.18); color: #E3E4FF; }
  .th-big { color: #F2F2F7; }
  .th-delta { color: #A1A6C8; } .th-delta.up { color: #7BD88F; } .th-delta.down { color: #FF8A80; }
  .th-sp i { background: #3A3A4A; } .th-sp i.now { background: #8E92F0; }
  .th-x { color: #B8BCD9; }
  .th-d { border-top-color: #7C80E8; }
  /* Расписание на 4 дня */
  .sc-d { background: #1C1C1E; border-color: #2C2C2E; }
  .sc-d.past { background: #161618; }
  .sc-d.today { border-color: #7C80E8; box-shadow: 0 8px 22px rgba(0,0,0,.4); }
  .sc-dh span { color: #A1A6C8; } .sc-dh small { color: #E6C15A; }
  .sc-l { background: color-mix(in srgb, var(--cc) 20%, #1C1C1E); color: #F2F2F7; }
  .sc-t { color: #B8BCD9; }
  .sc-b.ok { background: rgba(52,199,89,.2); color: #A7F0BA; } .sc-b.bad { background: rgba(255,69,58,.2); color: #FFB4AE; }
  .sc-b.warn { background: rgba(255,176,0,.2); color: #FFD27A; } .sc-b.info { background: rgba(94,92,230,.25); color: #C9C8FF; } .sc-b.gray { background: #2C2C2E; color: #C7C7CC; }
  .sc-s { background: #1A1A22; border-color: #4A4E7A; color: #F2F2F7; }
  .sc-s.approved { background: rgba(94,92,230,.18); border-color: #7C80E8; }
  .sc-s.done { background: rgba(52,199,89,.14); border-color: #4CBF6B; }
  .sc-st { color: #B4B7FF; }
  /* Меню */
  .pt-nav .pt-help { color: #B4B7FF; }
  .pt-nav .pt-gb:hover, .pt-nav .pt-g.pt-open > .pt-gb { color: #F2F2F7; }
  .pt-nav .pt-dd { background: #1C1C1E; box-shadow: 0 18px 44px rgba(0,0,0,.55), 0 0 0 1px #2C2C2E; }
}
@media (prefers-color-scheme: dark) and (max-width: 760px) { .pt-nav { background: rgba(28,28,30,.94) !important; } }
