@charset "UTF-8"; /*# The coding page CSS */
/**
 * =============================================================================
 * @encoding UTF-8
 * @author [Zerohold](//zerohold.sd1.su)
 * @project [Portal AI](//portal.sd1.su)
 * @summary Стили для темы оформления портала. Название: portal. Кодовое имя: portal.
 * @created 2025-10
 * @modified 2025-10
 *
 * @link https://portal.sd1.su/css/themes/theme-portal.css
 * @file D:/kz/kz-sd1.su/portal.sd1.su/css/themes/theme-portal.css
 *
 * @remarks
 * - Тема портала с современным дизайном
 * - Поддержка светлой и темной темы
 * - Стили для всех компонентов интерфейса
 * =============================================================================
 */

/* ОСНОВНЫЕ ПЕРЕМЕННЫЕ ТЕМЫ */
body[data-theme="portal"]
{
  /* Базовые цвета (base colors) */
  --primary: #2563eb;
  --primary-hover: #1d4ed8;
  --primary-dark: #1e40af;
  --secondary: #64748b;
  --secondary-hover: #475569;
  --success: #10b981;
  --success-hover: #059669;
  --warning: #f59e0b;
  --warning-hover: #d97706;
  --danger: #ef4444;
  --danger-hover: #dc2626;
  --info: #3b82f6;
  --info-hover: #2563eb;

  /* Цвета фона (background colors) */
  --bg-primary: #ffffff;
  --bg-secondary: #f8fafc;
  --bg-tertiary: #f1f5f9;
  --bg-accent: #e2e8f0;

  /* Цвета текста (text colors) */
  --text-primary: #1f2937;
  --text-secondary: #374151;
  --text-muted: #6b7280;
  --text-inverse: #ffffff;

  /* Цвета границ (border colors) */
  --border-color: #e5e7eb;
  --border-color-hover: #d1d5db;

  /* Цвета Header & Footer */
  --header-footer-bg-color: #ffffff;
  --header-footer-bg-image: none;
  --header-footer-border-color: #e5e7eb;

  /* Цвета теней (shadow colors) */
  --shadow-color: rgba(0, 0, 0, 0.1);

  /* Хлебные крошки (breadcrumbs) */
  --breadcrumb-bg-start: #f8fafc;
  --breadcrumb-bg-end: #e2e8f0;
  --breadcrumb-border: #e5e7eb;
  --breadcrumb-shadow: rgba(0, 0, 0, 0.05);
  --breadcrumb-color: #6b7280;
  --breadcrumb-link-color: #374151;
  --breadcrumb-link-hover-color: #2563eb;
  --breadcrumb-link-hover-bg: #eff6ff;
  --breadcrumb-divider-color: #d1d5db;

  /* Цвета уведомлений (Alert Colors) */
  --alert-blue-bg: #eff6ff;
  --alert-blue-border: #3b82f6;
  --alert-blue-text: #1e40af;
  --alert-yellow-bg: #fffbeb;
  --alert-yellow-border: #f59e0b;
  --alert-yellow-text: #92400e;
  --alert-green-bg: #f0fdf4;
  --alert-green-border: #10b981;
  --alert-green-text: #065f46;
  --alert-purple-bg: #faf5ff;
  --alert-purple-border: #8b5cf6;
  --alert-purple-text: #6b21a8;
  --alert-indigo-bg: #eef2ff;
  --alert-indigo-border: #6366f1;
  --alert-indigo-text: #4338ca;
  --alert-gray-bg: #f9fafb;
  --alert-gray-border: #6b7280;
  --alert-gray-text: #374151;
  --alert-red-bg: #fef2f2;
  --alert-red-border: #ef4444;
  --alert-red-text: #991b1b;

  /* Содержание статьи (supply) */
  --supply-bg: #f8fafc;
  --supply-border-color: #e5e7eb;
  --supply-header-text-color: #374151;
  --supply-indicator-color: #2563eb;
  --supply-link-color: #374151;
  --supply-link-hover-color: #2563eb;
  --supply-link-hover-bg: #eff6ff;
  --supply-number-color: #2563eb;
  --supply-sub-number-color: #6366f1;
}

/* КОМПОНЕНТЫ */

/* Уведомления (Alerts) */
body[data-theme="portal"] .alert-success
{
  color: var(--alert-green-text);
  background-color: var(--alert-green-bg);
  border-color: var(--alert-green-border);
}

body[data-theme="portal"] .alert-warning
{
  color: var(--alert-yellow-text);
  background-color: var(--alert-yellow-bg);
  border-color: var(--alert-yellow-border);
}

body[data-theme="portal"] .alert-danger
{
  color: var(--alert-red-text);
  background-color: var(--alert-red-bg);
  border-color: var(--alert-red-border);
}

body[data-theme="portal"] .alert-info
{
  color: var(--alert-blue-text);
  background-color: var(--alert-blue-bg);
  border-color: var(--alert-blue-border);
}

/* Оверлей загрузки (Loading Overlay) */
body[data-theme="portal"] .loading-overlay
{
  background-color: rgba(0, 0, 0, 0.5);
}

/* Кнопки прокрутки (Scroll Controls) */
body[data-theme="portal"] .scroll-control
{
  background-color: var(--primary);
}

body[data-theme="portal"] .scroll-control:hover
{
  background-color: var(--primary-hover);
}

body[data-theme="portal"] .scroll-btn:hover
{
  background-color: var(--primary-hover);
}

/* Элементы форм (Form Controls) */
body[data-theme="portal"] .form-select
{
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231f2937' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

body[data-theme="portal"] .form-input:focus,
body[data-theme="portal"] .form-textarea:focus,
body[data-theme="portal"] .form-select:focus,
body[data-theme="portal"] .form-input.focus
{
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Фокус кнопок (Button Focus) */
body[data-theme="portal"] .btn:focus
{
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

/* Модальное окно (Modal) */
body[data-theme="portal"] .modal
{
  background-color: rgba(0, 0, 0, 0.5);
}

/* Зона для перетаскивания файлов (Drop Zone) */
body[data-theme="portal"] .drop-zone:hover
{
  border-color: var(--primary);
}

body[data-theme="portal"] .drop-zone.dragover
{
  border-color: var(--success);
  background-color: rgba(16, 185, 129, 0.1);
  color: var(--success);
}

/* Переключатель тем (Theme Switcher) */
body[data-theme="portal"] .theme-option:hover
{
  background-color: var(--bg-tertiary);
}

body[data-theme="portal"] .theme-option.active
{
  background-color: var(--primary);
  color: white;
}

body[data-theme="portal"] .theme-switcher-modal .theme-option:hover
{
  background-color: var(--bg-tertiary);
}

body[data-theme="portal"] .theme-switcher-modal .theme-option.active
{
  background-color: var(--primary);
  color: white;
}

/* Спиннер (Spinner) */
body[data-theme="portal"] .spinner
{
  border-color: var(--bg-tertiary);
  border-top-color: var(--primary);
}

/* Кнопки в шапке (Header Buttons) */
body[data-theme="portal"] .header-btn:hover
{
  background-color: var(--bg-tertiary);
}

/* Элементы карточек (Card Elements) */
body[data-theme="portal"] .card-header,
body[data-theme="portal"] .card-footer
{
  background-color: var(--bg-secondary);
  background-image: none;
  border-color: var(--border-color);
  color: var(--text-primary);
}

body[data-theme="portal"] .card-header
{
  border-bottom-color: var(--border-color);
}

body[data-theme="portal"] .card-footer
{
  border-top-color: var(--border-color);
}

/* Элементы модального окна (Modal Elements) */
body[data-theme="portal"] .modal-header,
body[data-theme="portal"] .modal-footer
{
  background-color: var(--bg-primary);
  background-image: none;
  border-color: var(--border-color);
  color: var(--text-primary);
}

body[data-theme="portal"] .modal-header
{
  border-bottom-color: var(--border-color);
}

body[data-theme="portal"] .modal-footer
{
  border-top-color: var(--border-color);
}

/* Хлебные крошки (Breadcrumbs) */
body[data-theme="portal"] .breadcrumb-item a
{
  color: var(--breadcrumb-link-color);
}

body[data-theme="portal"] .breadcrumb-item a:hover
{
  color: var(--breadcrumb-link-hover-color);
}

body[data-theme="portal"] .breadcrumb-item.active
{
  color: var(--breadcrumb-color);
}

body[data-theme="portal"] .breadcrumb-arrow .breadcrumb-item:not(:last-child)::after
{
  color: var(--breadcrumb-divider-color);
}

body[data-theme="portal"] .breadcrumb-pills .breadcrumb-item a
{
  background-color: var(--breadcrumb-bg-start);
  color: var(--breadcrumb-link-color);
}

body[data-theme="portal"] .breadcrumb-pills .breadcrumb-item a:hover
{
  background-color: var(--breadcrumb-link-hover-bg);
}

body[data-theme="portal"] .breadcrumb-pills .breadcrumb-item.active
{
  background-color: var(--primary);
  color: white;
}

/* Таблицы (Tables) */
body[data-theme="portal"] .param-table
{
  background-color: var(--bg-primary);
  border-color: var(--border-color);
}

body[data-theme="portal"] .param-table th
{
  background-color: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}

body[data-theme="portal"] .param-table td
{
  border-color: var(--border-color);
  color: var(--text-secondary);
}

body[data-theme="portal"] .param-table tbody tr:hover
{
  background-color: var(--bg-tertiary);
}

body[data-theme="portal"] .param-table tbody tr:nth-child(even)
{
  background-color: var(--bg-secondary);
}

/* Эффект мерцания (Shimmer Effect) */
body[data-theme="portal"] .shimmer
{
  background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
}

/* Стили для приветственной секции */
.welcome-section {
    background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);
    position: relative;
}

.shape-1, .shape-2, .shape-3 {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    animation: float 15s infinite ease-in-out;
}

.shape-1 {
    width: 200px;
    height: 200px;
    top: 10%;
    left: 15%;
    animation-delay: 0s;
}

.shape-2 {
    width: 150px;
    height: 150px;
    bottom: 15%;
    right: 10%;
    animation-delay: 5s;
}

.shape-3 {
    width: 100px;
    height: 100px;
    top: 50%;
    right: 25%;
    animation-delay: 10s;
}
.animate-pulse-slow {
    animation: pulse-slow 4s infinite ease-in-out;
}

@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(45deg);
    }
}
@keyframes pulse-slow {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.7;
  }
}
