*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0; }

html {
  height: 100%; }

a {
  text-decoration: none; }

button,
input {
  font: inherit; }

@font-face {
  font-family: 'Play';
  src: url("../fonts/Play-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Play';
  src: url("../fonts/Play-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap; }

body {
  font-family: "Play", system-ui, sans-serif;
  background: #0b0c0f;
  color: #e8eaed;
  min-height: 100vh;
  line-height: 1.45;
  font-size: 15px; }

a {
  color: #38bdf8; }
  a:hover {
    text-decoration: underline; }

button {
  cursor: pointer;
  border: none;
  background: none;
  color: inherit; }

.app {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh; }
  .app--with-chat {
    grid-template-columns: 260px minmax(0, 1fr) 300px; }

.sidebar {
  background: #12141a;
  border-right: 1px solid #2a2f3a;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto; }
  .sidebar__brand {
    padding: 18px 16px 14px;
    border-bottom: 1px solid #2a2f3a; }
  .sidebar__brand-title {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.3; }
  .sidebar__brand-subtitle {
    font-size: 12px;
    color: #8b93a7;
    margin-top: 2px; }
  .sidebar__user {
    padding: 14px 16px;
    border-bottom: 1px solid #2a2f3a; }
  .sidebar__greeting {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px; }
  .sidebar__role-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin-bottom: 12px; }
  .sidebar__role {
    flex: 0 1 auto;
    font-size: 12px;
    color: #8b93a7;
    font-weight: 500; }
  .sidebar__training-type {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 5px 12px;
    border-radius: 8px;
    line-height: 1.2; }
    .sidebar__training-type--outstaff {
      color: #93c5fd;
      background: rgba(59, 130, 246, 0.15);
      border: 1px solid rgba(59, 130, 246, 0.55);
      box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.12); }
    .sidebar__training-type--external {
      color: #e8b84a;
      background: rgba(232, 184, 74, 0.14);
      border: 1px solid rgba(232, 184, 74, 0.55);
      box-shadow: 0 0 0 1px rgba(232, 184, 74, 0.12); }
    .sidebar__training-type--unknown {
      color: #fbbf24;
      background: rgba(251, 191, 36, 0.12);
      border: 1px solid rgba(251, 191, 36, 0.45); }
  .sidebar__logout {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #2a2f3a;
    background: #16181f;
    font-size: 13px;
    color: #8b93a7;
    cursor: pointer; }
    .sidebar__logout:hover {
      color: #e8eaed;
      border-color: #3a4150; }
  .sidebar__nav {
    padding: 12px 10px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px; }
  .sidebar__nav-group {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #6b7389;
    padding: 10px 10px 6px; }
  .sidebar__link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 8px;
    color: #8b93a7;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.12s, color 0.12s; }
    .sidebar__link:hover {
      background: #222632;
      color: #e8eaed;
      text-decoration: none; }
    .sidebar__link--active {
      background: rgba(59, 130, 246, 0.15);
      color: #93c5fd; }
      .sidebar__link--active .sidebar__status-dot {
        background: #3b82f6; }
    .sidebar__link--done .sidebar__status-dot {
      background: #4ade80; }
    .sidebar__link--current .sidebar__status-dot {
      background: #fbbf24;
      box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2); }
  .sidebar__badge {
    margin-left: auto;
    margin-right: 4px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 15px;
    padding: 0 4px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 600;
    line-height: 1; }
    .sidebar__badge--danger {
      background: rgba(248, 113, 113, 0.12);
      color: #f87171;
      border: 1px solid rgba(248, 113, 113, 0.35); }
    .sidebar__badge--warn {
      background: rgba(251, 191, 36, 0.12);
      color: #fbbf24;
      border: 1px solid rgba(251, 191, 36, 0.35); }
  .sidebar__nav-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 6px;
    background: #16181f;
    border: 1px solid #2a2f3a;
    color: #8b93a7;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0; }
  .sidebar__link--active .sidebar__nav-number {
    background: rgba(56, 189, 248, 0.15);
    border-color: rgba(56, 189, 248, 0.35);
    color: #93c5fd; }
  .sidebar__status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    background: #3a4150; }
  .sidebar__footer {
    padding: 12px 16px 16px;
    border-top: 1px solid #2a2f3a;
    font-size: 12px;
    color: #6b7389;
    line-height: 1.5; }

.content {
  min-width: 0;
  background: radial-gradient(ellipse 70% 40% at 50% -5%, rgba(59, 130, 246, 0.07), transparent 55%), #0b0c0f;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100vh; }
  .content__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px 8px;
    flex-wrap: wrap; }
  .content__title {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em; }
  .content__role {
    margin-top: 4px;
    font-size: 14px;
    font-weight: 600;
    color: #93c5fd; }
  .content__description {
    margin-top: 4px;
    font-size: 14px;
    color: #8b93a7;
    max-width: 52ch; }
  .content__body {
    padding: 8px 24px 64px;
    flex: 1; }

.chat {
  background: #12141a;
  border-left: 1px solid #2a2f3a;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh; }
  .chat__head {
    padding: 14px 14px 10px;
    border-bottom: 1px solid #2a2f3a; }
  .chat__head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px; }
  .chat__title {
    font-size: 14px;
    font-weight: 700; }
  .chat__unread-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 15px;
    padding: 0 4px;
    border-radius: 999px;
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    border: 1px solid rgba(248, 113, 113, 0.35);
    font-size: 9px;
    font-weight: 600;
    line-height: 1; }
  .chat__tabs {
    display: flex;
    gap: 4px;
    flex-wrap: wrap; }
  .chat__tab {
    position: relative;
    padding: 5px 8px;
    border-radius: 6px;
    border: 1px solid #232732;
    background: #16181f;
    color: #8b93a7;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer; }
    .chat__tab:hover {
      color: #e8eaed;
      border-color: #3a4150; }
    .chat__tab--active {
      background: rgba(59, 130, 246, 0.15);
      border-color: rgba(56, 189, 248, 0.35);
      color: #93c5fd; }
    .chat__tab--locked {
      opacity: 0.55; }
  .chat__tab-badge {
    margin-left: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 14px;
    padding: 0 4px;
    border-radius: 999px;
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    font-size: 9px;
    font-weight: 600;
    line-height: 1; }
  .chat__subtitle {
    font-size: 12px;
    color: #8b93a7;
    margin-top: 8px;
    line-height: 1.35; }
    .chat__subtitle--counterpart {
      display: inline-flex;
      align-items: center;
      margin-top: 10px;
      padding: 6px 12px;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 700;
      color: #93c5fd;
      background: rgba(59, 130, 246, 0.15);
      border: 1px solid rgba(59, 130, 246, 0.45);
      box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.1);
      line-height: 1.3; }
  .chat__body {
    flex: 1;
    min-height: 0;
    padding: 12px 14px 14px;
    display: flex;
    flex-direction: column;
    overflow: hidden; }
  .chat__loading, .chat__lock-text, .chat__placeholder {
    background: #16181f;
    border: 1px solid #2a2f3a;
    border-radius: 10px;
    padding: 12px;
    font-size: 13px;
    color: #8b93a7;
    line-height: 1.5; }
  .chat__thread {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px; }
  .chat__messages {
    flex: 1;
    min-height: 120px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-right: 2px; }
  .chat__message {
    width: fit-content;
    max-width: 80%;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid rgba(45, 212, 191, 0.22);
    background: rgba(45, 212, 191, 0.12); }
    .chat__message--own {
      align-self: flex-end;
      background: rgba(59, 130, 246, 0.15);
      border-color: rgba(59, 130, 246, 0.28); }
  .chat__message-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
    font-size: 10px;
    color: #6b7389; }
    .chat__message-meta--time-only {
      justify-content: flex-end; }
  .chat__message-author {
    font-weight: 700;
    color: #8b93a7; }
    .chat__message-author--recipient {
      color: #93c5fd; }
  .chat__message-body {
    font-size: 13px;
    line-height: 1.45;
    color: #e8eaed;
    white-space: pre-wrap;
    word-break: break-word; }
  .chat__composer {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0; }
  .chat__input {
    width: 100%;
    resize: vertical;
    min-height: 52px;
    max-height: 120px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid #2a2f3a;
    background: #16181f;
    color: #e8eaed;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.4; }
    .chat__input:focus {
      outline: none;
      border-color: rgba(56, 189, 248, 0.45); }
    .chat__input:disabled {
      opacity: 0.55;
      cursor: not-allowed; }
  .chat__send {
    align-self: flex-end; }
  .chat__error {
    margin: 0;
    font-size: 12px;
    color: #f87171;
    line-height: 1.35; }

.chat-page {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 12px;
  min-height: 520px; }
  .chat-page__list {
    background: #16181f;
    border: 1px solid #2a2f3a;
    border-radius: 10px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    min-height: 520px;
    max-height: calc(100vh - 180px);
    overflow: hidden; }
  .chat-page__list-empty {
    margin: 0;
    padding: 12px;
    font-size: 13px;
    color: #8b93a7;
    line-height: 1.45; }
  .chat-page__list-items {
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    flex: 1; }
  .chat-page__list-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: 'name badge' 'meta meta';
    gap: 2px 8px;
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: #e8eaed;
    text-align: left;
    cursor: pointer; }
    .chat-page__list-item:hover {
      background: #222632; }
    .chat-page__list-item--active {
      background: rgba(59, 130, 246, 0.15);
      border-color: rgba(56, 189, 248, 0.25); }
  .chat-page__list-name {
    grid-area: name;
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .chat-page__list-badge {
    grid-area: badge;
    align-self: center;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 15px;
    padding: 0 4px;
    border-radius: 999px;
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    font-size: 9px;
    font-weight: 600;
    line-height: 1; }
  .chat-page__list-meta {
    grid-area: meta;
    font-size: 11px;
    color: #8b93a7; }
  .chat-page__thread {
    background: #16181f;
    border: 1px solid #2a2f3a;
    border-radius: 10px;
    min-height: 520px;
    max-height: calc(100vh - 180px);
    display: flex;
    flex-direction: column;
    overflow: hidden; }
  .chat-page__thread-empty {
    margin: auto;
    max-width: 320px;
    padding: 16px;
    text-align: center;
    font-size: 13px;
    color: #8b93a7;
    line-height: 1.5; }
  .chat-page__thread-active {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px; }
  .chat-page__thread-head {
    flex-shrink: 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #232732; }
  .chat-page__thread-title {
    font-size: 15px;
    font-weight: 700; }
  .chat-page__messages {
    flex: 1;
    min-height: 200px; }

.simple-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column; }

.simple-header {
  flex-shrink: 0;
  background: #12141a;
  border-bottom: 1px solid #2a2f3a;
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between; }
  .simple-header__title {
    font-size: 14px;
    font-weight: 700; }

.simple-main {
  flex: 1;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 24px; }
  .simple-main--wide {
    max-width: 1100px; }

.block {
  background: #16181f;
  border: 1px solid #2a2f3a;
  border-radius: 10px;
  margin-bottom: 12px;
  overflow: hidden;
  scroll-margin-top: 88px; }
  .block__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #232732;
    background: #1c1f28; }
  .block__title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 650;
    letter-spacing: -0.01em; }
  .block__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 8px;
    background: rgba(59, 130, 246, 0.15);
    color: #93c5fd;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0; }
  .block__subtitle {
    font-size: 13px;
    color: #8b93a7;
    margin-top: 3px; }
  .block__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end; }
  .block__body {
    padding: 14px 16px 16px;
    font-size: 14px;
    color: #8b93a7; }

.doc-block-notice {
  text-align: center;
  margin-bottom: 12px; }
  .doc-block-notice__formats {
    font-size: 12.5px;
    color: #8b93a7; }
  .doc-block-notice__alerts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px; }
  .doc-block-notice__alert {
    font-size: 13px;
    font-weight: 500;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid transparent; }
    .doc-block-notice__alert--error {
      color: #f87171;
      background: rgba(248, 113, 113, 0.12);
      border-color: rgba(248, 113, 113, 0.35); }
    .doc-block-notice__alert--success {
      color: #4ade80;
      background: rgba(74, 222, 128, 0.12);
      border-color: rgba(74, 222, 128, 0.35); }
  .doc-block-notice--review {
    text-align: left;
    padding: 10px 12px;
    border: 1px solid rgba(248, 113, 113, 0.35);
    border-radius: 8px;
    background: rgba(248, 113, 113, 0.12); }
  .doc-block-notice__review-title {
    font-size: 12px;
    font-weight: 600;
    color: #f87171;
    margin-bottom: 4px; }
  .doc-block-notice__review-text {
    font-size: 13px;
    color: #e8eaed;
    white-space: pre-wrap; }

.doc-tabs {
  display: flex;
  gap: 4px;
  padding: 3px;
  background: #12141a;
  border: 1px solid #2a2f3a;
  border-radius: 8px;
  margin-bottom: 12px;
  width: fit-content;
  flex-wrap: wrap; }

.doc-tab {
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #8b93a7;
  transition: background 0.12s, color 0.12s, box-shadow 0.12s; }
  .doc-tab:hover {
    color: #e8eaed; }
  .doc-tab--active {
    background: #1c1f28;
    color: #e8eaed;
    box-shadow: 0 0 0 1px #2a2f3a; }

.doc-tab-panel {
  display: none; }
  .doc-tab-panel--active {
    display: block; }
  .doc-tab-panel__empty {
    font-size: 13px;
    color: #8b93a7; }

.file-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px dashed #3a4150;
  border-radius: 8px;
  background: #12141a;
  margin-bottom: 12px; }

.file-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(59, 130, 246, 0.15);
  color: #93c5fd;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 10px;
  border: 1px solid rgba(59, 130, 246, 0.25);
  flex-shrink: 0; }

.file-meta {
  flex: 1;
  min-width: 0; }
  .file-meta strong {
    display: block;
    font-size: 13px;
    color: #e8eaed;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .file-meta span {
    font-size: 11.5px;
    color: #8b93a7; }

.doc-attempt-item {
  border-bottom: 1px solid #232732; }
  .doc-attempt-item:last-child {
    border-bottom: none; }

.doc-attempt {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) minmax(0, auto);
  gap: 10px;
  align-items: center;
  flex: 0 0 auto;
  min-height: 48px;
  box-sizing: border-box;
  padding: 8px 0;
  font-size: 12.5px; }
  .doc-attempt__version {
    font-weight: 600;
    color: #e8eaed; }
  .doc-attempt__meta {
    color: #8b93a7;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
    .doc-attempt__meta a {
      color: #93c5fd;
      text-decoration: none; }
      .doc-attempt__meta a:hover {
        text-decoration: underline; }
  .doc-attempt__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0; }
    .doc-attempt__actions .verdict {
      flex-shrink: 0;
      line-height: 1.25;
      white-space: nowrap;
      text-align: right; }
  .doc-attempt__verdicts {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    justify-content: flex-end;
    max-width: 180px;
    min-width: 0;
    overflow: hidden; }
  .doc-attempt__feedback-btn {
    flex-shrink: 0;
    padding: 4px 8px;
    border-radius: 5px;
    border: 1px solid #2a2f3a;
    background: #16181f;
    color: #8b93a7;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
    cursor: pointer; }
    .doc-attempt__feedback-btn:hover {
      color: #e8eaed;
      border-color: #3a4150; }
    .doc-attempt__feedback-btn--open {
      background: rgba(59, 130, 246, 0.15);
      border-color: rgba(56, 189, 248, 0.35);
      color: #93c5fd; }
  .doc-attempt__feedback {
    padding: 10px 0 12px 58px;
    display: flex;
    flex-direction: column;
    gap: 8px; }
    .doc-attempt__feedback[hidden] {
      display: none !important; }

.doc-preview__feedback-panel .doc-attempt__feedback {
  padding-left: 0; }

.doc-feedback {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #232732;
  background: #16181f; }
  .doc-feedback--ai {
    border-left: 3px solid #3b82f6;
    background: linear-gradient(90deg, rgba(59, 130, 246, 0.15) 0%, #16181f 28%); }
  .doc-feedback--manager {
    border-left: 3px solid #38bdf8;
    background: linear-gradient(90deg, rgba(56, 189, 248, 0.12) 0%, #16181f 28%); }
  .doc-feedback--mentor {
    border-left: 3px solid #2dd4bf;
    background: linear-gradient(90deg, rgba(45, 212, 191, 0.12) 0%, #16181f 28%); }
  .doc-feedback__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px; }
  .doc-feedback__source {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8b93a7; }
  .doc-feedback__date {
    margin-left: auto;
    font-size: 11px;
    color: #6b7389; }
  .doc-feedback__body {
    font-size: 13px;
    line-height: 1.45;
    color: #e8eaed;
    white-space: pre-wrap; }
  .doc-feedback__empty {
    margin: 0;
    font-size: 12px;
    color: #8b93a7;
    font-style: italic; }

.doc-versions-scroll {
  display: flex;
  flex-direction: column;
  max-height: 240px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  flex-shrink: 0;
  padding-right: 4px; }
  .doc-versions-scroll .doc-attempt-item:last-child {
    border-bottom: 1px solid #232732; }

.verdict {
  padding: 3px 8px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap; }
  .verdict--pass {
    background: rgba(74, 222, 128, 0.12);
    color: #4ade80;
    border: 1px solid rgba(74, 222, 128, 0.35); }
  .verdict--fail {
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    border: 1px solid rgba(248, 113, 113, 0.35); }
  .verdict--disputed {
    background: rgba(251, 191, 36, 0.12);
    color: #fbbf24;
    border: 1px solid rgba(251, 191, 36, 0.35); }
  .verdict--pending {
    background: rgba(56, 189, 248, 0.12);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.3); }

.card-soft {
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #2a2f3a;
  background: #12141a; }
  .card-soft__title {
    font-size: 12px;
    font-weight: 600;
    color: #e8eaed;
    margin-bottom: 6px; }
  .card-soft__text {
    font-size: 12.5px;
    color: #8b93a7;
    word-break: break-all; }
    .card-soft__text a {
      color: #93c5fd; }
  .card-soft__hint {
    margin-top: 6px;
    font-size: 12px;
    color: #6b7389; }

.doc-preview {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
  gap: 12px;
  align-items: start; }
  .doc-preview__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 344px;
    max-height: 344px;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    flex-shrink: 0;
    padding-right: 2px; }
  .doc-preview__item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    width: 100%;
    flex: 0 0 auto;
    min-height: 64px;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #2a2f3a;
    border-radius: 8px;
    background: #12141a;
    color: #e8eaed;
    text-align: left;
    cursor: pointer;
    font: inherit; }
    .doc-preview__item:hover {
      border-color: rgba(59, 130, 246, 0.35); }
    .doc-preview__item--active {
      border-color: rgba(59, 130, 246, 0.55);
      background: rgba(59, 130, 246, 0.15);
      box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.2); }
  .doc-preview__item-version {
    font-size: 12px;
    font-weight: 700;
    color: #93c5fd; }
  .doc-preview__item-body {
    min-width: 0; }
    .doc-preview__item-body strong {
      display: block;
      font-size: 12px;
      color: #e8eaed;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
  .doc-preview__item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 4px 6px;
    margin-top: 4px;
    min-width: 0;
    font-size: 11px;
    color: #8b93a7; }
    .doc-preview__item-meta .verdict {
      flex-shrink: 0;
      font-size: 10px;
      line-height: 1.25;
      white-space: normal;
      text-align: right;
      max-width: 100%; }
  .doc-preview__feedback {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #232732; }
  .doc-preview__feedback-panel[hidden] {
    display: none !important; }
  .doc-preview__viewer {
    min-width: 0; }
  .doc-preview__alt {
    min-width: 0; }
  .doc-preview__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px; }
  .doc-preview__toolbar-label {
    font-size: 12px;
    color: #8b93a7; }
  .doc-preview__panel {
    display: flex;
    flex-direction: column; }
  .doc-preview__frame {
    width: 100%;
    min-height: 420px;
    border: 1px solid #2a2f3a;
    border-radius: 8px;
    background: #12141a; }
  .doc-preview__hint {
    margin-top: 10px;
    font-size: 12.5px;
    color: #8b93a7; }

.doc-upload-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 100%; }
  .doc-upload-form__sources {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0; }
  .doc-upload-form__legend {
    font-size: 13px;
    font-weight: 600;
    color: #8b93a7;
    margin-bottom: 10px;
    padding: 0; }
  .doc-upload-form__radios {
    display: flex;
    flex-wrap: wrap;
    gap: 8px; }
  .doc-upload-form__panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 42px; }
    .doc-upload-form__panel[hidden] {
      display: none; }
    .doc-upload-form__panel > .doc-file-picker,
    .doc-upload-form__panel > .doc-upload-form__url-input {
      min-height: 42px; }
  .doc-upload-form__url-input {
    width: 100%;
    font-size: 14px;
    line-height: 1.3; }
    .doc-upload-form__url-input:focus {
      outline: none;
      border-color: #3b82f6;
      box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); }
  .doc-upload-form__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 2px; }
  .doc-upload-form__error {
    font-size: 13px;
    color: #f87171; }

.doc-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid #2a2f3a;
  border-radius: 8px;
  background: #12141a;
  color: #e8eaed;
  font-size: 14px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s; }
  .doc-radio:hover {
    border-color: #3a4150;
    background: #222632; }
  .doc-radio:has(.doc-radio__input:checked) {
    border-color: rgba(59, 130, 246, 0.55);
    background: rgba(59, 130, 246, 0.15); }
  .doc-radio__input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #3b82f6;
    cursor: pointer;
    flex-shrink: 0; }
  .doc-radio__text {
    line-height: 1.3; }

.doc-file-picker {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  min-height: 42px; }
  .doc-file-picker__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0; }
  .doc-file-picker__btn {
    flex-shrink: 0; }
  .doc-file-picker__name {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: #8b93a7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
    .doc-file-picker__name--selected {
      color: #e8eaed; }

.kpi-board {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px; }

.kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 10px; }
  .kpi-row--triple {
    grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kpi-row--double {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 100%; }

.kpi {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #16181f;
  border: 1px solid #2a2f3a;
  border-radius: 10px;
  padding: 14px 14px 12px;
  min-height: 108px; }
  .kpi__label {
    font-size: 12px;
    color: #8b93a7;
    font-weight: 500;
    margin-bottom: 8px;
    flex-shrink: 0; }
  .kpi__value {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #e8eaed;
    line-height: 1.3; }
    .kpi__value--medium {
      font-size: 17px;
      min-height: calc(1.3em * 2); }
    .kpi__value--small {
      font-size: 16px;
      min-height: calc(1.3em * 2); }
  .kpi__detail {
    margin-top: auto;
    padding-top: 6px;
    font-size: 11px;
    color: #8b93a7;
    font-weight: 500;
    word-break: break-all;
    line-height: 1.3;
    min-height: calc(1.3em * 1); }
  .kpi--ok {
    border-color: rgba(74, 222, 128, 0.35);
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.08), #16181f); }
    .kpi--ok .kpi__value {
      color: #4ade80; }
  .kpi--warn {
    border-color: rgba(251, 191, 36, 0.35);
    background: linear-gradient(180deg, rgba(251, 191, 36, 0.08), #16181f); }
    .kpi--warn .kpi__value {
      color: #fbbf24; }

.stage-track {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px; }
  .stage-track__step {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid #2a2f3a;
    background: #16181f;
    font-size: 12px;
    font-weight: 600;
    color: #8b93a7; }
  .stage-track__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #8b93a7;
    flex: 0 0 8px; }
  .stage-track__step--done {
    color: #4ade80;
    border-color: rgba(74, 222, 128, 0.35);
    background: rgba(74, 222, 128, 0.12); }
    .stage-track__step--done .stage-track__dot {
      background: #4ade80; }
  .stage-track__step--current {
    color: #fbbf24;
    border-color: rgba(251, 191, 36, 0.35);
    background: rgba(251, 191, 36, 0.12); }
    .stage-track__step--current .stage-track__dot {
      background: #fbbf24; }
  .stage-track__step--upcoming {
    color: #8b93a7; }

.pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap; }
  .pill--done, .pill--ok {
    background: rgba(74, 222, 128, 0.12);
    color: #4ade80;
    border: 1px solid rgba(74, 222, 128, 0.35); }
  .pill--work {
    background: rgba(251, 191, 36, 0.12);
    color: #fbbf24;
    border: 1px solid rgba(251, 191, 36, 0.35); }
  .pill--pending {
    background: rgba(56, 189, 248, 0.12);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.3); }
  .pill--neutral {
    background: #252a35;
    color: #8b93a7;
    border: 1px solid #2a2f3a; }
  .pill--gap {
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    border: 1px solid rgba(248, 113, 113, 0.35); }

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px; }
  @media (max-width: 800px) {
    .grid-2 {
      grid-template-columns: 1fr; } }
.stat-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px; }

.stat-box {
  border-radius: 8px;
  padding: 14px 12px;
  text-align: center;
  border: 1px solid; }
  .stat-box__value {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.01em; }
  .stat-box__label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    margin-top: 2px; }
  .stat-box--ok {
    background: rgba(74, 222, 128, 0.12);
    border-color: rgba(74, 222, 128, 0.35);
    color: #4ade80; }
  .stat-box--gap {
    background: rgba(248, 113, 113, 0.12);
    border-color: rgba(248, 113, 113, 0.35);
    color: #f87171; }
  .stat-box--work {
    background: rgba(251, 191, 36, 0.12);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fbbf24; }
  .stat-box--neutral {
    background: #252a35;
    border-color: #2a2f3a;
    color: #8b93a7; }

.ai-report {
  margin-top: 0;
  padding: 12px;
  border-radius: 8px;
  background: rgba(232, 184, 74, 0.14);
  border: 1px solid rgba(232, 184, 74, 0.25); }
  .ai-report__title {
    font-size: 12px;
    margin-bottom: 6px;
    color: #e8b84a;
    font-weight: 600; }
  .ai-report__list {
    padding-left: 16px;
    font-size: 12.5px;
    color: #8b93a7; }
    .ai-report__list li {
      margin-bottom: 3px; }
  .ai-report__comment {
    list-style: none;
    margin-left: -16px;
    white-space: normal; }

.ai-check-block__actions {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  transition: background 0.12s, border-color 0.12s, opacity 0.12s;
  cursor: pointer;
  text-decoration: none;
  border: 1px solid transparent; }
  .btn:hover {
    text-decoration: none; }
  .btn:active {
    opacity: 0.9; }
  .btn--primary {
    background: #3b82f6;
    color: #fff; }
    .btn--primary:hover {
      background: #2563eb; }
  .btn--ghost {
    background: transparent;
    border-color: #2a2f3a;
    color: #8b93a7; }
    .btn--ghost:hover {
      color: #e8eaed;
      border-color: #3a4150;
      background: #222632; }
  .btn--small {
    padding: 6px 11px;
    font-size: 13px; }
  .btn:disabled, .btn[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none; }
  .btn--primary:disabled, .btn--primary[disabled] {
    background: #3b82f6;
    color: #fff; }

.input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #2a2f3a;
  background: #12141a;
  color: #e8eaed; }

.form-group {
  margin-bottom: 16px; }
  .form-group label {
    display: block;
    margin-bottom: 8px;
    color: #8b93a7; }

.messages {
  margin-bottom: 16px; }

.message {
  padding: 8px 16px;
  border-radius: 8px;
  margin-bottom: 8px; }
  .message--error {
    background: rgba(248, 113, 113, 0.12);
    border: 1px solid rgba(248, 113, 113, 0.35); }
  .message--success {
    background: rgba(74, 222, 128, 0.12);
    border: 1px solid rgba(74, 222, 128, 0.35); }
  .message--info {
    background: rgba(59, 130, 246, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3); }

.auth-form {
  background: #16181f;
  border: 1px solid #2a2f3a;
  border-radius: 10px;
  padding: 24px;
  margin: 40px auto 0; }
  .auth-form__title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 16px;
    letter-spacing: -0.02em; }
  .auth-form .message {
    text-align: center; }

.review-queue {
  display: flex;
  flex-direction: column;
  gap: 8px; }
  .review-queue__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #2a2f3a;
    border-radius: 8px;
    background: #12141a; }
    .review-queue__item--unread {
      border-color: rgba(251, 191, 36, 0.35);
      background: rgba(251, 191, 36, 0.12); }
  .review-queue__main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px; }
  .review-queue__student {
    font-size: 14px;
    color: #e8eaed; }
  .review-queue__meta, .review-queue__file {
    font-size: 12.5px;
    color: #8b93a7; }

.message-inbox {
  display: flex;
  flex-direction: column;
  gap: 8px; }
  .message-inbox--preview {
    flex: 1;
    min-height: 0;
    overflow-y: auto; }
  .message-inbox__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #2a2f3a;
    border-radius: 8px;
    background: #12141a; }
    .message-inbox__item--unread {
      border-color: rgba(248, 113, 113, 0.35);
      background: rgba(248, 113, 113, 0.12); }
  .message-inbox__main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px; }
  .message-inbox__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px; }
  .message-inbox__student {
    font-size: 14px;
    color: #e8eaed; }
  .message-inbox__time {
    flex-shrink: 0;
    font-size: 12px;
    color: #8b93a7; }
  .message-inbox__sender {
    font-size: 12.5px;
    color: #8b93a7; }
  .message-inbox__preview {
    font-size: 13px;
    color: #e8eaed;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  .message-inbox__badge {
    flex-shrink: 0;
    margin-left: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 14px;
    height: 15px;
    padding: 0 4px;
    border-radius: 999px;
    background: rgba(248, 113, 113, 0.12);
    color: #f87171;
    border: 1px solid rgba(248, 113, 113, 0.35);
    font-size: 9px;
    font-weight: 600;
    line-height: 1; }

.staff-messages-block__head {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px; }

.staff-messages-block__head-title {
  grid-column: 1;
  justify-self: start;
  min-width: 0; }

.staff-messages-block__head-status {
  grid-column: 3;
  grid-row: 1;
  justify-self: end; }

.staff-messages-block__chat-btn {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  min-width: 248px;
  justify-content: center;
  text-align: center; }

.staff-messages-block__body {
  height: 240px;
  display: flex;
  flex-direction: column;
  overflow: hidden; }

.staff-messages-block__empty {
  margin: auto 0;
  text-align: center; }

.doc-review__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  gap: 16px;
  align-items: start; }
  .doc-review__layout--mentor {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .doc-review__layout--mentor .doc-review__panel {
      grid-column: 1 / -1; }

.doc-review__viewer {
  min-width: 0;
  border: 1px solid #2a2f3a;
  border-radius: 8px;
  background: #12141a;
  overflow: hidden; }

.doc-review__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid #2a2f3a; }

.doc-review__filename {
  font-size: 13px;
  color: #8b93a7;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.doc-review__frame {
  display: block;
  width: 100%;
  min-height: 520px;
  border: 0;
  background: #fff; }

.doc-review__fallback {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 24px;
  min-height: 520px;
  font-size: 13px;
  line-height: 1.5;
  color: #8b93a7; }
  .doc-review__fallback p {
    margin: 0; }

.doc-review__panel {
  padding: 14px;
  border: 1px solid #2a2f3a;
  border-radius: 8px;
  background: #16181f; }

.doc-review__result-label {
  font-size: 12px;
  font-weight: 600;
  color: #8b93a7;
  margin-bottom: 6px; }

.doc-review__result-text {
  font-size: 13px;
  color: #e8eaed;
  white-space: pre-wrap;
  margin-bottom: 10px; }

.doc-review__result-meta {
  font-size: 12px;
  color: #6b7389; }

.doc-review-form {
  display: flex;
  flex-direction: column;
  gap: 12px; }
  .doc-review-form__field {
    font-size: 13px;
    font-weight: 600;
    color: #e8eaed; }
  .doc-review-form__comment {
    width: 100%;
    min-height: 120px;
    resize: vertical; }
  .doc-review-form__actions {
    display: flex;
    justify-content: flex-end; }

@media (max-width: 1100px) {
  .app--with-chat {
    grid-template-columns: 260px minmax(0, 1fr); }
  .chat {
    display: none; } }

@media (max-width: 960px) {
  .app,
  .app--with-chat {
    grid-template-columns: 1fr; }
  .chat-page {
    grid-template-columns: 1fr; }
  .sidebar {
    position: relative;
    height: auto;
    border-right: none;
    border-bottom: 1px solid #2a2f3a; }
  .content {
    min-height: auto; } }

/*# sourceMappingURL=styles.css.map */