.app-shell{max-width:1480px;margin:0 auto;padding:24px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.theme-toggle{padding:8px 14px;font-size:.88rem;white-space:nowrap}.brand{font-size:1.75rem;font-weight:700;letter-spacing:-.03em}.subtitle{color:var(--muted);font-size:.92rem;margin-top:4px}.main-nav{display:flex;gap:8px}.main-nav a{color:var(--muted);text-decoration:none;padding:8px 14px;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:.9rem}.main-nav a.active,.main-nav a:hover{color:var(--text);background:var(--panel-2);border-color:var(--border)}.main-content{display:block}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.page-head h1{margin:0;font-size:1.35rem}.page-head p{margin:4px 0 0;color:var(--muted);font-size:.88rem}.topbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.warn-badge{font-size:.78rem;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-border);padding:8px 12px;border-radius:999px}.btn{border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text);padding:10px 16px;border-radius:10px;cursor:pointer;font-weight:600;transition:background .15s ease}.btn:hover{background:var(--btn-bg-hover)}.btn.secondary{border-color:var(--border);background:var(--panel-2)}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.summary-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px}.summary-label{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.summary-value{font-size:1.8rem;font-weight:700;margin-top:8px;font-family:JetBrains Mono,monospace}.section-panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px;margin-bottom:16px}.section-head h2{margin:0;font-size:1.05rem}.section-head p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.metric-list{display:grid;gap:10px;margin-top:14px}.metric-row{display:grid;grid-template-columns:140px 1fr 90px;gap:12px;align-items:start;padding:12px;border-radius:14px;background:var(--surface);border:1px solid var(--surface-strong)}.metric-row.offline{opacity:.75}.metric-node strong{display:block;font-size:.95rem}.metric-node span{color:var(--muted);font-size:.72rem;font-family:JetBrains Mono,monospace}.metric-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stat-block .stat-label{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.stat-block .stat-value{display:block;font-family:JetBrains Mono,monospace;font-size:.95rem;margin:4px 0 8px}.meter-head{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);margin-bottom:6px}.meter-track{height:8px;background:var(--meter-track);border-radius:999px;overflow:hidden}.meter-fill{height:100%;border-radius:999px}.metric-note{color:var(--muted);font-size:.75rem;margin-top:6px}.sparkline{width:100%;height:36px;display:block;margin-top:8px}.node-error{color:var(--error-text);font-size:.84rem;padding:8px 0}.status-pill{font-size:.72rem;font-weight:600;padding:6px 10px;border-radius:999px;text-transform:uppercase}.status-pill.ok{color:var(--ok);background:var(--pill-ok-bg)}.status-pill.bad{color:var(--bad);background:var(--pill-bad-bg)}.temp-wrap{display:flex;flex-wrap:wrap;gap:8px}.temp-chip{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border);padding:6px 10px;border-radius:999px;font-size:.78rem;font-family:JetBrains Mono,monospace}.disk-sections{display:grid;gap:12px;margin-top:14px}.disk-node-block{border:1px solid var(--surface-border);border-radius:14px;padding:12px;background:var(--surface)}.disk-node-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;color:var(--muted);font-size:.82rem}.sub-block{margin-top:12px}.sub-title{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.disk-table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.78rem}.data-table th,.data-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--surface-border)}.data-table th{color:var(--muted);font-weight:600}.empty-cell{color:var(--muted);text-align:center}.health.ok{color:var(--ok)}.health.critical,.health.bad{color:var(--bad)}.health.unknown{color:var(--muted)}.storage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.storage-card{border:1px solid var(--surface-border);border-radius:12px;padding:10px}.storage-name{font-weight:600;margin-bottom:8px}.storage-name span{color:var(--muted);font-weight:500;font-size:.75rem;margin-left:6px}.panel-msg{margin-bottom:16px;padding:14px 16px;border-radius:12px;background:var(--panel);border:1px solid var(--border)}.panel-msg.error{color:var(--error-text);border-color:var(--msg-error-border)}.panel-msg.ok{color:var(--success-text);border-color:var(--msg-ok-border)}.footer{margin-top:8px;color:var(--muted);font-size:.78rem}.settings-form{display:grid;gap:14px}.settings-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px}.settings-card h2{margin:0 0 8px;font-size:1rem}.card-desc{color:var(--muted);font-size:.82rem;margin:0 0 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.settings-card label{display:grid;gap:6px;font-size:.82rem;color:var(--muted)}.settings-card input[type=text],.settings-card input[type=password],.settings-card input[type=number]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font:inherit}.checkbox-row{display:flex!important;align-items:center;gap:8px;margin:12px 0;color:var(--text)!important}.form-actions{display:flex;justify-content:flex-end}.notify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.notify-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;overflow:hidden}.notify-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--border)}.notify-card-head.tone-telegram{background:linear-gradient(180deg,rgba(16,185,129,.08),transparent)}.notify-card-head.tone-pushover{background:linear-gradient(180deg,rgba(249,115,22,.08),transparent)}.notify-card-brand{display:flex;gap:12px;align-items:center}.notify-card-brand strong{display:block;font-size:1rem}.notify-card-brand span{color:var(--muted);font-size:.82rem}.notify-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem;background:var(--panel-2);border:1px solid var(--border)}.tone-telegram .notify-icon{color:#10b981}.tone-pushover .notify-icon{color:#f97316}.notify-active-badge{font-size:.72rem;font-weight:700;padding:5px 10px;border-radius:999px;text-transform:uppercase;background:var(--pill-ok-bg);color:var(--ok)}.notify-card-body{padding:14px 16px 16px;display:grid;gap:12px}.field-label{display:grid;gap:6px;font-size:.82rem;color:var(--muted)}.field-help{margin:0;font-size:.75rem;color:var(--muted);line-height:1.45}.input-prefix,.input-suffix{display:flex;align-items:stretch;gap:0}.input-prefix span,.input-suffix span{display:grid;place-items:center;padding:0 12px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:.85rem}.input-prefix span{border-right:0;border-radius:10px 0 0 10px}.input-prefix input{border-radius:0 10px 10px 0;flex:1}.input-suffix input{border-radius:10px 0 0 10px;flex:1;width:100%}.input-suffix span{border-left:0;border-radius:0 10px 10px 0;white-space:nowrap}.notify-card select,.field-label select,.notify-card input[type=text],.notify-card input[type=password],.notify-card input[type=number]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font:inherit;width:100%}.checkbox-row.compact{margin:0;font-size:.88rem}.sound-grid,.retry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sound-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.icon-btn{width:42px;height:42px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);cursor:pointer;font-size:1rem}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.notify-card-actions{display:flex;gap:10px;margin-top:4px}.btn.save{background:#10b98124;border-color:#10b98159;color:var(--ok)}.btn.save:hover{background:#10b98138}.btn.test.telegram{background:#3b82f61f;border-color:#3b82f659;color:#60a5fa}.btn.test.pushover{background:#f973161f;border-color:#f9731659;color:#fb923c}[data-theme=light] .btn.test.telegram{color:#2563eb}[data-theme=light] .btn.test.pushover{color:#ea580c}.inline-msg{font-size:.82rem;padding:8px 10px;border-radius:8px}.inline-msg.ok{color:var(--success-text);background:var(--pill-ok-bg)}.servers-table-wrap{overflow-x:auto}.servers-table code{font-family:JetBrains Mono,monospace;font-size:.82rem}.server-form-card{margin-bottom:16px}.server-form{display:grid;gap:14px}.server-form label{display:grid;gap:6px;font-size:.82rem;color:var(--muted)}.server-form input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font:inherit}.form-actions.spaced{justify-content:flex-end;gap:10px}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.btn.small{padding:6px 10px;font-size:.78rem}.btn.danger{border-color:#f8717159;background:#f871711f;color:var(--bad)}.btn.danger:hover{background:#f8717133}.test-cell{max-width:260px}.test-ok{color:var(--ok);font-size:.78rem}.test-bad{color:var(--bad);font-size:.78rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}@media(max-width:900px){.notify-grid{grid-template-columns:1fr}}@media(max-width:900px){.summary-grid,.form-grid,.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-row,.metric-grid-2{grid-template-columns:1fr}}@media(max-width:640px){.summary-grid,.form-grid,.form-grid.four{grid-template-columns:1fr}}:root,[data-theme=dark]{color-scheme:dark;--bg: #0b0f17;--panel: #121826;--panel-2: #171f31;--border: rgba(148, 163, 184, .14);--text: #e5eefb;--muted: #94a3b8;--accent: #22d3ee;--ok: #34d399;--warn: #fbbf24;--bad: #f87171;--surface: rgba(255, 255, 255, .02);--surface-border: rgba(255, 255, 255, .05);--surface-strong: rgba(255, 255, 255, .04);--meter-track: rgba(148, 163, 184, .12);--btn-border: rgba(34, 211, 238, .35);--btn-bg: rgba(34, 211, 238, .12);--btn-bg-hover: rgba(34, 211, 238, .2);--warn-text: #fde68a;--warn-bg: rgba(251, 191, 36, .12);--warn-border: rgba(251, 191, 36, .25);--error-text: #fecaca;--success-text: #bbf7d0;--pill-ok-bg: rgba(52, 211, 153, .12);--pill-bad-bg: rgba(248, 113, 113, .12);--msg-error-border: rgba(248, 113, 113, .25);--msg-ok-border: rgba(52, 211, 153, .25);--bg-gradient-1: rgba(34, 211, 238, .12);--bg-gradient-2: rgba(99, 102, 241, .12)}[data-theme=light]{color-scheme:light;--bg: #eef2f7;--panel: #ffffff;--panel-2: #f1f5f9;--border: rgba(15, 23, 42, .1);--text: #0f172a;--muted: #64748b;--accent: #0891b2;--ok: #059669;--warn: #d97706;--bad: #dc2626;--surface: rgba(15, 23, 42, .03);--surface-border: rgba(15, 23, 42, .08);--surface-strong: rgba(15, 23, 42, .05);--meter-track: rgba(100, 116, 139, .15);--btn-border: rgba(8, 145, 178, .35);--btn-bg: rgba(8, 145, 178, .1);--btn-bg-hover: rgba(8, 145, 178, .16);--warn-text: #92400e;--warn-bg: rgba(251, 191, 36, .2);--warn-border: rgba(217, 119, 6, .25);--error-text: #b91c1c;--success-text: #047857;--pill-ok-bg: rgba(5, 150, 105, .12);--pill-bad-bg: rgba(220, 38, 38, .1);--msg-error-border: rgba(220, 38, 38, .2);--msg-ok-border: rgba(5, 150, 105, .2);--bg-gradient-1: rgba(8, 145, 178, .08);--bg-gradient-2: rgba(99, 102, 241, .08)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at 0% 0%,var(--bg-gradient-1),transparent 35%),radial-gradient(circle at 100% 0%,var(--bg-gradient-2),transparent 30%),var(--bg);color:var(--text);transition:background-color .2s ease,color .2s ease}button{font:inherit}
