/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/*
 *= require_tree .
 *= require_self
 */

/* =====================================================================
   Дизайн-токены кабинета (UI-аудит 07.10.2026, п. 2).

   Цвета, радиусы, отступы и размеры шрифта задаются ТОЛЬКО здесь. В CSS и
   во вьюхах — var(--…), а не hex: раньше в кабинете было 129 разных цветов,
   пять «основных» фиолетовых и два «успеха».
   ===================================================================== */
:root {
  /* Нейтральные */
  --bg:             #f4f4f6;
  --surface:        #ffffff;
  --surface-hover:  #fafafa;
  --neutral-bg:     #f0f0f0;  /* фон нейтрального бейджа */
  --border:         #e8e8ec;
  --border2:        #d8d8e0;
  --text:           #1a1a2e;
  --text-secondary: #5c5c70;
  --muted:          #8a8a9a;
  --muted2:         #b0b0be;
  --overlay:        rgba(26, 26, 46, .4);

  /* Акцент */
  --accent:         #5b5ef4;
  --accent-hover:   #4a4de0;
  --accent-bg:      #f0f0ff;
  --accent-bg-soft: #f5f4ff;  /* «сегодня» в календаре */

  /* Статусы: основной цвет · текст на светлом фоне · фон · рамка */
  --success:        #22b573;
  --success-text:   #1a9e5c;
  --success-bg:     #edfaf4;
  --success-border: #c3f0db;

  --warning:        #f0a020;
  --warning-text:   #9a5b00;
  --warning-bg:     #fff8ee;
  --warning-border: #f0c48a;

  --danger:         #e84646;
  --danger-text:    #c0392b;
  --danger-bg:      #fff0f0;
  --danger-bg-hover:#ffe4e4;
  --danger-border:  #ffdddd;

  --info:           #3b82f6;
  --info-bg:        #eef6ff;

  /* Смысловые наборы */
  --event:          #e8763a;  /* разовое событие */
  --event-bg:       #fff3ee;
  --course:         #e8930c;  /* занятие курса в календаре */
  --course-text:    #9a5b00;
  --course-bg:      #fff1dc;
  --course-border:  #f0c48a;
  --block-text:     #33528a;  /* закрытое время */
  --block-muted:    #5e6f9e;
  --block-bg:       #eef1fb;
  --block-border:   #aab6e8;

  /* Радиусы: чипы и мелкие поля · кнопки и поля · карточки · модалки */
  --radius-sm:      6px;
  --radius-md:      8px;
  --radius-lg:      12px;
  --radius-xl:      16px;
  --radius:         var(--radius-lg); /* прежнее имя */
  --radius-pill:    999px;

  /* Отступы */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;

  /* Шрифт */
  --font:      'Inter', sans-serif;
  --fs-xs:     11px;
  --fs-sm:     12px;
  --fs-base:   13px;
  --fs-md:     14px;
  --fs-lg:     16px;
  --fs-xl:     20px;
  --fs-2xl:    24px;
  --fs-3xl:    32px;

  --shadow:    0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
}

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

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
}

.app-layout {
  display: flex;
  min-height: 100vh;
  overflow: hidden;
}
