/* === ЦВЕТОВАЯ СХЕМА === */ :root { /* Светлая тема: Темно-серый с легкой желтизной (Warm Charcoal) */ --bs-body-bg: #f8f8f2; --bs-body-color: #1f1f19; --bs-primary: #4a4a44; --bs-primary-rgb: 74, 74, 68; --bs-link-color: #4a4a44; --bs-link-hover-color: #2e2e2a; --bs-focus-ring-color: rgba(74, 74, 68, 0.25); /* Фон навбара в светлой теме */ --bs-navbar-bg: #b8b8d055; /* Тот же, что и body, или чуть темнее */ --bs-navbar-color: #1f1f19; } [data-bs-theme="dark"] { /* Темная тема: Глубокий черный фон и Стальной акцент */ --bs-body-bg: #151111; --bs-body-color: #eceff1; /* Акцент: Светлый серо-голубой */ --bs-primary: #b0bec5; --bs-primary-rgb: 176, 190, 197; --bs-link-color: #90caf9; --bs-link-hover-color: #bbdefb; --bs-border-color: #37474f; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); /* Цвет фокуса для полей ввода */ --bs-focus-ring-color: rgba(176, 190, 197, 0.25); /* Фон навбара в темной теме */ --bs-navbar-bg: #55558555; --bs-navbar-color: #b0bec5; } /* Небольшие стили для красоты */ html, body { height: 100%; } body { background-color: var(--bs-body-bg); display: flex; flex-direction: column; } #main-navbar { z-index: 1000; background-color: var(--bs-navbar-bg) !important; border-bottom: 1px solid var(--bs-border-color); padding: 0; position: sticky; top: 0; backdrop-filter: blur(4px); /* Эффект размытия */ box-shadow: 0 -25px 30px 15px var(--bs-border-color); /* transition: height 0.3s ease, background-color 0.3s ease; /* Анимация высоты */ } #main-navbar > .container { background: no-repeat left; background-size: contain; } #main-navbar > .container.logo-big { background-image: var(--bg-image-text); transition: .4s ease; } #main-navbar > .container:not(.logo-big) { background-image: none; transition: .4s ease; } #main-navbar > #logo > .navbar-brand { padding: 0; /* Убираем отступы у бренда */ display: block; /* Блок, чтобы работали размеры */ background: no-repeat left; background-size: contain; margin-left: -1.5%; } #main-navbar > #logo.logo-big > .navbar-brand { height: 105px; width: 500px; opacity: 1; transition: .4s ease; } #main-navbar > #logo:not(.logo-big) > .navbar-brand { height: 60px; width: 285px; transition: .4s ease; opacity: 0; } /* Контент растягивается, чтобы прижать футер */ #content-container { flex: 1 0 auto; } /* Футер */ .footer { flex-shrink: 0; padding: 1rem 0; margin-top: 2rem; border-top: 1px solid var(--bs-border-color); background-color: var(--bs-navbar-bg); color: var(--bs-navbar-color); font-size: 0.9rem; } /* === ПЕРЕОПРЕДЕЛЕНИЕ КОМПОНЕНТОВ BOOTSTRAP === */ /* Кнопки Primary */ .btn-primary { --bs-btn-bg: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--bs-link-hover-color); --bs-btn-hover-border-color: var(--bs-link-hover-color); --bs-btn-active-bg: var(--bs-link-hover-color); --bs-btn-active-border-color: var(--bs-link-hover-color); } /* В темной теме текст на кнопке должен быть темным */ [data-bs-theme="dark"] .btn-primary { --bs-btn-color: #151111; --bs-btn-hover-color: #151111; --bs-btn-active-color: #151111; } /* Чекбоксы и Радио */ .form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); } /* В темной теме галочка должна быть темной */ [data-bs-theme="dark"] .form-check-input:checked { /* SVG галочки черного цвета (закодирован в base64) */ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23151111' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); } /* Фокус на полях ввода */ .form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--bs-primary); box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color); } .result-box { background: var(--bs-body-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: 0.375rem; padding: 1rem; min-height: 300px; padding-left: 1.5rem; padding-right: 1.5rem; white-space: pre-wrap; font-family: inherit; } .cm-editor { border: 1px solid var(--bs-border-color); border-radius: 0.375rem; height: 300px; } /* --- Висячая пунктуация (Hanging Punctuation) --- */ .result-box .etp-laquo { margin-left: -0.44em; } .result-box .etp-ldquo { margin-left: -0.44em; } .result-box .etp-lpar { margin-left: -0.3em; } .result-box .etp-lsqb { margin-left: -0.3em; } .result-box .etp-lcub { margin-left: -0.3em; } .result-box .etp-raquo { margin-right: -0.44em; } .result-box .etp-rdquo { margin-right: -0.44em; } .result-box .etp-rpar { margin-right: -0.3em; } .result-box .etp-rsqb { margin-right: -0.3em; } .result-box .etp-rcub { margin-right: -0.3em; } .result-box .etp-r-dot { margin-right: -0.2em; } .result-box .etp-r-comma { margin-right: -0.2em; } .result-box .etp-r-colon { margin-right: -0.2em; } /* --- Стили для Cookie Banner --- */ #cookie-banner { backdrop-filter: blur(10px); border-top: 1px solid var(--bs-border-color); z-index: 1050; background-color: var(--bs-navbar-bg); color: var(--bs-navbar-color); /* Используем цвет навбара для текста */ } #cookie-banner a { color: var(--bs-primary); text-decoration: none; border-bottom: 1px dotted var(--bs-primary); } #cookie-banner a:hover { border-bottom-style: solid; color: var(--bs-link-hover-color); } #cookie-accept { color: var(--bs-primary); border: 1px dashed var(--bs-primary); background: transparent; } #cookie-accept:hover { background: rgba(var(--bs-primary-rgb), 0.1); }