:root { --bg:#090909; --panel:#111214; --line:#2e3138; --text:#f4f4f5; --muted:#9da3af; --accent:#ff8c1a; --accent-soft:#ffb45e; --good:#33d17a; --danger:#ff5c5c; --warning:#ffd166; font-family:Inter,ui-sans-serif,system-ui,sans-serif; color:var(--text); background:var(--bg); }
.agent-list,.agent-targets{display:grid;gap:8px}.agent-card{padding:18px;border:1px solid var(--line);border-radius:12px;background:#15171b}.agent-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.agent-card-head small{display:block;margin-top:4px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.agent-targets{margin:14px 0}.agent-target{display:flex;align-items:center;gap:10px;width:100%;padding:10px;text-align:left;color:var(--text);background:#1d1f24}.agent-target span{font-weight:700}.agent-target small{margin-right:auto;color:var(--muted)}.agent-target .dot{flex:0 0 auto}
* { box-sizing:border-box; } body { margin:0; min-width:320px; } button,input { font:inherit; } button { cursor:pointer; }
[hidden] { display:none !important; }
.login-view { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 80% 10%,#47290d 0,transparent 35%),linear-gradient(180deg,#050505 0%,#0a0b0d 100%); }
.login-card { width:min(100%,420px); padding:40px; border:1px solid var(--line); border-radius:20px; background:rgba(17,18,20,.94); box-shadow:0 28px 70px #00000088; }
h1,h2,p { margin-top:0; } h1 { margin-bottom:8px; font-size:clamp(30px,5vw,42px); } h2 { margin-bottom:0; font-size:22px; } .eyebrow { margin-bottom:8px; color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.12em; }
label { display:grid; gap:7px; margin-top:20px; color:var(--muted); font-size:14px; } input { border:1px solid var(--line); border-radius:10px; padding:12px; color:var(--text); background:#0d131c; } input:focus { outline:2px solid var(--accent); border-color:transparent; }
button { border:0; border-radius:10px; padding:11px 16px; color:#151515; background:linear-gradient(180deg,var(--accent-soft),var(--accent)); font-weight:700; } .login-card button { width:100%; margin-top:24px; } .error { min-height:20px; margin:14px 0 0; color:var(--danger); font-size:14px; }
.app-view { display:grid; grid-template-columns:240px 1fr; min-height:100vh; background:linear-gradient(180deg,#050505 0%,#0a0b0d 100%); } .sidebar { display:flex; flex-direction:column; gap:32px; padding:24px 16px; border-right:1px solid var(--line); background:#0d0e10; } .brand { display:flex; align-items:center; gap:10px; padding:0 8px; font-size:18px; font-weight:800; } .brand-mark { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:#151515; background:linear-gradient(180deg,var(--accent-soft),var(--accent)); }
nav { display:grid; gap:4px; } nav a { padding:11px 12px; border-radius:8px; color:var(--muted); text-decoration:none; } nav a.active,nav a:hover { color:var(--text); background:#1d1f24; } .logout { margin-top:auto; color:var(--muted); text-align:left; background:transparent; }
.content { width:min(1240px,100%); margin:0 auto; padding:44px; } .topbar,.panel-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; } .user-badge { padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:14px; }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:32px 0; } .metric,.panel { border:1px solid var(--line); border-radius:16px; background:var(--panel); } .metric { padding:20px; } .metric span { display:block; color:var(--muted); font-size:14px; } .metric strong { display:block; margin-top:12px; font-size:36px; } .good strong{color:var(--good)} .danger strong{color:var(--danger)} .warning strong{color:var(--warning)}
.panel { padding:24px; } .secondary { color:var(--text); background:#253247; } .incident-list { display:grid; gap:10px; margin-top:20px; } .incident { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px; border-radius:10px; background:#202938; } .incident strong{display:block;} .incident p { margin:5px 0 0; color:var(--muted); font-size:14px; } .state { color:var(--danger); font-size:13px; font-weight:700; } .state.ack { color:var(--warning); } .muted { color:var(--muted); }
.mikrotik-card{display:grid;gap:16px;cursor:pointer}.mikrotik-card:focus{outline:2px solid var(--accent);outline-offset:2px}.mikrotik-card:hover{border-color:#555d6d}.mikrotik-details{display:grid;gap:16px}.mikrotik-title{display:flex;justify-content:space-between;gap:12px}.mikrotik-title strong,.mikrotik-title span{display:block}.mikrotik-title span,.mikrotik-card small,.snmp-sensors{color:var(--muted);font-size:13px}.mikrotik-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.mikrotik-metrics>div{padding:10px;border-radius:8px;background:#151a23}.mikrotik-metrics span{display:block;color:var(--muted);font-size:11px}.mikrotik-metrics strong{display:block;margin-top:5px;font-size:14px;overflow-wrap:anywhere}.snmp-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.snmp-charts>div{padding:10px;border:1px solid var(--line);border-radius:8px;background:#151a23}.chart{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:stretch;margin-top:6px}.chart-scale{display:flex;flex-direction:column;justify-content:space-between;padding:1px 0;color:var(--muted);font-size:11px;line-height:1}.snmp-chart{display:block;width:100%;height:84px;fill:none;stroke-width:1.4}.chart-grid line{stroke:var(--line);stroke-width:.55}.snmp-chart.cpu>polyline{stroke:var(--accent)}.snmp-chart.traffic>polyline{stroke:var(--good)}.snmp-sensors{margin:0}.mikrotik-card h4{margin:0;font-size:14px}.snmp-table-wrap{overflow:auto}.snmp-table{width:100%;border-collapse:collapse;font-size:13px}.snmp-table th,.snmp-table td{padding:9px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.snmp-table th{color:var(--muted);font-weight:600}.snmp-error{color:var(--danger)!important}@media (max-width:780px){.mikrotik-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.snmp-charts{grid-template-columns:1fr}}
.telemetry-panel{margin-top:20px}.telemetry{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:20px}.telemetry-item{padding:14px;border-radius:10px;background:#202938}.telemetry-item span{display:block;color:var(--muted);font-size:13px}.telemetry-item strong{display:block;margin-top:6px;font-size:20px}.telemetry-item small{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.35}.telemetry-controls{display:flex;align-items:flex-end;gap:10px}.telemetry-controls select{min-width:190px}.telemetry-range{display:flex;gap:6px}.telemetry-range button{padding:8px 10px}.telemetry-range button.active{color:#151515;background:var(--accent)}.telemetry-charts{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:16px}.telemetry-chart-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#151a23}.telemetry-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.telemetry-chart-heading small{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.telemetry-chart-heading i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--legend)}.telemetry-charts canvas{display:block;width:100%;height:320px;margin-top:12px;cursor:crosshair}.panel select{max-width:260px;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#202938}@media (max-width:900px){.telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-controls{align-items:stretch;flex-direction:column}.telemetry-range{flex-wrap:wrap}}@media (max-width:780px){.telemetry-chart-card{padding:10px}.telemetry-chart-heading{align-items:flex-start;flex-direction:column}.telemetry-charts canvas{height:260px}}
.incident-filter-panel,.incident-analytics-panel{margin-bottom:20px}.incident-filter-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(130px,.7fr)) auto;gap:12px;align-items:end}.incident-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px}.incident-filter-grid input,.incident-filter-grid select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#0d131c;font:inherit}.incident-analytics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.analytics-row{display:grid;gap:4px;padding:12px;border-radius:9px;background:#202938}.analytics-row span,.analytics-row small,.history-incident small{color:var(--muted);font-size:13px}.history-incident{align-items:flex-start}.history-incident p{overflow-wrap:anywhere}.history-incident small{display:block;margin-top:7px;line-height:1.4}@media (max-width:780px){.incident-filter-grid,.incident-analytics{grid-template-columns:1fr}.incident-filter-grid button{width:100%}}
.mikrotik-filter-panel,.mikrotik-events-panel{margin-bottom:20px}.mikrotik-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto;gap:12px;align-items:end}.mikrotik-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px}.mikrotik-filter-grid input,.mikrotik-filter-grid select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#0d131c;font:inherit}.mikrotik-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.mikrotik-node{display:flex;justify-content:space-between;gap:12px;padding:14px;border-radius:10px;background:#202938}.mikrotik-node span,.mikrotik-node small,.mikrotik-event p{display:block;margin-top:4px;color:var(--muted);font-size:13px}.mikrotik-event p{color:var(--text);line-height:1.4}@media (max-width:780px){.mikrotik-filter-grid,.mikrotik-nodes{grid-template-columns:1fr}.mikrotik-filter-grid button{width:100%}.mikrotik-node{flex-direction:column}}
.mikrotik-help{margin-bottom:20px}.mikrotik-help summary{cursor:pointer;font-weight:700;font-size:17px}.mikrotik-help-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:18px}.mikrotik-help-content h3{margin:0 0 10px}.mikrotik-help-content p,.mikrotik-help-content li{color:var(--muted);line-height:1.5}.mikrotik-help-content pre{overflow:auto;padding:14px;border:1px solid var(--line);border-radius:10px;background:#0d131c;color:var(--accent-soft);font-size:12px;line-height:1.45;white-space:pre-wrap}.mikrotik-help-content code{color:var(--accent-soft)}@media (max-width:780px){.mikrotik-help-content{grid-template-columns:1fr}}
.mikrotik-actions{margin-bottom:20px}.mikrotik-node-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.mikrotik-node-form label{display:grid;gap:6px;color:var(--muted);font-size:13px}.mikrotik-node-form input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#0d131c;font:inherit}.mikrotik-node-form .check{display:flex;align-items:center;gap:8px;color:var(--text)}.mikrotik-node-form .check input{width:auto}.mikrotik-node details{margin-top:14px}.mikrotik-node details .mikrotik-node-form{margin-top:12px;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:780px){.mikrotik-node-form,.mikrotik-node details .mikrotik-node-form{grid-template-columns:1fr}}
#mikrotik-key-modal .modal-card{max-width:900px}#mikrotik-key-note{overflow-wrap:anywhere}#mikrotik-public-key{display:block;width:100%;min-height:180px;box-sizing:border-box;margin:16px 0;border:1px solid var(--line);border-radius:10px;padding:14px;background:#0d131c;color:var(--text);font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical;white-space:pre;overflow:auto}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading .muted{margin:8px 0 0}.inventory-layout,.management-grid,.activity-grid{display:grid;gap:20px}.inventory-layout{grid-template-columns:minmax(260px,.85fr) minmax(0,1.5fr);margin-top:20px}.management-grid,.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel h3{margin:0 0 16px}.host-list,.device-list,.event-list,.check-history{display:grid;gap:8px}.host-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px;text-align:left;color:var(--text);background:#202938}.host-row.selected,.host-row:hover{background:#2b3950}.host-row small,.device span,.group-row small,.event span,.event small,.check-result small{display:block;margin-top:4px;color:var(--muted);font-size:13px}.dot{width:10px;height:10px;border-radius:50%;background:var(--warning)}.dot.up{background:var(--good)}.dot.down{background:var(--danger)}.detail-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:20px}.details{display:grid;grid-template-columns:130px 1fr;gap:12px;margin:20px 0 0}.details dt{color:var(--muted)}.details dd{margin:0;overflow-wrap:anywhere}.details a{color:var(--accent)}.network-panel{margin-top:20px}.device,.group-row,.event,.check-result{padding:14px;border-radius:10px;background:#202938}.group-row,.check-result{display:flex;justify-content:space-between;align-items:center;gap:12px}.event{overflow-wrap:anywhere}.row-actions,.form-actions{display:flex;flex-wrap:wrap;gap:8px}.small-button{padding:7px 9px;font-size:12px}.danger-button{color:#fff;background:#b93f50}.incident-actions{display:flex;align-items:center;gap:12px}.state.ok{color:var(--good)}.acknowledge{padding:8px 10px;font-size:13px}.editor-form{display:grid;gap:14px}.editor-form label{margin-top:0}.editor-form textarea,.editor-form select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--text);background:#0d131c;font:inherit}.editor-form textarea{min-height:84px;resize:vertical}.editor-form select:focus,.editor-form textarea:focus{outline:2px solid var(--accent);border-color:transparent}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.editor-form fieldset{display:flex;flex-wrap:wrap;gap:14px;padding:14px;border:1px solid var(--line);border-radius:10px}.editor-form legend{padding:0 6px;color:var(--muted);font-size:13px}.editor-form .check{display:flex;align-items:center;gap:8px;margin:0;color:var(--text)}.editor-form .check input{width:auto;padding:0}.check-history{margin-top:20px;max-height:360px;overflow:auto}.check-result{align-items:flex-start}.check-result strong{margin-left:auto}.activity-grid .panel{min-height:220px}@media (max-width:780px){.app-view{grid-template-columns:1fr}.sidebar{display:none}.content{padding:24px 16px}.metrics{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start}.user-badge{font-size:12px}.panel{padding:18px}.inventory-layout,.management-grid,.activity-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.details{grid-template-columns:1fr}.details dt{margin-top:8px}.details dd{margin-top:-8px}.telemetry{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.group-row,.check-result{align-items:flex-start;flex-direction:column}.check-result strong{margin-left:0}}
.inventory-toolbar{margin-bottom:20px}.inventory-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,.7fr)) auto;gap:12px;align-items:end}.inventory-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px}.inventory-filter-grid input,.inventory-filter-grid select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#0d131c;font:inherit}.inventory-filter-grid input:focus,.inventory-filter-grid select:focus{outline:2px solid var(--accent);border-color:transparent}.selected-filter{background:var(--accent)!important;color:#07111f!important}.inventory-toolbar small{display:block;margin-top:12px}.inventory-problems{margin:0 0 20px;padding:18px;border:1px solid #7e3541;border-radius:16px;background:#2c1c25}.inventory-problems-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.inventory-problems-heading span{color:var(--muted);font-size:13px}.inventory-problem-list{display:grid;gap:8px}.inventory-problem{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px;border-radius:9px;text-align:left;background:#202938;color:var(--text)}.inventory-problem:hover{background:#303b50}.inventory-problem strong,.inventory-problem small{display:block}.inventory-problem small{margin-top:4px;color:var(--muted);font-size:13px}.inventory-group{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#151a23}.inventory-group-header{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:12px 14px;text-align:left;color:var(--text);background:#202938}.inventory-group-header:hover{background:#2b3950}.inventory-group-header strong,.inventory-group-header small{display:block}.inventory-group-header small,.inventory-group-toggle{margin-top:4px;color:var(--muted);font-size:13px}.inventory-group-toggle{margin-top:0;white-space:nowrap}.inventory-group-hosts{display:grid;gap:1px;padding:6px}.inventory-group-hosts .host-row{border-radius:7px}@media (max-width:780px){.inventory-filter-grid{grid-template-columns:1fr 1fr}.inventory-filter-grid label:first-child{grid-column:1/-1}.inventory-problems-heading,.inventory-problem{align-items:flex-start;flex-direction:column}.inventory-problem .state{align-self:flex-end}}
.modal-backdrop{position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,9,15,.72)}.modal-card{width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 24px 70px rgba(0,0,0,.45)}.modal-card-wide{width:min(820px,100%)}@media (max-width:780px){.modal-backdrop{align-items:flex-end;padding:12px}.modal-card{max-height:calc(100vh - 24px);border-radius:16px 16px 10px 10px}.telemetry-charts{grid-template-columns:1fr}}
.modal-group-list{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.modal-group-list h4{margin:0 0 12px}
.monitoring-policy-field{position:relative}.monitoring-policy-label{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:7px}.monitoring-help{display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid #626a76;border-radius:50%;color:#c2c8d0;background:#252a32;font-size:13px;line-height:1}.monitoring-help:hover,.monitoring-help[aria-expanded="true"]{border-color:#aeb6c1;color:#fff;background:#3b424d}.monitoring-policy-help{position:absolute;z-index:3;top:calc(100% + 6px);right:0;left:0;display:grid;gap:10px;padding:12px;border:1px solid #535c69;border-radius:10px;background:#1b2028;box-shadow:0 14px 30px #000b}.monitoring-policy-help p{margin:0;color:var(--text);font-size:13px;line-height:1.45}.monitoring-help-close{justify-self:end;padding:6px 9px;color:#d9dde2;background:#343b46;font-size:12px}
#monitoring-policy-form .form-grid{grid-template-columns:1fr}
.agent-instruction-modal{width:min(980px,100%)}.agent-instruction-modal textarea{display:block;box-sizing:border-box;width:100%;min-height:440px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:14px;color:var(--text);background:#0d131c;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.agent-instruction-modal textarea:focus{outline:2px solid var(--accent);border-color:transparent}@media (max-width:780px){.agent-instruction-modal textarea{min-height:360px;font-size:12px}}
.omada-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:24px 0}.omada-metrics .metric strong{font-size:28px}.omada-toolbar{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(260px,1.4fr);gap:14px;margin-bottom:20px}.omada-toolbar label{margin:0}.omada-toolbar select,.omada-toolbar input{width:100%;max-width:none;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--text);background:#0d131c}.omada-table-panel,.omada-details{margin-bottom:20px}.omada-table-wrap{max-height:65vh;overflow:auto;margin-top:16px;border:1px solid var(--line);border-radius:10px}.omada-table{width:100%;border-collapse:collapse;font-size:13px}.omada-table th,.omada-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.omada-table th{position:sticky;z-index:1;top:0;color:var(--muted);background:#171a20}.omada-table th[data-omada-sort]{cursor:pointer}.omada-table tr[data-omada-ap]{cursor:pointer}.omada-table tr[data-omada-ap]:hover td,.omada-table tr.selected td{background:#202938}.omada-controller-status{font-weight:700}.omada-controller-status.online{color:var(--good)}.omada-controller-status.offline{color:var(--danger)}.omada-detail-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.omada-detail-item{padding:12px;border-radius:9px;background:#202938}.omada-detail-item span{display:block;color:var(--muted);font-size:12px}.omada-detail-item strong{display:block;margin-top:6px;overflow-wrap:anywhere}.omada-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.omada-charts>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#151a23}.omada-charts small{color:var(--muted)}.omada-charts canvas{display:block;width:100%;height:180px;margin-top:8px}.omada-range{display:flex;flex-wrap:wrap;gap:6px}.omada-range button{padding:7px 10px}.omada-range button.active{color:#151515;background:var(--accent)}@media (max-width:1000px){.omada-metrics,.omada-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:780px){.omada-toolbar,.omada-charts{grid-template-columns:1fr}.omada-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.omada-detail-grid{grid-template-columns:1fr}.omada-table-wrap{max-height:55vh}}
.omada-online-panel{margin-bottom:20px}.omada-peak-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.omada-peak{padding:15px;border-radius:10px;background:#202938}.omada-peak span,.omada-peak small{display:block;color:var(--muted);font-size:12px}.omada-peak strong{display:block;margin:7px 0 5px;color:var(--good);font-size:28px}.omada-online-charts{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}.omada-chart-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#151a23}.omada-chart-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.omada-chart-heading strong{font-size:14px}.omada-chart-heading small{color:var(--muted);font-size:12px}.omada-online-charts canvas{display:block;width:100%;margin-top:12px;cursor:crosshair}.omada-chart-card-main canvas{height:360px}.omada-chart-card-daily canvas{height:280px;cursor:default}@media (max-width:780px){.omada-peak-metrics{grid-template-columns:1fr}.omada-chart-heading{align-items:flex-start;flex-direction:column;gap:4px}.omada-chart-card{padding:10px}.omada-chart-card-main canvas{height:280px}.omada-chart-card-daily canvas{height:240px}}

/* Scoped Telegram scenario editor. */
#notifications-view { margin-top:24px; min-width:0; }
#notification-editor-controls { border:0; padding:0; margin:0; min-width:0; }
#notification-editor-controls legend { font-size:18px; font-weight:700; margin-bottom:18px; }
#notification-scenario { max-width:none; margin:8px 0 12px; font:inherit; }
#notifications-view .muted { font-size:14px; line-height:1.55; }
#notification-delivery-note { margin:8px 0 24px; }
.notification-editor-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; margin-bottom:24px; }
.notification-compose,.notification-example { min-width:0; }
.notification-example { padding:20px; background:#172129; border:1px solid #34434b; border-radius:14px; align-self:start; }
#notification-text { margin:8px 0 12px; min-height:190px; font:15px/1.6 ui-monospace,monospace; }
#notification-preview { white-space:pre-wrap; overflow-wrap:anywhere; margin:20px 0; padding:18px; border:1px solid #375446; border-radius:12px; background:#213b30; color:#f4f4f5; font:15px/1.6 ui-sans-serif,system-ui,sans-serif; }
.notification-variables { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.notification-variables button { min-height:44px; font-size:13px; text-align:left; }
.notification-variables code { color:#ffd6a3; }
#notification-settings-status { margin:0; align-self:center; font-size:14px; }
#notifications-view .error:empty { display:none; }
#notification-validation:not(:empty) { margin:10px 0; }
#notifications-view :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
#notifications-view button:disabled { opacity:.6; cursor:wait; }
@media (max-width:1100px) { .notification-editor-grid { grid-template-columns:1fr; } }
@media (max-width:780px) {
  .topbar { flex-wrap:wrap; }
  #notifications-view .panel { padding:16px; }
  #notification-save { width:100%; min-height:48px; }
  #notification-scenario,#notification-text { font-size:16px; }
  .notification-example { padding:14px; }
}
