.rfm-infra-page{width:100%;max-width:1300px;margin:auto}.rfm-infra-header h2{font-size:clamp(23px,2vw,31px);margin:8px 0}.rfm-infra-header p,.rfm-infra-box p,.rfm-infra-footnote{color:var(--text-muted,#93a3bc);line-height:1.6}.rfm-infra-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:18px}.rfm-infra-metric,.rfm-infra-box{background:rgba(20,31,53,.66);border:1px solid rgba(138,165,221,.17);border-radius:18px;padding:20px}.rfm-infra-metric{display:flex;flex-direction:column;gap:9px}.rfm-infra-metric span{color:#a5b4cd;font-size:13px}.rfm-infra-metric strong{font-size:24px;color:#f4f7ff;overflow-wrap:anywhere}.rfm-infra-metric small{color:#97a7c2}.rfm-infra-box{margin-top:17px}.rfm-infra-box h3{margin:0 0 12px;font-size:19px}.rfm-infra-form{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(180px,1.2fr) 110px 140px auto;align-items:end;gap:12px}.rfm-infra-form label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#a5b4cd;min-width:0}.rfm-infra-form input{width:100%;min-width:0;padding:11px;border-radius:10px;border:1px solid rgba(141,157,197,.3);background:#101c31;color:white}.rfm-infra-server{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid rgba(138,165,221,.17);padding:16px 0}.rfm-infra-server>div:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}.rfm-infra-server small{color:#9cabc3;overflow-wrap:anywhere}.rfm-infra-server span{font-size:13px;color:#c8d7f5}.rfm-infra-actions{display:flex;gap:8px;flex-wrap:wrap}.rfm-infra-notice{padding:12px 15px;border-radius:12px;background:rgba(87,99,193,.13);color:#d9e4ff;margin:14px 0}.rfm-infra-notice.error{color:#ffb5b5;background:rgba(182,58,68,.16)}.rfm-infra-footnote{font-size:13px}.rfm-infra-header{margin-bottom:16px}@media(max-width:1000px){.rfm-infra-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.rfm-infra-form{grid-template-columns:minmax(0,1fr)}.rfm-infra-server{flex-direction:column;align-items:stretch}}

.rfm-infra-server input[data-query-port]{padding:8px 10px;border-radius:9px;border:1px solid rgba(141,157,197,.3);background:#101c31;color:#f1f5ff}

/* v3.8.3 - game server monitoring */
.rfm-infra-server-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.rfm-infra-server{align-items:flex-start}
.rfm-infra-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-top:12px}
.rfm-infra-controls label{display:flex;flex-direction:column;gap:6px;color:#a5b4cd;font-size:12px}
.rfm-infra-controls label.rfm-infra-toggle{flex-direction:row;align-items:center;align-self:center}
.rfm-infra-controls select,.rfm-infra-controls input[type=number]{padding:8px 10px;border-radius:9px;border:1px solid rgba(141,157,197,.3);background:#101c31;color:#f1f5ff;max-width:220px}
.rfm-infra-controls input[type=checkbox]{accent-color:#6e65e9;width:16px;height:16px}
.rfm-infra-query{display:flex;align-items:center;gap:6px}
.rfm-infra-history{margin-top:12px;padding:13px;border:1px solid rgba(138,165,221,.15);border-radius:10px;background:rgba(5,14,29,.45)}
.rfm-infra-history h4{margin:10px 0 8px;font-size:13px}
.rfm-infra-history p{margin:5px 0 9px}
.rfm-infra-history small{display:block;color:#a5b4cd;margin:4px 0}

/* v3.8.4 - per-server feedback for settings saved automatically */
.rfm-infra-save-feedback{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:11px;padding:10px 12px;border:1px solid rgba(138,165,221,.17);background:rgba(66,79,123,.09);border-radius:10px;max-width:100%}
.rfm-infra-save-hint{font-size:12px;color:#a8b8d4!important}
.rfm-infra-save-status{font-size:12px!important;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.rfm-infra-save-status.idle{color:#b7c5df}
.rfm-infra-save-status.saving{color:#e5c985}
.rfm-infra-save-status.success{color:#76dfaa}
.rfm-infra-save-status.error{color:#ffb2b2}

/* v3.8.5 - notifica di prova per i server PREMIUM */
.rfm-infra-test-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.rfm-infra-test-action small{font-size:12px;color:#a8b8d4}
.rfm-infra-test-action button:disabled{opacity:.5;cursor:not-allowed}

/* v3.8.6 - endpoint pubblico vs server effettivo */
.rfm-infra-status-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:7px 0}
.rfm-infra-status-pair>div{background:rgba(65,88,135,.11);border:1px solid rgba(138,165,221,.16);border-radius:10px;padding:11px;display:flex;flex-direction:column;gap:6px}
.rfm-infra-status-pair strong{font-size:12px;color:#dbe6ff}
.rfm-infra-status-pair small{font-size:12px;line-height:1.5;color:#adc0dc}
@media(max-width:600px){.rfm-infra-status-pair{grid-template-columns:1fr}}

/* v3.8.7 — status leggibile per clienti, diagnostica separata */
.rfm-infra-status-pair{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:7px 0}
.rfm-infra-status-pair>div{flex:1 1 175px;min-width:0}
.rfm-infra-help{position:relative;align-self:center;flex:0 0 auto}
.rfm-infra-help summary{list-style:none;cursor:pointer;display:grid;place-items:center;border:1px solid rgba(138,165,221,.25);border-radius:100%;color:#9fb3d5;width:25px;height:25px;font-size:15px;user-select:none}
.rfm-infra-help summary::-webkit-details-marker{display:none}
.rfm-infra-help summary:focus-visible,.rfm-infra-edit summary:focus-visible{outline:2px solid #9cb2ff;outline-offset:3px}
.rfm-infra-help p{position:absolute;right:0;top:27px;z-index:9;margin:0;width:min(300px,75vw);padding:11px 13px;border:1px solid rgba(138,165,221,.27);border-radius:10px;background:#192743;box-shadow:0 8px 22px rgba(0,0,0,.35);font-size:12px;color:#d2dff5;line-height:1.5}
.rfm-infra-technical{margin-top:4px;font-size:12px;color:#acbddc}.rfm-infra-technical summary{cursor:pointer}.rfm-infra-technical small{display:block;margin-top:5px}
.rfm-infra-edit{margin:6px 0 0;color:#acbddc;font-size:12px}.rfm-infra-edit>summary{cursor:pointer;display:inline-block}.rfm-infra-edit-fields{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:9px 0}
.rfm-infra-edit-fields label{display:flex;flex-direction:column;gap:5px;min-width:160px}.rfm-infra-edit-fields input{padding:8px 10px;border-radius:9px;border:1px solid rgba(141,157,197,.3);background:#101c31;color:#f1f5ff}
.rfm-infra-form{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(160px,1.1fr) 100px 145px auto}
@media(max-width:1080px){.rfm-infra-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.rfm-infra-form{grid-template-columns:1fr}.rfm-infra-status-pair{align-items:stretch}.rfm-infra-help p{right:auto;left:0}}

/* v3.8.12 — navigazione compatta delle impostazioni di ogni server */
.rfm-infra-panel-list{display:flex;flex-direction:column;gap:9px;margin-top:14px;min-width:0;width:100%}
.rfm-infra-panel{margin:0;background:rgba(24,38,66,.56);border:1px solid rgba(138,165,221,.19);border-radius:11px;color:#dbe6ff;overflow:visible}
.rfm-infra-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;font-weight:650;font-size:13px;min-height:46px;user-select:none}
.rfm-infra-panel>summary::-webkit-details-marker{display:none}
.rfm-infra-panel>summary::after{content:'⌄';color:#9daee0;font-size:18px;line-height:1;transition:transform .15s;flex:0 0 auto}
.rfm-infra-panel[open]>summary::after{transform:rotate(180deg)}
.rfm-infra-panel>summary>span{flex:1;min-width:0}
.rfm-infra-panel>summary>small{font-size:11px;font-weight:500;color:#a6bbdc;text-align:right;flex:0 1 auto}
.rfm-infra-panel[open]{border-color:rgba(134,140,251,.40);background:rgba(24,38,66,.75)}
.rfm-infra-panel>summary:focus-visible{outline:2px solid #a2b4ff;outline-offset:3px;border-radius:11px}
.rfm-infra-panel-content{display:flex;flex-direction:column;gap:10px;padding:13px 14px 15px;border-top:1px solid rgba(138,165,221,.16);min-width:0}
.rfm-infra-panel-content>p{margin:0;color:#b0bfda;font-size:12px;line-height:1.55}
.rfm-infra-panel-content>.rfm-infra-controls{margin:0}
.rfm-infra-panel-content>.rfm-infra-edit-fields{margin:2px 0}
.rfm-infra-panel-content input{max-width:100%;min-width:0}
.rfm-infra-panel-content>.rfm-infra-save-feedback{margin-top:1px}
@media(max-width:650px){.rfm-infra-panel>summary{align-items:flex-start;flex-wrap:wrap}.rfm-infra-panel>summary>small{order:3;flex:1 0 100%;text-align:left}.rfm-infra-panel-content{padding:12px}.rfm-infra-edit-fields label{width:100%}.rfm-infra-panel-content .rfm-infra-query{flex-wrap:wrap}}

/* v3.8.15 — verified public checks; distinguish measured responses from true uptime */
.rfm-infra-verify-warning{font-size:12px;color:#aebed7;line-height:1.5;margin:4px 0 10px}
.rfm-infra-verify-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:12px}
.rfm-infra-verify-card{display:flex;flex-direction:column;gap:6px;background:rgba(47,69,112,.24);border:1px solid rgba(138,165,221,.22);padding:12px;border-radius:11px}
.rfm-infra-verify-card strong{font-size:12px;color:#b8c9e5}
.rfm-infra-verify-card span{font-weight:750;font-size:20px;color:#f0f5ff}
.rfm-infra-verify-card small{font-size:11px;color:#aebed8}

/* v3.8.16 — read-only diagnostics for public game protocol response patterns */
.rfm-infra-analytics{margin-top:12px;padding:14px;background:rgba(5,14,29,.52);border:1px solid rgba(138,165,221,.2);border-radius:11px}
.rfm-infra-analytics-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:9px}
.rfm-infra-analytics-title h4{margin:0;font-size:15px;color:#e8edff}
.rfm-infra-analytics-title>strong{font-size:12px;color:#b4c6ee;font-weight:650}
.rfm-infra-analytics>h4{font-size:13px;margin:14px 0 10px;color:#e8edff}
.rfm-infra-analytics>small{display:block;margin-top:9px;color:#aabddd;font-size:12px;line-height:1.5}
.rfm-infra-analytics-signal{display:flex;flex-direction:column;gap:5px;margin:8px 0;padding:11px 13px;border-radius:10px;border:1px solid rgba(111,137,183,.25);background:rgba(80,102,157,.1);overflow-wrap:anywhere}
.rfm-infra-analytics-signal.warning{border-color:rgba(231,161,66,.3);background:rgba(168,104,39,.12)}
.rfm-infra-analytics-signal strong{font-size:13px;color:#f0f4ff}
.rfm-infra-analytics-signal small{font-size:12px;color:#bac9e4;line-height:1.5}

/* v3.8.17 — manual maintenance; separate operator intent from measured status */
.rfm-infra-maintenance{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:11px 0;padding:13px 15px;border-radius:12px;border:1px solid rgba(117,153,220,.25);background:rgba(45,64,107,.16)}
.rfm-infra-maintenance.active{border-color:rgba(111,157,255,.52);background:rgba(61,91,181,.2)}
.rfm-infra-maintenance>div{display:flex;flex:1;min-width:190px;flex-direction:column;gap:6px}
.rfm-infra-maintenance strong{font-size:13px;color:#e4ecff}
.rfm-infra-maintenance small{font-size:12px;color:#a9bad7}
.rfm-infra-actions button:disabled{opacity:.48;cursor:not-allowed}

/* v3.8.18 — incident timeline derived from actual game-monitor events */
.rfm-infra-incidents{margin-top:20px;padding:14px 0 3px;border-top:1px solid rgba(138,165,221,.23)}
.rfm-infra-incidents>.rfm-infra-verify-grid{margin-top:10px}
.rfm-infra-incidents>.rfm-infra-verify-grid .rfm-infra-metric{min-width:0}
.rfm-infra-incidents>small{display:block;color:#aebed8;font-size:12px;line-height:1.5;margin-bottom:12px}
.rfm-infra-incident{margin:9px 0;padding:12px;border:1px solid rgba(138,165,221,.22);background:rgba(51,76,124,.14);border-radius:11px;overflow-wrap:anywhere}
.rfm-infra-incident>div{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.rfm-infra-incident strong{font-size:12px;color:#eaf0ff}
.rfm-infra-incident small{font-size:12px;color:#b2c3dc;line-height:1.55}
.rfm-infra-incident>small{display:block;margin-top:4px}

/* v3.8.20: hosting telemetry timeline, separate from public game checks */
.rfm-infra-host-history{display:flex;flex-direction:column;gap:7px;max-height:290px;overflow:auto;padding:3px 1px}
.rfm-infra-host-entry{display:flex;flex-direction:column;gap:4px;border:1px solid rgba(138,165,221,.2);border-radius:8px;padding:9px 11px;background:rgba(47,69,112,.16);font-size:12px;color:#dee9fa}
.rfm-infra-host-entry time,.rfm-infra-host-entry small{font-size:11px;color:#a8bad5}

/* v3.8.24 — editor server di gioco in linea, accessibile dalla lista */
.rfm-infra-edit-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0}
.rfm-infra-edit-actions button{min-height:34px}
.rfm-infra-edit-fields input:focus-visible{outline:2px solid #9cb2ff;outline-offset:2px}
@media(max-width:650px){.rfm-infra-edit-actions button{flex:1 1 auto}}

/* v3.8.25 — confirmation for manual game-server edits (not auto-save). */
.rfm-infra-edit-status{display:block;min-height:19px;margin:0 0 4px;font-weight:650}
.rfm-infra-edit-status.dirty{color:#e7c47c}
.rfm-infra-edit-status.idle{color:#a8b8d4}
.rfm-infra-panel>summary>small[data-edit-summary-status]{overflow-wrap:anywhere}

/* v3.8.26: independent, evidence-based game / process status. */
.rfm-infra-status-pair>div{flex:1 1 180px}
.rfm-infra-status-pair small{overflow-wrap:anywhere}


/* v3.8.27 — equal-sized status cards for Connection / Game / Hosting Process */
.rfm-infra-status-pair{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px;margin:7px 0}
.rfm-infra-status-pair>div{display:flex;flex-direction:column;justify-content:flex-start;min-height:74px;flex:unset}
.rfm-infra-status-pair small{display:block;flex:1 1 auto}
.rfm-infra-help{align-self:stretch;display:flex;align-items:center}
@media(max-width:900px){.rfm-infra-status-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.rfm-infra-help{grid-column:1 / -1;justify-content:flex-end}}
@media(max-width:650px){.rfm-infra-status-pair{grid-template-columns:1fr}.rfm-infra-help{grid-column:auto;justify-content:flex-start}}

/* v3.8.31 — Discord Live Dashboard Designer (PREMIUM) */
.rfm-infra-live-designer{margin:8px 0;padding:13px;border:1px solid rgba(139,154,244,.32);background:rgba(32,43,82,.22);border-radius:12px;display:flex;flex-direction:column;gap:12px;min-width:0}
.rfm-infra-live-designer>strong{font-size:13px;color:#e9edff}
.rfm-infra-live-designer>small{font-size:11px;line-height:1.5;color:#aabbda}
.rfm-infra-live-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rfm-infra-live-controls label{min-width:0;display:flex;flex-direction:column;gap:6px;color:#b9c9e7;font-size:12px}
.rfm-infra-live-controls select,.rfm-infra-live-controls input{max-width:100%;width:100%;border:1px solid rgba(138,165,221,.28);background:#121f35;border-radius:9px;padding:8px;color:#eff5ff}
.rfm-infra-live-controls input[type=color]{height:36px;padding:3px}
.rfm-infra-live-wide{grid-column:1 / -1}
.rfm-infra-live-preview{border:1px solid rgba(163,185,229,.26);border-left:4px solid #22c55e;border-radius:9px;background:#2c2d36;max-width:430px;min-height:96px;padding:12px;color:#f5f6fa;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.rfm-infra-live-preview-banner{display:block;width:100%;max-height:145px;object-fit:cover;border-radius:5px}
.rfm-infra-live-preview-title{display:flex;gap:10px;align-items:center}
.rfm-infra-live-preview-title>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.rfm-infra-live-preview-title strong{font-size:15px;overflow-wrap:anywhere}
.rfm-infra-live-preview-title small,.rfm-infra-live-preview>small{font-size:10px;color:#c2c6d1}
.rfm-infra-live-preview-thumb{width:42px;height:42px;object-fit:cover;border-radius:7px}
.rfm-infra-live-preview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;font-size:10px;color:#c8ced9}
.rfm-infra-live-preview-stats b{font-size:12px;color:white}
@media(max-width:650px){.rfm-infra-live-controls{grid-template-columns:1fr}.rfm-infra-live-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v3.8.32 — Distinct compact/expanded preview, correct Discord image position. */
.rfm-infra-live-preview-state{font-size:12px;font-weight:700;color:#d9ffe2}
.rfm-infra-live-preview-extra{font-size:11px;line-height:1.6;color:#c9d7eb}
.rfm-infra-live-preview-extra p{margin:2px 0;font-size:11px;color:#c9d7eb}
.rfm-infra-live-preview-banner{margin-top:3px;max-height:200px;object-fit:contain}

/* v3.8.33 — opt-in Visual Premium live card */
.rfm-infra-live-style-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rfm-infra-live-style-choice label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#d4def4;min-width:0}
.rfm-infra-live-style-choice select{width:100%;min-width:0;border:1px solid rgba(138,165,221,.28);background:#121f35;border-radius:9px;padding:8px;color:#eff5ff}
.rfm-infra-live-preview-visual{position:relative;min-height:218px;padding:0;isolation:isolate;background:#151d36}
.rfm-infra-visual-bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.rfm-infra-visual-bg>img{width:100%;height:100%;max-height:none;object-fit:cover;margin:0;border-radius:0}
.rfm-infra-visual-tint{position:absolute;inset:0;background:linear-gradient(115deg,rgba(5,9,19,.86),rgba(8,14,30,.6),rgba(5,9,19,.4))}
.rfm-infra-live-preview-visual[data-overlay=light] .rfm-infra-visual-tint{opacity:.64}
.rfm-infra-live-preview-visual[data-overlay=strong] .rfm-infra-visual-tint{background:linear-gradient(115deg,rgba(5,9,19,.96),rgba(8,14,30,.83),rgba(5,9,19,.67))}
.rfm-infra-visual-foreground{display:flex;flex-direction:column;gap:9px;padding:18px;min-width:0}
.rfm-infra-live-preview-visual .rfm-infra-live-preview-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(max-width:650px){.rfm-infra-live-style-choice{grid-template-columns:1fr}}

/* v3.8.36 — live preview uses the exact server-rendered Visual Premium JPEG */
.rfm-infra-live-preview-actual{display:block;max-width:520px;min-height:0;padding:5px;border-color:rgba(157,186,245,.38);background:#141b30}
.rfm-infra-live-rendered-image{display:block;width:100%;height:auto;max-width:100%;border-radius:6px}
.rfm-infra-live-preview-actual>small{display:block;font-size:11px;color:#b8c9e6;margin:8px 4px 4px;line-height:1.45}
.rfm-infra-preview-error{color:#ffc1c1!important}


/* v3.8.42 — Resource alerts: independent grid inside narrow server accordions.
   The shared .rfm-infra-form uses six columns on desktop. The resource panel
   can be only ~290px wide, so viewport media queries do not fix its overflow. */
.rfm-infra-resource-config {
  box-sizing:border-box;
  min-width:0;
  width:100%;
  max-width:100%;
  container-type:inline-size;
  overflow-wrap:anywhere;
}
.rfm-infra-resource-config .rfm-infra-form {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  gap:12px;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:10px 0;
}
.rfm-infra-resource-config .rfm-infra-form > label {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  min-width:0;
  max-width:100%;
  width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}
.rfm-infra-resource-config .rfm-infra-form :is(input, select) {
  display:block;
  box-sizing:border-box;
  min-width:0;
  width:100%;
  max-width:100%;
  min-height:36px;
  padding:8px 10px;
  border-radius:9px;
  border:1px solid rgba(141,157,197,.3);
  background:#101c31;
  color:#f1f5ff;
  font:inherit;
}
.rfm-infra-resource-config input[data-ra-enabled] {
  width:auto;
  max-width:none;
  min-height:0;
}
.rfm-infra-resource-config [data-resource-feedback] {
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
}
.rfm-infra-resource-config button[data-action="resource-save"] {
  max-width:100%;
  align-self:flex-start;
}
/* Adapt to panel width, not the browser window width. */
@container (min-width:620px) {
  .rfm-infra-resource-config .rfm-infra-form {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* v3.8.45 – readable resource trends even in narrow PREMIUM accordions */
.rfm-infra-trend-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.rfm-infra-trend-controls label{display:grid;gap:5px;min-width:0;font-size:12px;color:#c0d1ee}
.rfm-infra-trend-controls select{min-width:0;width:100%;max-width:100%;min-height:36px;background:#0e1b31;border:1px solid #3a4d70;border-radius:8px;padding:7px;color:#f5f7ff}
.rfm-infra-trend-note{font-size:12px;color:#b8c9e7;line-height:1.55;margin:0 0 7px}
.rfm-infra-trend-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:10px 0}
.rfm-infra-trend-card{min-width:0;padding:9px;border-radius:10px;background:rgba(7,17,34,.68);border:1px solid rgba(118,151,217,.22)}
.rfm-infra-trend-card>div{display:flex;flex-direction:column;gap:4px}
.rfm-infra-trend-card strong{color:#f5f7ff;font-size:12px}
.rfm-infra-trend-card span{font-size:11px;color:#b8c9e7}
.rfm-infra-trend-card svg{display:block;width:100%;height:auto;max-height:145px;overflow:visible}
@container (min-width:520px){.rfm-infra-trend-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.rfm-infra-trend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v3.8.48 — compact action footer for resource-alert configuration.
   Keep the action visually separate from the explanatory paragraph. */
.rfm-infra-resource-config .rfm-infra-resource-note{display:block;line-height:1.6;margin-top:12px;color:#adbfdf}
.rfm-infra-resource-config .rfm-infra-resource-footer{
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
  box-sizing:border-box;max-width:100%;min-width:0;
  margin:15px 0 18px;padding:15px 0 0;
  border-top:1px solid rgba(138,165,221,.24);
}
.rfm-infra-resource-config .rfm-infra-resource-footer button[data-action="resource-save"]{
  align-self:stretch;width:100%;min-height:38px;max-width:100%;
  border-radius:9px;font-weight:650;
}
.rfm-infra-resource-config .rfm-infra-resource-footer [data-resource-feedback]{
  display:block;margin:0;line-height:1.5;font-size:11px;color:#adbfdf;
}
.rfm-infra-resource-config .rfm-infra-resource-footer [data-resource-feedback]:empty{display:none}

/* v3.8.49 — grouped server actions and independent per-metric anomaly switches */
.rfm-infra-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;flex-wrap:wrap;max-width:100%;gap:12px;margin-top:0}
.rfm-infra-action-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.rfm-infra-action-management{margin-left:auto}
.rfm-infra-action-remove{border-color:rgba(234,111,128,.36)}
.rfm-infra-action-remove:hover{border-color:rgba(234,111,128,.7);background:rgba(199,60,75,.1)}
.rfm-infra-metric-toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 8px;padding:12px;border:1px solid rgba(138,165,221,.24);border-radius:10px;min-width:0}
.rfm-infra-metric-toggles legend{font-size:12px;font-weight:700;color:#d5e2f8;padding:0 5px}
.rfm-infra-metric-toggles label{display:flex;align-items:center;gap:8px;font-size:12px;color:#c4d5ee;cursor:pointer;min-width:0}
.rfm-infra-metric-toggles input{width:15px;height:15px;flex:0 0 auto;accent-color:#7061f5}
.rfm-infra-metric-toggles small{grid-column:1/-1;line-height:1.5;color:#9eafd0}
.rfm-infra-mute-button{margin-top:8px;font-size:11px}
@media(max-width:750px){.rfm-infra-action-management{margin-left:0}.rfm-infra-actions{justify-content:flex-start}}
@media(max-width:420px){.rfm-infra-metric-toggles{grid-template-columns:1fr}}

/* v3.8.51: public-protocol stability statistics in the narrow server panel. */
.rfm-infra-stability-summary{display:grid;gap:12px;min-width:0}
.rfm-infra-stability-window{display:grid;grid-template-columns:1fr;gap:8px}
.rfm-infra-stability-card{display:flex;flex-direction:column;min-width:0;gap:5px;border-radius:10px;padding:12px;background:#0d1b30;border:1px solid rgba(135,164,216,.22)}
.rfm-infra-stability-card strong,.rfm-infra-stability-incidents strong,.rfm-infra-stability-series strong{font-size:12px;color:#dce7ff}
.rfm-infra-stability-card b{font-size:22px;color:#d4ffed;font-variant-numeric:tabular-nums}
.rfm-infra-stability-card small,.rfm-infra-stability-incidents small,.rfm-infra-stability-series small{color:#b6c7e4;font-size:11px;overflow-wrap:anywhere;line-height:1.5}
.rfm-infra-stability-incidents{display:grid;gap:5px;border-radius:9px;padding:11px;background:rgba(99,102,241,.08);border:1px solid rgba(135,164,216,.21)}
.rfm-infra-stability-series{min-width:0;display:grid;gap:6px;background:#0b1830;border-radius:9px;padding:11px;border:1px solid rgba(135,164,216,.19)}
.rfm-infra-stability-bars{height:58px;display:flex;align-items:stretch;gap:3px;min-width:0}
.rfm-infra-stability-bin{position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:3px 3px 1px 1px;background:rgba(250,179,78,.48);border:1px solid rgba(250,179,78,.25)}
.rfm-infra-stability-bin i{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(180deg,#43dfb0,#169c83);display:block}
.rfm-infra-stability-bin.empty{background:repeating-linear-gradient(135deg,rgba(99,115,141,.08),rgba(99,115,141,.08) 3px,rgba(99,115,141,.19) 3px,rgba(99,115,141,.19) 6px);border:1px dashed rgba(119,143,182,.31)}
.rfm-infra-stability-axis{display:flex;justify-content:space-between;gap:4px;color:#9cb0d1;font-size:10px}
.rfm-infra-stability-legend{font-size:11px;color:#b8cbe6}
@container (min-width:550px){.rfm-infra-stability-window{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v3.8.52 — Full-width Game Server Manager, without squeezing panels behind
   the server action buttons. The dedicated game view alone is affected. */
.rfm-infra-page:has(#rfm-infra-form){
  box-sizing:border-box;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
}
.rfm-infra-page #rfm-infra-root,
.rfm-infra-page #rfm-infra-list,
.rfm-infra-page .rfm-infra-box{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
.rfm-infra-page .rfm-infra-server{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:start;
  column-gap:18px;
  row-gap:14px;
  width:100%;
  min-width:0;
}
.rfm-infra-server-identity{
  grid-column:1;
  grid-row:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.rfm-infra-server-identity strong{font-size:14px;overflow-wrap:anywhere}
.rfm-infra-server-identity small{overflow-wrap:anywhere}
.rfm-infra-server-identity span{font-size:12px}
.rfm-infra-page .rfm-infra-server-main{
  grid-column:1/-1;
  grid-row:2;
  min-width:0;
  width:100%;
}
.rfm-infra-page .rfm-infra-actions{
  grid-column:2;
  grid-row:1;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  min-width:0;
  max-width:100%;
  margin:0;
}
.rfm-infra-page .rfm-infra-panel-list,
.rfm-infra-page .rfm-infra-panel,
.rfm-infra-page .rfm-infra-panel-content{box-sizing:border-box;max-width:100%;min-width:0;width:100%}
/* Under narrower containers, move buttons onto their own line; never allow
   the server title or detailed panels to collapse into a thin column. */
@media(max-width:1140px){
  .rfm-infra-page .rfm-infra-server{grid-template-columns:minmax(0,1fr);gap:12px}
  .rfm-infra-server-identity{grid-column:1;grid-row:1}
  .rfm-infra-page .rfm-infra-actions{grid-column:1;grid-row:2;justify-content:flex-start}
  .rfm-infra-page .rfm-infra-server-main{grid-column:1;grid-row:3}
  .rfm-infra-page .rfm-infra-action-management{margin-left:0}
}
/* Responsive validity bars: each hourly/daily bucket consumes only an equal
   fraction of its own chart's content box. No chart overhang or page overflow. */
.rfm-infra-stability-summary{
  box-sizing:border-box;width:100%;max-width:100%;min-width:0;
  container-type:inline-size;
}
.rfm-infra-stability-series,
.rfm-infra-stability-incidents{
  box-sizing:border-box;width:100%;max-width:100%;min-width:0;
  overflow:hidden;
}
.rfm-infra-stability-bars{
  box-sizing:border-box;
  display:grid;
  grid-template-columns:repeat(24,minmax(0,1fr));
  gap:2px;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
}
.rfm-infra-stability-bars[data-bin-kind="days"]{
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}
.rfm-infra-stability-bin{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.rfm-infra-stability-axis{min-width:0;max-width:100%;flex-wrap:wrap}
.rfm-infra-stability-axis>span{min-width:0;max-width:48%;overflow-wrap:anywhere}
@container(min-width:640px){
  .rfm-infra-stability-window{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v3.8.53 — Full-width, responsive settings inside the Game Server Manager.
   Only the identified game-server panels are affected: no global input
   changes and no changes to values, handlers, or API requests. */
.rfm-infra-page .rfm-infra-panel[data-infra-panel="configuration"] .rfm-infra-edit-fields,
.rfm-infra-page .rfm-infra-panel[data-infra-panel="provider"] .rfm-infra-edit-fields {
  box-sizing:border-box;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
  gap:14px;
  align-items:end;
  width:100%;
  min-width:0;
  margin:4px 0 8px;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="configuration"] .rfm-infra-edit-fields label,
.rfm-infra-page .rfm-infra-panel[data-infra-panel="provider"] .rfm-infra-edit-fields label{
  box-sizing:border-box;min-width:0;width:100%;max-width:100%;
  display:flex;flex-direction:column;gap:7px;
  color:#bdcce5;font-size:12px;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="configuration"] .rfm-infra-edit-fields input,
.rfm-infra-page .rfm-infra-panel[data-infra-panel="provider"] .rfm-infra-edit-fields input{
  box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;
  min-height:38px;padding:9px 11px;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="provider"] .rfm-infra-edit-fields>button{
  min-width:0;min-height:38px;width:100%;white-space:normal;
}
/* The main toggle, frequency and notification channel share the full panel
   width; on narrow screens the columns collapse naturally to two/one. */
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-controls{
  box-sizing:border-box;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  align-items:stretch;gap:14px;width:100%;min-width:0;margin:4px 0 10px;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-controls label{
  box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:stretch;gap:7px;width:100%;min-width:0;max-width:100%;
  color:#bdcce5;font-size:12px;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-controls select{
  display:block;box-sizing:border-box;min-height:38px;min-width:0;max-width:none;width:100%;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-controls label.rfm-infra-toggle{
  display:flex;flex-direction:row;align-items:center;justify-content:flex-start;
  align-self:stretch;gap:10px;padding:10px 13px;min-height:38px;
  border:1px solid rgba(138,165,221,.23);border-radius:9px;
  background:rgba(62,79,135,.10);cursor:pointer;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-controls label.rfm-infra-toggle input{
  width:16px;height:16px;flex:0 0 auto;margin:0;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-test-action{
  box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;
  width:100%;max-width:100%;gap:14px;padding:12px 0;
  border-top:1px solid rgba(138,165,221,.15);
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-test-action small{
  line-height:1.55;flex:1 1 240px;min-width:0;
}
.rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-save-feedback{
  box-sizing:border-box;align-self:stretch;width:100%;max-width:100%;
}
/* Two independent selectors use the available width instead of stacking
   at desktop sizes; narrow panels still become single-column. */
.rfm-infra-page .rfm-infra-trend-controls{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
}
@media(max-width:620px){
  .rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-test-action{
    flex-direction:column;align-items:stretch;
  }
  .rfm-infra-page .rfm-infra-panel[data-infra-panel="monitoring"] .rfm-infra-test-action small{
    flex:0 1 auto;
  }
}

/* v3.8.56 — Local artwork uploads for Discord live dashboards. */
.rfm-infra-page .rfm-infra-live-uploads{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:12px;margin:12px 0;min-width:0;
}
.rfm-infra-page .rfm-infra-live-upload{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;
  align-items:end;min-width:0;box-sizing:border-box;
  padding:13px;border-radius:11px;
  background:rgba(7,17,34,.35);border:1px solid rgba(146,174,227,.15);
}
.rfm-infra-page .rfm-infra-live-upload label{min-width:0;display:flex;flex-direction:column;gap:8px;color:#c7d5ee;font-size:12px;}
.rfm-infra-page .rfm-infra-live-upload input[type=file]{max-width:100%;min-width:0;box-sizing:border-box;font-size:12px;color:#d9e4fc;}
.rfm-infra-page .rfm-infra-live-upload input[type=file]::file-selector-button{
  padding:7px 11px;margin-right:9px;border-radius:8px;border:1px solid #5e6b97;
  background:#202b4c;color:#e7efff;cursor:pointer;
}
.rfm-infra-page .rfm-infra-live-upload [data-live-file-status]{grid-column:1/-1;color:#aac0e7;overflow-wrap:anywhere;}
@media(max-width:700px){.rfm-infra-page .rfm-infra-live-upload{grid-template-columns:1fr;}
.rfm-infra-page .rfm-infra-live-upload [data-live-file-status]{grid-column:1;}}
.rfm-infra-page .rfm-infra-live-upload{grid-template-columns:minmax(0,1fr);align-items:start}
.rfm-infra-page .rfm-infra-upload-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.rfm-infra-page .rfm-infra-upload-actions button{max-width:100%;overflow-wrap:anywhere}
.rfm-infra-page .rfm-live-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rfm-infra-page .rfm-infra-live-draft[hidden]{display:none}
.rfm-infra-page .rfm-infra-live-draft img{display:block;max-width:min(100%,360px);max-height:220px;object-fit:contain;border:1px solid rgba(146,174,227,.2);border-radius:8px}
@media(max-width:520px){.rfm-infra-page .rfm-infra-upload-actions{align-items:stretch}.rfm-infra-page .rfm-infra-upload-actions button{flex:1 1 130px}}

/* v3.8.63: registro operativo di System Health (solo sviluppatori) */
.rfm-infra-service-events{display:flex;flex-direction:column;gap:7px;margin-top:11px;min-width:0}
.rfm-infra-service-event{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:10px 12px;border:1px solid rgba(138,165,221,.16);border-radius:10px;background:rgba(5,14,29,.3);color:#dbe6ff;font-size:13px;line-height:1.45}
.rfm-infra-service-event time{color:#9fb1d2;font-size:12px;font-variant-numeric:tabular-nums;min-width:140px}
.rfm-infra-service-event span{flex:1;min-width:160px;overflow-wrap:anywhere}
@media(max-width:650px){.rfm-infra-service-event{gap:5px;flex-direction:column}}


/* v3.8.64 — developer-only System Health trends and advisory alerts. */
.rfm-infra-page .rfm-health-condition{display:flex;flex-direction:column;gap:8px;border:1px solid rgba(88,217,164,.28);background:rgba(36,125,92,.12);padding:14px 17px;border-radius:14px;margin:14px 0;color:#dcefe6}
.rfm-infra-page .rfm-health-condition.warning{border-color:rgba(248,186,87,.44);background:rgba(189,123,31,.14);color:#ffe8bb}
.rfm-infra-page .rfm-health-condition.critical{border-color:rgba(246,113,124,.5);background:rgba(185,45,64,.16);color:#ffdee1}
.rfm-infra-page .rfm-health-condition-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rfm-infra-page .rfm-health-condition-head>small{margin-left:auto;color:#b4c4dd;font-size:11px}
.rfm-infra-page .rfm-health-condition p{margin:4px 0;font-size:12px;color:inherit}
.rfm-infra-page .rfm-health-indicator{display:inline-block;width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#69deb0;box-shadow:0 0 0 4px rgba(105,222,176,.12)}
.rfm-infra-page .rfm-health-condition.warning .rfm-health-indicator{background:#ffcb70;box-shadow:0 0 0 4px rgba(255,203,112,.13)}
.rfm-infra-page .rfm-health-condition.critical .rfm-health-indicator{background:#ff8c9c;box-shadow:0 0 0 4px rgba(255,140,156,.13)}
.rfm-infra-page .rfm-health-history-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rfm-infra-page .rfm-health-history-head h3{margin:0}
.rfm-infra-page .rfm-health-history-head small{color:#9eafd0}
.rfm-infra-page .rfm-health-history>p{font-size:12px;margin:12px 0 16px}
.rfm-infra-page .rfm-health-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.rfm-infra-page .rfm-health-graph{--chart-stroke:#62bbff;min-width:0;padding:14px;border:1px solid rgba(134,161,218,.17);border-radius:11px;background:rgba(6,17,35,.4)}
.rfm-infra-page .rfm-health-graph[data-graph=process]{--chart-stroke:#bb9aff}
.rfm-infra-page .rfm-health-graph[data-graph=host]{--chart-stroke:#66dfbd}
.rfm-infra-page .rfm-health-graph[data-graph=gateway]{--chart-stroke:#f7ca81}
.rfm-infra-page .rfm-health-graph-head{display:flex;justify-content:space-between;gap:10px;align-items:center}
.rfm-infra-page .rfm-health-graph-head strong{font-size:13px;color:#d7e7ff}
.rfm-infra-page .rfm-health-graph-head span{font-size:15px;color:var(--chart-stroke);font-weight:700;font-variant-numeric:tabular-nums}
.rfm-infra-page .rfm-health-graph svg{width:100%;height:145px;margin:8px 0 1px;display:block;overflow:visible}
.rfm-infra-page .rfm-health-graph-line{stroke:var(--chart-stroke);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke}
.rfm-infra-page .rfm-health-graph-point{fill:var(--chart-stroke)}
.rfm-infra-page .rfm-health-graph-grid{stroke:rgba(165,185,221,.15);stroke-width:1}
.rfm-infra-page .rfm-health-graph-axis{stroke:rgba(165,185,221,.32);stroke-width:1}
.rfm-infra-page .rfm-health-graph>small{display:block;color:#9eafd0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:850px){.rfm-infra-page .rfm-health-charts{grid-template-columns:minmax(0,1fr)}.rfm-infra-page .rfm-health-graph svg{height:120px}}

/* v3.8.66 — dedicated System Health alert center */
.rfm-infra-page .rfm-health-toolbar{display:flex;justify-content:flex-end;margin:0 0 12px}
.rfm-infra-page .rfm-health-alerts-screen{display:flex;flex-direction:column;gap:18px}
.rfm-infra-page .rfm-health-alerts-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}
.rfm-infra-page .rfm-health-alerts-head h3{margin:4px 0 8px}
.rfm-infra-page .rfm-health-alerts-head p{margin:0;color:#aebedf;max-width:880px;line-height:1.55}
.rfm-infra-page .rfm-health-alert-top-grid,.rfm-infra-page .rfm-health-alert-bottom-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.rfm-infra-page .rfm-health-summary-card,.rfm-infra-page .rfm-health-alert-card{padding:18px;border-radius:16px;border:1px solid rgba(127,153,210,.18);background:linear-gradient(180deg,rgba(7,17,35,.9),rgba(4,13,28,.74));box-shadow:0 12px 32px rgba(1,6,20,.22)}
.rfm-infra-page .rfm-health-summary-card strong,.rfm-infra-page .rfm-health-alert-card strong{display:block;color:#edf4ff;font-size:15px;margin-bottom:8px}
.rfm-infra-page .rfm-health-summary-card>small{display:block;color:#9fb0cf;line-height:1.5;margin-top:10px}
.rfm-infra-page .rfm-health-summary-card label,.rfm-infra-page .rfm-health-alert-card label{display:flex;flex-direction:column;gap:7px;color:#cbd7ee;font-size:12px}
.rfm-infra-page .rfm-health-summary-card input,.rfm-infra-page .rfm-health-summary-card select,.rfm-infra-page .rfm-health-alert-card input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid rgba(123,148,200,.24);background:rgba(5,14,28,.62);color:#edf4ff}
.rfm-infra-page .rfm-health-summary-card select{appearance:none}
.rfm-infra-page .rfm-health-toggle{display:flex;flex-direction:row;align-items:center;gap:10px;margin-top:4px}
.rfm-infra-page .rfm-health-toggle input{width:auto;accent-color:#8c7bff}
.rfm-infra-page .rfm-health-alert-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.rfm-infra-page .rfm-health-alert-card{position:relative;overflow:hidden}
.rfm-infra-page .rfm-health-alert-card::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#61d7a0;opacity:.95}
.rfm-infra-page .rfm-health-alert-card.warning::before{background:#f7c66f}
.rfm-infra-page .rfm-health-alert-card.critical::before{background:#ff7d8e}
.rfm-infra-page .rfm-health-alert-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.rfm-infra-page .rfm-health-alert-card-head small{display:block;color:#9fb0cf;line-height:1.45;margin-top:6px}
.rfm-infra-page .rfm-health-alert-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(97,215,160,.12);border:1px solid rgba(97,215,160,.3);color:#9ff4c6}
.rfm-infra-page .rfm-health-alert-badge.warning{background:rgba(247,198,111,.12);border-color:rgba(247,198,111,.28);color:#ffe3a4}
.rfm-infra-page .rfm-health-alert-badge.critical{background:rgba(255,125,142,.12);border-color:rgba(255,125,142,.28);color:#ffd3d9}
.rfm-infra-page .rfm-health-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rfm-infra-page .rfm-health-alert-grid.compact{margin-top:4px}
.rfm-infra-page .rfm-health-alert-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.rfm-infra-page .rfm-health-alert-meta small,.rfm-infra-page .rfm-health-mini-metrics small,.rfm-infra-page .rfm-health-alert-event small{display:block;color:#9fb0cf;line-height:1.5}
.rfm-infra-page .rfm-health-mini-metrics{display:grid;gap:8px}
.rfm-infra-page .rfm-health-alert-events{display:grid;gap:9px}
.rfm-infra-page .rfm-health-alert-event{padding:10px 12px;border:1px solid rgba(127,153,210,.14);border-radius:10px;background:rgba(5,14,28,.42)}
.rfm-infra-page .rfm-health-alert-event b{display:block;color:#e8f0ff;margin-bottom:3px;font-size:12px}
.rfm-infra-page .rfm-health-alerts-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rfm-infra-page .rfm-health-alerts-footer .rfm-infra-save-feedback{flex:1 1 260px;min-height:18px}
@media(max-width:760px){
  .rfm-infra-page .rfm-health-alert-grid{grid-template-columns:minmax(0,1fr)}
  .rfm-infra-page .rfm-health-alert-card-head{flex-direction:column;align-items:flex-start}
  .rfm-infra-page .rfm-health-alert-meta{flex-direction:column}
}

/* v3.9.28 — proprietario bot: consultazione log tecnici dentro System Health */
.rfm-runtime-logs[hidden] { display:none !important; }
.rfm-runtime-logs-head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rfm-runtime-logs-head h3{margin:0 0 6px}
.rfm-runtime-logs-head p{margin:0 0 10px;max-width:700px}
.rfm-runtime-logs-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:12px 0}
.rfm-runtime-logs-filters label{display:flex;flex-direction:column;gap:6px;min-width:125px;flex:1;color:var(--text-muted,#acb6ce);font-size:12px}
.rfm-runtime-logs-filters .rfm-runtime-search{flex:2;min-width:190px}
.rfm-runtime-logs-filters select,.rfm-runtime-logs-filters input{box-sizing:border-box;width:100%;min-height:37px;background:#101a30;color:#eef3ff;border:1px solid #344563;border-radius:8px;padding:8px 10px}
.rfm-runtime-logs-filters button{min-height:37px}
.rfm-runtime-logs-status{font-size:12px;opacity:.85;margin:8px 0}
.rfm-runtime-logs-list{display:flex;flex-direction:column;gap:8px;max-height:440px;overflow-y:auto}
.rfm-runtime-log-row{background:#0f182b;border:1px solid #2a3d5c;border-left:3px solid #5865f2;border-radius:9px;padding:10px 12px;min-width:0}
.rfm-runtime-log-row[data-level=warn]{border-left-color:#f4bd64}
.rfm-runtime-log-row[data-level=error],.rfm-runtime-log-row[data-level=fatal]{border-left-color:#ef7282}
.rfm-runtime-log-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#aebcda}
.rfm-runtime-log-row pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:7px 0 0;color:#e9efff;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}
.rfm-runtime-empty{padding:12px;color:#b7c5df}

/* v3.9.37 — Report del server e qualità fonti, stessi componenti PREMIUM. */
.rfm-infra-reports{display:grid;gap:11px;margin-top:10px;padding:15px;border:1px solid rgba(136,153,242,.25);border-radius:12px;background:linear-gradient(130deg,rgba(79,70,184,.13),rgba(8,21,42,.5));min-width:0}
.rfm-infra-reports h4{margin:0;font-size:14px;color:#e8eaff}
.rfm-infra-reports p,.rfm-infra-reports small{margin:0;line-height:1.55;font-size:12px;color:#b9c8e4;overflow-wrap:anywhere}
.rfm-infra-reports .rfm-infra-trend-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:9px}
.rfm-infra-reports .rfm-infra-trend-controls label{flex:1 1 210px}
.rfm-infra-reports .rfm-infra-trend-controls button{flex:0 1 auto;min-height:36px}
.rfm-infra-reports [data-report-body]{display:grid;gap:8px;min-width:0}
.rfm-infra-reports .rfm-infra-stability-window{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
.rfm-infra-reports .rfm-infra-metric{min-width:0}
@media(max-width:570px){.rfm-infra-reports .rfm-infra-trend-controls button{flex:1 1 42%}}


/* v3.9.39 hotfix — selettore data/ora gestito dal pannello, con conferma esplicita */
.rfm-schedule-picker{position:relative;display:flex;flex-direction:column;gap:5px;min-width:175px;flex:0 1 220px;max-width:100%}
.rfm-schedule-label{font-size:12px;color:#b1c1dd}
.rfm-schedule-trigger{width:100%;min-height:35px;display:flex;align-items:center;gap:8px;justify-content:space-between;text-align:left;padding:8px 10px;background:#101c31;color:#b8c5df;border:1px solid rgba(141,157,197,.3);border-radius:9px;cursor:pointer;font:inherit;font-size:12px}
.rfm-schedule-trigger [data-schedule-display]{flex:1;min-width:0}
.rfm-schedule-trigger.rfm-schedule-selected{color:#f1f5ff}
.rfm-schedule-trigger:hover{border-color:rgba(151,158,255,.62)}
.rfm-schedule-trigger:focus-visible,.rfm-schedule-popover button:focus-visible,.rfm-schedule-fields :focus-visible{outline:2px solid #a8b4ff;outline-offset:2px}
.rfm-schedule-popover{position:absolute;z-index:70;top:calc(100% + 5px);left:0;width:min(350px,calc(100vw - 44px));max-width:calc(100vw - 44px);padding:13px;background:#17253e;color:#f1f5ff;border:1px solid rgba(153,158,249,.50);border-radius:12px;box-shadow:0 16px 34px rgba(0,0,0,.45)}
.rfm-schedule-popover[hidden]{display:none!important}
.rfm-schedule-fields{display:grid;grid-template-columns:minmax(110px,1.5fr) minmax(58px,.75fr) minmax(58px,.75fr);gap:8px;align-items:end}
.rfm-schedule-fields label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:#b6c6e5}
.rfm-schedule-fields input,.rfm-schedule-fields select{box-sizing:border-box;width:100%;min-width:0;height:37px;border:1px solid rgba(141,157,197,.32);border-radius:8px;padding:6px;color:#f3f5ff;background:#101c31;color-scheme:dark;font:inherit;font-size:12px}
.rfm-schedule-popover-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:13px;flex-wrap:wrap}
.rfm-schedule-popover-actions button{min-height:34px}
.rfm-schedule-popover [data-schedule-picker-error]{display:block;color:#ffb8bd;margin-top:9px;font-size:12px}
.rfm-schedule-popover [data-schedule-picker-error][hidden]{display:none!important}
@media(max-width:650px){.rfm-schedule-picker{flex:1 1 100%;width:100%}.rfm-schedule-popover{width:min(350px,calc(100vw - 52px))}}

.rfm-schedule-picker[data-schedule-picker="end"] .rfm-schedule-popover{left:auto;right:0}

/* v3.9.39 — cronologia manutenzioni indipendente e persistente nei refresh */
.rfm-schedule-history{margin-top:12px;padding:13px;border:1px solid rgba(134,150,233,.29);border-radius:11px;background:rgba(8,19,38,.54);min-width:0}
.rfm-schedule-history[hidden]{display:none!important}
.rfm-schedule-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:11px}
.rfm-schedule-history-toolbar>strong{font-size:13px;color:#e9edff}
.rfm-schedule-history-toolbar button{min-height:31px}
.rfm-schedule-history-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rfm-schedule-history-group{min-width:0;display:flex;flex-direction:column;gap:8px}
.rfm-schedule-history-group h5{font-size:12px;color:#c8d6fa;margin:0 0 2px}
.rfm-schedule-history-group h5 span{font-size:11px;color:#9eaed6;padding:1px 6px;border:1px solid #455474;border-radius:7px;margin-left:4px}
.rfm-schedule-history-group>small{color:#aebdd7;font-size:11px}
.rfm-schedule-history-entry{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:rgba(41,60,103,.28);border:1px solid rgba(136,158,211,.24);border-radius:9px;overflow-wrap:anywhere}
.rfm-schedule-history-entry strong{font-size:12px;color:#eff3ff}
.rfm-schedule-history-entry small{font-size:11px;color:#b4c4e0;line-height:1.5}
.rfm-schedule-history [data-schedule-history-body]>small{display:block;color:#b9c7e2;font-size:12px}
.rfm-infra-edit-actions button[data-action="schedule-history"][aria-expanded="true"]{border-color:rgba(151,158,255,.6);background:rgba(78,71,165,.34)}
@media(max-width:650px){.rfm-schedule-history-groups{grid-template-columns:1fr}.rfm-schedule-history-toolbar button{flex:0 0 auto}}

/* v3.9.39 hotfix — titolo del monitor server e System Health sempre visibile.
   Durante queste due viste la barra account globale viene nascosta per non
   sovrapporsi al titolo; navigando altrove ritorna automaticamente. */
body:has(.rfm-infra-page > header.rfm-infra-header) > header #user-area {
  visibility: hidden !important;
  pointer-events: none !important;
}
.rfm-infra-page > header.rfm-infra-header {
  box-sizing: border-box;
  position: sticky;
  top: 0;
  z-index: 110;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 16px;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  height: auto;
  margin: 0 0 14px;
  padding: 9px 14px;
  background: rgba(5, 10, 23, .98);
  border: none;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: blur(16px);
}
.rfm-infra-page > header.rfm-infra-header .rfm-home-kicker {
  justify-self: start;
  font-size: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.rfm-infra-page > header.rfm-infra-header h2 {
  margin: 0;
  font-size: clamp(23px, 2vw, 31px);
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}
.rfm-infra-page > header.rfm-infra-header p {
  justify-self: end;
  text-align: right;
  margin: 0;
  max-width: 100%;
  min-width: 0;
  font-size: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media(max-width:1000px) {
  .rfm-infra-page > header.rfm-infra-header p { display:none; }
}
@media(max-width:520px) {
  .rfm-infra-page > header.rfm-infra-header .rfm-home-kicker { display:none; }
  .rfm-infra-page > header.rfm-infra-header { padding: 9px 10px; }
}

/* 3.9.39 — gruppi ordinati dei moduli Game Server Manager. Nessun bordo aggiunto alla barra superiore. */
.rfm-infra-page .rfm-infra-panel-list > .rfm-infra-section-heading {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 14px;
  row-gap: 3px;
  margin: 12px 0 0;
  padding: 12px 4px 2px;
  border-top: 1px solid rgba(122,151,197,.13);
  color: #a6b9de;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.5;
}
.rfm-infra-page .rfm-infra-panel-list > .rfm-infra-section-heading:first-child {
  margin-top: 0;
  padding-top: 2px;
  border-top: 0;
}
.rfm-infra-page .rfm-infra-section-heading > small {
  color: #748aab;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
}
@media (max-width:650px) {
  .rfm-infra-page .rfm-infra-section-heading { align-items:flex-start; }
  .rfm-infra-page .rfm-infra-section-heading > small { flex-basis:100%; }
}

/* v3.9.41 — staff notification preview and filtered, read-only event history */
.rfm-infra-resource-tools,.rfm-infra-resource-history{margin:17px 0 10px;padding:15px;border:1px solid rgba(128,157,214,.24);border-radius:12px;background:rgba(9,19,37,.46);min-width:0}
.rfm-infra-resource-tools h4,.rfm-infra-resource-history h4{margin:0 0 9px;font-size:13px;color:#e4ecff}
.rfm-infra-resource-tools p{font-size:12px;line-height:1.5;color:#afc1dc}
.rfm-infra-resource-tools small,.rfm-infra-resource-history small{display:block;color:#a1b5d5;font-size:11px;line-height:1.55}
.rfm-infra-resource-tools-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.rfm-infra-resource-tools-controls label,.rfm-infra-resource-history-controls label{font-size:11px;color:#b6c8e8;display:flex;flex-direction:column;gap:6px;min-width:0}
.rfm-infra-resource-tools :is(select),.rfm-infra-resource-history select{width:100%;min-width:0;max-width:100%;min-height:36px;border-radius:8px;border:1px solid #354b70;background:#101c31;color:#f5f8ff;padding:7px 10px}
.rfm-infra-resource-tools-actions,.rfm-infra-resource-history-controls{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin:10px 0}
.rfm-infra-resource-history-controls label{flex:1 1 210px}
.rfm-infra-resource-tools button:disabled{opacity:.45;cursor:not-allowed}
.rfm-infra-preview-card{margin:10px 0;padding:14px;border-left:4px solid #7c80ff;border-radius:9px;background:#101a2b;color:#eff4ff}
.rfm-infra-preview-card>strong{font-size:14px}.rfm-infra-preview-card>p{white-space:normal;line-height:1.5;color:#e1e9ff}
.rfm-infra-preview-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.rfm-infra-preview-fields>div{display:flex;flex-direction:column;gap:4px;font-size:11px;overflow-wrap:anywhere}
.rfm-infra-preview-fields span{color:#becae1}.rfm-infra-test-entry{border-color:rgba(111,161,240,.3)}
@media(max-width:620px){.rfm-infra-resource-tools-controls,.rfm-infra-preview-fields{grid-template-columns:1fr}}

/* v3.9.42 — Separate public connectivity, game protocol, hosting process and integrations. */
.rfm-diagnostic-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.rfm-diagnostic-summary-card{min-width:0;padding:13px 14px;background:rgba(39,61,105,.24);border:1px solid rgba(138,165,221,.2);border-radius:11px;display:flex;flex-direction:column;gap:7px}
.rfm-diagnostic-summary-card>small{font-size:11px;font-weight:700;letter-spacing:.025em;color:#b6c8e6}
.rfm-diagnostic-summary-card>strong{font-size:14px;color:#eaf1ff;overflow-wrap:anywhere}
.rfm-diagnostic-summary-card>p{font-size:12px;color:#aebed7;line-height:1.55;margin:0;overflow-wrap:anywhere}
.rfm-diagnostic-warning{border-color:rgba(235,158,76,.34)}
.rfm-diagnostic-limited{border-color:rgba(218,179,85,.3)}
.rfm-diagnostic-ok{border-color:rgba(74,180,141,.28)}
.rfm-diagnostic-paused{border-color:rgba(112,150,235,.34)}
.rfm-diagnostic-advice{margin:12px 0;padding:13px 15px;border-radius:11px;background:rgba(23,41,75,.36);border:1px solid rgba(138,165,221,.23)}
.rfm-diagnostic-advice h5{margin:0 0 8px;color:#e8edff;font-size:13px}
.rfm-diagnostic-advice ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.rfm-diagnostic-advice li{display:flex;flex-direction:column;gap:3px;line-height:1.5}
.rfm-diagnostic-advice li strong{color:#eaf0ff;font-size:12px}
.rfm-diagnostic-advice li span{color:#aebfdc;font-size:12px}
@media(max-width:700px){.rfm-diagnostic-overview{grid-template-columns:1fr}}

/* K130 — primary server actions and expandable secondary tools. */
.rfm-infra-actions>.rfm-infra-tools{flex:1 1 100%;min-width:0;border:1px solid #344263;border-radius:10px;background:#111d32}
.rfm-infra-tools>summary{padding:10px 14px;cursor:pointer;color:#cad6ee;font-weight:650;overflow-wrap:anywhere}
.rfm-infra-tools>summary:focus-visible{outline:2px solid #a395ff;outline-offset:2px}
.rfm-infra-tools-body{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 12px}
.rfm-infra-tools-body>button{flex:1 1 140px;white-space:normal;overflow-wrap:anywhere}
.rfm-infra-section-heading{border-inline-start:3px solid #8270df;padding-inline-start:12px!important}
@media(max-width:650px){.rfm-infra-actions>button{flex:1 1 100%;white-space:normal}.rfm-infra-tools-body>button{flex-basis:100%}}
