/** * Визуальные исправления для Phantom Protocol * Исправляет проблемы с читаемостью и наложением блоков * Version: 2.1.0 */ /* ========================================== ИСПРАВЛЕНИЕ КОНТРАСТНОСТИ ТЕКСТА ========================================== */ /* Основной текст - увеличенная контрастность */ body { color: #e6e6ff; } /* Заголовки - яркий белый цвет */ h1, h2, h3, h4, h5, h6 { color: #ffffff !important; text-shadow: 0 0 20px rgba(0, 240, 255, 0.3); } /* Текст на карточках - улучшенная читаемость */ .card, .glass-card { color: #e6e6ff !important; } .card-title { color: #ffffff !important; font-weight: 600; } .card-text, .card-body p { color: #d0d0e8 !important; } /* Мутированный текст - более читаемый */ .text-muted { color: #b0b0d0 !important; } .card .text-muted { color: #c0c0dd !important; } /* Текст на темном фоне */ .bg-dark .text-muted, .bg-dark p, .bg-dark small { color: #d0d0e8 !important; } /* Lead текст - более заметный */ .lead { color: #f0f0ff !important; font-weight: 400; } /* Ссылки - улучшенная видимость */ a { color: #00f0ff !important; } a:hover { color: #7a3eff !important; } /* Ссылки в карточках */ .card a, .glass-card a { color: #00f0ff !important; font-weight: 500; } /* ========================================== ИСПРАВЛЕНИЕ НАЛОЖЕНИЯ БЛОКОВ ========================================== */ /* Navbar - правильный z-index */ .navbar { z-index: 1030 !important; position: fixed !important; top: 0; left: 0; right: 0; } /* Hero section - отступ сверху для navbar */ .hero-section, section[class*="hero"] { margin-top: 80px !important; padding-top: 80px !important; } /* Основные секции - правильные отступы */ section { position: relative; z-index: 1; padding: 80px 0; } section:first-of-type { padding-top: 120px; } /* Карточки - правильный z-index */ .card, .glass-card { position: relative; z-index: 2; margin-bottom: 30px; } /* Sticky sidebar - правильный z-index */ .sticky-top { z-index: 10 !important; top: 100px !important; } /* Footer - не налазит на контент */ .footer { position: relative; z-index: 1; margin-top: 80px; clear: both; } /* Модальные окна */ .modal { z-index: 1050 !important; } .modal-backdrop { z-index: 1040 !important; } /* Dropdown меню */ .dropdown-menu { z-index: 1000 !important; } /* ========================================== ИСПРАВЛЕНИЕ SPACING ========================================== */ /* Контейнеры - правильные отступы */ .container { padding-left: 15px !important; padding-right: 15px !important; } /* Строки - убираем переполнение */ .row { margin-left: -15px !important; margin-right: -15px !important; } /* Колонки - правильные отступы */ [class*="col-"] { padding-left: 15px !important; padding-right: 15px !important; } /* Margin между секциями */ section + section { margin-top: 0; } /* Padding в карточках */ .card-body { padding: 2rem !important; } /* ========================================== УЛУЧШЕНИЕ КАРТОЧЕК (GLASS CARDS) ========================================== */ .glass-card { background: rgba(19, 19, 26, 0.85) !important; backdrop-filter: blur(20px) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important; } /* Hover эффект для карточек */ .glass-card:hover { background: rgba(19, 19, 26, 0.95) !important; border-color: rgba(0, 240, 255, 0.3) !important; box-shadow: 0 12px 48px rgba(0, 240, 255, 0.2) !important; } /* Карточки Bootstrap */ .card { background: rgba(19, 19, 26, 0.85) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; color: #e6e6ff !important; } .card-header { background: rgba(0, 240, 255, 0.1) !important; border-bottom: 1px solid rgba(0, 240, 255, 0.2) !important; color: #ffffff !important; } /* ========================================== ИСПРАВЛЕНИЕ ТАБЛИЦ ========================================== */ .table { color: #e6e6ff !important; } .table-dark { background-color: rgba(19, 19, 26, 0.8) !important; color: #e6e6ff !important; } .table-dark thead th { background-color: rgba(0, 240, 255, 0.1) !important; color: #ffffff !important; border-color: rgba(0, 240, 255, 0.2) !important; } .table-dark tbody tr { border-color: rgba(255, 255, 255, 0.1) !important; } .table-dark td { color: #d0d0e8 !important; } /* Hover эффект для строк */ .table-hover tbody tr:hover { background-color: rgba(0, 240, 255, 0.05) !important; color: #ffffff !important; } /* ========================================== ИСПРАВЛЕНИЕ ФОРМ ========================================== */ .form-control { background-color: rgba(19, 19, 26, 0.8) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; color: #e6e6ff !important; } .form-control:focus { background-color: rgba(19, 19, 26, 0.9) !important; border-color: var(--color-accent) !important; color: #ffffff !important; box-shadow: 0 0 0 0.2rem rgba(0, 240, 255, 0.25) !important; } .form-control::placeholder { color: #9999b8 !important; opacity: 0.8; } /* ========================================== ИСПРАВЛЕНИЕ КНОПОК ========================================== */ /* Все кнопки - улучшенная контрастность */ .btn { font-weight: 500; border: none; padding: 0.75rem 1.5rem; } .btn-primary { background: linear-gradient(135deg, #00f0ff 0%, #7a3eff 100%) !important; color: #ffffff !important; border: none !important; } .btn-outline-light { border: 2px solid rgba(255, 255, 255, 0.3) !important; color: #ffffff !important; } .btn-outline-light:hover { background: rgba(255, 255, 255, 0.1) !important; border-color: var(--color-accent) !important; color: #ffffff !important; } .btn-gradient { background: linear-gradient(135deg, #00f0ff 0%, #7a3eff 100%) !important; color: #ffffff !important; border: none !important; font-weight: 600; } /* ========================================== ИСПРАВЛЕНИЕ НАВИГАЦИИ ========================================== */ .navbar { background: rgba(10, 10, 15, 0.95) !important; backdrop-filter: blur(20px) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .navbar-brand { color: #ffffff !important; font-weight: 700; } .nav-link { color: #d0d0e8 !important; font-weight: 500; } .nav-link:hover, .nav-link.active { color: #00f0ff !important; } /* Theme toggle button */ .theme-toggle { background: rgba(255, 255, 255, 0.1) !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; color: #ffffff !important; } .theme-toggle:hover { background: rgba(0, 240, 255, 0.2) !important; border-color: var(--color-accent) !important; } /* ========================================== ИСПРАВЛЕНИЕ FOOTER ========================================== */ .footer { background: rgba(10, 10, 15, 0.95) !important; border-top: 1px solid rgba(255, 255, 255, 0.1); color: #d0d0e8 !important; } .footer h5, .footer h6 { color: #ffffff !important; } .footer a { color: #d0d0e8 !important; } .footer a:hover { color: #00f0ff !important; } .footer-title { color: #ffffff !important; font-weight: 600; } .footer-links a { color: #d0d0e8 !important; transition: color 0.3s ease; } .footer-links a:hover { color: #00f0ff !important; } /* ========================================== ИСПРАВЛЕНИЕ BADGES ========================================== */ .badge { font-weight: 600; padding: 0.5rem 1rem; } .badge.bg-primary { background: linear-gradient(135deg, #00f0ff 0%, #7a3eff 100%) !important; color: #ffffff !important; } .badge.bg-success { background: var(--color-success) !important; color: #000000 !important; } .badge.bg-warning { background: var(--color-warning) !important; color: #000000 !important; } .badge.bg-danger { background: var(--color-error) !important; color: #ffffff !important; } .badge.bg-info { background: var(--color-accent) !important; color: #000000 !important; } /* ========================================== ИСПРАВЛЕНИЕ ALERTS ========================================== */ .alert { border: 1px solid; background-color: rgba(19, 19, 26, 0.8) !important; } .alert-info { border-color: rgba(0, 240, 255, 0.5) !important; background-color: rgba(0, 240, 255, 0.1) !important; color: #ffffff !important; } .alert-warning { border-color: rgba(255, 184, 0, 0.5) !important; background-color: rgba(255, 184, 0, 0.1) !important; color: #ffffff !important; } .alert-success { border-color: rgba(0, 255, 157, 0.5) !important; background-color: rgba(0, 255, 157, 0.1) !important; color: #ffffff !important; } .alert-danger { border-color: rgba(255, 42, 109, 0.5) !important; background-color: rgba(255, 42, 109, 0.1) !important; color: #ffffff !important; } /* ========================================== ИСПРАВЛЕНИЕ ACCORDION ========================================== */ .accordion-item { background: rgba(19, 19, 26, 0.8) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; } .accordion-button { background: rgba(19, 19, 26, 0.9) !important; color: #ffffff !important; font-weight: 600; } .accordion-button:not(.collapsed) { background: rgba(0, 240, 255, 0.1) !important; color: #ffffff !important; } .accordion-body { background: rgba(19, 19, 26, 0.7) !important; color: #d0d0e8 !important; } /* ========================================== ИСПРАВЛЕНИЕ CODE BLOCKS ========================================== */ pre { background: rgba(10, 10, 15, 0.9) !important; border: 1px solid rgba(0, 240, 255, 0.2) !important; border-radius: 8px; padding: 1.5rem !important; margin: 1rem 0; } code { color: #00f0ff !important; background: rgba(0, 240, 255, 0.1) !important; padding: 0.2rem 0.5rem; border-radius: 4px; font-family: var(--font-mono); } pre code { background: transparent !important; padding: 0 !important; } /* ========================================== LIGHT THEME ИСПРАВЛЕНИЯ ========================================== */ [data-theme="light"] body { color: #1a1a2e !important; } [data-theme="light"] h1, [data-theme="light"] h2, [data-theme="light"] h3, [data-theme="light"] h4, [data-theme="light"] h5, [data-theme="light"] h6 { color: #1a1a2e !important; text-shadow: none !important; } [data-theme="light"] .glass-card, [data-theme="light"] .card { background: rgba(255, 255, 255, 0.95) !important; color: #1a1a2e !important; border: 1px solid rgba(0, 0, 0, 0.1) !important; } [data-theme="light"] .text-muted { color: #6b6b8f !important; } [data-theme="light"] .navbar { background: rgba(248, 249, 255, 0.95) !important; } [data-theme="light"] .nav-link { color: #1a1a2e !important; } [data-theme="light"] .nav-link:hover, [data-theme="light"] .nav-link.active { color: #00f0ff !important; } /* ========================================== RESPONSIVE ИСПРАВЛЕНИЯ ========================================== */ @media (max-width: 991px) { /* Убираем наложения на планшетах */ .sticky-top { position: relative !important; top: 0 !important; } /* Увеличиваем padding в карточках */ .card-body { padding: 1.5rem !important; } } @media (max-width: 767px) { /* Мобильные устройства - увеличиваем отступы */ section { padding: 60px 0; } section:first-of-type { padding-top: 100px; } /* Уменьшаем padding в карточках на мобильных */ .card-body { padding: 1rem !important; } /* Убираем сложные эффекты на мобильных */ .glass-card { backdrop-filter: none !important; background: rgba(19, 19, 26, 0.95) !important; } } /* ========================================== ДОПОЛНИТЕЛЬНЫЕ ИСПРАВЛЕНИЯ ========================================== */ /* Убираем переполнение */ * { overflow-wrap: break-word; word-wrap: break-word; } /* Убираем горизонтальный скролл */ body, html { overflow-x: hidden !important; } /* Плавные переходы для всех изменений */ * { transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; } /* Улучшенная видимость focus */ *:focus { outline: 2px solid var(--color-accent) !important; outline-offset: 2px; } button:focus, a:focus { outline: 2px solid var(--color-accent) !important; } /* Убираем outline на мышиных кликах */ *:focus:not(:focus-visible) { outline: none !important; } /* ========================================== ANIMATED BACKGROUND CANVAS ========================================== */ /* Canvas фон на всю страницу */ #phantomBackground { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; z-index: -2; pointer-events: none; opacity: 1; } /* Для light темы - уменьшаем видимость фона */ [data-theme="light"] #phantomBackground { opacity: 0.25; } /* На мобильных уменьшаем количество частиц (через JS) */ @media (max-width: 767px) { #phantomBackground { opacity: 0.5; } }