/
baga228
/
project_PIAS
Обзор
Документация
Войти
/
baga228
/
project_PIAS
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/style.css
428 строк
9 KB
baga228
upload files
26 дек 2025, 04:00
26 дек 2025, 04:00
1f57827
Код
Авторство
О чём код?
/* ========================================== ГЛОБАЛЬНЫЕ СТИЛИ ========================================== */ * { margin: 0; padding: 0; box-sizing: border-box; } :root { /* ЦВЕТА */ --primary-color: #2c3e50; /* Тёмно-синий */ --secondary-color: #3498db; /* Голубой */ --accent-color: #e74c3c; /* Красный */ --success-color: #27ae60; /* Зелёный */ --light-bg: #ecf0f1; /* Светлый фон */ --white: #ffffff; --text-dark: #2c3e50; --text-light: #7f8c8d; --border-color: #bdc3c7; /* ШРИФТЫ */ --font-main: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; --font-mono: 'Courier New', monospace; /* РАЗМЕРЫ */ --spacing-xs: 5px; --spacing-sm: 10px; --spacing-md: 15px; --spacing-lg: 20px; --spacing-xl: 30px; } html { font-size: 16px; } body { font-family: var(--font-main); background-color: var(--light-bg); color: var(--text-dark); line-height: 1.6; } /* ========================================== ЗАГОЛОВОК ========================================== */ .header { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: var(--white); padding: var(--spacing-xl); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); margin-bottom: var(--spacing-xl); } .header h1 { font-size: 2.5rem; margin-bottom: var(--spacing-sm); } .subtitle { font-size: 1.1rem; opacity: 0.9; } /* ========================================== ОСНОВНОЙ КОНТЕЙНЕР ========================================== */ .container { max-width: 1400px; margin: 0 auto; padding: 0 var(--spacing-lg); display: grid; grid-template-columns: 280px 1fr; gap: var(--spacing-xl); } /* ========================================== БОКОВАЯ ПАНЕЛЬ (SIDEBAR) ========================================== */ .sidebar { position: sticky; top: var(--spacing-lg); height: fit-content; } .filter-block { background: var(--white); border: 1px solid var(--border-color); border-radius: 8px; padding: var(--spacing-lg); margin-bottom: var(--spacing-lg); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .filter-block h2 { font-size: 1.2rem; margin-bottom: var(--spacing-md); color: var(--primary-color); border-bottom: 2px solid var(--secondary-color); padding-bottom: var(--spacing-sm); } .filter-block label { display: flex; align-items: center; margin-bottom: var(--spacing-sm); cursor: pointer; font-size: 0.95rem; } .filter-block input[type="checkbox"] { margin-right: var(--spacing-sm); cursor: pointer; width: 18px; height: 18px; } /* ========================================== КНОПКИ ========================================== */ .btn { display: inline-block; padding: var(--spacing-md) var(--spacing-lg); border: none; border-radius: 5px; cursor: pointer; font-size: 1rem; font-weight: 600; transition: all 0.3s ease; width: 100%; margin-bottom: var(--spacing-sm); } .btn-primary { background-color: var(--secondary-color); color: var(--white); } .btn-primary:hover { background-color: #2980b9; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(52, 152, 219, 0.3); } .btn-secondary { background-color: var(--text-light); color: var(--white); } .btn-secondary:hover { background-color: #6c7a88; transform: translateY(-2px); } /* ========================================== СТАТИСТИКА ========================================== */ .stats-block { font-size: 0.9rem; line-height: 1.8; } .stats-block .stat-item { display: flex; justify-content: space-between; padding: var(--spacing-sm) 0; border-bottom: 1px solid var(--light-bg); } .stats-block .stat-label { color: var(--text-light); } .stats-block .stat-value { font-weight: 700; color: var(--accent-color); } /* ========================================== ОСНОВНОЙ КОНТЕНТ ========================================== */ .main-content { background: var(--white); border-radius: 8px; padding: var(--spacing-lg); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } section { margin-bottom: var(--spacing-xl); } section h2 { font-size: 1.5rem; color: var(--primary-color); margin-bottom: var(--spacing-md); padding-bottom: var(--spacing-sm); border-bottom: 2px solid var(--secondary-color); } /* ========================================== ПОЛЕ ПОИСКА ========================================== */ .search-bar { margin-bottom: var(--spacing-lg); } .search-input { width: 100%; padding: var(--spacing-md); border: 2px solid var(--border-color); border-radius: 5px; font-size: 1rem; transition: border-color 0.3s; } .search-input:focus { outline: none; border-color: var(--secondary-color); box-shadow: 0 0 5px rgba(52, 152, 219, 0.3); } /* ========================================== ТАБЛИЦА ОБЪЕКТОВ ========================================== */ .properties-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } .properties-table thead { background-color: var(--primary-color); color: var(--white); } .properties-table th { padding: var(--spacing-md); text-align: left; font-weight: 600; } .properties-table td { padding: var(--spacing-md); border-bottom: 1px solid var(--light-bg); } .properties-table tbody tr { transition: background-color 0.2s; } .property-row { cursor: pointer; } .properties-table tbody tr:hover { background-color: #f8f9fa; } .properties-table tbody tr:nth-child(even) { background-color: #f5f5f5; } .price { color: var(--accent-color); font-weight: 700; } .price-per-sqm { color: var(--success-color); font-weight: 600; } /* ========================================== АНАЛИЗ ПО РАЙОНАМ ========================================== */ .analysis-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-lg); } .analysis-card { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border-radius: 8px; padding: var(--spacing-lg); border-left: 5px solid var(--secondary-color); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); transition: transform 0.3s, box-shadow 0.3s; } .analysis-card:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .analysis-card h3 { color: var(--primary-color); margin-bottom: var(--spacing-md); font-size: 1.2rem; } .analysis-card .metric { display: flex; justify-content: space-between; padding: var(--spacing-sm) 0; font-size: 0.95rem; } .analysis-card .metric-label { color: var(--text-light); } .analysis-card .metric-value { font-weight: 700; color: var(--accent-color); } /* ========================================== ГРАФИК ========================================== */ .chart-container { background: var(--light-bg); padding: var(--spacing-lg); border-radius: 8px; max-height: 400px; position: relative; } canvas { max-width: 100%; max-height: 350px; } /* ========================================== ПОДВАЛ ========================================== */ .footer { background-color: var(--primary-color); color: var(--white); text-align: center; padding: var(--spacing-xl); margin-top: var(--spacing-xl); } /* ========================================== АДАПТИВНЫЙ ДИЗАЙН (МОБИЛЬНЫЕ) ========================================== */ @media (max-width: 768px) { :root { font-size: 14px; } .container { grid-template-columns: 1fr; } .header h1 { font-size: 1.8rem; } .sidebar { position: static; } .analysis-grid { grid-template-columns: 1fr; } .properties-table { font-size: 0.85rem; } .properties-table th, .properties-table td { padding: var(--spacing-sm); } } /* ========================================== ЗАГРУЗКА И ПУСТЫЕ СОСТОЯНИЯ ========================================== */ .loading { text-align: center; padding: var(--spacing-xl); color: var(--text-light); } .loading::after { content: ''; display: inline-block; width: 20px; height: 20px; border: 3px solid var(--secondary-color); border-top-color: transparent; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .empty-state { text-align: center; padding: var(--spacing-xl); color: var(--text-light); background: var(--light-bg); border-radius: 8px; font-size: 1.1rem; }