.brad-sources{margin:6px 0 4px;display:flex;flex-direction:column;gap:4px;max-width:80%}.brad-sources--indented{margin:-6px 0 12px 40px;max-width:72%}.brad-sources__label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#5b6b58}.brad-sources__list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.brad-source{border:1px solid #cfe3ca;border-radius:12px;background-color:#f3f9f1;color:#1f3d1a;font-size:12px;line-height:1.35;max-width:100%;transition:background-color .15s ease,border-color .15s ease}.brad-source:hover,.brad-source[open]{background-color:#e4f2e0;border-color:#4b9b3e}.brad-source--customer{border-color:#4b9b3e}.brad-source__summary{cursor:pointer;display:flex;align-items:center;gap:4px;padding:4px 10px;list-style:none}.brad-source__summary::-webkit-details-marker{display:none}.brad-source__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.brad-source__excerpt{margin:0;padding:0 10px 8px;color:#3a4a37;white-space:normal}@keyframes fleetPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}@keyframes fleetSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fleet-dashboard-root{max-width:1180px;margin:1.25rem auto 1rem;padding:0 .75rem;box-sizing:border-box}.fleet-dashboard-card{background:linear-gradient(180deg,#0f172af0,#0f172ae0);border:1px solid rgba(51,65,85,.75);border-radius:1rem;padding:1.25rem 1.35rem;color:#f1f5f9;box-shadow:0 10px 25px -5px #00000059,0 8px 10px -6px #00000040;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.fleet-dashboard-loading{background:#0f172ad9;border:1px solid rgba(51,65,85,.75);border-radius:1rem;padding:1.25rem;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 10px 25px -5px #00000040}.fleet-loading-spinner{width:1rem;height:1rem;border:2px solid #10b981;border-top-color:transparent;border-radius:50%;animation:fleetSpin .8s linear infinite}.fleet-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.85rem;padding-bottom:1rem;border-bottom:1px solid rgba(51,65,85,.7)}.fleet-header-left{display:flex;align-items:center;gap:.85rem}.fleet-status-dot{width:10px;height:10px;border-radius:50%;background-color:#10b981;box-shadow:0 0 10px #10b981cc;animation:fleetPulse 2s infinite ease-in-out;flex-shrink:0}.fleet-title-row{display:flex;align-items:center;gap:.5rem;margin:0}.fleet-title-text{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f8fafc;margin:0}.fleet-badge-admin{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.65rem;font-weight:600;background:#a855f726;color:#d8b4fe;border:1px solid rgba(168,85,247,.35);padding:.15rem .5rem;border-radius:9999px;line-height:1}.fleet-subtitle{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;color:#94a3b8;margin:.2rem 0 0}.fleet-cache-badge{color:#fbbf24}.fleet-live-badge{color:#34d399}.fleet-header-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.fleet-tabs-bar{display:flex;background:#020617bf;border:1px solid rgba(51,65,85,.75);border-radius:.625rem;padding:.2rem;gap:.2rem}.fleet-tab-btn{background:transparent;border:none;color:#94a3b8;font-size:.725rem;font-weight:600;padding:.35rem .75rem;border-radius:.45rem;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.35rem}.fleet-tab-btn:hover{color:#f8fafc;background:#ffffff0f}.fleet-tab-btn.active{background:#334155d9;color:#fff;box-shadow:0 1px 3px #00000040}.fleet-tab-btn.tab-alert{color:#f87171}.fleet-tab-btn.tab-alert:hover{background:#f43f5e26;color:#fda4af}.fleet-tab-btn.tab-alert.active{background:#9f123973;border:1px solid rgba(244,63,94,.5);color:#fda4af;box-shadow:0 1px 4px #f43f5e33}.fleet-icon-btn{background:#1e293bbf;border:1px solid rgba(51,65,85,.75);border-radius:.5rem;color:#cbd5e1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;padding:0}.fleet-icon-btn:hover:not(:disabled){background:#334155e6;border-color:#64748be6;color:#fff}.fleet-icon-btn:disabled{opacity:.5;cursor:not-allowed}.fleet-icon-btn svg{width:15px;height:15px;transition:transform .2s ease}.fleet-spin-icon{animation:fleetSpin .8s linear infinite;color:#34d399!important}.fleet-rotate-180{transform:rotate(180deg)}.fleet-body{padding-top:1rem;display:flex;flex-direction:column;gap:1rem}.fleet-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:860px){.fleet-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.fleet-kpi-grid{grid-template-columns:1fr}}.fleet-kpi-card{background:#020617a6;border:1px solid rgba(51,65,85,.65);border-radius:.75rem;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.4rem;transition:border-color .15s ease,transform .15s ease}.fleet-kpi-card:hover{border-color:#64748bd9;transform:translateY(-1px)}.fleet-kpi-header{display:flex;align-items:center;justify-content:space-between}.fleet-kpi-title{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:600}.fleet-kpi-icon{font-size:.95rem;line-height:1}.fleet-kpi-value{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.55rem;font-weight:700;line-height:1.15;margin:.15rem 0}.val-emerald{color:#34d399}.val-blue{color:#60a5fa}.val-purple{color:#c084fc}.val-amber{color:#fbbf24}.fleet-kpi-details{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;color:#94a3b8;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.text-emerald{color:#34d399}.text-amber{color:#fbbf24}.text-rose{color:#f87171}.text-blue{color:#60a5fa}.text-purple{color:#c084fc}.fleet-distribution-box{background:#020617a6;border:1px solid rgba(51,65,85,.65);border-radius:.75rem;padding:.95rem 1.15rem;display:flex;flex-direction:column;gap:.75rem}.fleet-dist-header{display:flex;align-items:center;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.725rem;font-weight:600;color:#cbd5e1}.fleet-dist-total{color:#94a3b8;font-weight:400}.fleet-progress-bar{width:100%;height:.75rem;background:#0f172af2;border-radius:9999px;overflow:hidden;display:flex;border:1px solid rgba(51,65,85,.7)}.fleet-progress-segment{height:100%;transition:width .3s ease}.segment-chirpstack{background:linear-gradient(90deg,#9333ea,#a855f7)}.segment-ttn{background:linear-gradient(90deg,#2563eb,#3b82f6)}.segment-orange{background:linear-gradient(90deg,#ea580c,#f97316)}.fleet-dist-pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.fleet-dist-pill{display:flex;align-items:center;justify-content:space-between;padding:.45rem .75rem;border-radius:.5rem;background:#0f172acc;border:1px solid rgba(51,65,85,.6)}.fleet-pill-label{display:flex;align-items:center;gap:.45rem;color:#cbd5e1}.fleet-pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-chirpstack{background-color:#a855f7;box-shadow:0 0 6px #a855f799}.dot-ttn{background-color:#3b82f6;box-shadow:0 0 6px #3b82f699}.dot-orange{background-color:#f97316;box-shadow:0 0 6px #f9731699}.fleet-pill-count{font-weight:700;color:#fff}.fleet-pill-pct{font-weight:400;color:#94a3b8}.fleet-operators-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.fleet-operator-card{background:#020617a6;border:1px solid rgba(51,65,85,.65);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.85rem}.fleet-operator-header{display:flex;align-items:center;justify-content:space-between}.fleet-operator-name{font-size:.825rem;font-weight:700;color:#f1f5f9}.fleet-operator-badge{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.65rem;font-weight:700;text-transform:uppercase;padding:.15rem .5rem;border-radius:.35rem;line-height:1.2}.op-badge-chirpstack{background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.35)}.op-badge-ttn{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.35)}.op-badge-orange{background:#f9731626;color:#fb923c;border:1px solid rgba(249,115,22,.35)}.fleet-operator-stats{display:flex;flex-direction:column;gap:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.fleet-stat-row{display:flex;align-items:center;justify-content:space-between;color:#94a3b8}.fleet-stat-val{color:#f8fafc;font-weight:700}.fleet-gateways-container{background:#020617a6;border:1px solid rgba(51,65,85,.65);border-radius:.75rem;overflow:hidden}.fleet-gateways-header{padding:.8rem 1rem;border-bottom:1px solid rgba(51,65,85,.65);display:flex;align-items:center;justify-content:space-between;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:700;color:#cbd5e1}.fleet-gateways-count{font-weight:400;color:#94a3b8;font-size:.7rem}.fleet-table-wrapper{overflow-x:auto}.fleet-table{width:100%;border-collapse:collapse;text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.fleet-table th{background:#0f172ad9;color:#94a3b8;text-transform:uppercase;font-size:.65rem;font-weight:600;letter-spacing:.06em;padding:.65rem .9rem;border-bottom:1px solid rgba(51,65,85,.65);white-space:nowrap}.fleet-table th.th-right,.fleet-table td.td-right{text-align:right}.fleet-table td{padding:.65rem .9rem;border-bottom:1px solid rgba(51,65,85,.4);vertical-align:middle}.fleet-table tr:hover td{background:#1e293b73}.fleet-gw-name{font-weight:700;color:#f1f5f9;margin:0}.fleet-gw-id{font-size:.65rem;color:#94a3b8;margin:.1rem 0 0}.fleet-gw-site{color:#cbd5e1}.fleet-gw-packets{font-weight:700;color:#34d399}.fleet-operator-tag{font-size:.65rem;padding:.15rem .45rem;border-radius:.35rem;display:inline-block;white-space:nowrap}.tag-chirpstack{background:#a855f71f;color:#c084fc;border:1px solid rgba(168,85,247,.3)}.tag-ttn{background:#3b82f61f;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.fleet-status-badge{font-size:.65rem;font-weight:700;padding:.15rem .45rem;border-radius:.35rem;display:inline-block;line-height:1.2}.status-online{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.status-ko{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.fleet-batteries-container{background:#020617a6;border:1px solid rgba(51,65,85,.65);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.85rem}.fleet-batteries-title{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:700;color:#f87171;display:flex;align-items:center;gap:.45rem;margin:0}.fleet-batteries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.6rem}.fleet-battery-card{background:#9f123926;border:1px solid rgba(244,63,94,.35);border-radius:.625rem;padding:.75rem;display:flex;flex-direction:column;gap:.3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.fleet-battery-header{display:flex;align-items:center;justify-content:space-between}.fleet-probe-name{font-weight:700;color:#f1f5f9}.fleet-battery-badge{background:#f43f5e40;color:#fda4af;border:1px solid rgba(244,63,94,.45);font-weight:700;font-size:.68rem;padding:.15rem .45rem;border-radius:.35rem}.fleet-probe-company{font-size:.68rem;color:#94a3b8;margin:0}.fleet-probe-voltage{font-size:.65rem;color:#cbd5e1;margin:0}
