/* ---------- LMS: учебные кабинеты ---------- */

.lms-app{display:flex;min-height:100vh;width:100%}

/* роль-бейдж в сайдбаре */
.lms-role{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;border-radius:12px;margin-bottom:12px;
  font-size:13px;font-weight:700;letter-spacing:.3px;
}
.lms-role::before{content:'';width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.role-student{background:rgba(124,92,255,.14);color:var(--accent)}
.role-student::before{background:var(--accent)}
.role-teacher{background:rgba(47,141,255,.13);color:var(--info)}
.role-teacher::before{background:var(--info)}
.role-admin{background:rgba(240,138,38,.14);color:var(--warn)}
.role-admin::before{background:var(--warn)}

/* счётчик в навигации */
.nav-count{
  margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:99px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;
}

/* аватары по инициалам */
.av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;color:#fff}
.av-0{background:linear-gradient(135deg,#7c5cff,#a78bfa)}
.av-1{background:linear-gradient(135deg,#2f8dff,#60a5fa)}
.av-2{background:linear-gradient(135deg,#ff5c8a,#fda4af)}
.av-3{background:linear-gradient(135deg,#0ea5a4,#5eead4)}
.av-4{background:linear-gradient(135deg,#f08a26,#fbbf24)}
.av-5{background:linear-gradient(135deg,#10b981,#86efac)}

.cell-user{display:flex;align-items:center;gap:10px;min-width:0}
.cell-user b{display:block;font-size:14px}
.cell-user small{display:block;color:var(--muted);font-size:12px}

/* курсовая карточка с обложкой */
.course-card{padding:0;overflow:hidden}
.cc-cover{border-radius:16px 16px 0 0;padding:14px 16px;color:#fff;position:relative}
.cc-title{font-size:15px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.25)}
.cc-sub{font-size:12px;opacity:.92;margin-top:3px;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.cv-math{background:linear-gradient(135deg,#6b46ff,#a78bfa)}
.cv-physics{background:linear-gradient(135deg,#1d7df0,#60a5fa)}
.cv-english{background:linear-gradient(135deg,#ec2e70,#f472b6)}
.cv-programming{background:linear-gradient(135deg,#0c8281,#2dd4bf)}
.cv-chemistry{background:linear-gradient(135deg,#ea7a1a,#fbbf24)}
.cv-history{background:linear-gradient(135deg,#b7791f,#f59e0b)}
.cv-other{background:linear-gradient(135deg,#64748b,#94a3b8)}
.cc-body{padding:14px 16px 16px}
.cc-lab{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
.cc-foot{font-size:12px;color:var(--muted);margin-top:8px;margin-bottom:10px}

/* предметные теги кабинетов */
.tag-english{background:rgba(236,46,112,.13);color:#dd2d6b}
.tag-programming{background:rgba(12,130,129,.13);color:#0c8281}
.tag-chemistry{background:rgba(234,122,26,.14);color:#d97706}
.tag-history{background:rgba(183,121,31,.14);color:#b7791f}
html.dark .tag-english{color:#f472b6}
html.dark .tag-programming{color:#2dd4bf}
html.dark .tag-chemistry{color:#fbbf24}
html.dark .tag-history{color:#f59e0b}

/* теги типов заданий */
.tt-homework{background:rgba(124,92,255,.12);color:var(--accent)}
.tt-test{background:rgba(240,138,38,.13);color:var(--warn)}
.tt-lab{background:rgba(14,165,164,.13);color:var(--info)}
.tt-essay{background:rgba(236,46,112,.12);color:#dd2d6b}
.tt-project{background:rgba(16,185,129,.13);color:var(--ok)}

/* бейджи баллов */
.score-ok{color:var(--ok);background:rgba(23,168,97,.14)}
.score-mid{color:var(--warn);background:rgba(240,138,38,.14)}
.score-low{color:var(--danger);background:rgba(255,84,112,.14)}

/* статусы заданий студента */
.st-new{color:var(--info);background:rgba(47,141,255,.12)}
.st-in{color:var(--warn);background:rgba(240,138,38,.14)}
.st-over{color:var(--danger);background:rgba(255,84,112,.12)}
.st-ok{color:var(--ok);background:rgba(23,168,97,.14)}

/* таблицы */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;min-width:640px}
.tbl th{
  text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;
  color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:2px solid var(--line);
}
.tbl td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--glass)}
.tbl .progress{height:6px;margin:6px 0;min-width:90px}

/* ссылки на кабинеты в userbox (SPA) */
.lms-links{display:flex;flex-direction:column;gap:2px;margin:4px 0 10px}
.lms-links-t{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:4px}
.lms-link{font-size:13px;font-weight:600;padding:5px 8px;border-radius:8px;color:var(--txt)}
.lms-link:hover{background:var(--glass);text-decoration:none}

/* текст работы в модалке проверки */
.paper{
  background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;margin:8px 0 16px;white-space:pre-wrap;line-height:1.6;font-size:14px;
  max-height:220px;overflow:auto;color:var(--txt-soft);
}

/* чекбоксы курсов */
.ck-row{display:flex;flex-wrap:wrap;gap:8px}
.ck{
  display:flex;align-items:center;gap:7px;border:1px solid var(--line);
  background:var(--bg2);padding:7px 11px;border-radius:10px;font-size:13px;cursor:pointer;
}
.ck input{accent-color:var(--accent)}

/* уведомления */
.row.read{opacity:.55}
.n-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));flex:0 0 9px}

/* toast */
.toast{
  position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);
  background:var(--card);border:1px solid var(--accent-line);color:var(--txt);
  padding:12px 20px;border-radius:13px;box-shadow:var(--shadow);font-weight:600;font-size:14px;
  z-index:200;opacity:0;transition:.25s;pointer-events:none;max-width:88vw;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* textarea в модалках */
.sh-modal-card textarea{
  width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;
  padding:11px 13px;font-family:inherit;font-size:14px;color:var(--txt);outline:none;resize:vertical;
}
.sh-modal-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field input.err{border-color:var(--danger)}

/* поле даты: светлая палитра календаря */
input[type=date]{color-scheme:light dark}

/* ---------- ПОРТАЛ-БАР НА index.html ---------- */
.portal-bar{
  position:fixed;left:16px;bottom:16px;z-index:120;
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;gap:6px;
  max-width:230px;
}
.portal-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:8px}
.portal-btn{
  display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:10px;
  background:var(--card2);border:1px solid var(--line);color:var(--txt);font-size:13px;font-weight:600;
  transition:.15s;
}
.portal-btn:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}
.portal-btn .pp{width:20px;height:20px;flex:0 0 20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}
.pp.pp-s{background:linear-gradient(135deg,#6b46ff,#a78bfa)}
.pp.pp-t{background:linear-gradient(135deg,#1d7df0,#60a5fa)}
.pp.pp-a{background:linear-gradient(135deg,#ea7a1a,#fbbf24)}