@import 'leaflet/dist/leaflet.css'; * { margin: 0; padding: 0; box-sizing: border-box; } /* Цветовые палитры ВЕКТОР согласно §5 контекста Три интерфейса: ЦОУ Десктоп, Мобильный, Админка */ /* ЦОУ Десктоп — аналитика, работа часами */ :root[data-theme="desktop"], :root { --bg-primary: #0a0c0f; --bg-secondary: #12161b; --text-primary: #e6edf3; --text-secondary: #8b949e; --accent: #ff4d00; --accent-hover: #ff7a33; --zone-1: #ff4d00; --zone-2: #ff9f1a; --zone-3: #ffd166; --success: #2ea043; --warning: #d29922; --danger: #f85149; --border: #30363d; --input-bg: #161b22; --input-border: #30363d; } /* Мобильный — быстрое действие под стрессом */ :root[data-theme="mobile"] { --bg-primary: #000000; --bg-secondary: #0d1117; --text-primary: #ffffff; --text-secondary: #b1bac4; --accent: #ff3b30; --accent-hover: #ff6b60; --btn-confirm: #34c759; --btn-gps: #0a84ff; --zone-1: #ff3b30; --zone-2: #ff9500; --zone-3: #ffcc00; --success: #34c759; --warning: #ff9500; --danger: #ff3b30; --border: #1c1c1e; --input-bg: #1c1c1e; --input-border: #38383a; /* Мобильные кнопки минимум 52px высота */ --btn-min-height: 52px; } /* Админка — спокойная верификация */ :root[data-theme="admin"] { --bg-primary: #0d1117; --bg-secondary: #161b22; --text-primary: #e6edf3; --text-secondary: #8b949e; --accent: #2f81f7; --accent-hover: #58a6ff; --chart-distance: #2f81f7; --chart-terrain: #3fb950; --chart-outcome: #f85149; --success: #3fb950; --warning: #d29922; --danger: #f85149; --border: #30363d; --input-bg: #161b22; --input-border: #30363d; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background-color: var(--bg-primary); color: var(--text-primary); } code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } /* Базовые стили для всех интерфейсов */ button { font-family: inherit; cursor: pointer; border: none; transition: all 0.2s ease; } input, textarea, select { font-family: inherit; background-color: var(--input-bg); color: var(--text-primary); border: 1px solid var(--input-border); border-radius: 6px; padding: 8px 12px; transition: border-color 0.2s ease; } input:focus, textarea:focus, select:focus { outline: none; border-color: var(--accent); } /* Мобильные кнопки */ [data-theme="mobile"] button { min-height: var(--btn-min-height); font-size: 17px; font-weight: 600; } /* Кнопки подтверждения */ .btn-primary { background-color: var(--accent); color: white; padding: 10px 20px; border-radius: 8px; font-weight: 600; } .btn-primary:hover { background-color: var(--accent-hover); } .btn-success { background-color: var(--success); color: white; padding: 10px 20px; border-radius: 8px; font-weight: 600; } .btn-danger { background-color: var(--danger); color: white; padding: 10px 20px; border-radius: 8px; font-weight: 600; } /* Мобильная кнопка GPS */ [data-theme="mobile"] .btn-gps { background-color: var(--btn-gps); color: white; } /* Мобильная кнопка подтверждения */ [data-theme="mobile"] .btn-confirm { background-color: var(--btn-confirm); color: white; } /* Карточки */ .card { background-color: var(--bg-secondary); border: 1px solid var(--border); border-radius: 8px; padding: 16px; } /* Зоны поиска */ .zone-priority-1 { color: var(--zone-1); border-color: var(--zone-1); } .zone-priority-2 { color: var(--zone-2); border-color: var(--zone-2); } .zone-priority-3 { color: var(--zone-3); border-color: var(--zone-3); }