/* Изменено 2026-10-05, stim: добавлено компактное оформление Bootstrap-админки для десктопа и телефона. */
:root {
    --sidebar-width: 260px;
    --admin-bg: #f3f6f9;
    --admin-dark: #17202a;
    --admin-accent: #2f6fed;
}

body { background: var(--admin-bg); color: #26313d; }
.app-shell { min-height: 100vh; }
.sidebar { width: var(--sidebar-width); background: var(--admin-dark); color: #dce5ee; position: fixed; inset: 0 auto 0 0; z-index: 1030; overflow-y: auto; }
.brand { display: block; padding: 1.25rem 1.4rem; color: #fff; font-size: 1.25rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.1); }
.sidebar .nav-link { color: #bcc9d5; border-radius: .6rem; margin: .15rem .75rem; padding: .75rem 1rem; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { color: #fff; background: rgba(255,255,255,.1); }
.main { margin-left: var(--sidebar-width); min-height: 100vh; }
.topbar { background: #fff; border-bottom: 1px solid #e4e9ef; padding: .8rem 1.5rem; position: sticky; top: 0; z-index: 1020; }
.content { padding: 1.5rem; }
.card { border: 0; border-radius: .85rem; box-shadow: 0 2px 12px rgba(35,48,65,.07); }
.table > :not(caption) > * > * { padding: .8rem .75rem; vertical-align: middle; }
.permission-table th:not(:first-child), .permission-table td:not(:first-child) { text-align: center; width: 120px; }
.stat-card { min-height: 145px; }
.stat-card .display-6 { color: var(--admin-accent); }
.login-page { min-height: 100vh; background: linear-gradient(135deg, #182230, #2f6fed); display: grid; place-items: center; padding: 1rem; }
.login-stack { width: min(100%, 430px); display: grid; gap: .75rem; }
.login-card { width: 100%; border-radius: 1rem; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
/* Изменено 2026-10-05, stim: добавлен заметный индикатор тревоги для верхней панели и страницы входа. */
.alarm-indicator { display: inline-flex; align-items: center; gap: .5rem; padding: .65rem .9rem; font-size: .9rem; text-decoration: none; box-shadow: 0 2px 10px rgba(35,48,65,.16); }
.alarm-status-dot { width: .58rem; height: .58rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 .2rem rgba(255,255,255,.25); }
.login-alarm-indicator { justify-content: center; width: 100%; font-size: 1rem; }
.alarm-panel { border: 2px solid; border-radius: 1rem; padding: 2rem; text-align: center; }
.alarm-panel.enabled { border-color: #dc3545; background: #fff1f2; }
.alarm-panel.disabled { border-color: #198754; background: #effaf4; }
.code-hint { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9rem; }

@media (max-width: 991.98px) {
    .sidebar { position: static; width: 100%; }
    .sidebar .nav { flex-direction: row; flex-wrap: wrap; padding-bottom: .5rem; }
    .sidebar .nav-link { margin: .15rem; }
    .main { margin-left: 0; }
    .topbar { position: static; }
    .content { padding: 1rem; }
}

