/* Общая страница и палитра. Светлая палитра прототипа сохраняется независимо от темы браузера. */
:root { color-scheme: only light; }
body { margin:0; background:light-dark(#f4f5f0,#171e1c); }

  .u100-workspace{--u-bg:light-dark(#f4f5f0,#171e1c);--u-panel:light-dark(#ffffff,#222d28);--u-text:light-dark(#213c32,#e8f0e9);--u-sub:light-dark(#607067,#acbdb1);--u-line:light-dark(#dfe6de,#3a4c40);--u-tint:light-dark(#e8efe5,#2b4032);--u-brand:light-dark(#235b43,#9dceb0);--u-onbrand:light-dark(#ffffff,#15291d);--u-warn:light-dark(#855120,#edbd80);--u-warnbg:light-dark(#fbf0df,#3d3021);--u-radius:18px;color:var(--u-text);background:var(--u-bg);font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.5;border:1px solid var(--u-line);border-radius:20px;overflow:clip;min-height:820px;color-scheme:only light}
  .u100-workspace *{box-sizing:border-box}
  .u100-workspace button,.u100-workspace input,.u100-workspace textarea,.u100-workspace select{font:inherit}
  .u100-workspace button{cursor:pointer}
  .u100-workspace button:focus-visible,.u100-workspace input:focus-visible,.u100-workspace textarea:focus-visible{outline:3px solid var(--u-brand);outline-offset:3px}
  .u100-workspace [hidden]{display:none!important}
  /* Боковое меню и основная область оформления «Обзор». */
  .u100-workspace .u-frame{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:820px}
  .u100-workspace .u-side{padding:26px 16px;background:var(--u-panel);border-right:1px solid var(--u-line);display:flex;flex-direction:column;gap:30px}
  .u100-workspace .u-brand{font-size:21px;font-weight:750;letter-spacing:-.9px;white-space:nowrap}
  .u100-workspace .u-brand span{color:var(--u-brand)}
  .u100-workspace .u-small{font-size:12px;color:var(--u-sub)}
  .u100-workspace .u-nav{display:flex;flex-direction:column;gap:7px}
  .u100-workspace .u-nav button{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--u-sub);padding:11px 12px;border-radius:11px;text-align:left;font-weight:550}
  .u100-workspace .u-nav button[aria-current="page"]{background:var(--u-tint);color:var(--u-text)}
  .u100-workspace .u-avatar{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--u-tint);color:var(--u-brand);font-weight:650}
  .u100-workspace .u-person{display:flex;align-items:center;gap:10px}
  .u100-workspace .u-side .u-person{margin-top:auto;border-top:1px solid var(--u-line);padding-top:18px}
  .u100-workspace .u-body{min-width:0}
  .u100-workspace .u-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 28px;border-bottom:1px solid var(--u-line);min-height:68px;flex-wrap:wrap}
  .u100-workspace .u-demo{font-size:11px;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--u-sub)}
  .u100-workspace .u-main{padding:28px;min-width:0}
  /* Заголовки, карточки и общие элементы управления. */
  .u100-workspace h1{font-size:29px;line-height:1.18;font-weight:650;letter-spacing:-.8px;margin:0 0 10px}
  .u100-workspace h2{font-size:19px;line-height:1.3;font-weight:600;margin:0 0 12px;letter-spacing:-.3px}
  .u100-workspace h3{font-size:15px;font-weight:600;margin:0 0 8px}
  .u100-workspace p{margin:0 0 14px}
  .u100-workspace .u-muted{color:var(--u-sub)}
  .u100-workspace .u-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;font-weight:650;color:var(--u-sub);margin-bottom:12px}
  .u100-workspace .u-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
  .u100-workspace .u-card{background:var(--u-panel);border:1px solid var(--u-line);border-radius:var(--u-radius);padding:22px;min-width:0}
  .u100-workspace .u-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin:20px 0}
  .u100-workspace .u-hero{background:var(--u-tint)}
  .u100-workspace .u-num{font-size:48px;line-height:1;letter-spacing:-2px;font-weight:550;margin:14px 0}
  .u100-workspace .u-button{border:1px solid var(--u-line);background:var(--u-panel);color:var(--u-text);border-radius:10px;padding:10px 14px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}
  .u100-workspace .u-primary{background:var(--u-brand);color:var(--u-onbrand);border-color:var(--u-brand)}
  .u100-workspace .u-link{background:transparent;border:0;color:var(--u-brand);padding:5px 0;text-align:left;display:inline-flex;gap:7px;align-items:center;font-weight:600}
  .u100-workspace .u-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
  .u100-workspace .u-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--u-line)}
  .u100-workspace .u-row:last-child{border-bottom:0}
  .u100-workspace .u-badge{display:inline-block;border-radius:7px;padding:4px 8px;font-size:12px;font-weight:550;background:var(--u-tint);color:var(--u-brand)}
  .u100-workspace .u-pending{background:var(--u-warnbg);color:var(--u-warn)}
  .u100-workspace .u-spaced{margin-top:24px}
  .u100-workspace .u-crumb{margin-bottom:20px}
  .u100-workspace .u-tabs{display:flex;gap:16px;border-bottom:1px solid var(--u-line);margin:22px 0 16px}
  .u100-workspace .u-tabs button{padding:8px 0 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--u-sub);font-weight:550}
  .u100-workspace .u-tabs button[aria-pressed="true"]{color:var(--u-text);border-bottom-color:var(--u-brand)}
  /* Журнал: строки учеников и опубликованные баллы. */
  .u100-workspace .u-table{border-collapse:collapse;width:100%;font-size:13px}
  .u100-workspace .u-table th{font-size:11px;color:var(--u-sub);text-align:left;font-weight:550;padding:10px 8px;border-bottom:1px solid var(--u-line)}
  .u100-workspace .u-table td{padding:14px 8px;border-bottom:1px solid var(--u-line);vertical-align:middle}
  .u100-workspace .u-table tr:last-child td{border-bottom:0}
  .u100-workspace .u-table td:last-child,.u100-workspace .u-table th:last-child{text-align:right}
  .u100-workspace .u-pick{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
  .u100-workspace .u-pick button[aria-pressed="true"]{border-color:var(--u-brand);background:var(--u-tint)}
  /* Проверка ответа, поля баллов и обратная связь ученику. */
  .u100-workspace .u-question{padding:20px 0;border-bottom:1px solid var(--u-line)}
  .u100-workspace .u-question:first-child{padding-top:0}
  .u100-workspace .u-answer{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-top:12px}
  .u100-workspace .u-answercode{font-size:17px;font-weight:550}
  .u100-workspace .u-score{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:var(--u-sub)}
  .u100-workspace .u-score input{width:52px;padding:8px;border:1px solid var(--u-line);border-radius:8px;background:var(--u-bg);color:var(--u-text);text-align:center}
  .u100-workspace textarea{display:block;width:100%;resize:vertical;min-height:86px;background:var(--u-bg);border:1px solid var(--u-line);border-radius:10px;color:var(--u-text);padding:12px;margin:8px 0 14px}
  .u100-workspace .u-total{font-size:22px;font-weight:600;letter-spacing:-.5px}
  .u100-workspace .u-feedback{border-left:3px solid var(--u-brand);padding:12px 16px;background:var(--u-tint);border-radius:0 10px 10px 0;white-space:pre-wrap;overflow-wrap:anywhere}
  .u100-workspace .u-error{color:var(--u-warn);background:var(--u-warnbg);padding:10px 12px;border-radius:8px;margin-bottom:12px}
  .u100-workspace .u-live{font-size:13px;color:var(--u-brand);min-height:20px;margin-top:12px}
  /* Оформление «Рабочий список» переносит навигацию наверх. */
  .u100-workspace .u-listheader{background:var(--u-panel);padding:18px 24px;border-bottom:1px solid var(--u-line);display:flex;align-items:center;gap:22px;flex-wrap:wrap}
  .u100-workspace .u-listheader .u-nav{flex-direction:row;flex-wrap:wrap;gap:4px}
  .u100-workspace .u-listheader .u-person{margin-left:auto}
  .u100-workspace .u-listcontent{padding:30px;max-width:940px;margin:auto}
  .u100-workspace .u-taskline{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:20px 0;border-bottom:1px solid var(--u-line)}
  .u100-workspace .u-taskline:last-child{border:0}
  .u100-workspace .u-taskindex{font-size:21px;color:var(--u-sub);font-weight:450}
  .u100-workspace .u-history{padding-left:20px;color:var(--u-sub);margin:12px 0 0}
  .u100-workspace .u-history li{margin:6px 0}
  /* На узком экране блоки перестраиваются в одну колонку. */
  @media(max-width:760px){.u100-workspace .u-frame{grid-template-columns:1fr}.u100-workspace .u-side{padding:16px;gap:14px;border-right:0;border-bottom:1px solid var(--u-line)}.u100-workspace .u-side .u-nav{flex-direction:row;flex-wrap:wrap}.u100-workspace .u-side .u-person{display:none}.u100-workspace .u-main,.u100-workspace .u-listcontent{padding:20px}.u100-workspace .u-top{padding:14px 20px}.u100-workspace .u-grid{grid-template-columns:1fr}.u100-workspace .u-listheader{padding:16px;gap:12px}.u100-workspace .u-listheader .u-person{display:none}}
  @media(max-width:460px){.u100-workspace h1{font-size:25px}.u100-workspace .u-main,.u100-workspace .u-listcontent{padding:16px}.u100-workspace .u-card{padding:16px}.u100-workspace .u-row{align-items:flex-start;flex-wrap:wrap}.u100-workspace .u-taskline{grid-template-columns:28px minmax(0,1fr)}.u100-workspace .u-taskline>.u-button{grid-column:2;justify-self:start}.u100-workspace .u-table th,.u100-workspace .u-table td{padding:12px 4px}.u100-workspace .u-table .u-avatar{display:none}.u100-workspace .u-button{max-width:100%;white-space:normal}.u100-workspace .u-side .u-nav button{padding:9px}.u100-workspace .u-listheader .u-nav button{padding:9px}}

/* Оболочка сайта занимает окно; прежняя рамка нужна была только для макета. */
.u100-workspace { border:0; border-radius:0; min-height:100vh; }
.u100-workspace .u-frame { min-height:100vh; }
.u100-workspace .u-main { max-width:1120px; margin:auto; }
.u100-workspace .u-nav a { display:flex; align-items:center; gap:10px; color:var(--u-sub); padding:11px 12px; border-radius:11px; text-decoration:none; font-weight:550; }
.u100-workspace .u-nav a:hover { background:var(--u-tint); }
.u100-workspace .u-layout { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.u100-workspace select { max-width:100%; padding:8px 10px; border:1px solid var(--u-line); border-radius:10px; background:var(--u-panel); color:var(--u-text); }
.u100-workspace a:focus-visible,.u100-workspace select:focus-visible { outline:3px solid var(--u-brand); outline-offset:3px; }
.u100-workspace .u-storage-warning { margin:16px 28px; }
@media(pointer:coarse) { .u100-workspace button,.u100-workspace select,.u100-workspace .u-nav a { min-height:44px; } .u100-workspace input,.u100-workspace textarea { font-size:16px; } }

/* Формы настоящего кабинета: вход, создание группы и её карточки. */
.u100-workspace .u-auth { max-width:520px; margin:auto; padding:40px 20px; }
.u100-workspace .u-field { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; min-width:0; font-weight:550; }
.u100-workspace .u-field input { width:100%; min-width:0; padding:12px; color:var(--u-text); background:var(--u-panel); border:1px solid var(--u-line); border-radius:10px; }
.u100-workspace .u-field .u-small { font-weight:400; }
.u100-workspace .u-form-grid,.u100-workspace .u-group-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.u100-workspace .u-account { margin-top:auto; display:flex; flex-direction:column; gap:10px; overflow-wrap:anywhere; min-width:0; }
.u100-workspace .u-account .u-person { display:flex; border:0; margin:0; padding:0; }
.u100-workspace .u-listheader .u-account { margin-left:auto; margin-top:0; }
.u100-workspace .u-listheader .u-account .u-person { margin:0; }
.u100-workspace .u-notice:empty { display:none; }
.u100-workspace .u-notice { margin:0 0 16px; }
.u100-workspace a.u-button,.u100-workspace a.u-link { text-decoration:none; }
.u100-workspace .u-card h2,.u100-workspace h1 { overflow-wrap:anywhere; }
.u100-workspace button:disabled { opacity:.6; cursor:wait; }
@media(max-width:760px) { .u100-workspace .u-account { flex-direction:row; justify-content:space-between; align-items:center; } .u100-workspace .u-form-grid,.u100-workspace .u-group-grid { grid-template-columns:1fr; } }

/* Учебные формы и журнал: длинные ответы переносятся, широкая таблица прокручивается. */
.u100-workspace .u-fieldset { border:1px solid var(--u-line); border-radius:12px; padding:16px; min-width:0; }
.u100-workspace .u-check { display:flex; align-items:flex-start; gap:10px; padding:10px 0; }
.u100-workspace .u-check input { flex-shrink:0; margin-top:4px; }
.u100-workspace .u-table-wrap { max-width:100%; overflow:auto; }
.u100-workspace .u-table th,.u100-workspace .u-table td { min-width:85px; }
.u100-workspace .u-auth-links { display:flex; flex-direction:column; gap:10px; }
.u100-workspace .u-answercode { overflow-wrap:anywhere; }
.u100-workspace .u-nav { flex-shrink:1; }
.u100-workspace .u-field input[type=number] { max-width:180px; }

/* Формулы и иллюстрации сохраняют ширину карточки на телефоне. */
.u-rich { white-space:pre-wrap; overflow-wrap:anywhere; margin:12px 0; }
.u-task-image { display:block; max-width:100%; max-height:420px; width:auto; height:auto; object-fit:contain; margin:16px 0; border-radius:12px; }
.katex-display { overflow-x:auto; overflow-y:hidden; padding:8px 0; }
details > summary { cursor:pointer; font-weight:600; padding:10px 0; }

/* Статистика сохраняет светлую палитру и читается без наведения мыши. */
.u-calendar {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:520px}
.u-day {display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:12px;background:#f2f4f6;color:#657081}
.u-day.is-active {background:#dceee8;color:#1d5446}
.u-day small {font-size:11px}
.u-badge.is-earned {background:#dceee8;color:#1d5446}
.u-question progress {width:min(82%,600px);height:12px;accent-color:#2d7161}
.u-file-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px;margin-bottom:16px}
.u-file {min-width:0;padding:12px;border:1px solid #dfe5e2;border-radius:12px;overflow-wrap:anywhere}
.u-file img {display:block;width:100%;max-height:220px;object-fit:contain;margin-bottom:8px}
.u-nav {overflow-y:auto}
@media(max-width:600px){.u-calendar{gap:4px}.u-day{padding:8px 2px}}

/* Длинные страницы не уводят настройки аккаунта в самый низ документа. */
@media(min-width:761px){.u100-workspace .u-side{position:sticky;top:0;height:100dvh;box-sizing:border-box;overflow-y:auto;align-self:start}.u100-workspace .u-side .u-nav{flex-shrink:0}.u100-workspace .u-side .u-account{padding-top:16px}}
@media(min-width:1100px){.u100-workspace .u-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Банк — обычная страница кабинета, без вложенного документа и полосы прокрутки. */
.u100-workspace.u-bank-mode .u-main,.u100-workspace.u-bank-mode .u-listcontent{max-width:none;width:100%;margin:0;padding:28px;min-width:0}
.u100-workspace.u-bank-mode .u-notice:empty{display:none}
@media(max-width:760px){.u100-workspace.u-bank-mode .u-main,.u100-workspace.u-bank-mode .u-listcontent{padding:18px 14px}}
