/* BredaNet 3.1.2 — ripristino dei layout mancanti e telemetria Starlink. */
.v30-dashboard .v304-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;margin:16px 0}
.v30-dashboard .v304-admin-grid>.v30-card,.v30-dashboard .v303-main-row>.v30-card,.v30-dashboard .v303-updates>.v30-card{height:100%;min-width:0;margin:0}
.v30-dashboard .v303-main-row,.v30-dashboard .v303-updates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;margin:16px 0}
.v30-dashboard .v30-connection{align-items:stretch}
.v30-dashboard .v30-connection>*{height:100%;min-width:0}
.v30-dashboard .v30-card{overflow:hidden}
.v30-dashboard .v30-card-head{gap:12px}
.v30-dashboard .v30-card-head>a{white-space:nowrap}
.v30-dashboard .v30-row>span:first-child{min-width:0}
.v30-dashboard .v30-row b,.v30-dashboard .v30-row small{overflow:hidden;text-overflow:ellipsis}
.v30-kpi.v304-kpi-blue>span{color:#0876f9;background:#e9f4ff}
.v30-kpi.v304-kpi-purple>span{color:#8846e9;background:#f2eaff}
.v30-kpi.v304-kpi-cyan>span{color:#0699a8;background:#e6f9fb}
.v30-kpi.v304-kpi-red>span{color:#e43b52;background:#ffecef}
.v30-kpi.v304-kpi-green>span{color:#169b61;background:#e9f9f1}
.v30-kpi.v304-kpi-orange>span{color:#d98000;background:#fff3df}

/* Le classi grafiche v3.0.5/v3.0.6 erano richiamate ma mancavano dal pacchetto. */
.v306-wan-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.v306-wan-mini>div{padding:9px 10px;border:1px solid #dce7f1;border-radius:11px;background:#f7fbff}
.v306-wan-mini small,.v306-wan-mini b{display:block}.v306-wan-mini small{color:#667d94;font-size:11px}.v306-wan-mini b{margin-top:3px;color:#0f2947;font-size:13px}
.v305-live-grid,.v305-consumption-grid,.v305-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.v305-live-card{position:relative;overflow:hidden;display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;padding:20px;border:1px solid #d7e5f1;border-radius:18px;background:#fff}
.v305-live-card>span{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:#e9f4ff;color:#0876f9}.v305-live-card.upload>span{background:#f2eaff;color:#8846e9}
.v305-live-card small,.v305-live-card strong,.v305-live-card em{display:block}.v305-live-card strong{font-size:26px;color:#102949}.v305-live-card em{font-size:11px;color:#66809a;font-style:normal}
.v305-consumption-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.v305-consumption-card{padding:16px;border:1px solid #d9e6f2;border-top:4px solid #0876f9;border-radius:15px;background:#fff}.v305-consumption-card.tone-green{border-top-color:#19a76b}.v305-consumption-card.tone-orange{border-top-color:#e79313}.v305-consumption-card.tone-purple{border-top-color:#8846e9}
.v305-consumption-title{display:flex;gap:8px;align-items:center;margin-bottom:11px}.v305-consumption-card dl{margin:0}.v305-consumption-card dl>div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #edf2f7}.v305-consumption-card dl>div:last-child{border:0}.v305-consumption-card dt,.v305-consumption-card dd{margin:0}
.v305-chart-insights{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);gap:16px}.v305-traffic-svg{width:100%;height:260px}.v305-chart-grid line{stroke:#e2eaf2}.v305-line-down,.v305-line-up{fill:none;stroke:#0876f9;stroke-width:3}.v305-line-up{stroke:#8846e9}.v306-area-down{fill:url(#v306DownFill)}.v306-area-up{fill:url(#v306UpFill)}.v305-chart-labels text{fill:#6a8096;font-size:10px}
.v305-insights dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v305-insights dl>div{padding:10px;border-radius:11px;background:#f5f9fd}.v305-insights dt,.v305-insights dd{margin:0}.v305-insights dt{font-size:11px;color:#617890}.v305-insights dd{font-weight:750;color:#102949;margin-top:3px}
.v305-source-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center}.v305-source-card>span{color:#0876f9}.v305-source-card p,.v305-source-card small{margin:2px 0;display:block}.v305-source-card strong.on{color:#128653}.v305-source-card strong.off{color:#9b6a13}
.v305-link-card,.v306-port-panel,.v306-traffic-settings{border:1px solid #d8e5f1;border-radius:16px;background:#fff;padding:17px}.v305-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v305-link-head,.v306-card-actions,.v305-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.v305-port-hint,.v306-muted{color:#647c94;font-size:12px}.v306-port-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.v306-port-details>div{padding:10px;background:#f5f9fd;border-radius:10px}.v306-maint-detail{display:grid;grid-template-columns:44px 1fr;gap:12px}.v306-maint-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eef6ff;color:#0876f9}

/* Telemetria Starlink ampliata. */
.v312-starlink{margin:0 0 20px}.v312-starlink-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.v312-starlink-head h2{margin:4px 0}.v312-starlink-head p{margin:5px 0;color:#617891}
.v312-starlink-state{flex:0 0 122px;width:122px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;padding:12px;font-size:13px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}
.v312-starlink-state.ok{background:#daf5e7;color:#05733f}.v312-starlink-state.bad{background:#ffe8eb;color:#b41f35}
.v312-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.v312-source-grid article{border:1px solid #d8e5ef;border-left:5px solid #8da3b8;border-radius:14px;padding:14px;background:#fff;min-width:0}.v312-source-grid article.ok{border-left-color:#1aab6b}.v312-source-grid article.warn{border-left-color:#e9a326}.v312-source-grid small,.v312-source-grid b,.v312-source-grid span{display:block}.v312-source-grid small,.v312-source-grid span{color:#657b91}.v312-source-grid b{margin:4px 0;color:#102949;overflow-wrap:anywhere}
.v312-starlink-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.v312-starlink-grid article{padding:14px;border:1px solid #d7e5f1;border-radius:14px;background:#f6faff;min-width:0}.v312-starlink-grid small,.v312-starlink-grid b{display:block}.v312-starlink-grid small{color:#60778e}.v312-starlink-grid b{margin-top:5px;color:#0f2947;overflow-wrap:anywhere}
.v312-starlink-detail{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin:16px 0}.v312-starlink-detail>section,.v312-starlink-charts>section{padding:16px;border:1px solid #d9e6f0;border-radius:15px;background:#fff}.v312-starlink h3{margin:0 0 12px;font-size:15px}.v312-alerts{margin:0;padding-left:20px}.v312-alerts li{margin:7px 0;color:#be2e41}.v312-alerts li.ok{color:#128653}
.v312-wedges{height:150px;display:flex;align-items:flex-end;gap:7px}.v312-wedges i{height:var(--level);min-height:8px;flex:1;position:relative;border-radius:6px 6px 2px 2px;background:linear-gradient(#ef5667,#efa328);font-style:normal}.v312-wedges i span{position:absolute;top:100%;left:50%;transform:translate(-50%,5px);font-size:9px;color:#6a7f94}
.v312-starlink-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.v312-spark{display:block;width:100%;height:118px}.v312-spark polyline{fill:none;stroke:#1689e7;stroke-width:3;vector-effect:non-scaling-stroke}.v312-spark.orange polyline{stroke:#e99b1f}.v312-spark.green polyline{stroke:#1aa86a}.v312-spark.purple polyline{stroke:#8652dc}.v312-empty-chart{min-height:90px;display:grid;place-items:center;text-align:center;color:#667d94}
.v312-starlink form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:16px}.v312-starlink form label{margin:0}

@media(max-width:1050px){.v312-starlink-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v305-consumption-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v305-chart-insights{grid-template-columns:1fr}}
@media(max-width:850px){.v30-dashboard .v304-admin-grid,.v30-dashboard .v303-main-row,.v30-dashboard .v303-updates,.v312-source-grid,.v312-starlink-detail,.v312-starlink-charts{grid-template-columns:1fr}.v312-starlink-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v305-link-grid,.v306-port-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v312-starlink-head{align-items:center}.v312-starlink-state{flex-basis:88px;width:88px;font-size:10px;padding:8px}.v312-starlink-grid,.v305-live-grid,.v305-consumption-grid,.v305-link-grid,.v306-port-details{grid-template-columns:1fr}.v312-starlink form{grid-template-columns:1fr}.v305-source-card{grid-template-columns:36px 1fr}.v305-source-card strong{grid-column:2}.v306-wan-mini{grid-template-columns:1fr}}
