@charset "UTF-8";

@font-face {
    font-family: 'Line Awesome Free';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('../line-awesome/fonts/la-regular-400.eot');
    src: url('../line-awesome/fonts/la-regular-400.eot?#iefix') format('embedded-opentype'),
         url('../line-awesome/fonts/la-regular-400.woff2') format('woff2'),
         url('../line-awesome/fonts/la-regular-400.woff') format('woff'),
         url('../line-awesome/fonts/la-regular-400.ttf') format('truetype'),
         url('../line-awesome/fonts/la-regular-400.svg#lineawesome') format('svg');
}
@font-face {
    font-family: 'Line Awesome Brands';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('../line-awesome/fonts/la-brands-400.eot');
    src: url('../line-awesome/fonts/la-brands-400.eot?#iefix') format('embedded-opentype'),
         url('../line-awesome/fonts/la-brands-400.woff2') format('woff2'),
         url('../line-awesome/fonts/la-brands-400.woff') format('woff'),
         url('../line-awesome/fonts/la-brands-400.ttf') format('truetype'),
         url('../line-awesome/fonts/la-brands-400.svg#lineawesome') format('svg');
}

:root,
[data-theme="light"] {

    --bg-primary: #ffffff;
    --bg-secondary: #f3f1e8;
    --bg-tertiary: #e6eadf;
    --bg-card: #ffffff;
    --bg-inverse: #223d2d;

    --text-primary: #223d2d;
    --text-secondary: #4e5e52;
    --text-muted: #738276;
    --text-inverse: #ffffff;
    --text-on-accent: #ffffff;
    --text-link: #2f6f4a;
    --text-link-hover: #24593b;

    --accent-primary: #3d7a52;
    --accent-primary-hover: #2f6a45;
    --accent-success: #4c8c5a;
    --accent-success-hover: #3f744b;
    --accent-danger: #b54d4d;
    --accent-danger-hover: #983f3f;
    --accent-warning: #c48a2c;
    --accent-warning-hover: #a87221;
    --accent-warning-bg: rgba(196, 138, 44, 0.12);
    --accent-warning-bg-hover: rgba(196, 138, 44, 0.20);
    --accent-info: #3a8a9b;
    --accent-success-dim: #e6f5e8;
    --accent-info-dim: #e8f0fa;

    --border-color: #d7dfd3;
    --border-color-strong: #bcc8b8;

    /* Затемнение под модалками и просмотром изображений */
    --overlay-bg: rgba(0, 0, 0, 0.72);

    --radius-xs: 2px;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-full: 999px;

    --shadow-xs: 0 1px 2px rgba(34, 61, 45, 0.05);
    --shadow-sm: 0 2px 4px rgba(34, 61, 45, 0.07);
    --shadow-md: 0 4px 12px rgba(34, 61, 45, 0.10);
    --shadow-lg: 0 8px 24px rgba(34, 61, 45, 0.14);
    --shadow-xl: 0 16px 48px rgba(34, 61, 45, 0.18);

    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;
    --space-3xl: 64px;

    /* Канонический ряд — шаг 4px. Числовые ступени без буквенного алиаса.
       Исключение — hairline (2px): для тонких линий и рамок. */
    --space-hairline: 2px;
    --space-12: 12px;
    --space-20: 20px;
    --space-28: 28px;
    --space-36: 36px;
    --space-40: 40px;

    --select-gutter: 36px;

    /* Скроллбары в формах: панели подсказок, выпадающие списки, многострочные поля, модалки.
       Тонкая прозрачная дорожка и ползунок из палитры; тёмная тема получает свои цвета
       автоматически — --border-color-strong и --accent-primary переопределены ниже. */
    --scrollbar-size: 10px;
    --scrollbar-thumb: var(--border-color-strong);
    --scrollbar-thumb-hover: var(--accent-primary);
    --scrollbar-track: transparent;

    --gap-section: var(--space-xl);
    --card-padding: var(--space-lg);
    --field-gap: var(--space-md);
    --label-gap: var(--space-xs);

    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-family-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", Menlo, monospace;
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 3rem;
    --line-height: 1.6;

    --icon-scale: 1;
    --icon-nudge: 0em;

    --input-height: 44px;
    --textarea-min-height: 100px;
    --btn-height: 44px;
    --btn-height-xs: 32px;
    --btn-height-sm: 36px;
    --btn-height-lg: 52px;

    --checkbox-size: 24px;
    --checkbox-border-width: 2px;

    --focus-ring: 0 0 0 3px rgba(61, 122, 82, 0.16);

    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 400ms ease;
    /* Появление/скрытие всплывающих слоёв. Кривая — очень быстрый старт и длинное
       мягкое затухание (тип ease-out-quint, как в интерфейсах Apple): штатные
       ease/ease-out дают вялое начало и обрубленный финал. */
    --transition-popup: 220ms cubic-bezier(0.22, 1, 0.36, 1);
    --transition-menu: 320ms cubic-bezier(0.22, 1, 0.36, 1);

    --container-max: 1200px;
    --container-padding: 20px;
    --header-height: 72px;

    --header-bg: #fbfaf5;
    --header-border: #d7dfd3;

    --footer-bg: #223d2d;
    --footer-text: #eef4ee;
    --footer-heading: #ffffff;
    --footer-link: #ffffff;
    --footer-link-hover: #b3dfb9;

    --z-base: 1;
    --z-dropdown: 100;
    --z-sticky: 500;
    --z-overlay: 1000;
    --z-modal: 1100;
    --z-lightbox: 11000;
    --z-popup: 10000;
    --z-max: 99999;

    --admin-bg: #f7f7f7;
    --admin-surface: #ffffff;
    --admin-sidebar: #2a3f54;
    --admin-sidebar-hover: #33475a;
    --admin-sidebar-border: #33475a;

    --admin-text: #333333;
    --admin-text-muted: #666666;
    --admin-text-light: #6b7280;
    --admin-text-inverse: #ffffff;
    --admin-link: #2f6f4a;
    --admin-link-hover: #24593b;

    --admin-sidebar-text: #e7e7e7;
    --admin-sidebar-text-muted: #b7b7b7;
    --admin-sidebar-text-dim: #a9b7c4;

    --admin-border: #e6e6e6;
    --admin-border-light: #f0f0f0;
    --admin-field-border: #949494;
    --admin-focus-color: #2a3f54;

    --admin-primary: #3d7a52;
    --admin-primary-hover: #2f6a45;
    --admin-success: #3f744b;
    --admin-success-hover: #356840;
    --admin-danger: #b23a2e;
    --admin-danger-hover: #962f25;
    --admin-warning: #c48a2c;
    --admin-warning-hover: #a87221;
    --admin-warning-text: #8a5a12;
    --admin-warning-ink: #2b1d00;
    --admin-info: #31708f;
    --admin-info-hover: #24627a;
    --admin-secondary: #5f6670;
    --admin-secondary-hover: #4f5560;
    --admin-dark: #1a2d42;

    --admin-focus-ring: 0 0 0 3px rgba(42, 63, 84, 0.25);

    --admin-switch-off: #cccccc;
    --admin-table-hover: #fafbfc;
    --admin-notification-unread: #fff8e1;
    --admin-autocomplete-hover: #f0f7ff;
    --admin-photo-placeholder: #f0f2f5;
    --admin-avatar-border: #dddddd;
    --admin-scrollbar-track: #e8ecef;

    --admin-emphasis-success-bg: #dff0d8;
    --admin-emphasis-success: #3c763d;
    --admin-emphasis-danger-bg: #f2dede;
    --admin-emphasis-danger: #a94442;
    --admin-emphasis-info-bg: #d9edf7;
    --admin-emphasis-warning-bg: #fcf8e3;
    --admin-emphasis-warning: #8a6d3b;
    --admin-emphasis-secondary-bg: #e7e7e7;
    --admin-emphasis-secondary: #555555;

    --admin-danger-zone-bg: #fdf7f7;
    --admin-danger-zone-border: #f0d0d0;

    --admin-stat-blue: #3498db;
    --admin-stat-green: #27ae60;
    --admin-stat-orange: #e67e22;
    --admin-stat-purple: #9b59b6;

    --admin-code-bg: #1e1e1e;
    --admin-code-text: #d4d4d4;

    --oauth-vk: #0077FF;
    --oauth-vk-hover: #0066dd;
    --oauth-yandex: #FC3F1D;
    --oauth-yandex-hover: #e0381a;

    /* Текст на фоне бренд-цветов выше: они одинаковы в обеих темах, значит и текст не зависит от темы */
    --text-on-brand: #ffffff;

    --admin-pagination-current: var(--admin-primary);
}

[data-theme="dark"] {

    --bg-primary: #0f1a1e;
    --bg-secondary: #152328;
    --bg-tertiary: #1c2e34;
    --bg-card: #152328;
    --bg-inverse: #e2ece9;

    --text-primary: #eaf3ef;
    --text-secondary: #b8cdc6;
    --text-muted: #7d9991;
    --text-inverse: #0f1a1e;

    --text-on-accent: #10241a;
    --text-link: #58b58e;
    --text-link-hover: #77cda7;

    --accent-primary: #3f9e78;
    --accent-primary-hover: #58b58e;
    --accent-success: #4db87b;
    --accent-success-hover: #6ecf8d;
    --accent-danger: #f27a7a;
    --accent-danger-hover: #f59999;
    --accent-warning: #f0b34b;
    --accent-warning-hover: #f7c56e;
    --accent-warning-bg: rgba(240, 179, 75, 0.15);
    --accent-warning-bg-hover: rgba(240, 179, 75, 0.25);
    --accent-info: #4fc1d9;
    --accent-success-dim: #1a3a22;
    --accent-info-dim: #1a2a3a;

    --border-color: rgba(120, 160, 140, 0.18);
    --border-color-strong: rgba(120, 160, 140, 0.35);

    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.24);
    --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.30);
    --shadow-md: 0 4px 14px rgba(0, 0, 0, 0.36);
    --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.42);
    --shadow-xl: 0 16px 56px rgba(0, 0, 0, 0.50);

    --focus-ring: 0 0 0 3px rgba(88, 181, 142, 0.28);

    --header-bg: #0f1a1e;
    --header-border: rgba(120, 160, 140, 0.18);

    --footer-bg: #0b1417;
    --footer-text: #b8cdc6;
    --footer-heading: #eaf3ef;

    --admin-bg: #1a221c;
    --admin-surface: #223029;
    --admin-sidebar: #16261c;
    --admin-sidebar-hover: #1e3327;
    --admin-sidebar-border: #294133;

    --admin-text: #eef4ee;
    --admin-text-muted: #9fb29f;
    --admin-text-light: #738276;

    --admin-border: #294133;
    --admin-border-light: #203428;

    --admin-dark: #0f1a13;
}
