:root{--bg:#0b1220;--panel:#111b2e;--panel2:#16233a;--line:#263653;--text:#e9eef7;--muted:#91a0b8;--blue:#2e8cff;--ok:#26c281;--alarm:#ff4d5f;--unknown:#7d8797}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif}
header{height:64px;background:#0e1728;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}
header strong{font-size:18px;letter-spacing:1px}header span{color:var(--muted);margin-left:12px}nav a{color:var(--text);text-decoration:none;margin-left:20px}
main{padding:24px;max-width:1500px;margin:auto}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
h1,h2,h3{margin-top:0}p{color:var(--muted)}.button,button{background:var(--blue);color:white;border:0;border-radius:7px;padding:10px 15px;text-decoration:none;cursor:pointer}
.secondary{background:#283852}.danger{background:#7e2730}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}
.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.stats>div{background:var(--panel);border:1px solid var(--line);padding:16px;border-radius:10px}.stats b{display:block;font-size:28px}.stats span{color:var(--muted)}
.tree-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #1b2941;padding:9px}.tree-row a{color:var(--text);text-decoration:none}.tree-row small{color:var(--muted)}
.level-1{padding-left:28px}.level-2{padding-left:52px}.level-3{padding-left:76px}.level-4{padding-left:100px}.level-5{padding-left:124px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--unknown)}.dot.ok,.badge.ok{background:var(--ok)}.dot.alarm,.badge.alarm{background:var(--alarm)}
.badge{padding:4px 8px;border-radius:10px;background:var(--unknown);font-size:12px}.form label{display:block;color:var(--muted);margin-bottom:14px}
input,select,textarea{width:100%;margin-top:6px;background:#0c1525;border:1px solid var(--line);color:var(--text);padding:10px;border-radius:6px}
textarea{min-height:80px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wide{grid-column:1/-1}.checkline{display:flex!important;align-items:center;gap:8px}.checkline input{width:auto;margin:0}
.check-card{margin-bottom:15px}.check-head{display:flex;justify-content:space-between}.event{border-left:4px solid var(--unknown);padding:10px;margin-bottom:8px;background:#0d1728}.event.alarm{border-color:var(--alarm)}.event.ok{border-color:var(--ok)}
.login-bg{display:grid;place-items:center;min-height:100vh}.login-card{width:360px;background:var(--panel);padding:28px;border:1px solid var(--line);border-radius:12px}.login-card label{display:block;margin:14px 0}
.flash{padding:10px;border-radius:6px;margin-bottom:12px}.flash.ok{background:#173f31}.flash.alarm{background:#54232a}
.map{height:72vh;border-radius:10px;overflow:hidden}.muted{color:var(--muted)}
@media(max-width:850px){.grid,.stats,.form-grid{grid-template-columns:1fr}header{height:auto;padding:14px;display:block}nav{margin-top:12px}nav a{margin:0 14px 0 0}}


.tree-title{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tree-title h2{margin-bottom:0}
.tree-action{padding:7px 10px;margin-left:6px;font-size:12px}
.tree-row{padding-left:calc(8px + (var(--tree-level) * 24px))}
.tree-toggle,.tree-toggle-placeholder{width:22px;min-width:22px;height:22px;display:inline-grid;place-items:center}
.tree-toggle{padding:0;border:0;background:transparent;color:var(--muted);font-size:16px;border-radius:4px}
.tree-toggle:hover{background:#23334f;color:var(--text)}
.tree-toggle-placeholder{display:inline-block}
.tree-add{margin-left:auto;font-size:18px;color:var(--blue)!important}
.tree-children[hidden]{display:none}
.dot.warning,.badge.warning{background:#f4b740}


.monitor-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.compact-stats{margin-bottom:16px}
.monitor-layout{display:grid;grid-template-columns:minmax(310px,390px) minmax(0,1fr);gap:16px;min-height:620px}
.monitor-tree-panel{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:620px}
.monitor-tree-panel .tree-title{padding:16px 16px 10px;border-bottom:1px solid var(--line)}
.tree-buttons{display:flex;gap:6px}.tree-icon-button{width:31px;height:31px;padding:0;font-size:18px}
.tree-search{padding:10px 14px;border-bottom:1px solid var(--line)}.tree-search input{margin:0}
.tree-root{overflow:auto;padding:8px 0 14px;flex:1}
.selectable-tree-row{padding-top:0;padding-bottom:0;min-height:39px;border-bottom:1px solid #1b2941}
.selectable-tree-row:hover{background:#182640}.selectable-tree-row.selected{background:#1c3659;box-shadow:inset 3px 0 var(--blue)}
.tree-select-link{display:flex!important;align-items:center;gap:9px;min-width:0;flex:1;padding:9px 10px 9px 0}
.tree-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.tree-select-link small{margin-left:auto}.search-hidden{display:none}
.monitor-detail-panel{min-width:0;padding:22px}.detail-header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}
.detail-header h2{font-size:27px;margin:4px 0}.detail-type{font-size:12px;color:var(--blue);letter-spacing:1.4px;font-weight:700}
.detail-actions{display:flex;align-items:flex-start;gap:10px}.large-status{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px 13px;font-weight:700}
.large-status.ok{color:var(--ok)}.large-status.alarm{color:var(--alarm)}.large-status.warning{color:#f4b740}.large-status.unknown{color:var(--muted)}
.detail-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:18px 0}
.detail-summary>div{background:#0d1728;border:1px solid var(--line);border-radius:8px;padding:12px}
.detail-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.detail-summary b{font-size:15px}
.section-title{margin:23px 0 10px}.checks-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}
.checks-table{width:100%;border-collapse:collapse;min-width:800px}.checks-table th,.checks-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.checks-table th{font-size:12px;color:var(--muted);background:#0d1728;white-space:nowrap}.checks-table tr:last-child td{border-bottom:0}
.status-pill{display:inline-block;min-width:78px;text-align:center;padding:5px 8px;border-radius:5px;background:var(--unknown);font-size:11px;font-weight:800}
.status-pill.ok{background:var(--ok);color:#071a12}.status-pill.alarm{background:var(--alarm)}.status-pill.warning{background:#f4b740;color:#261900}
.value-cell{font-weight:700}.error-cell{max-width:260px;color:#d9a4aa}.empty-cell{text-align:center!important;color:var(--muted)!important}
.children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.child-card{display:flex;align-items:center;gap:10px;padding:13px;background:#0d1728;border:1px solid var(--line);border-radius:8px;color:var(--text);text-decoration:none}
.child-card:hover{border-color:var(--blue);background:#13233a}.child-card div{min-width:0;flex:1}.child-card b,.child-card small{display:block}.child-card small{color:var(--muted);margin-top:4px}.child-state{font-size:11px;color:var(--muted)}
.detail-events{max-height:280px;overflow:auto}.event-time{font-weight:700;margin-bottom:4px}.empty-panel,.empty-detail{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}
@media(max-width:1050px){.monitor-layout{grid-template-columns:320px minmax(0,1fr)}.detail-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.monitor-layout{grid-template-columns:1fr}.monitor-tree-panel{min-height:350px;max-height:500px}.detail-header{display:block}.detail-actions{margin-top:15px}.detail-summary{grid-template-columns:1fr 1fr}}


.command-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.command-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:#203552;border:1px solid #355078}
.command-button:hover{background:#294666}.command-button:disabled{opacity:.45;cursor:not-allowed}
.command-button b,.command-button small{display:block}.command-button small{margin-top:4px;color:#b7c3d4;font-size:11px}
.command-icon{font-size:22px}
.map-picker-actions{display:flex;gap:10px;margin:4px 0 18px}
.map-modal{position:fixed;inset:0;background:rgba(3,8,17,.82);z-index:9999;padding:28px;display:grid;place-items:center}
.map-modal[hidden]{display:none}
.map-modal-card{width:min(1100px,96vw);height:min(760px,92vh);background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}
.map-modal-header,.map-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}
.map-modal-header{border-bottom:1px solid var(--line)}.map-modal-footer{border-top:1px solid var(--line)}
.map-modal-header h2{margin-bottom:3px}.map-modal-header p{margin:0}
.map-picker{flex:1;min-height:420px}


.monitor-actions{display:flex;align-items:center;gap:10px}
.monitor-actions form{margin:0}
.poller-indicator{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-size:12px;font-weight:700}
.poller-indicator.ok{color:var(--ok);border-color:rgba(38,194,129,.45)}
.poller-indicator.alarm{color:var(--alarm);border-color:rgba(255,77,95,.45)}
.poller-indicator.unknown{color:var(--muted)}
.mini-button{padding:6px 9px;font-size:11px;white-space:nowrap}
@media(max-width:760px){.monitor-actions{flex-wrap:wrap;justify-content:flex-end}}


.readable-value{font-weight:800}
.readable-value.ok{color:var(--ok)}
.readable-value.alarm{color:var(--alarm)}
.readable-value.unknown{color:var(--muted)}
.raw-value{display:block;margin-top:4px;color:var(--muted);font-weight:400;font-size:11px}

.section-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-top:25px}
.section-heading-row h2{margin-bottom:4px}
.new-oid-card{border-style:dashed;border-color:#3d5a82}
.form-actions{display:flex;gap:10px;align-items:center}

.control-protocol{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:500;letter-spacing:.5px}


.edit-section-nav{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:rgba(11,18,32,.96);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:14px;backdrop-filter:blur(8px)}
.edit-section-nav input{margin:0;margin-left:auto;max-width:360px}
.edit-section{margin-bottom:14px;border:1px solid var(--line);border-radius:10px;background:#0d1728;overflow:hidden;scroll-margin-top:85px}
.section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:#16243a;border-radius:0;padding:14px 17px;font-size:16px;font-weight:700;text-align:left}
.section-toggle:hover{background:#1c2d49}
.section-body{padding:15px}
.embedded-card{margin:0}
.searchable-edit-item[hidden]{display:none}
@media(max-width:800px){.edit-section-nav input{max-width:none;width:100%;margin-left:0}}


.clone-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(400px,1.2fr);gap:18px;align-items:start}
.clone-source-card h2{margin-top:6px}
.clone-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}
.clone-summary>div{background:#0d1728;border:1px solid var(--line);border-radius:8px;padding:12px}
.clone-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.clone-form{margin:0}
@media(max-width:800px){.clone-layout{grid-template-columns:1fr}}

.device-section{border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:12px;background:#0d1728}
.device-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:#172640;border-radius:0;padding:12px 15px;font-size:15px;font-weight:800;text-align:left}
.device-section-toggle:hover{background:#1d3150}
.device-section-body{padding:10px}
.device-section-body[hidden]{display:none}


.save-all-button{background:var(--ok);color:#061810;font-weight:800;white-space:nowrap}
.save-all-button:hover{filter:brightness(1.08)}
.save-all-button:disabled{opacity:.65;cursor:wait}
.save-all-bottom{position:sticky;bottom:10px;z-index:25;display:flex;justify-content:flex-end;padding:12px;margin:18px 0;background:rgba(11,18,32,.94);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(8px)}
.batch-save-notice{position:sticky;top:6px;z-index:40}
@media(max-width:900px){.edit-section-nav .save-all-button{width:100%}}


.compact-check-card{padding:0!important;overflow:hidden;margin-bottom:8px}
.compact-check-summary{display:grid;grid-template-columns:68px 92px minmax(220px,1fr) minmax(110px,180px) 72px;align-items:center;gap:10px;padding:9px 11px;background:#101d31}
.compact-check-card.editor-open .compact-check-summary{background:#172945;border-bottom:1px solid var(--line)}
.compact-order{display:flex;align-items:center;gap:6px}
.order-number{display:inline-grid;place-items:center;min-width:30px;height:28px;padding:0 5px;border:1px solid var(--line);border-radius:5px;background:#0b1525;color:var(--muted);font-size:11px;font-weight:800}
.order-buttons{display:flex;flex-direction:column;gap:2px}
.order-button{width:24px;height:18px;padding:0;background:#253854;border-radius:4px;font-size:11px;line-height:1}
.compact-check-main{min-width:0}
.compact-check-main b,.compact-check-main small{display:block}
.compact-check-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-check-main small{margin-top:3px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Consolas,monospace;font-size:10px}
.compact-section-name{padding:5px 8px;border-radius:5px;background:#20314c;color:#bed0ea;font-size:11px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-edit-toggle{padding:7px 9px;font-size:11px}
.compact-check-editor{padding:14px;border-top:1px solid var(--line)}
.compact-check-editor[hidden]{display:none}
.section-toggle small{font-size:11px;color:var(--muted);font-weight:600}
@media(max-width:900px){
  .compact-check-summary{grid-template-columns:60px 82px minmax(140px,1fr) 68px}
  .compact-section-name{grid-column:3/4;grid-row:2}
}
@media(max-width:650px){
  .compact-check-summary{grid-template-columns:56px 1fr 62px}
  .compact-check-summary>.badge{grid-column:2}
  .compact-check-main{grid-column:1/-1}
  .compact-section-name{grid-column:1/-1;grid-row:auto;text-align:left}
}

.field-help{display:block;margin-top:5px;color:var(--muted);font-size:11px}


.value-with-history{display:flex;align-items:center;justify-content:space-between;gap:12px}
.history-indicator{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:58px;color:var(--muted);text-decoration:none}
.history-indicator:hover{color:var(--text)}
.history-bar{position:relative;display:block;width:54px;height:9px;border:1px solid var(--line);border-radius:6px;background:#08111f;overflow:hidden}
.history-bar>span{display:block;height:100%;background:var(--blue)}
.history-bar .history-pulse{width:35%;animation:historyPulse 1.8s infinite alternate}
@keyframes historyPulse{from{transform:translateX(0)}to{transform:translateX(185%)}}
.history-indicator small{font-size:9px}
.history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.period-buttons{display:flex;gap:7px}
.period-buttons button{background:#263956}
.period-buttons button.active{background:var(--blue)}
.history-stats{color:var(--muted);font-size:13px;text-align:right}
.history-chart-card{height:65vh;min-height:430px;position:relative}
.history-chart-card canvas{width:100%!important;height:100%!important}
@media(max-width:700px){.history-toolbar{display:block}.history-stats{margin-top:12px;text-align:left}}


.history-config-box{border:1px solid #355078;border-radius:9px;background:#0c182a;padding:14px}
.history-config-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.history-config-header b,.history-config-header small{display:block}
.history-config-header b{font-size:15px;color:var(--text)}
.history-config-header small{margin-top:4px;color:var(--muted);font-size:11px}
.history-config-fields{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;margin-top:12px}
.history-retention-note{display:block;margin-top:9px;color:var(--muted);font-size:10px}
.switch-control{display:flex!important;align-items:center;gap:9px;margin:0!important;cursor:pointer;white-space:nowrap}
.switch-control input{position:absolute;opacity:0;pointer-events:none}
.switch-slider{position:relative;width:44px;height:24px;border-radius:20px;background:#34445f;transition:.2s}
.switch-slider::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:white;transition:.2s}
.switch-control input:checked + .switch-slider{background:var(--ok)}
.switch-control input:checked + .switch-slider::after{transform:translateX(20px)}
.switch-text{font-size:12px;font-weight:800;color:var(--muted)}
.switch-control input:checked ~ .switch-text{color:var(--ok)}
@media(max-width:700px){
  .history-config-header{align-items:flex-start;flex-direction:column}
  .history-config-fields{grid-template-columns:1fr}
}


.history-gauge{display:block;margin-top:7px;max-width:290px;color:var(--muted);text-decoration:none}
.history-gauge:hover{color:var(--text)}
.history-gauge-track{position:relative;height:10px;border:1px solid var(--line);border-radius:7px;background:#08111f;overflow:visible}
.history-gauge-fill{position:absolute;left:0;top:0;height:100%;border-radius:7px;background:linear-gradient(90deg,#2e8cff,#26c281)}
.history-gauge-marker{position:absolute;top:50%;width:3px;height:16px;background:#fff;border-radius:2px;transform:translate(-50%,-50%);box-shadow:0 0 0 2px rgba(11,18,32,.8)}
.history-gauge-labels{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:4px;font-size:9px}
.history-gauge-labels span:nth-child(2){font-weight:800;color:var(--text);text-align:center}
.history-gauge-labels span:last-child{text-align:right}
@media(max-width:900px){.history-gauge{max-width:220px}}


/* ===== Versione 2.7 restyling dashboard ===== */
:root{
  --panel:#10203a;
  --panel-2:#152845;
  --panel-3:#0c1830;
  --line-strong:#294261;
  --text-soft:#9cb6d7;
}
main{max-width:1680px}
.workspace-header{display:grid;gap:12px;margin-bottom:14px}
.monitor-toolbar{align-items:flex-end;margin-bottom:0}
.monitor-toolbar h1{font-size:26px;line-height:1.1;margin-bottom:4px}
.monitor-toolbar p{font-size:14px;color:var(--text-soft)}
.pathbar{display:flex;align-items:center;gap:14px;padding:10px 14px;background:linear-gradient(180deg,#0f1d33,#0d1728);border-color:var(--line-strong)}
.pathbar-label{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--text-soft);text-transform:uppercase}
.pathbar-track{display:flex;flex-wrap:wrap;gap:8px}
.path-crumb{position:relative;display:inline-flex;align-items:center;padding:8px 14px 8px 14px;background:#162847;border:1px solid var(--line);clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 10px 50%);padding-left:18px;font-size:13px;color:#dce8fb;text-decoration:none}
.path-crumb:hover{background:#1d3154}
.path-crumb.folder{background:#263246}
.path-crumb.site{background:#2b3957}
.path-crumb.device{background:#18355f}
.compact-stats{margin-top:0;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}
.compact-stats>div{padding:14px 16px;min-height:auto;background:linear-gradient(180deg,#101d34,#0f1a2f);border-color:var(--line-strong)}
.compact-stats b{font-size:20px}
.compact-stats span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft)}
.monitor-layout{grid-template-columns:360px minmax(0,1fr);gap:14px;align-items:start}
.monitor-tree-panel,.monitor-detail-panel{background:linear-gradient(180deg,#0e1a2f,#0b1525);border-color:var(--line-strong)}
.monitor-tree-panel{padding:0;overflow:hidden}
.tree-title{padding:14px 14px 10px;border-bottom:1px solid var(--line-strong);background:linear-gradient(180deg,#162845,#13233e)}
.tree-title h2{font-size:18px}
.tree-search{padding:10px 12px;border-bottom:1px solid var(--line)}
.tree-search input{height:38px;font-size:13px;background:#0d1728}
.tree-root{padding:8px 0}
.tree-row{min-height:32px;padding:0 10px}
.selectable-tree-row{border-bottom:1px solid rgba(255,255,255,.03)}
.tree-select-link{padding:6px 8px;border-radius:7px}
.tree-select-link small{font-size:10px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em}
.tree-name{font-size:14px}
.tree-toggle,.tree-toggle-placeholder{width:18px}
.selectable-tree-row.selected .tree-select-link{background:#21406d}
.detail-header{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line-strong)}
.detail-header h2{font-size:22px}
.detail-header p{color:var(--text-soft)}
.detail-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.detail-nav a{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#13243e;color:var(--text-soft);font-size:12px;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.05em}
.detail-nav a:hover{background:#1b3153;color:#fff}
.detail-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.detail-summary>div{padding:12px 14px;background:linear-gradient(180deg,#0f1a2f,#0d1728);border:1px solid var(--line-strong);border-radius:10px}
.detail-summary span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft)}
.detail-summary b{font-size:20px;margin-top:4px}
.section-title{display:flex;align-items:center;gap:8px;margin:14px 0 8px;font-size:17px}
.section-title small{padding:3px 7px;border-radius:999px;background:#19304f;color:var(--text-soft);font-size:11px;font-weight:800}
.device-section{border-color:var(--line-strong);background:#0e1a2f;box-shadow:none;margin-bottom:12px}
.device-section-toggle{padding:10px 14px;background:#172846;font-size:15px;border-bottom:1px solid var(--line-strong)}
.device-section-toggle small{margin-left:6px;padding:2px 6px;border-radius:999px;background:#29476f;color:#bfd2ef;font-size:10px;font-weight:800}
.device-section-body{padding:8px 10px 10px}
.checks-table{font-size:13px}
.checks-table thead th{position:sticky;top:0;background:#0c1930;z-index:1;padding:9px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#9cb6d7}
.checks-table td{padding:9px 10px;vertical-align:top}
.checks-table tbody tr:hover{background:rgba(42,77,123,.14)}
.status-pill{min-width:72px;font-size:11px}
.control-protocol{margin-top:4px}
.value-cell b{font-size:15px}
.raw-value{margin-top:4px;font-size:11px}
.history-gauge{max-width:240px;margin-top:6px}
.history-gauge-track{height:8px;border-color:#3a587d;background:#08111d}
.history-gauge-labels{font-size:9px}
.command-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.command-button{min-height:58px;padding:10px 12px}
.detail-events{display:grid;gap:8px}
.event{padding:10px 12px;border-left-width:4px;border-radius:8px;background:#101c30}
.event-time{font-size:11px;color:var(--text-soft);margin-bottom:4px}
.children-list{display:grid;gap:8px}
.card-lite{padding:4px 0}
.child-row{display:grid;grid-template-columns:auto 56px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#101c30;color:inherit;text-decoration:none}
.child-row:hover{background:#152845}
.child-kind{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;border-radius:5px;background:#223957;color:#bdd1ec;font-size:10px;font-weight:800}
.child-info b{display:block}
.child-info small{font-size:11px;color:var(--text-soft)}
.child-state{font-size:11px;font-weight:800;color:var(--text-soft)}
.mini-button{padding:7px 10px;font-size:11px}
.large-status{font-size:12px}
@media (max-width:1200px){
  .monitor-layout{grid-template-columns:320px minmax(0,1fr)}
  .detail-summary{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media (max-width:900px){
  .compact-stats,.detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .monitor-layout{grid-template-columns:1fr}
  .monitor-tree-panel{order:2}
  .monitor-detail-panel{order:1}
}
@media (max-width:600px){
  .compact-stats,.detail-summary{grid-template-columns:1fr}
  .pathbar{display:block}
  .pathbar-track{margin-top:8px}
}


/* ===== Versione 2.8: eventi sulla risorsa ===== */
.tree-event-indicators{display:inline-flex;align-items:center;gap:4px;margin-left:5px}
.tree-event-badge{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:900;line-height:1}
.tree-event-badge b{margin-left:3px;font-size:9px}
.tree-event-badge.alarm-event{background:var(--alarm);color:#fff;box-shadow:0 0 0 2px rgba(255,77,95,.12)}
.tree-event-badge.change-event{background:#2479d8;color:#fff;box-shadow:0 0 0 2px rgba(36,121,216,.12)}
.nav-events-link{display:inline-flex;align-items:center;gap:5px}
.nav-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--alarm);color:white;font-size:10px;font-weight:900}
.events-register{padding:0;overflow:hidden}
.events-register-head,.events-register-row{display:grid;grid-template-columns:155px minmax(130px,190px) minmax(130px,190px) minmax(300px,1fr) minmax(90px,140px);align-items:center}
.events-register-head{padding:10px 14px;background:#172846;border-bottom:1px solid var(--line-strong);color:var(--text-soft);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.events-register-row{min-height:45px;padding:8px 14px;border-bottom:1px solid var(--line);font-size:12px}
.events-register-row:hover{background:#14243d}
.events-register-row.was-unread{box-shadow:inset 4px 0 #2479d8;background:rgba(36,121,216,.06)}
.events-register-row.alarm{box-shadow:inset 4px 0 var(--alarm)}
.events-register-row a{color:#dce9fb;text-decoration:none;font-weight:700}
.events-register-row a:hover{text-decoration:underline}
.event-description{display:flex;align-items:center;gap:8px}
.event-level-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#2479d8;color:#fff;font-style:normal;font-size:12px;font-weight:900}
.events-register-row.alarm .event-level-icon{background:var(--alarm)}
.event-date{white-space:nowrap;color:var(--text-soft)}
@media(max-width:1050px){
  .events-register{overflow:auto}
  .events-register-head,.events-register-row{min-width:950px}
}


/* ===== Versione 2.9: storico per singolo punto ===== */
.tree-event-indicators{margin-left:auto;padding:3px;text-decoration:none;flex:0 0 auto}
.control-name-line{display:flex;align-items:center;gap:7px;min-width:0}
.control-name-line>b{min-width:0}
.point-event-link{display:inline-flex;align-items:center;gap:3px;text-decoration:none}
.point-event-icon{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;color:#fff;font-size:11px;font-weight:900}
.point-event-icon.alarm-event{background:var(--alarm)}
.point-event-icon.change-event{background:#2479d8}
.history-eye-link{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:#1c3352;color:#bcd3ef;text-decoration:none;font-size:12px;opacity:.75}
.history-eye-link:hover{opacity:1;background:#274b75}
.command-button .point-event-link{position:relative;z-index:3}


.history-action-button{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:30px;
  border:1px solid #36577f;
  border-radius:7px;
  background:#1c3352;
  color:#d8e7fb;
  text-decoration:none;
  transition:.15s;
}
.history-action-button:hover{
  background:#294d78;
  border-color:#4f78aa;
  transform:translateY(-1px);
}
.history-action-eye{font-size:15px;line-height:1}
.history-action-alert{
  position:absolute;
  top:-6px;
  right:-6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:999px;
  color:#fff;
  font-size:10px;
  font-weight:900;
  border:2px solid #0c1830;
}
.history-action-alert.alarm-event{background:var(--alarm)}
.history-action-alert.change-event{background:#2479d8}


/* ===== Versione 3.0: dashboard operativa ===== */
.brand-section-link{color:var(--text-soft);text-decoration:none;font-size:13px}
.brand-section-link:hover{color:#fff}
.ops-dashboard{display:grid;gap:14px}
.ops-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.ops-header h1{margin:4px 0;font-size:29px}
.ops-header p{color:var(--text-soft)}
.ops-header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.ops-primary-counters{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}
.ops-counter{display:grid;gap:4px;min-height:122px;padding:17px 19px;border:1px solid var(--line-strong);border-radius:12px;background:linear-gradient(180deg,#13233e,#0f1a2e);color:inherit;text-decoration:none;transition:.15s}
.ops-counter:hover{transform:translateY(-2px);border-color:#52759f}
.ops-counter span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-soft)}
.ops-counter b{font-size:35px;line-height:1.05}
.ops-counter small{font-size:11px;color:var(--text-soft)}
.ops-counter.alarm-counter{border-top:4px solid var(--alarm)}
.ops-counter.ok-counter{border-top:4px solid var(--ok)}
.ops-counter.unknown-counter{border-top:4px solid #8091aa}
.ops-counter.event-counter{border-top:4px solid #2479d8}
.ops-system-strip{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));border:1px solid var(--line-strong);border-radius:10px;background:#0e1a2e;overflow:hidden}
.ops-system-strip>div{padding:12px 14px;border-right:1px solid var(--line)}
.ops-system-strip>div:last-child{border-right:0}
.ops-system-strip span{display:block;margin-bottom:5px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft)}
.ops-system-strip b{font-size:13px}
.ok-text{color:var(--ok)}
.alarm-text{color:var(--alarm)}
.ops-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:14px;align-items:start}
.ops-panel{padding:0;overflow:hidden;background:linear-gradient(180deg,#0e1a2f,#0b1525);border-color:var(--line-strong)}
.ops-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:#172846;border-bottom:1px solid var(--line-strong)}
.ops-panel-head h2{margin:0 0 3px;font-size:18px}
.ops-panel-head p{margin:0;color:var(--text-soft);font-size:12px}
.ops-panel-head>a{font-size:12px;color:#bcd2ef}
.panel-count{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 9px;border-radius:999px;font-size:13px;font-weight:900}
.panel-count.alarm{background:var(--alarm);color:#fff}
.current-alarms-list,.recent-changes-list{display:grid}
.current-alarm-row{display:grid;grid-template-columns:38px minmax(180px,1fr) minmax(150px,.7fr) 145px;align-items:center;gap:12px;padding:12px 15px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.current-alarm-row:hover{background:rgba(255,77,95,.07)}
.current-alarm-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--alarm);color:#fff;font-size:17px;font-weight:900}
.current-alarm-resource b,.current-alarm-resource small,.current-alarm-value b,.current-alarm-value small{display:block}
.current-alarm-resource small,.current-alarm-value small{margin-top:4px;color:var(--text-soft);font-size:11px}
.current-alarm-value{text-align:right}
.current-alarm-time{text-align:right;color:var(--text-soft);font-size:11px;white-space:nowrap}
.all-clear{display:flex;align-items:center;gap:14px;padding:35px 22px}
.all-clear>span{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(38,194,129,.16);color:var(--ok);font-size:25px;font-weight:900}
.all-clear b,.all-clear small{display:block}
.all-clear small{margin-top:5px;color:var(--text-soft)}
.recent-change-row{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) 100px;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.recent-change-row:hover{background:#14243d}
.recent-change-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#2479d8;color:#fff;font-weight:900}
.recent-change-row.alarm .recent-change-icon{background:var(--alarm)}
.recent-change-row b,.recent-change-row small{display:block}
.recent-change-row small{margin-top:3px;color:var(--text-soft);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-change-row time{text-align:right;color:var(--text-soft);font-size:10px;white-space:nowrap}
.new-event-dot{position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#2479d8}
@media(max-width:1200px){
  .ops-primary-counters{grid-template-columns:repeat(2,minmax(180px,1fr))}
  .ops-system-strip{grid-template-columns:repeat(3,1fr)}
  .ops-system-strip>div:nth-child(3){border-right:0}
  .ops-system-strip>div:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .ops-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .ops-header{align-items:flex-start;flex-direction:column}
  .ops-header-actions{justify-content:flex-start}
  .ops-primary-counters{grid-template-columns:1fr}
  .ops-system-strip{grid-template-columns:repeat(2,1fr)}
  .ops-system-strip>div{border-bottom:1px solid var(--line)}
  .current-alarm-row{grid-template-columns:34px minmax(0,1fr)}
  .current-alarm-value,.current-alarm-time{grid-column:2;text-align:left}
}


/* ===== Versione 3.1: classificazione stati operativi ===== */
:root{--unreachable:#f4b740;--fault:#ff8a3d;--info:#2479d8}
.dot.unreachable,.badge.unreachable{background:var(--unreachable)}
.dot.fault,.badge.fault{background:var(--fault)}
.large-status.unreachable{color:var(--unreachable);border-color:rgba(244,183,64,.5)}
.large-status.fault{color:var(--fault);border-color:rgba(255,138,61,.5)}
.status-pill.unreachable{background:var(--unreachable);color:#2a1b00}
.status-pill.fault{background:var(--fault);color:#2a1000}
.readable-value.unreachable{color:var(--unreachable)}
.readable-value.fault{color:var(--fault)}
.compact-stats .stat-alarm{border-top:3px solid var(--alarm)}
.compact-stats .stat-unreachable{border-top:3px solid var(--unreachable)}
.compact-stats .stat-fault{border-top:3px solid var(--fault)}
.ops-primary-counters.status-counters{grid-template-columns:repeat(5,minmax(160px,1fr))}
.ops-counter.unreachable-counter{border-top:4px solid var(--unreachable)}
.ops-counter.fault-counter{border-top:4px solid var(--fault)}
.current-alarm-row.unreachable:hover{background:rgba(244,183,64,.08)}
.current-alarm-row.fault:hover{background:rgba(255,138,61,.08)}
.current-alarm-row.unreachable .current-alarm-icon{background:var(--unreachable);color:#2a1b00}
.current-alarm-row.fault .current-alarm-icon{background:var(--fault);color:#2a1000}
.recent-change-row.unreachable .recent-change-icon{background:var(--unreachable);color:#2a1b00}
.recent-change-row.fault .recent-change-icon{background:var(--fault);color:#2a1000}
.events-register-row.unreachable{box-shadow:inset 4px 0 var(--unreachable)}
.events-register-row.fault{box-shadow:inset 4px 0 var(--fault)}
.events-register-row.unreachable .event-level-icon{background:var(--unreachable);color:#2a1b00}
.events-register-row.fault .event-level-icon{background:var(--fault);color:#2a1000}
@media(max-width:1400px){.ops-primary-counters.status-counters{grid-template-columns:repeat(3,minmax(180px,1fr))}}
@media(max-width:900px){.ops-primary-counters.status-counters{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:600px){.ops-primary-counters.status-counters{grid-template-columns:1fr}}


/* ===== Versione 3.2: gerarchia albero più leggibile ===== */
.tree-root{padding:8px 8px 14px 5px}
.tree-root>.tree-node{margin-bottom:2px}
.tree-row{position:relative;padding-left:4px!important}
.tree-children{
  position:relative;
  margin-left:22px;
  padding-left:13px;
  border-left:1px solid #355274;
}
.tree-children[hidden]{display:none}
.tree-children>.tree-node>.tree-row::before{
  content:"";
  position:absolute;
  left:-14px;
  top:50%;
  width:13px;
  border-top:1px solid #355274;
}
.tree-children>.tree-node:last-child::after{
  content:"";
  position:absolute;
  left:-14px;
  top:calc(50% + 1px);
  bottom:-3px;
  width:2px;
  background:#0c182b;
}
.selectable-tree-row.kind-folder{background:rgba(57,78,106,.13)}
.selectable-tree-row.kind-site{background:rgba(31,67,105,.10)}
.selectable-tree-row.kind-device{background:transparent}
.selectable-tree-row.kind-folder:hover,
.selectable-tree-row.kind-site:hover,
.selectable-tree-row.kind-device:hover{background:#182b48}
.selectable-tree-row.selected{
  background:#214576!important;
  box-shadow:inset 4px 0 #2e8cff;
}
.tree-kind-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 17px;
  width:17px;
  font-size:13px;
  line-height:1;
  opacity:.95;
}
.tree-kind-icon.folder{color:#a9bdd8}
.tree-kind-icon.site{color:#6ea9e9;font-size:11px}
.tree-kind-icon.device{color:#8ea0b9;font-size:12px}
.tree-select-link{gap:7px!important;min-height:34px}
.tree-name{font-weight:650}
.kind-folder>.tree-row .tree-name{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.kind-site>.tree-row .tree-name{font-weight:750}
.kind-device>.tree-row .tree-name{font-weight:600}
.tree-toggle,.tree-toggle-placeholder{
  flex:0 0 20px;
  width:20px!important;
  height:26px;
}
.tree-toggle{color:#aac2df;font-size:15px}
.tree-toggle:hover{background:#2a4262}
.tree-select-link small{
  min-width:68px;
  text-align:right;
  opacity:.8;
}
@media(max-width:520px){
  .tree-select-link small{display:none}
  .tree-children{margin-left:17px;padding-left:10px}
}


/* ===== Versione 3.2.1: albero pulito ===== */
.tree-kind-icon{display:none!important}
.tree-select-link small{display:none!important}
.tree-select-link{
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:8px!important;
}
.tree-name{
  flex:1 1 auto;
  min-width:0;
}


/* ===== Versione 3.2.2: soli contatori operativi ===== */
.status-counters-three{
  grid-template-columns:repeat(3,minmax(220px,1fr))!important;
}
@media(max-width:900px){
  .status-counters-three{grid-template-columns:1fr!important}
}


/* ===== Versione 3.2.3: contatori corretti e menu superiore ===== */
.dashboard-status-counters{
  grid-template-columns:repeat(6,minmax(150px,1fr))!important;
}
.dashboard-status-counters .ops-counter{
  min-height:112px;
  padding:15px 16px;
}
.dashboard-status-counters .ops-counter b{
  font-size:30px;
}
.ops-counter.total-counter{border-top:4px solid #4d79b5}
.network-status-counters{
  grid-template-columns:repeat(3,minmax(180px,1fr))!important;
  max-width:none;
}
.network-status-counters>div{
  min-height:78px;
}
.main-header{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 20px;
  background:linear-gradient(180deg,#111f35 0%,#0c1729 100%);
  border-bottom:1px solid #29415f;
  box-shadow:0 3px 16px rgba(0,0,0,.22);
}
.brand-area{display:flex;align-items:center;min-width:230px}
.brand-link{
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#fff;
  text-decoration:none;
}
.brand-link strong{
  font-size:17px;
  letter-spacing:.055em;
}
.brand-link span{
  color:#82a5d2;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:6px;
}
.main-nav .nav-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:7px;
  min-height:38px;
  padding:0 11px;
  border:1px solid transparent;
  border-radius:8px;
  color:#b7c9df;
  font-size:13px;
  font-weight:650;
  text-decoration:none;
  transition:.15s;
}
.main-nav .nav-item:hover{
  color:#fff;
  background:#182c49;
  border-color:#2f4d73;
}
.main-nav .nav-item.active{
  color:#fff;
  background:#224472;
  border-color:#3f6da5;
  box-shadow:inset 0 -2px #4da0ff;
}
.main-nav .nav-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  color:#7fb7f1;
  font-size:15px;
}
.main-nav .logout-item{
  margin-left:5px;
  color:#e6abb0;
}
.main-nav .logout-item:hover{
  background:rgba(205,67,78,.16);
  border-color:rgba(224,89,99,.35);
}
.main-nav .nav-unread-badge{
  position:absolute;
  top:-5px;
  right:-5px;
}
@media(max-width:1350px){
  .dashboard-status-counters{
    grid-template-columns:repeat(3,minmax(170px,1fr))!important;
  }
}
@media(max-width:1000px){
  .main-header{align-items:flex-start;flex-direction:column;padding:12px 16px}
  .main-nav{width:100%;overflow-x:auto;padding-bottom:2px}
  .main-nav .nav-item{white-space:nowrap}
}
@media(max-width:720px){
  .dashboard-status-counters,
  .network-status-counters{
    grid-template-columns:1fr!important;
  }
}


/* ===== Versione 3.2.4: motore nella barra superiore ===== */
.main-header{
  gap:14px;
}
.main-nav{
  margin-left:auto;
}
.main-nav .nav-item{
  border-color:#243b59;
  background:rgba(13,27,47,.45);
}
.main-nav .nav-item:hover{
  border-color:#4b709d;
}
.main-nav .nav-item.active{
  border-color:#5593d6;
  box-shadow:inset 0 -2px #4da0ff,0 0 0 1px rgba(77,160,255,.12);
}
.header-poller{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:176px;
  min-height:40px;
  padding:6px 11px;
  border:1px solid #3b5576;
  border-radius:9px;
  background:#101d31;
  color:#d9e7fa;
  text-align:left;
  cursor:default;
  transition:.15s;
}
.header-poller-led{
  flex:0 0 auto;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#8291a7;
  box-shadow:0 0 0 4px rgba(130,145,167,.10);
}
.header-poller-copy{
  display:block;
  min-width:0;
}
.header-poller-copy b,
.header-poller-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.header-poller-copy b{
  font-size:11px;
  line-height:1.25;
}
.header-poller-copy small{
  margin-top:2px;
  color:#8fa9c9;
  font-size:9px;
}
.header-poller.ok{
  border-color:rgba(38,194,129,.55);
  background:rgba(20,67,52,.32);
}
.header-poller.ok .header-poller-led{
  background:var(--ok);
  box-shadow:0 0 0 4px rgba(38,194,129,.13);
}
.header-poller.busy{
  border-color:rgba(77,160,255,.65);
  background:rgba(29,68,112,.35);
}
.header-poller.busy .header-poller-led{
  background:#4da0ff;
  box-shadow:0 0 0 4px rgba(77,160,255,.14);
  animation:pollerPulse 1.2s infinite alternate;
}
.header-poller.error{
  border-color:rgba(255,138,61,.72);
  background:rgba(106,55,20,.38);
}
.header-poller.error .header-poller-led{
  background:#ff8a3d;
  box-shadow:0 0 0 4px rgba(255,138,61,.14);
}
.header-poller.stopped{
  border-color:rgba(230,184,75,.7);
  background:rgba(92,72,19,.35);
}
.header-poller.stopped .header-poller-led{
  background:#e6b84b;
}
@keyframes pollerPulse{
  from{opacity:.55}
  to{opacity:1}
}
.ops-header-note{
  max-width:390px;
  padding:9px 12px;
  border:1px solid #294461;
  border-radius:8px;
  background:#101d31;
  color:#8fa9c9;
  font-size:11px;
}
@media(max-width:1250px){
  .main-header{flex-wrap:wrap}
  .header-poller{order:3;margin-left:auto}
}
@media(max-width:1000px){
  .header-poller{order:2;margin-left:0}
}


/* ===== Versione 4.0: utenti, permessi e impostazioni ===== */
.settings-form{max-width:760px}.settings-test-form{margin-top:12px}
.users-table{padding:0;overflow:hidden}
.users-table-head,.users-table-row{display:grid;grid-template-columns:minmax(150px,1fr) 150px 120px minmax(170px,1fr) 90px;align-items:center;gap:12px;padding:12px 15px}
.users-table-head{background:#172846;color:var(--text-soft);font-size:11px;font-weight:800;text-transform:uppercase}
.users-table-row{border-top:1px solid var(--line)}
.users-table-row small{display:block;margin-top:3px;color:var(--text-soft)}
.role-pill{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}
.role-pill.admin{background:#264f7d;color:#cde5ff}.role-pill.user{background:#273951;color:#bed0e8}
.status-text.ok{color:var(--ok)}.status-text.unknown{color:var(--muted)}
.user-form{max-width:1100px}
.permission-panel{margin-top:20px;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden}
.permission-panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;background:#172846}
.permission-panel-head h2{margin:0}.permission-panel-head p{margin:4px 0 0;color:var(--text-soft);font-size:11px}
.permission-panel-head input{max-width:340px}
.permission-list{max-height:460px;overflow:auto;padding:8px}
.permission-row{display:grid!important;grid-template-columns:24px 90px minmax(0,1fr);align-items:center;gap:8px;padding:9px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer}
.permission-row:hover{background:#142640}.permission-kind{font-size:9px;font-weight:800;color:#85a8d2}
.command-readonly{padding:10px;border:1px solid var(--line);border-radius:8px;background:#101c30}.command-readonly small{display:block;color:var(--text-soft)}
@media(max-width:800px){
  .settings-hub{grid-template-columns:1fr}
  .users-table{overflow:auto}.users-table-head,.users-table-row{min-width:780px}
  .permission-panel-head{align-items:flex-start;flex-direction:column}.permission-panel-head input{max-width:none;width:100%}
}


/* ===== Versione 4.1: MIB e modelli apparato ===== */
.mib-upload-form{margin-bottom:16px}
.mib-library{padding:0;overflow:hidden}
.mib-library-head,.mib-library-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,.8fr) 70px 150px 80px;align-items:center;gap:12px;padding:11px 14px}
.mib-library-head{background:#172846;color:var(--text-soft);font-size:11px;font-weight:800;text-transform:uppercase}
.mib-library-row{border-top:1px solid var(--line)}.mib-library-row small{display:block;color:var(--text-soft)}
.mib-browser{padding:12px}.mib-browser>input{margin-bottom:12px}
.mib-symbol-head,.mib-symbol-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(180px,.9fr) minmax(130px,.8fr) 120px minmax(260px,1.5fr);gap:10px;align-items:start;padding:9px 10px}
.mib-symbol-head{background:#172846;color:var(--text-soft);font-size:10px;font-weight:800;text-transform:uppercase}
.mib-symbol-row{border-bottom:1px solid var(--line);font-size:11px}.mib-symbol-row:hover{background:#14243d}.mib-symbol-row small{display:block;color:var(--text-soft)}
.mib-oid{display:flex;align-items:center;gap:6px}.mib-oid code{word-break:break-all}.mib-oid button{padding:4px 6px;font-size:9px}
.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.template-card h2{margin:5px 0}.template-card p{min-height:42px;color:var(--text-soft)}.template-card>small{display:block;margin-bottom:14px;color:var(--muted)}
.app-dialog{width:min(680px,calc(100vw - 30px));padding:20px;border:1px solid #46688f;border-radius:12px;background:#0f1c31;color:var(--text);box-shadow:0 24px 80px rgba(0,0,0,.55)}
.app-dialog::backdrop{background:rgba(2,8,18,.72);backdrop-filter:blur(3px)}
.app-dialog label{display:block;margin-top:12px}.app-dialog textarea{min-height:100px}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.dialog-head h2{margin:0}.dialog-head p{margin:4px 0 0;color:var(--text-soft)}
.oid-picker-field{display:flex;gap:8px}.oid-picker-field input{flex:1}.oid-picker-field button{white-space:nowrap}
.mib-picker-dialog{width:min(980px,calc(100vw - 30px))}
.mib-picker-results{max-height:60vh;overflow:auto;margin-top:10px;border:1px solid var(--line);border-radius:8px}
.mib-picker-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(180px,.8fr) minmax(260px,1.4fr);gap:12px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#101c30;color:inherit;text-align:left}
.mib-picker-row:hover{background:#19304f}.mib-picker-row small{display:block;color:var(--text-soft)}.mib-picker-row code{word-break:break-all;color:#9dcbff}
@media(max-width:900px){
  .mib-library{overflow:auto}.mib-library-head,.mib-library-row{min-width:760px}
  .mib-browser{overflow:auto}.mib-symbol-head,.mib-symbol-row{min-width:1000px}
  .mib-picker-row{grid-template-columns:1fr}
}


/* ===== Versione 4.1.1: test diretto OID dalla MIB ===== */
.mib-test-panel{margin-bottom:12px}
.mib-test-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.mib-test-head h2{margin:0 0 4px}.mib-test-head p{margin:0;color:var(--text-soft);font-size:12px}
.mib-target-summary{display:inline-flex;align-items:center;min-height:31px;padding:5px 10px;border:1px solid #375779;border-radius:999px;background:#10213a;color:#bcd4f0;font-size:10px;font-weight:700}
.mib-test-grid{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(160px,1fr) 130px minmax(150px,.8fr) 120px minmax(180px,1fr);align-items:end;gap:10px}
.mib-scalar-option{min-height:38px;margin:0!important;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:#0d182a}
.mib-test-result{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:16px;margin-bottom:12px;padding:13px 15px;border:1px solid #3b5779;border-left-width:5px;border-radius:9px;background:#101c30}
.mib-test-result>div>b,.mib-test-result>div>span{display:block}
.mib-test-result>div>span{margin-top:3px;color:var(--text-soft);font-size:11px}
.mib-test-result>strong{font-size:18px;text-align:right}
.mib-test-result.running{border-left-color:#4da0ff}
.mib-test-result.ok{border-left-color:var(--ok);background:rgba(24,92,67,.20)}
.mib-test-result.alarm{border-left-color:var(--alarm)}
.mib-test-result.unreachable{border-left-color:#e6b84b;background:rgba(113,88,20,.20)}
.mib-test-result.fault{border-left-color:#ff8a3d;background:rgba(111,57,20,.20)}
.mib-test-meta{grid-column:1/-1;display:flex!important;align-items:center;gap:12px;padding-top:8px;border-top:1px solid var(--line)}
.mib-test-meta code{color:#a9d0ff}.mib-test-meta span,.mib-test-meta small{color:var(--text-soft);font-size:10px}
.mib-test-button{padding:6px 10px;background:#244a76;border:1px solid #3c6a9e;font-size:10px}
.mib-test-button:hover{background:#32649a}
.mib-symbol-head,.mib-symbol-row{grid-template-columns:minmax(150px,.8fr) minmax(180px,.9fr) minmax(130px,.8fr) 110px minmax(250px,1.5fr) 58px!important}
@media(max-width:1250px){
  .mib-test-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}
}
@media(max-width:760px){
  .mib-test-head{flex-direction:column}
  .mib-test-grid{grid-template-columns:1fr}
  .mib-test-result{grid-template-columns:1fr}
  .mib-test-result>strong{text-align:left}
}


/* ===== Versione 4.1.2: test multiplo e aggiunta diretta ===== */
.mib-browser-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.mib-browser-toolbar>input{flex:1;margin:0!important}
.mib-bulk-actions,.mib-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mib-bulk-progress{margin-bottom:12px;padding:12px;border:1px solid #345475;border-radius:9px;background:#0e1b2f}
.mib-bulk-progress-head{display:flex;justify-content:space-between;margin-bottom:8px}
.mib-bulk-progress-track{height:10px;border:1px solid #36577c;border-radius:999px;background:#08111e;overflow:hidden}
.mib-bulk-progress-track>span{display:block;height:100%;background:linear-gradient(90deg,#318cec,#2bc187)}
.mib-bulk-counters{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:10px;color:var(--text-soft)}
.mib-bulk-counters .ok b{color:var(--ok)}.mib-bulk-counters .unreachable b{color:#e6b84b}.mib-bulk-counters .fault b{color:#ff8a3d}
.mib-row-result{padding:5px 7px;border-left:3px solid #3c4c61;border-radius:5px;background:#0c1728}
.mib-row-result b,.mib-row-result small{display:block;overflow:hidden;text-overflow:ellipsis}
.mib-row-result b{font-size:11px;word-break:break-word}.mib-row-result small{margin-top:3px;color:var(--text-soft);font-size:9px;white-space:nowrap}
.mib-row-result.ok{border-left-color:var(--ok);background:rgba(32,102,76,.18)}
.mib-row-result.unreachable{border-left-color:#e6b84b;background:rgba(111,87,24,.17)}
.mib-row-result.fault{border-left-color:#ff8a3d;background:rgba(112,57,21,.17)}
.mib-symbol-row.testing{background:rgba(44,113,184,.12)}
.mib-test-button,.mib-add-button{padding:6px 9px;font-size:10px}
.mib-add-button{background:#176d52;border:1px solid #2f9b79}
.mib-add-button:hover{background:#218565}
.mib-symbol-head,.mib-symbol-row{grid-template-columns:minmax(140px,.7fr) minmax(170px,.8fr) minmax(115px,.6fr) 95px minmax(210px,1.15fr) minmax(170px,.8fr) 130px!important}
.mib-add-dialog{width:min(900px,calc(100vw - 30px))}
.inline-form-result{margin:12px 0;padding:10px;border-radius:7px}.inline-form-result.ok{background:rgba(38,194,129,.16);color:#bff1dd}.inline-form-result.fault{background:rgba(255,138,61,.16);color:#ffd4b5}
@media(max-width:1000px){.mib-browser-toolbar{align-items:stretch;flex-direction:column}}


/* ===== Versione 4.1.4: indice tabelle SNMP ===== */
.mib-test-grid{
  grid-template-columns:minmax(220px,1.35fr) minmax(150px,.9fr) 120px minmax(145px,.8fr) 110px minmax(175px,1fr) minmax(180px,1fr)!important;
}
.mib-index-field{display:flex;gap:6px}
.mib-index-field input{min-width:0;flex:1}
.mib-index-field button{padding-left:9px;padding-right:9px;white-space:nowrap}
.mib-copy-working-oid{
  margin-top:5px;
  padding:3px 6px;
  border:1px solid #41678f;
  background:#193653;
  color:#bfdbf7;
  font-size:8px;
}
.mib-copy-working-oid:hover{background:#245075}
@media(max-width:1450px){
  .mib-test-grid{grid-template-columns:repeat(4,minmax(170px,1fr))!important}
}
@media(max-width:900px){
  .mib-test-grid{grid-template-columns:repeat(2,minmax(170px,1fr))!important}
}
@media(max-width:600px){
  .mib-test-grid{grid-template-columns:1fr!important}
}


/* ===== Versione 4.1.5: ricerca MIB e creazione modelli ===== */
.mib-symbol-row[hidden]{
  display:none!important;
}
.mib-search-field{
  display:flex;
  align-items:center;
  gap:7px;
  flex:1;
}
.mib-search-field input{
  flex:1;
  margin:0!important;
}
.mib-search-count{
  min-width:88px;
  color:var(--text-soft);
  font-size:10px;
  text-align:right;
}
.template-from-device{
  margin-bottom:16px;
}
.template-from-device-head h2{
  margin:0 0 5px;
}
.template-from-device-head p{
  margin:0 0 14px;
  color:var(--text-soft);
}
.template-from-device-form{
  display:grid;
  grid-template-columns:minmax(240px,1.2fr) minmax(220px,1fr) minmax(280px,1.4fr) auto;
  align-items:end;
  gap:10px;
}
.template-from-device-form .wide{
  grid-column:auto;
}
@media(max-width:1100px){
  .template-from-device-form{
    grid-template-columns:repeat(2,minmax(220px,1fr));
  }
}
@media(max-width:700px){
  .mib-search-field{
    align-items:stretch;
    flex-wrap:wrap;
  }
  .mib-search-field input{
    flex-basis:100%;
  }
  .template-from-device-form{
    grid-template-columns:1fr;
  }
}


/* ===== Versione 4.2.0: pagina apparato operativa ===== */
.inline-action-form{display:inline-flex;margin:0}
.device-web-button{border-color:#3975a8!important}
.device-test-button{background:#2779c8!important;border-color:#4698e8!important}
.controls-title-row{display:flex;align-items:center;justify-content:space-between;gap:15px}
.controls-title-row .section-title{margin-bottom:10px}
.context-command-hint{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:4px 9px;
  border:1px solid #365678;
  border-radius:999px;
  background:#101f35;
  color:#91acd0;
  font-size:9px;
  font-weight:700;
}
.control-row{cursor:context-menu}
.control-row:hover{background:rgba(49,118,185,.10)}
.device-command-menu{
  position:fixed;
  z-index:5000;
  width:min(350px,calc(100vw - 16px));
  max-height:min(520px,calc(100vh - 16px));
  overflow:auto;
  padding:7px;
  border:1px solid #4b7099;
  border-radius:10px;
  background:#0b1729;
  box-shadow:0 18px 55px rgba(0,0,0,.62);
}
.device-command-menu[hidden]{display:none!important}
.device-command-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 9px 10px;
  border-bottom:1px solid #29435f;
}
.device-command-menu-head span{font-size:12px;font-weight:800}
.device-command-menu-head small{
  max-width:190px;
  overflow:hidden;
  color:#8da9cc;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.device-command-menu form{margin:5px 0}
.device-command-menu form>button{
  display:flex;
  width:100%;
  padding:9px 10px;
  border:1px solid #2e4a69;
  border-radius:7px;
  background:#132640;
  color:#e4effc;
  text-align:left;
}
.device-command-menu form>button:hover{
  border-color:#4a79aa;
  background:#1b385c;
}
.device-command-menu form>button:disabled{opacity:.45}
.device-command-menu form>button b,
.device-command-menu form>button small{display:block}
.device-command-menu form>button small{
  margin-top:3px;
  color:#8faacc;
  font-size:9px;
  word-break:break-all;
}
.device-command-menu-empty{
  padding:17px 10px;
  color:#8faacc;
  font-size:11px;
  text-align:center;
}
.checks-table th:last-child,
.checks-table td:last-child{padding-right:12px}
@media(max-width:800px){
  .controls-title-row{align-items:flex-start;flex-direction:column}
  .context-command-hint{display:none}
}


/* ===== Versione 4.2.1: storico ripristinato e menu azioni ===== */
.device-context-primary-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  padding:7px 0;
}
.device-context-primary-actions form{margin:0!important}
.context-primary-action,
.context-primary-link{
  display:flex;
  width:100%;
  padding:10px;
  border:1px solid #35628f;
  border-radius:7px;
  background:#17395f;
  color:#edf6ff;
  text-align:left;
  text-decoration:none;
}
.context-primary-action:hover,
.context-primary-link:hover{
  border-color:#5c9cda;
  background:#225485;
}
.context-primary-action b,
.context-primary-action small,
.context-primary-link b,
.context-primary-link small{
  display:block;
}
.context-primary-action small,
.context-primary-link small{
  margin-top:3px;
  color:#a4c2df;
  font-size:9px;
}
.device-command-menu-divider{
  margin:7px 0 4px;
  padding:7px 8px 4px;
  border-top:1px solid #29435f;
  color:#88a8cc;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
}


/* ===== Versione 4.2.2: tutte le azioni nel tasto destro ===== */
.detail-actions{
  display:flex;
  align-items:center;
}
.device-context-primary-actions>.context-primary-action{
  cursor:pointer;
}
.device-context-primary-actions>button.context-primary-action{
  font:inherit;
}


/* ===== Versione 4.2.3: storico nel menu contestuale ===== */
.context-primary-link[hidden]{
  display:none!important;
}


/* ===== Versione 4.2.4: menu anche senza controlli ===== */
.detail-panel[oncontextmenu]{cursor:context-menu}
.context-danger-action{
  display:flex;width:100%;padding:10px;
  border:1px solid rgba(221,77,88,.55);
  border-radius:7px;background:rgba(121,35,43,.24);
  color:#ffd8dc;text-align:left
}
.context-danger-action:hover{
  border-color:#df6670;background:rgba(146,42,51,.38)
}
.context-danger-action b,.context-danger-action small{display:block}
.context-danger-action small{
  margin-top:3px;color:#dcaeb3;font-size:9px
}


/* ===== Versione 4.2.5: menu apparati vuoti corretto ===== */
.monitor-detail-panel[oncontextmenu]{
  cursor:context-menu;
}


/* ===== Versione 4.2.6: albero stabile ===== */
.tree-toggle{
  position:relative;
  z-index:3;
  flex:0 0 24px;
  width:24px;
  min-width:24px;
  height:24px;
  padding:0;
  cursor:pointer;
  touch-action:manipulation;
  user-select:none;
}
.tree-select-link{
  position:relative;
  z-index:1;
  min-width:0;
}
.tree-node.search-hidden{
  display:none!important;
}


/* ===== Versione 4.3.0: interfaccia compatta ===== */

/* Barra superiore */
.compact-main-header{
  min-height:48px!important;
  padding:5px 16px!important;
}
.compact-main-header .brand-link strong{font-size:15px!important}
.compact-main-header .brand-link span{font-size:8px!important}
.compact-main-nav{gap:6px!important}
.compact-main-nav .nav-item{
  min-height:34px!important;
  padding:6px 12px!important;
  font-size:10px!important;
}

/* Rete apparati: intestazione e riepiloghi */
.monitor-page-header,
.network-header{
  margin-bottom:9px!important;
}
.monitor-page-header h1,
.network-header h1{
  margin-bottom:2px!important;
  font-size:21px!important;
}
.monitor-page-header p,
.network-header p{
  margin:0!important;
  font-size:10px!important;
}
.monitor-path{
  min-height:42px!important;
  margin-bottom:10px!important;
  padding:7px 12px!important;
}
.monitor-stats{
  gap:8px!important;
  margin-bottom:10px!important;
}
.monitor-stats>div{
  min-height:58px!important;
  padding:9px 12px!important;
}
.monitor-stats b{font-size:17px!important}
.monitor-stats span{font-size:9px!important}

/* Albero */
.monitor-layout{
  gap:10px!important;
}
.compact-monitor-tree-panel{
  width:290px!important;
  min-width:290px!important;
}
.compact-monitor-tree-panel .tree-title{
  min-height:48px!important;
  padding:8px 12px!important;
}
.compact-monitor-tree-panel .tree-search{
  padding:7px 10px!important;
}
.compact-monitor-tree-panel .tree-search input{
  min-height:32px!important;
  padding:6px 9px!important;
}
.compact-monitor-tree-panel .tree-row{
  min-height:31px!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
.compact-monitor-tree-panel .tree-name{
  font-size:10px!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.compact-monitor-tree-panel .tree-children{
  margin-left:13px!important;
  padding-left:7px!important;
}
.compact-monitor-tree-panel .tree-toggle{
  width:20px!important;
  min-width:20px!important;
  height:20px!important;
  flex-basis:20px!important;
}

/* Dettaglio apparato */
.monitor-detail-panel{
  padding:14px!important;
}
.detail-header{
  margin-bottom:7px!important;
  padding-bottom:8px!important;
}
.detail-header h1{font-size:20px!important}
.detail-type{font-size:9px!important}
.large-status{
  min-height:31px!important;
  padding:6px 11px!important;
  font-size:9px!important;
}
.compact-detail-nav{display:none!important}
.compact-detail-summary{
  display:flex!important;
  flex-wrap:wrap;
  gap:0!important;
  margin:7px 0 10px!important;
  padding:0!important;
  overflow:hidden;
  border:1px solid #29435f;
  border-radius:8px;
}
.compact-detail-summary>div{
  flex:1 1 150px;
  min-height:48px!important;
  padding:8px 12px!important;
  border:0!important;
  border-right:1px solid #29435f!important;
  border-radius:0!important;
}
.compact-detail-summary>div:last-child{border-right:0!important}
.compact-detail-summary span{font-size:8px!important}
.compact-detail-summary b{
  margin-top:3px!important;
  font-size:15px!important;
}

/* Sezioni e tabelle */
.section-title{
  margin:10px 0 7px!important;
  font-size:14px!important;
}
.controls-title-row{min-height:28px!important}
.context-command-hint{
  min-height:23px!important;
  padding:3px 8px!important;
  font-size:8px!important;
}
.device-section{margin-bottom:8px!important}
.device-section-toggle{
  min-height:38px!important;
  padding:7px 12px!important;
  font-size:13px!important;
}
.compact-checks-table thead th{
  height:30px!important;
  padding:6px 9px!important;
  font-size:9px!important;
}
.compact-checks-table tbody td{
  padding:7px 9px!important;
  font-size:10px!important;
  vertical-align:middle!important;
}
.compact-checks-table .status-pill{
  min-width:64px!important;
  min-height:25px!important;
  padding:4px 8px!important;
  font-size:9px!important;
}
.compact-checks-table .control-name-line b{font-size:11px!important}
.compact-checks-table .control-protocol{
  display:inline-block!important;
  margin-left:5px!important;
  font-size:7px!important;
  opacity:.7;
}
.compact-checks-table .value-cell>b{font-size:13px!important}
.compact-checks-table .compact-raw-value{
  display:none!important;
  margin-top:2px!important;
  font-size:8px!important;
}
.compact-checks-table tr:hover .compact-raw-value{display:block!important}
.compact-checks-table .readable-value{font-size:10px!important}
.compact-checks-table .history-gauge{
  max-width:220px!important;
  margin-top:3px!important;
}
.compact-checks-table .history-gauge-track{height:6px!important}
.compact-checks-table .history-gauge-labels{
  margin-top:1px!important;
  font-size:7px!important;
}

/* Telecomandi */
.command-grid{gap:7px!important}
.command-button,.command-readonly{
  min-height:46px!important;
  padding:8px 10px!important;
}

/* Dashboard */
.compact-ops-dashboard{padding-top:18px!important}
.compact-ops-header{
  margin-bottom:12px!important;
}
.compact-ops-header h1{
  margin:3px 0!important;
  font-size:23px!important;
}
.compact-ops-header p{font-size:11px!important}
.compact-ops-primary-counters{
  gap:8px!important;
  margin-bottom:8px!important;
}
.compact-ops-primary-counters .ops-counter{
  min-height:82px!important;
  padding:10px 12px!important;
}
.compact-ops-primary-counters .ops-counter b{font-size:24px!important}
.compact-ops-primary-counters .ops-counter span{font-size:9px!important}
.compact-ops-primary-counters .ops-counter small{font-size:8px!important}
.ops-system-strip{
  min-height:52px!important;
  margin-bottom:10px!important;
}
.ops-system-strip>div{padding:8px 11px!important}
.ops-panels{gap:10px!important}
.ops-panel-header{padding:10px 13px!important}
.ops-panel-header h2{font-size:15px!important}
.ops-empty-state{
  min-height:68px!important;
  padding:12px 16px!important;
}
.ops-empty-state .empty-icon{
  width:38px!important;
  height:38px!important;
  font-size:24px!important;
}
.ops-event-row{
  min-height:46px!important;
  padding:7px 11px!important;
}
.ops-event-row p{
  margin-top:2px!important;
  line-height:1.2!important;
}

/* Responsive */
@media(max-width:1100px){
  .compact-monitor-tree-panel{
    width:260px!important;
    min-width:260px!important;
  }
}
@media(max-width:820px){
  .compact-monitor-tree-panel{
    width:100%!important;
    min-width:0!important;
  }
  .compact-detail-summary>div{flex-basis:50%}
}


/* ===== Versione 4.3.2: stile gestionale compatto ===== */
.monitor-detail-panel{padding:10px!important}
.detail-header{min-height:44px!important;margin-bottom:5px!important;padding:4px 2px 7px!important}
.detail-header h2{margin:1px 0!important;font-size:18px!important}
.large-status{min-height:27px!important;padding:4px 9px!important;border-radius:5px!important}
.compact-detail-summary{min-height:40px!important;margin:5px 0 7px!important;border-radius:5px!important}
.compact-detail-summary>div{min-height:40px!important;padding:6px 9px!important}
.compact-detail-summary span{font-size:7px!important}
.compact-detail-summary b{margin-top:1px!important;font-size:13px!important}
.controls-title-row{margin-top:2px!important;margin-bottom:4px!important}
.section-title{margin:6px 0 4px!important;font-size:13px!important}
.context-command-hint{min-height:20px!important;padding:2px 7px!important;border-radius:4px!important;font-size:7px!important}
.compact-device-section{margin-bottom:5px!important;border-radius:5px!important}
.compact-device-section .device-section-toggle{min-height:32px!important;padding:5px 9px!important;border-radius:4px!important;font-size:12px!important}
.compact-device-section .device-section-body{padding:5px!important}
.checks-table-wrap{border-radius:4px!important}
.compact-checks-table{border-collapse:collapse!important}
.compact-checks-table thead th{height:25px!important;padding:4px 8px!important;font-size:8px!important}
.compact-checks-table tbody td{height:34px!important;padding:4px 8px!important;font-size:9px!important}
.compact-checks-table .status-pill{min-width:56px!important;min-height:22px!important;padding:3px 6px!important;border-radius:4px!important;font-size:8px!important}
.compact-checks-table .control-name-line b{font-size:10px!important}
.compact-checks-table .control-protocol{display:inline!important;margin-left:4px!important;font-size:6px!important}
.compact-checks-table .value-cell>b{font-size:12px!important}
.compact-checks-table .compact-raw-value{display:none!important}
.compact-checks-table .readable-value{font-size:9px!important}
.compact-checks-table .history-gauge{display:inline-block!important;width:150px!important;max-width:150px!important;margin:2px 0 0!important}
.compact-checks-table .history-gauge-track{height:5px!important}
.compact-checks-table .history-gauge-labels{font-size:6px!important;line-height:1!important}
.compact-checks-table .error-cell{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-command-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;gap:5px!important}
.compact-command-grid .command-button,.compact-command-grid .command-readonly{min-height:38px!important;padding:6px 8px!important;border-radius:4px!important}
.compact-command-grid b{font-size:9px!important}
.compact-command-grid small{font-size:7px!important}

/* menu contestuale */
.compact-context-menu{width:285px!important;max-height:calc(100vh - 16px)!important;padding:3px!important;border-radius:5px!important}
.compact-context-menu .device-command-menu-head{min-height:30px!important;padding:5px 7px!important}
.compact-context-menu .device-command-menu-head span{font-size:10px!important}
.compact-context-menu .device-command-menu-head small{font-size:7px!important}
.compact-context-menu .device-context-primary-actions{gap:1px!important;padding:3px 0!important}
.compact-context-menu .device-context-primary-actions form{margin:0!important}
.compact-context-menu .context-primary-action,
.compact-context-menu .context-primary-link,
.compact-context-menu .context-danger-action{
  min-height:30px!important;padding:5px 7px!important;border:0!important;
  border-bottom:1px solid rgba(62,88,116,.55)!important;border-radius:0!important;
  background:transparent!important;color:#eaf2fb!important
}
.compact-context-menu .context-primary-action:hover,
.compact-context-menu .context-primary-link:hover{background:#183451!important}
.compact-context-menu .context-danger-action:hover{background:rgba(130,43,50,.45)!important}
.compact-context-menu .context-primary-action b,
.compact-context-menu .context-primary-link b,
.compact-context-menu .context-danger-action b{
  display:flex!important;align-items:center;gap:6px;font-size:9px!important;line-height:1.1!important
}
.compact-context-menu .context-primary-action small,
.compact-context-menu .context-primary-link small,
.compact-context-menu .context-danger-action small{display:none!important}
.compact-context-menu .context-action-icon{
  display:inline-flex;align-items:center;justify-content:center;width:14px;min-width:14px;font-size:10px
}
.compact-monitor-tree-panel{width:270px!important;min-width:270px!important}
.compact-monitor-tree-panel .tree-title{min-height:38px!important;padding:6px 9px!important}
.compact-monitor-tree-panel .tree-search{padding:5px 7px!important}
.compact-monitor-tree-panel .tree-search input{min-height:28px!important;font-size:8px!important}
.compact-monitor-tree-panel .tree-row{min-height:27px!important}
.compact-monitor-tree-panel .tree-name{font-size:9px!important}
.compact-monitor-tree-panel .tree-toggle{width:18px!important;min-width:18px!important;height:18px!important;flex-basis:18px!important;font-size:8px!important}
.compact-monitor-tree-panel .dot{width:8px!important;height:8px!important}


/* ===== Versione 4.3.3: menu contestuale per tutte le risorse ===== */
.compact-context-menu [hidden]{
  display:none!important;
}
.monitor-detail-panel[oncontextmenu],
.tree-select-link[oncontextmenu]{
  cursor:context-menu;
}


/* ===== Versione 4.3.4: larghezza, font tecnico e barre corrette ===== */

/* Font tecnico ispirato al sito MikroTik */
html, body, button, input, select, textarea, table{
  font-family:"Lucida Console","Liberation Mono","Courier New",monospace!important;
}
body{
  font-size:13px!important;
  letter-spacing:-0.01em;
}
h1,h2,h3,h4,
.brand-link strong,
.nav-item,
.button,
button,
.status-pill,
.large-status{
  font-family:"Lucida Console","Liberation Mono","Courier New",monospace!important;
  font-weight:700!important;
}
p,small,.detail-type,.control-protocol{
  letter-spacing:0!important;
}

/* Usa realmente tutta la larghezza disponibile */
.workspace,
.workspace-header,
.ops-dashboard,
.monitor-page,
main{
  width:100%!important;
  max-width:none!important;
}
.workspace{
  padding-left:18px!important;
  padding-right:18px!important;
}
.monitor-layout{
  display:grid!important;
  grid-template-columns:280px minmax(0,1fr)!important;
  width:100%!important;
  max-width:none!important;
  gap:10px!important;
}
.monitor-detail-panel{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
.compact-monitor-tree-panel{
  width:280px!important;
  min-width:280px!important;
  max-width:280px!important;
}
.checks-table-wrap,
.compact-checks-table{
  width:100%!important;
}
.compact-checks-table{
  table-layout:fixed!important;
}
.compact-checks-table th:nth-child(1),
.compact-checks-table td:nth-child(1){width:9%!important}
.compact-checks-table th:nth-child(2),
.compact-checks-table td:nth-child(2){width:26%!important}
.compact-checks-table th:nth-child(3),
.compact-checks-table td:nth-child(3){width:17%!important}
.compact-checks-table th:nth-child(4),
.compact-checks-table td:nth-child(4){width:18%!important}
.compact-checks-table th:nth-child(5),
.compact-checks-table td:nth-child(5){width:20%!important}
.compact-checks-table th:nth-child(6),
.compact-checks-table td:nth-child(6){width:10%!important}

/* Non comprimere eccessivamente i caratteri */
.compact-main-nav .nav-item{
  font-size:11px!important;
}
.compact-monitor-tree-panel .tree-name{
  font-size:10px!important;
}
.compact-checks-table thead th{
  font-size:9px!important;
}
.compact-checks-table tbody td{
  font-size:10px!important;
}
.compact-checks-table .control-name-line b{
  font-size:11px!important;
}
.compact-checks-table .value-cell>b{
  font-size:13px!important;
}
.compact-checks-table .readable-value{
  font-size:10px!important;
}
.compact-checks-table .control-protocol{
  font-size:7px!important;
}
.compact-detail-summary span{
  font-size:8px!important;
}
.compact-detail-summary b{
  font-size:14px!important;
}

/* Barra storico: cursore sempre dentro la barra, etichette sotto */
.compact-checks-table .history-gauge{
  display:grid!important;
  grid-template-rows:7px 11px!important;
  width:min(240px,100%)!important;
  max-width:240px!important;
  margin:4px 0 0!important;
  overflow:visible!important;
  text-decoration:none!important;
}
.compact-checks-table .history-gauge-track{
  position:relative!important;
  width:100%!important;
  height:7px!important;
  min-height:7px!important;
  overflow:visible!important;
  border-radius:3px!important;
}
.compact-checks-table .history-gauge-fill{
  height:100%!important;
  border-radius:3px!important;
}
.compact-checks-table .history-gauge-marker{
  position:absolute!important;
  top:-2px!important;
  width:3px!important;
  height:11px!important;
  min-height:11px!important;
  margin-left:-1px!important;
  border-radius:2px!important;
  transform:none!important;
  z-index:2!important;
}
.compact-checks-table .history-gauge-labels{
  position:relative!important;
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:start!important;
  width:100%!important;
  margin-top:2px!important;
  font-size:7px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.compact-checks-table .history-gauge-labels span:first-child{
  justify-self:start!important;
}
.compact-checks-table .history-gauge-labels span:nth-child(2){
  justify-self:center!important;
  padding:0 3px!important;
  background:#0f1c30!important;
  position:relative!important;
  z-index:3!important;
}
.compact-checks-table .history-gauge-labels span:last-child{
  justify-self:end!important;
}

/* Più spazio verticale alle righe con barra */
.compact-checks-table tbody td{
  height:auto!important;
  min-height:38px!important;
  padding-top:6px!important;
  padding-bottom:6px!important;
}
.compact-checks-table tr:has(.history-gauge) td{
  min-height:48px!important;
}

/* Menu contestuale leggibile ma sempre compatto */
.compact-context-menu{
  width:300px!important;
}
.compact-context-menu .context-primary-action b,
.compact-context-menu .context-primary-link b,
.compact-context-menu .context-danger-action b{
  font-size:10px!important;
}

/* Responsive */
@media(max-width:1200px){
  .monitor-layout{
    grid-template-columns:250px minmax(0,1fr)!important;
  }
  .compact-monitor-tree-panel{
    width:250px!important;
    min-width:250px!important;
    max-width:250px!important;
  }
}
@media(max-width:850px){
  .monitor-layout{
    grid-template-columns:1fr!important;
  }
  .compact-monitor-tree-panel{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* ===== Versione 4.4.0: verifica guidata ===== */
.verification-dialog{
  width:min(760px,calc(100vw - 24px));
  max-height:min(720px,calc(100vh - 24px));
  padding:0;
  overflow:hidden;
  border:1px solid #527394;
  border-radius:7px;
  background:#0b1728;
  color:#e8f1fb;
  box-shadow:0 24px 80px rgba(0,0,0,.72);
}
.verification-dialog::backdrop{
  background:rgba(1,8,18,.72);
}
.verification-dialog-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:11px 13px;
  border-bottom:1px solid #304a67;
  background:#122641;
}
.verification-dialog-head small{
  display:block;
  color:#75aee8;
  font-size:8px;
}
.verification-dialog-head h2{
  margin:2px 0 0;
  font-size:15px;
}
.verification-close{
  width:27px;
  height:27px;
  padding:0;
  border:0;
  background:transparent;
  font-size:19px;
}
.verification-progress-wrap{
  padding:12px 13px 7px;
}
.verification-progress-track{
  height:8px;
  overflow:hidden;
  border:1px solid #3c5f82;
  border-radius:4px;
  background:#07111f;
}
.verification-progress-track span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,#2b8cea,#27ca91);
  transition:width .25s ease;
}
.verification-progress-info{
  display:flex;
  justify-content:space-between;
  margin-top:5px;
  color:#9cb7d4;
  font-size:9px;
}
.verification-current{
  margin:0 13px 7px;
  padding:7px 9px;
  border:1px solid #2c4867;
  border-radius:4px;
  background:#0e2037;
  font-size:10px;
}
.verification-log{
  height:330px;
  margin:0 13px;
  padding:10px;
  overflow:auto;
  border:1px solid #263f5a;
  border-radius:4px;
  background:#060e1a;
  color:#c8d9eb;
  font:10px/1.45 "Lucida Console","Liberation Mono","Courier New",monospace;
  white-space:pre-wrap;
}
.verification-dialog-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:48px;
  padding:8px 13px;
  border-top:1px solid #304a67;
}
.verification-result.ok{color:#32d795}
.verification-result.error{color:#ff737e}

/* Lampeggio professionale dei controlli variati */
@keyframes changedCheckPulse{
  0%,100%{background:transparent}
  18%,48%,78%{
    background:rgba(39,151,231,.28);
    box-shadow:inset 3px 0 0 #48a9f5;
  }
  33%,63%{background:rgba(39,151,231,.08)}
}
.control-row.check-value-changed{
  animation:changedCheckPulse 1.25s ease-in-out 4;
}


/* ===== Versione 4.4.1: testo più leggibile ===== */
html, body{
  font-size:15px!important;
}

/* Header e navigazione */
.compact-main-header{
  min-height:54px!important;
}
.compact-main-header .brand-link strong{
  font-size:17px!important;
}
.compact-main-header .brand-link span{
  font-size:9px!important;
}
.compact-main-nav .nav-item{
  min-height:38px!important;
  padding:7px 14px!important;
  font-size:12px!important;
}
.poller-indicator{
  font-size:10px!important;
}

/* Titolo pagina e percorso */
.monitor-toolbar h1{
  font-size:24px!important;
}
.monitor-toolbar p{
  font-size:12px!important;
}
.pathbar{
  min-height:48px!important;
}
.pathbar-label,
.path-crumb{
  font-size:11px!important;
}

/* Albero */
.compact-monitor-tree-panel{
  width:300px!important;
  min-width:300px!important;
  max-width:300px!important;
}
.compact-monitor-tree-panel .tree-title h2{
  font-size:16px!important;
}
.compact-monitor-tree-panel .tree-search input{
  min-height:32px!important;
  font-size:10px!important;
}
.compact-monitor-tree-panel .tree-row{
  min-height:31px!important;
}
.compact-monitor-tree-panel .tree-name{
  font-size:11px!important;
}
.compact-monitor-tree-panel .tree-toggle{
  font-size:10px!important;
}

/* Testata apparato */
.detail-type{
  font-size:10px!important;
}
.detail-header h2{
  font-size:21px!important;
}
.large-status{
  font-size:10px!important;
}
.compact-detail-summary span{
  font-size:9px!important;
}
.compact-detail-summary b{
  font-size:15px!important;
}

/* Sezioni */
.section-title{
  font-size:15px!important;
}
.device-section-toggle{
  font-size:14px!important;
}
.context-command-hint{
  font-size:9px!important;
}

/* Tabelle */
.compact-checks-table thead th{
  font-size:10px!important;
}
.compact-checks-table tbody td{
  font-size:11px!important;
  min-height:42px!important;
  padding-top:7px!important;
  padding-bottom:7px!important;
}
.compact-checks-table .status-pill{
  min-width:62px!important;
  min-height:25px!important;
  font-size:9px!important;
}
.compact-checks-table .control-name-line b{
  font-size:12px!important;
}
.compact-checks-table .control-protocol{
  font-size:8px!important;
}
.compact-checks-table .value-cell>b{
  font-size:15px!important;
}
.compact-checks-table .readable-value{
  font-size:11px!important;
}
.compact-checks-table .error-cell{
  font-size:10px!important;
}

/* Barre storico */
.compact-checks-table .history-gauge{
  width:min(270px,100%)!important;
  max-width:270px!important;
  grid-template-rows:8px 14px!important;
}
.compact-checks-table .history-gauge-track{
  height:8px!important;
  min-height:8px!important;
}
.compact-checks-table .history-gauge-marker{
  height:13px!important;
  min-height:13px!important;
}
.compact-checks-table .history-gauge-labels{
  font-size:8px!important;
  line-height:1.1!important;
}

/* Telecomandi */
.compact-command-grid b{
  font-size:11px!important;
}
.compact-command-grid small{
  font-size:8px!important;
}

/* Menu contestuale */
.compact-context-menu{
  width:320px!important;
}
.compact-context-menu .device-command-menu-head span{
  font-size:12px!important;
}
.compact-context-menu .device-command-menu-head small{
  font-size:9px!important;
}
.compact-context-menu .context-primary-action b,
.compact-context-menu .context-primary-link b,
.compact-context-menu .context-danger-action b{
  font-size:11px!important;
}
.compact-context-menu .context-action-icon{
  width:16px!important;
  min-width:16px!important;
  font-size:12px!important;
}

/* Popup verifica */
.verification-dialog-head small{
  font-size:9px!important;
}
.verification-dialog-head h2{
  font-size:17px!important;
}
.verification-progress-info,
.verification-current{
  font-size:11px!important;
}
.verification-log{
  font-size:11px!important;
  line-height:1.5!important;
}
.verification-dialog-foot{
  font-size:11px!important;
}

/* Dashboard */
.compact-ops-header h1{
  font-size:25px!important;
}
.compact-ops-header p{
  font-size:12px!important;
}
.compact-ops-primary-counters .ops-counter span{
  font-size:10px!important;
}
.compact-ops-primary-counters .ops-counter b{
  font-size:26px!important;
}
.compact-ops-primary-counters .ops-counter small{
  font-size:9px!important;
}

@media(max-width:1200px){
  .compact-monitor-tree-panel{
    width:270px!important;
    min-width:270px!important;
    max-width:270px!important;
  }
}
@media(max-width:850px){
  .compact-monitor-tree-panel{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* ===== Versione 4.4.2: allineamento righe controlli ===== */
.compact-checks-table tbody tr{
  vertical-align:middle!important;
}
.compact-checks-table tbody td{
  vertical-align:middle!important;
  line-height:1.2!important;
}
.compact-checks-table tbody td:first-child{
  text-align:left!important;
}
.compact-checks-table .status-pill{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  margin:0!important;
}
.compact-checks-table .control-name-line{
  display:flex!important;
  align-items:center!important;
  min-height:22px!important;
}
.compact-checks-table .control-protocol{
  display:block!important;
  margin:1px 0 0!important;
  line-height:1!important;
}
.compact-checks-table .value-cell{
  vertical-align:middle!important;
}
.compact-checks-table .value-cell>b{
  display:block!important;
  line-height:1.15!important;
}
.compact-checks-table .readable-value{
  display:inline-flex!important;
  align-items:center!important;
  min-height:22px!important;
}
.compact-checks-table td:nth-child(5),
.compact-checks-table td:nth-child(6){
  vertical-align:middle!important;
  white-space:nowrap!important;
}

/* Le righe senza barra rimangono perfettamente centrate */
.compact-checks-table tr:not(:has(.history-gauge)) td{
  height:42px!important;
}

/* Le righe con barra mantengono più spazio senza spostare le altre colonne */
.compact-checks-table tr:has(.history-gauge) td{
  height:58px!important;
  vertical-align:middle!important;
}
.compact-checks-table tr:has(.history-gauge) .control-name-line{
  min-height:auto!important;
}


/* ===== Versione 4.4.3: coordinate e rifiniture ===== */
.coordinate-tools{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:6px 0 12px;
}
.coordinate-tools button{
  min-height:32px;
  padding:6px 10px;
  font-size:10px;
}
.coordinate-picker-dialog{
  width:min(900px,calc(100vw - 24px));
  padding:0;
  overflow:hidden;
  border:1px solid #527394;
  border-radius:7px;
  background:#0b1728;
  color:#e8f1fb;
}
.coordinate-picker-dialog::backdrop{background:rgba(1,8,18,.72)}
.coordinate-picker-head,
.coordinate-picker-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  background:#122641;
}
.coordinate-picker-head{
  border-bottom:1px solid #304a67;
}
.coordinate-picker-foot{
  border-top:1px solid #304a67;
}
.coordinate-picker-head h2{
  margin:2px 0 0;
  font-size:15px;
}
.coordinate-picker-head small{
  font-size:8px;
  color:#75aee8;
}
.coordinate-picker-head>button{
  width:28px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  font-size:19px;
}
.coordinate-picker-map{
  height:min(620px,65vh);
  background:#091321;
}
.coordinate-picker-foot>div{
  display:flex;
  gap:6px;
}

/* Menu contestuale ancora più proporzionato */
.compact-context-menu{
  width:292px!important;
}
.compact-context-menu .context-primary-action,
.compact-context-menu .context-primary-link,
.compact-context-menu .context-danger-action{
  min-height:32px!important;
}

/* Testata meno vuota */
.detail-header{
  min-height:38px!important;
}
.compact-detail-summary{
  margin-top:3px!important;
}


/* ===== Versione 4.4.4: strumenti coordinate visibili ===== */
.coordinate-tools{
  grid-column:1 / -1!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  margin:7px 0 12px!important;
}
.coordinate-tools button{
  display:inline-flex!important;
  align-items:center!important;
  min-height:34px!important;
  padding:7px 11px!important;
  font-size:10px!important;
}
.coordinate-picker-dialog{
  width:min(900px,calc(100vw - 24px));
  padding:0;
  overflow:hidden;
  border:1px solid #527394;
  border-radius:7px;
  background:#0b1728;
  color:#e8f1fb;
}
.coordinate-picker-dialog::backdrop{background:rgba(1,8,18,.72)}
.coordinate-picker-head,.coordinate-picker-foot{
  display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#122641
}
.coordinate-picker-head{border-bottom:1px solid #304a67}
.coordinate-picker-foot{border-top:1px solid #304a67}
.coordinate-picker-map{height:min(620px,65vh);background:#091321}
.coordinate-picker-foot>div{display:flex;gap:6px}


/* ===== Versione 4.4.5: correzione sovrapposizione card ===== */

/* Il contenitore deve poter restringere realmente entrambe le colonne */
.monitor-layout{
  display:grid!important;
  grid-template-columns:minmax(240px,300px) minmax(0,1fr)!important;
  align-items:start!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  gap:12px!important;
  overflow:visible!important;
}

/* Albero contenuto nella propria colonna */
.compact-monitor-tree-panel{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  max-width:300px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

/* Il dettaglio non deve imporre una larghezza minima */
.monitor-detail-panel{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

/* Tutti i blocchi interni devono poter restringersi */
.monitor-detail-panel *,
.monitor-tree-panel *{
  box-sizing:border-box!important;
}
.detail-header,
.detail-summary,
.controls-title-row,
.device-section,
.device-section-body,
.checks-table-wrap,
.command-grid,
.children-list{
  min-width:0!important;
  max-width:100%!important;
}

/* La tabella resta dentro il pannello e scorre solo se davvero necessario */
.checks-table-wrap{
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.compact-checks-table{
  width:100%!important;
  min-width:760px!important;
  max-width:none!important;
}

/* Evita che breadcrumb o intestazioni allarghino l'intera pagina */
.pathbar,
.pathbar-track,
.workspace-header,
.monitor-toolbar{
  min-width:0!important;
  max-width:100%!important;
}
.pathbar-track{
  overflow-x:auto!important;
  overflow-y:hidden!important;
}

/* Sotto questa soglia si passa a due righe senza sovrapposizioni */
@media(max-width:1050px){
  .monitor-layout{
    grid-template-columns:1fr!important;
  }

  .compact-monitor-tree-panel{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    max-height:360px!important;
  }

  .compact-monitor-tree-panel .tree-root{
    max-height:270px!important;
    overflow:auto!important;
  }

  .monitor-detail-panel{
    width:100%!important;
  }
}

/* Su schermi molto stretti la tabella può scorrere orizzontalmente */
@media(max-width:760px){
  .workspace{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .compact-checks-table{
    min-width:700px!important;
  }
}


/* ===== Versione 4.4.6: righe senza protocollo ridondante ===== */
.compact-checks-table .control-name-line{
  min-height:auto!important;
}
.compact-checks-table tr:not(:has(.history-gauge)) td{
  height:38px!important;
}
.compact-checks-table tr:has(.history-gauge) td{
  height:54px!important;
}


/* ===== Versione 4.4.7: menu contestuale più leggibile ===== */
.compact-context-menu .device-command-menu-head span{
  font-size:12px!important;
  font-weight:700!important;
}

.compact-context-menu .context-primary-action b,
.compact-context-menu .context-primary-link b,
.compact-context-menu .context-danger-action b{
  font-size:12px!important;
  font-weight:400!important;
  line-height:1.25!important;
  letter-spacing:0!important;
}

.compact-context-menu .context-action-icon{
  width:17px!important;
  min-width:17px!important;
  font-size:12px!important;
  font-weight:400!important;
}

.compact-context-menu .context-primary-action,
.compact-context-menu .context-primary-link,
.compact-context-menu .context-danger-action{
  min-height:34px!important;
  padding:7px 8px!important;
}

.compact-context-menu{
  width:305px!important;
}


/* ===== Versione 4.4.8: maiuscolo leggero e leggibile ===== */

/* Albero: tutto maiuscolo, peso normale */
.compact-monitor-tree-panel .tree-name{
  text-transform:uppercase!important;
  font-weight:400!important;
  letter-spacing:.02em!important;
}
.compact-monitor-tree-panel .tree-select-link{
  font-weight:400!important;
}
.compact-monitor-tree-panel .tree-row.selected .tree-name{
  font-weight:400!important;
}
.compact-monitor-tree-panel .tree-event-indicators{
  text-transform:none!important;
}

/* Colonna Controllo */
.compact-checks-table td:nth-child(2),
.compact-checks-table td:nth-child(2) b,
.compact-checks-table .control-name-line,
.compact-checks-table .control-name-line b{
  text-transform:uppercase!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
}

/* Colonna Descrizione */
.compact-checks-table td:nth-child(4),
.compact-checks-table td:nth-child(4) .readable-value,
.compact-checks-table .readable-value{
  text-transform:uppercase!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
}

/* Intestazioni già maiuscole ma senza peso eccessivo */
.compact-checks-table thead th{
  font-weight:400!important;
  letter-spacing:.03em!important;
}

/* Mantiene valori e unità invariati */
.compact-checks-table .value-cell,
.compact-checks-table .value-cell b,
.compact-checks-table .history-gauge-labels{
  text-transform:none!important;
  font-weight:700!important;
}


/* ===== Versione 4.6.0: Sinottici ===== */
.concept-list-page{padding:18px}
.concept-list-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.concept-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.concept-map-card{overflow:hidden}
.concept-map-preview{height:130px;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(135deg,#0b1a2c,#163657);font-size:46px}
.concept-map-preview small{position:absolute;right:10px;bottom:8px;font-size:8px}
.concept-map-card-body{padding:12px}
.concept-map-card-body h2{margin:0 0 4px;font-size:16px}
.concept-map-card-body p{min-height:36px;margin:0 0 8px;color:#9bb2ca;font-size:10px}
.concept-map-card-actions{display:flex;gap:5px;flex-wrap:wrap;padding:0 12px 12px}
.concept-map-card-actions form{margin:0}
.concept-editor{height:calc(100vh - 54px);display:flex;flex-direction:column;overflow:hidden}
.concept-editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid #29435f;background:#0d1c30}
.concept-toolbar-title,.concept-toolbar-actions{display:flex;align-items:center;gap:5px}
.concept-toolbar-title input{width:300px;height:32px;font-size:13px;font-weight:700}
.concept-toolbar-actions button,.concept-toolbar-actions .button{min-height:31px;padding:5px 9px;font-size:9px}
.concept-editor-layout{flex:1;min-height:0;display:grid;grid-template-columns:255px minmax(0,1fr) 275px}
.concept-library,.concept-properties{min-height:0;overflow:auto;padding:8px;border-right:1px solid #29435f;background:#0d1a2c}
.concept-properties{border-right:0;border-left:1px solid #29435f}
.concept-properties h2{font-size:13px;margin:4px 0 8px}
.concept-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:7px}
.concept-tabs button{border-radius:0;background:#132640}
.concept-tabs button.active{background:#245a8e}
.concept-library-panel{display:none}.concept-library-panel.active{display:block}
.concept-library-panel>input{width:100%;margin-bottom:7px}
.concept-resource-list{display:flex;flex-direction:column;gap:3px}
.concept-resource-item{display:flex;align-items:center;gap:7px;width:100%;padding:7px;border:1px solid #29445f;background:#11243d;text-align:left}
.concept-resource-item:hover{background:#193857}
.concept-resource-item b,.concept-resource-item small{display:block}
.concept-resource-item b{font-size:10px;font-weight:400;text-transform:uppercase}
.concept-resource-item small{margin-top:2px;color:#88a7c7;font-size:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.concept-shape-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}
.concept-shape-grid button{min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:23px}
.concept-shape-grid span{margin-top:4px;font-size:8px}
.concept-stage-shell{min-width:0;min-height:0;display:flex;flex-direction:column;background:#050c16}
.concept-stage-scroll{flex:1;min-height:0;overflow:auto;padding:24px}
.concept-stage{position:relative;display:inline-block;box-shadow:0 10px 45px rgba(0,0,0,.55)}
.concept-stage.grid-enabled{background-image:linear-gradient(rgba(90,127,163,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(90,127,163,.13) 1px,transparent 1px);background-size:20px 20px}
.concept-statusbar{display:flex;justify-content:space-between;padding:5px 9px;border-top:1px solid #29435f;background:#0d1a2c;font-size:8px}
.concept-properties label{display:block;margin-bottom:8px;font-size:9px}
.concept-properties input,.concept-properties textarea,.concept-properties select{width:100%;margin-top:3px}
.property-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.concept-view-page{padding:14px}
.concept-view-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.concept-view-shell{overflow:auto;padding:18px;background:#050c16}
@media(max-width:1200px){.concept-editor-layout{grid-template-columns:220px minmax(0,1fr) 240px}}
@media(max-width:900px){.concept-editor-layout{grid-template-columns:1fr}.concept-library,.concept-properties{display:none}}


/* ===== Versione 4.6.1: eventi lunghi contenuti ===== */
.events-register{
  overflow:hidden!important;
}
.events-register-head,
.events-register-row{
  grid-template-columns:145px 170px 180px minmax(260px,1fr) 140px!important;
  min-width:0!important;
}
.events-register-row>span,
.events-register-head>span{
  min-width:0!important;
}
.event-description{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  overflow:hidden!important;
}
.event-message-text,
.event-value-text{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.event-value-text{
  max-width:140px!important;
}


/* ===== Versione 4.6.2: connettori stile Excalidraw ===== */
#linkProperties{
  margin:8px 0;
  padding:8px;
  border:1px solid #29435f;
  border-radius:5px;
  background:#0b1728;
}
#linkProperties label:last-child{
  margin-bottom:0;
}


/* ===== Versione 4.7.0: sottomappe gerarchiche ===== */
.concept-toolbar-title-stack{
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:3px!important;
}
.concept-editor-breadcrumbs,
.concept-view-breadcrumbs{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  color:#7898b8;
  font-size:8px;
  text-transform:uppercase;
}
.concept-editor-breadcrumbs a,
.concept-view-breadcrumbs a{
  color:#77b7f1;
  text-decoration:none;
}
.concept-editor-breadcrumbs b,
.concept-view-breadcrumbs b{
  color:#dcecff;
  font-weight:400;
}
.submap-properties{
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  margin:8px 0;
  padding:8px;
  border:1px solid #315274;
  border-radius:5px;
  background:#0a182a;
}
.submap-status{
  color:#8eb0d1;
  font-size:8px;
  text-transform:uppercase;
}
.submap-properties button{
  min-height:32px;
  font-size:9px;
}
.concept-linked-resource{
  display:block;
  margin-bottom:4px;
  color:#65d8a4!important;
}


/* ===== Versione 4.7.2: navigazione sottomappe ===== */
.concept-map-section{
  margin-bottom:26px;
}
.concept-map-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid #29435f;
}
.concept-map-section-head h2{
  margin:0 0 3px;
  font-size:17px;
}
.concept-map-section-head p{
  margin:0;
  color:#8da7c2;
  font-size:10px;
}
.concept-map-section-head>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:24px;
  border-radius:12px;
  background:#173555;
  color:#a8d2fa;
  font-size:10px;
}
.concept-submaps-section{
  padding-top:4px;
}
.concept-submap-card{
  border-color:#365a7d!important;
}
.concept-submap-card .concept-map-preview{
  background:linear-gradient(135deg,#10263c,#1b466a);
}
.concept-parent-map{
  display:block;
  margin-bottom:4px;
  color:#8ca9c5!important;
}
.concept-view-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.concept-view-actions .button{
  margin:0!important;
}
.concept-view-shell .upper-canvas{
  cursor:default;
}


/* ===== Versione 4.7.5: ricerca e card risorse Sinottici ===== */
.concept-library{
  min-width:0!important;
  overflow-x:hidden!important;
}
.concept-resource-list{
  min-width:0!important;
  overflow-x:hidden!important;
}
.concept-resource-item{
  display:grid!important;
  grid-template-columns:10px minmax(0,1fr)!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  padding:7px 8px!important;
}
.concept-resource-item>.dot{
  flex:none!important;
}
.concept-resource-text{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.concept-resource-text b,
.concept-resource-text small{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.concept-resource-text b{
  font-size:10px!important;
  line-height:1.25!important;
}
.concept-resource-text small{
  margin-top:3px!important;
  font-size:7px!important;
  line-height:1.2!important;
  color:#88a7c7!important;
}
.concept-resource-search-empty{
  padding:12px 8px;
  color:#7894b0;
  text-align:center;
  font-size:9px;
}
.concept-resource-search-empty[hidden]{
  display:none!important;
}
#resourceSearch{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}


/* ===== Versione 4.7.6: collegamenti selezionabili e attacchi puliti ===== */
.concept-properties #linkProperties{
  border-color:#3d6a94!important;
}
.canvas-container{
  outline:none!important;
}


/* ===== Versione 4.7.7: filtro risorse realmente funzionante ===== */
.concept-resource-item[hidden]{
  display:none!important;
}
.concept-resource-search-count{
  min-height:18px;
  margin:-2px 1px 5px;
  color:#7694b3;
  font-size:8px;
  text-align:right;
}


/* ===== Versione 4.8.0: tela dinamica e navigazione libera ===== */
.concept-stage-scroll{
  padding:0!important;
  overflow:hidden!important;
  cursor:default;
}
.concept-stage{
  display:block!important;
  width:100%!important;
  height:100%!important;
  box-shadow:none!important;
}
.concept-stage .canvas-container{
  width:100%!important;
  height:100%!important;
}
.concept-stage canvas{
  max-width:none!important;
  max-height:none!important;
}
.concept-view-shell{
  height:calc(100vh - 150px);
  min-height:600px;
  overflow:hidden!important;
  padding:0!important;
}
.concept-view-shell .canvas-container{
  width:100%!important;
  height:100%!important;
}


/* ===== Versione 4.8.1: icone vettoriali stile Lucide ===== */
.concept-shape-grid button i{
  display:flex;
  align-items:center;
  justify-content:center;
  width:27px;
  height:27px;
}
.concept-shape-grid button i svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* ===== Versione 4.9.1: stato sull'intera card ===== */
.concept-status-legend{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}


/* ===== Versione 4.9.3: istantanea telecamera in Rete apparati ===== */
.network-camera-panel{
  margin:10px 0 12px;
  padding:10px;
  border:1px solid #315273;
  border-radius:6px;
  background:#0d1d31;
}
.network-camera-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.network-camera-head h3{
  margin:2px 0 0;
  font-size:14px;
  font-weight:400;
}
.network-camera-refresh{
  min-height:31px!important;
  padding:5px 10px!important;
  font-size:9px!important;
}
.network-camera-preview{
  position:relative;
  display:block;
  width:100%;
  max-width:720px;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid #3b6388;
  border-radius:5px;
  background:#03080d;
  text-decoration:none;
}
.network-camera-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#03080d;
}
.network-camera-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:#9bb4cc;
  text-align:center;
}
.network-camera-placeholder[hidden]{
  display:none!important;
}
.network-camera-placeholder b{
  font-size:12px;
  font-weight:400;
}
.network-camera-placeholder small{
  font-size:8px;
}
.network-camera-icon{
  font-size:30px;
  color:#62b8ff;
}
.network-camera-overlay{
  position:absolute;
  inset:auto 0 0;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:5px;
  background:linear-gradient(transparent,rgba(0,0,0,.9));
  color:#fff;
  font-size:9px;
  opacity:0;
  transition:opacity .15s ease;
}
.network-camera-preview:hover .network-camera-overlay{
  opacity:1;
}
.network-camera-footer{
  display:flex;
  justify-content:space-between;
  gap:10px;
  max-width:720px;
  padding-top:6px;
  color:#819db8;
  font-size:8px;
}
@media(max-width:850px){
  .network-camera-preview,.network-camera-footer{
    max-width:none;
  }
}


/* ===== Versione 4.9.4: camera UI e avvio HLS ===== */
.camera-config-card{
  padding:14px!important;
  overflow:hidden!important;
}
.camera-config-head{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:16px!important;
  margin-bottom:12px!important;
}
.camera-config-head h2{
  margin:0 0 4px!important;
  font-size:17px!important;
  line-height:1.25!important;
}
.camera-config-head p{
  margin:0!important;
  color:#94aec8!important;
  font-size:10px!important;
}
.camera-open-button{
  flex:none!important;
}
.camera-enable-row{
  display:flex!important;
  align-items:center!important;
  gap:24px!important;
  min-height:40px!important;
  margin-bottom:12px!important;
  padding:8px 11px!important;
  border:1px solid #365675!important;
  border-radius:5px!important;
  background:#10243e!important;
}
.camera-checkbox{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:10px!important;
}
.camera-checkbox input{
  width:15px!important;
  height:15px!important;
  margin:0!important;
  flex:none!important;
}
.camera-config-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:11px 14px!important;
}
.camera-config-grid label{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
  font-size:10px!important;
}
.camera-config-grid input,
.camera-config-grid select{
  width:100%!important;
  min-width:0!important;
  height:37px!important;
  margin:0!important;
  padding:7px 10px!important;
  box-sizing:border-box!important;
  font-size:10px!important;
}
.camera-actions{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  margin-top:13px!important;
}
.camera-actions button{
  min-height:34px!important;
  margin:0!important;
  padding:7px 11px!important;
  font-size:9px!important;
}
.camera-discovery-result{
  min-height:34px!important;
  margin-top:10px!important;
  padding:9px 11px!important;
  line-height:1.45!important;
  overflow-wrap:anywhere!important;
}
@media(max-width:850px){
  .camera-config-grid{
    grid-template-columns:1fr!important;
  }
  .camera-config-head{
    flex-direction:column!important;
  }
  .camera-enable-row{
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:8px!important;
  }
}


/* ===== Versione 4.9.7: diagnostica telecamera ===== */
.camera-statusbar{
  gap:12px;
  flex-wrap:wrap;
}
.camera-statusbar span:first-child{
  min-width:0;
  max-width:75%;
  overflow-wrap:anywhere;
}


/* ===== Versione 4.9.8: telecamera Reolink multi-protocollo ===== */
.camera-overlay small{
  max-width:min(900px,90%);
  line-height:1.5;
  overflow-wrap:anywhere;
}
.camera-statusbar span:first-child{
  max-width:none!important;
}


/* ===== Versione 4.10.0: timeout e concorrenza telecamera ===== */
.camera-view-actions button:disabled{
  opacity:.55;
  cursor:wait;
}


/* ===== Versione 4.10.1: avvio telecamera asincrono ===== */
.camera-overlay small{
  max-width:90%;
  line-height:1.45;
  overflow-wrap:anywhere;
}


/* ===== Versione 4.10.2: ricodifica HLS Reolink ===== */
.camera-statusbar{
  min-height:24px;
}


/* ===== Versione 4.10.3: diagnostica risposta stato telecamera ===== */
.camera-overlay small{
  white-space:normal;
  max-width:92%;
}


/* ===== Versione 4.10.7: percorsi completi e registro professionale ===== */
.hierarchy-path,
.event-full-path{
  display:block;
  min-width:0;
  margin-top:3px;
  color:#68a9e2;
  font-size:8px;
  line-height:1.35;
  font-weight:400;
  white-space:normal;
  overflow-wrap:anywhere;
}

.current-alarm-row{
  grid-template-columns:30px minmax(260px,1.15fr) minmax(210px,.85fr) 130px!important;
  gap:10px!important;
  padding:10px 13px!important;
  align-items:center!important;
}
.current-alarm-resource,
.current-alarm-value{
  min-width:0;
}
.current-alarm-resource>b{
  font-size:12px;
  line-height:1.25;
}
.current-alarm-resource>small{
  margin-top:3px!important;
  color:#a6bad0!important;
  font-size:8px!important;
}
.current-alarm-value{
  text-align:left!important;
}
.current-alarm-value>b{
  font-size:11px;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
}
.current-alarm-value>small{
  display:-webkit-box!important;
  margin-top:3px!important;
  overflow:hidden;
  color:#91a9c1!important;
  font-size:8px!important;
  line-height:1.35;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.current-alarm-time{
  color:#9eb5cc;
  font-size:8px;
  text-align:right;
  white-space:nowrap;
}

.recent-change-row{
  grid-template-columns:27px minmax(0,1fr) 88px!important;
  gap:9px!important;
  padding:8px 12px!important;
  align-items:start!important;
}
.recent-change-content{
  min-width:0;
}
.recent-change-content>b{
  font-size:11px;
  line-height:1.25;
}
.recent-change-content>small{
  display:-webkit-box!important;
  margin-top:3px!important;
  overflow:hidden!important;
  color:#a0b4c9!important;
  font-size:8px!important;
  line-height:1.35!important;
  white-space:normal!important;
  text-overflow:unset!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.recent-change-row time{
  padding-top:2px;
  font-size:8px!important;
}

.events-register-v2{
  overflow:hidden!important;
}
.events-register-v2 .events-register-head,
.events-register-v2 .events-register-row{
  display:grid!important;
  grid-template-columns:145px minmax(280px,34%) minmax(320px,1fr) minmax(80px,120px)!important;
  min-width:0!important;
  align-items:center!important;
}
.events-register-v2 .events-register-head{
  padding:9px 13px!important;
  font-size:8px!important;
  letter-spacing:.04em!important;
}
.events-register-v2 .events-register-row{
  min-height:60px!important;
  padding:8px 13px!important;
  font-size:9px!important;
}
.event-resource-cell{
  min-width:0;
  padding-right:14px;
}
.event-resource-name{
  display:block;
  color:#f0f6ff!important;
  font-size:11px;
  line-height:1.25;
  font-weight:400!important;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.event-resource-cell>small{
  display:block;
  margin-top:3px;
  color:#a6bad0;
  font-size:8px;
}
.events-register-v2 .event-description{
  display:grid!important;
  grid-template-columns:23px minmax(0,1fr)!important;
  gap:8px!important;
  align-items:center!important;
  min-width:0!important;
}
.events-register-v2 .event-message-text{
  display:-webkit-box!important;
  min-width:0!important;
  overflow:hidden!important;
  font-size:9px!important;
  line-height:1.4!important;
  white-space:normal!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.events-register-v2 .event-value-text{
  min-width:0;
  overflow:hidden;
  color:#dce9fb;
  font-size:9px;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.events-register-v2 .event-date{
  color:#a9bfd6;
  font-size:8px;
  white-space:nowrap;
}

@media(max-width:1000px){
  .current-alarm-row{
    grid-template-columns:28px minmax(0,1fr)!important;
  }
  .current-alarm-value,
  .current-alarm-time{
    grid-column:2;
    text-align:left!important;
  }
  .events-register-v2{
    overflow-x:auto!important;
  }
  .events-register-v2 .events-register-head,
  .events-register-v2 .events-register-row{
    min-width:920px!important;
  }
}


/* ===== Versione 4.11.0: modulo telecamera live ricostruito ===== */
.camera-page{
  width:min(1500px,calc(100% - 32px));
  margin:20px auto 40px;
}
.camera-page-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}
.camera-page-header h1{
  margin:2px 0 4px;
  font-size:30px;
}
.camera-page-header p{
  margin:0;
  color:var(--text-soft);
}
.camera-live-card{
  overflow:hidden;
  padding:0;
}
.camera-live-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  background:#12223b;
  border-bottom:1px solid var(--line-strong);
}
.camera-quality-group{
  display:grid;
  grid-template-columns:auto minmax(180px,260px);
  align-items:center;
  gap:10px;
}
.camera-quality-group label{
  color:var(--text-soft);
  font-size:11px;
  text-transform:uppercase;
}
.camera-quality-group select{
  min-width:220px;
}
.camera-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.camera-actions .active{
  border-color:#22cf8b;
  color:#22cf8b;
}
.camera-player-shell{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:520px;
  background:#02070d;
}
.camera-player-shell video{
  display:block;
  width:100%;
  max-height:76vh;
  background:#000;
  object-fit:contain;
}
.camera-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:30px;
  color:#dcecff;
  text-align:center;
  background:rgba(2,7,13,.76);
}
.camera-overlay[hidden]{
  display:none;
}
.camera-overlay-icon{
  color:#43a5ff;
  font-size:34px;
}
.camera-overlay.loading .camera-overlay-icon{
  animation:cameraPulse 1s infinite alternate;
}
.camera-overlay strong{
  font-size:18px;
}
.camera-overlay small{
  max-width:680px;
  color:#9eb8d2;
  font-size:12px;
  line-height:1.5;
}
.camera-statusbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:40px;
  padding:8px 14px;
  color:#9eb8d2;
  font-size:10px;
  background:#0d182a;
  border-top:1px solid var(--line);
}
.camera-statusbar span:first-child{
  color:#dcecff;
}
@keyframes cameraPulse{
  from{opacity:.45;transform:scale(.9)}
  to{opacity:1;transform:scale(1.08)}
}
@media(max-width:900px){
  .camera-page{
    width:calc(100% - 16px);
  }
  .camera-page-header,
  .camera-live-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  .camera-quality-group{
    grid-template-columns:1fr;
  }
  .camera-quality-group select{
    width:100%;
  }
  .camera-player-shell{
    min-height:320px;
  }
}


/* ===== Versione 4.11.1: comandi telecamera uniformati ===== */
.camera-page-header .camera-action-button,
.camera-actions .camera-action-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 15px;
  border-radius:7px;
  font-family:inherit;
  font-size:11px!important;
  line-height:1;
  font-weight:400!important;
  letter-spacing:.035em;
  text-transform:uppercase;
  white-space:nowrap;
  text-decoration:none;
}

.camera-page-header .camera-action-button{
  min-width:172px;
}

.camera-actions{
  gap:9px;
}

.camera-actions .camera-action-button{
  min-width:82px;
}

.camera-actions .camera-action-button:last-child{
  min-width:150px;
}

.camera-actions .camera-action-button:nth-child(4){
  min-width:138px;
}

.camera-actions .camera-action-button:hover,
.camera-page-header .camera-action-button:hover{
  transform:translateY(-1px);
}

.camera-actions .camera-action-button:active,
.camera-page-header .camera-action-button:active{
  transform:none;
}

.camera-live-toolbar{
  align-items:center;
  min-height:66px;
}

.camera-quality-group label{
  font-size:10px;
  font-weight:400;
  letter-spacing:.045em;
}

.camera-quality-group select{
  min-height:38px;
  font-size:11px;
  font-weight:400;
  text-transform:uppercase;
}

.camera-page-header{
  align-items:center;
  padding:0 14px 10px;
  border-bottom:1px solid var(--line);
}

.camera-page-header h1{
  font-size:29px;
  font-weight:400;
  letter-spacing:.015em;
}

.camera-page-header .eyebrow{
  font-size:9px;
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media(max-width:900px){
  .camera-page-header .camera-action-button,
  .camera-actions .camera-action-button{
    width:100%;
    min-width:0;
  }

  .camera-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .camera-actions .camera-action-button:last-child{
    grid-column:1 / -1;
  }
}


/* ===== Versione 4.11.2: albero rete ridimensionabile ===== */
:root{
  --network-tree-width:340px;
}

.network-layout,
.network-workspace,
.network-main-grid{
  grid-template-columns:var(--network-tree-width) minmax(0,1fr)!important;
}

.tree-panel,
.network-tree,
.network-tree-panel{
  position:relative;
  width:var(--network-tree-width)!important;
  min-width:var(--network-tree-width)!important;
  max-width:var(--network-tree-width)!important;
}

.network-tree-resize-handle{
  position:absolute;
  top:0;
  right:-5px;
  z-index:25;
  width:10px;
  height:100%;
  cursor:col-resize;
  touch-action:none;
}

.network-tree-resize-handle::after{
  content:"";
  position:absolute;
  top:52px;
  right:4px;
  width:1px;
  height:calc(100% - 64px);
  background:transparent;
  transition:background .15s ease;
}

.network-tree-resize-handle:hover::after,
body.network-tree-resizing .network-tree-resize-handle::after{
  background:#409cff;
}

body.network-tree-resizing{
  cursor:col-resize!important;
  user-select:none!important;
}

body.network-tree-resizing *{
  cursor:col-resize!important;
}

.tree-row,
.tree-node-row,
.network-tree-row{
  min-width:0;
}

.tree-node-label,
.tree-label,
.network-tree-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.tree-node-label:hover,
.tree-label:hover,
.network-tree-label:hover{
  overflow:visible;
  position:relative;
  z-index:8;
}

@media(max-width:900px){
  :root{
    --network-tree-width:100%;
  }

  .network-layout,
  .network-workspace,
  .network-main-grid{
    grid-template-columns:1fr!important;
  }

  .tree-panel,
  .network-tree,
  .network-tree-panel{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }

  .network-tree-resize-handle{
    display:none;
  }
}


/* ===== Versione 4.11.3: trascinamento albero corretto ===== */
.network-tree-resize-handle{
  right:-7px!important;
  z-index:999!important;
  width:14px!important;
  pointer-events:auto!important;
  background:transparent;
}

.network-tree-resize-handle::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:5px;
  width:4px;
  background:transparent;
  border-radius:4px;
  transition:background .15s ease;
}

.network-tree-resize-handle:hover::before,
.network-tree-resize-handle.is-dragging::before{
  background:rgba(64,156,255,.55);
}

.network-tree-resize-handle::after{
  display:none!important;
}

body.network-tree-resizing{
  cursor:col-resize!important;
  user-select:none!important;
}

body.network-tree-resizing iframe,
body.network-tree-resizing video,
body.network-tree-resizing canvas{
  pointer-events:none!important;
}


/* ===== Versione 4.12.0: scanner IP manuale ===== */
.scanner-page{width:min(1600px,calc(100% - 32px));margin:20px auto 42px}
.scanner-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.scanner-header h1{margin:2px 0 4px;font-size:28px;font-weight:400}
.scanner-header p{margin:0;color:var(--text-soft)}
.danger-outline{border-color:#85333e!important;color:#ff8994!important}
.scanner-launch-card{padding:14px}
.scanner-launch-form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) auto;gap:12px;align-items:end}
.scanner-launch-form label{display:grid;gap:6px;color:#9db5ce;font-size:10px}
.scanner-launch-form button{min-height:39px;white-space:nowrap}
.scanner-legend{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);color:#9db5ce;font-size:9px}
.scanner-legend span{display:inline-flex;align-items:center;gap:7px}
.scanner-dot{width:9px;height:9px;border-radius:50%}
.scanner-dot.monitored{background:#27ce8a}
.scanner-dot.discovered{background:#ff973f}
.scanner-subnet-groups{display:grid;gap:14px;margin-top:14px}
.scanner-subnet-card{overflow:hidden;padding:0}
.scanner-subnet-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;background:#182c49;border-bottom:1px solid var(--line-strong)}
.scanner-subnet-header h2{margin:2px 0 0;font-size:18px;font-weight:400}
.scanner-scan{border-bottom:1px solid var(--line)}
.scanner-scan:last-child{border-bottom:0}
.scanner-scan>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;cursor:pointer;list-style:none;background:#102039}
.scanner-scan>summary::-webkit-details-marker{display:none}
.scanner-scan-title{display:grid;gap:3px}
.scanner-scan-title b{font-size:12px;font-weight:400}
.scanner-scan-title small{color:#88a4bf;font-size:8px}
.scanner-scan-status{display:flex;align-items:center;gap:8px}
.status-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid #385473;border-radius:999px;font-size:8px}
.status-pill.running{border-color:#3476b5;color:#79baff}
.status-pill.completed{border-color:#207a5c;color:#40d99b}
.status-pill.failed{border-color:#93414a;color:#ff8a94}
.scanner-running{display:flex;align-items:center;justify-content:center;gap:12px;min-height:110px;color:#b5c9dc}
.scanner-running div{display:grid;gap:4px}
.scanner-running small{color:#829eb9}
.scanner-spinner{width:22px;height:22px;border:3px solid #244565;border-top-color:#3ba5ff;border-radius:50%;animation:scannerSpin .8s linear infinite}
.scanner-error{padding:14px;color:#ff9ca4;background:#281720}
.scanner-table{overflow-x:auto}
.scanner-table-head,.scanner-table-row{display:grid;grid-template-columns:92px 120px minmax(250px,1fr) 150px 90px 110px 92px;align-items:center;min-width:1040px}
.scanner-table-head{padding:8px 12px;color:#8eabc6;font-size:8px;text-transform:uppercase;background:#0e1b2f;border-bottom:1px solid var(--line)}
.scanner-table-row{min-height:52px;padding:7px 12px;font-size:9px;border-bottom:1px solid rgba(54,82,111,.55)}
.scanner-table-row.monitored{background:linear-gradient(90deg,rgba(29,130,91,.17),transparent 44%)}
.scanner-table-row.discovered{background:linear-gradient(90deg,rgba(196,104,37,.16),transparent 44%)}
.scanner-table-row>strong{font-size:11px;font-weight:400}
.scanner-state-badge{display:inline-flex;align-items:center;justify-content:center;min-width:68px;min-height:24px;border-radius:5px;font-size:8px}
.scanner-state-badge.monitored{color:#071e16;background:#2ed294}
.scanner-state-badge.discovered{color:#2b1305;background:#ff9b48}
.scanner-host-cell{display:grid;min-width:0;gap:3px}
.scanner-host-cell b{overflow:hidden;font-size:10px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.scanner-host-cell a{color:#63b6ff;font-size:8px}
.scanner-host-cell small{color:#8da8c1;font-size:8px}
.scanner-services{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.scanner-services span{padding:3px 6px;border:1px solid #375675;border-radius:4px;color:#9bc7ed;font-size:7px}
.scanner-actions{display:flex;justify-content:flex-end;gap:6px}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid #365474;border-radius:5px;color:#dcecff;background:#1b3555;text-decoration:none}
.icon-button.add{border-color:#237b5e;color:#39dc9b;background:#123c31}
.icon-button.danger{border-color:#7b323b;color:#ff8e98;background:#35181e}
.scanner-empty{display:grid;justify-items:center;gap:7px;min-height:180px;margin-top:14px}
@keyframes scannerSpin{to{transform:rotate(360deg)}}
@media(max-width:900px){.scanner-page{width:calc(100% - 16px)}.scanner-header{align-items:stretch;flex-direction:column}.scanner-launch-form{grid-template-columns:1fr}}


/* ===== Versione 4.13.0: ping rapido e scan avanzato per singolo IP ===== */
.scanner-table-head,
.scanner-table-row{
  grid-template-columns:92px 120px minmax(220px,1fr) 140px 82px minmax(260px,1.15fr) 230px!important;
  min-width:1220px!important;
}

.scanner-identification{
  display:grid;
  min-width:0;
  gap:3px;
  padding-right:10px;
}

.scanner-identification>b{
  overflow:hidden;
  color:#dfeeff;
  font-size:9px;
  font-weight:400;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.scanner-identification>small{
  overflow:hidden;
  color:#8faac4;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.scanner-port-list{
  display:flex;
  flex-wrap:wrap;
  gap:3px;
}

.scanner-port-list i{
  padding:2px 5px;
  border:1px solid #3b5b7b;
  border-radius:4px;
  color:#9bcaf1;
  font-size:7px;
  font-style:normal;
}

.scanner-actions{
  align-items:center;
}

.scanner-actions form{
  margin:0;
}

.advanced-scan-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 9px;
  border:1px solid #a7612e;
  border-radius:5px;
  color:#ffc18c;
  background:#432719;
  font-size:8px;
  font-weight:400;
  white-space:nowrap;
}

.advanced-scan-button:hover{
  border-color:#e4833d;
  background:#5a311a;
}

.advanced-scan-button:disabled{
  cursor:wait;
  opacity:.55;
}

.advanced-running{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#70b8f7;
  font-size:8px;
}

.scanner-spinner.mini{
  width:13px;
  height:13px;
  border-width:2px;
}

.advanced-error{
  color:#ff8f99!important;
}


/* ===== Versione 4.13.1: testi piccoli resi più leggibili ===== */

/* Dashboard */
.hierarchy-path,
.event-full-path{
  font-size:10px!important;
  line-height:1.45!important;
}

.current-alarm-resource>b{
  font-size:13px!important;
}

.current-alarm-resource>small,
.current-alarm-value>small{
  font-size:10px!important;
  line-height:1.45!important;
}

.current-alarm-value>b{
  font-size:12px!important;
}

.current-alarm-time{
  font-size:10px!important;
}

.recent-change-content>b{
  font-size:12px!important;
}

.recent-change-content>small{
  font-size:10px!important;
  line-height:1.45!important;
}

.recent-change-row time{
  font-size:10px!important;
}

/* Registro eventi */
.events-register-v2 .events-register-head{
  font-size:10px!important;
}

.events-register-v2 .event-date{
  font-size:10px!important;
}

.event-resource-name{
  font-size:12px!important;
}

.event-resource-cell>small{
  font-size:10px!important;
}

.events-register-v2 .event-message-text{
  font-size:10px!important;
  line-height:1.5!important;
}

.events-register-v2 .event-value-text{
  font-size:10px!important;
}

/* Scanner IP */
.scanner-launch-form label{
  font-size:11px!important;
}

.scanner-legend{
  font-size:10px!important;
}

.scanner-scan-title b{
  font-size:13px!important;
}

.scanner-scan-title small{
  font-size:10px!important;
}

.status-pill{
  font-size:9px!important;
}

.scanner-table-head{
  font-size:9px!important;
}

.scanner-table-row{
  font-size:10px!important;
}

.scanner-table-row>strong{
  font-size:12px!important;
}

.scanner-state-badge{
  font-size:9px!important;
}

.scanner-host-cell b{
  font-size:11px!important;
}

.scanner-host-cell a,
.scanner-host-cell small{
  font-size:10px!important;
}

.scanner-services span,
.scanner-port-list i{
  font-size:9px!important;
}

.scanner-identification>b{
  font-size:11px!important;
}

.scanner-identification>small,
.advanced-running,
.advanced-error{
  font-size:10px!important;
}

.advanced-scan-button{
  font-size:9px!important;
  min-height:30px!important;
  padding:0 10px!important;
}

/* Testi secondari generali nelle card operative */
.detail-type,
.count-badge,
.eyebrow{
  font-size:10px!important;
}


/* ===== Versione 4.14.0: albero stile AUGE ===== */
.compact-monitor-tree-panel{
  --auge-green:#119c22;
  --auge-red:#df2639;
  --auge-yellow:#ddb121;
  --auge-orange:#f18427;
  --auge-gray:#7f8b99;
}

.compact-monitor-tree-panel .tree-root{
  padding:5px 4px 9px!important;
}

.compact-monitor-tree-panel .tree-node{
  position:relative;
}

.compact-monitor-tree-panel .auge-tree-row{
  position:relative;
  display:flex;
  align-items:center;
  min-height:34px!important;
  margin:0!important;
  padding:0 6px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#ecf4ff!important;
  font-weight:400!important;
}

.compact-monitor-tree-panel .auge-tree-row:hover{
  background:#172b47!important;
}

.compact-monitor-tree-panel .auge-tree-row.selected{
  background:#2d6ca9!important;
  box-shadow:inset 4px 0 0 #67b8ff!important;
}

.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  display:inline-flex;
  flex:0 0 18px;
  width:18px;
  height:30px;
  margin:0 2px 0 0!important;
  padding:0!important;
  align-items:center;
  justify-content:center;
  border:0!important;
  color:#d4e3f4!important;
  background:transparent!important;
  font-size:10px!important;
  line-height:1!important;
}

.compact-monitor-tree-panel .tree-toggle:hover{
  color:#fff!important;
  background:rgba(255,255,255,.06)!important;
}

.compact-monitor-tree-panel .tree-select-link{
  display:flex!important;
  flex:1 1 auto;
  min-width:0;
  height:34px;
  align-items:center;
  color:inherit!important;
  text-decoration:none!important;
}

.compact-monitor-tree-panel .auge-tree-icon{
  position:relative;
  display:inline-flex;
  flex:0 0 23px;
  width:23px;
  height:19px;
  margin-right:7px;
  align-items:flex-end;
  justify-content:center;
}

.compact-monitor-tree-panel .auge-folder-shape{
  position:relative;
  display:block;
  width:20px;
  height:14px;
  border-radius:2px;
  background:var(--auge-gray);
  box-shadow:
    inset 0 -1px 0 rgba(0,0,0,.25),
    0 0 0 1px rgba(0,0,0,.18);
}

.compact-monitor-tree-panel .auge-folder-shape::before{
  content:"";
  position:absolute;
  top:-4px;
  left:1px;
  width:9px;
  height:5px;
  border-radius:2px 2px 0 0;
  background:inherit;
}

.compact-monitor-tree-panel .auge-folder-shape::after{
  content:"";
  position:absolute;
  right:-2px;
  bottom:-2px;
  width:7px;
  height:7px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(0,0,0,.25);
}

.compact-monitor-tree-panel .status-ok .auge-folder-shape{
  background:var(--auge-green);
}

.compact-monitor-tree-panel .status-alarm .auge-folder-shape{
  background:var(--auge-red);
}

.compact-monitor-tree-panel .status-unreachable .auge-folder-shape{
  background:var(--auge-yellow);
}

.compact-monitor-tree-panel .status-fault .auge-folder-shape,
.compact-monitor-tree-panel .status-warning .auge-folder-shape{
  background:var(--auge-orange);
}

.compact-monitor-tree-panel .status-unknown .auge-folder-shape,
.compact-monitor-tree-panel .status-disabled .auge-folder-shape{
  background:var(--auge-gray);
}

/* Apparati: stessa famiglia grafica, forma più rettangolare */
.compact-monitor-tree-panel .kind-device .auge-folder-shape{
  width:19px;
  height:12px;
  border-radius:2px;
}

.compact-monitor-tree-panel .kind-device .auge-folder-shape::before{
  display:none;
}

/* Postazioni leggermente più evidenti */
.compact-monitor-tree-panel .kind-site > .auge-tree-row{
  background:rgba(31,55,84,.38)!important;
}

.compact-monitor-tree-panel .kind-site > .auge-tree-row:hover{
  background:#1a3150!important;
}

.compact-monitor-tree-panel .kind-site > .auge-tree-row.selected{
  background:#2d6ca9!important;
}

.compact-monitor-tree-panel .tree-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  color:inherit!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.2!important;
  letter-spacing:.01em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.compact-monitor-tree-panel .tree-children{
  margin:0!important;
  padding-left:18px!important;
  border-left:0!important;
}

.compact-monitor-tree-panel .tree-children > .tree-node::before{
  content:"";
  position:absolute;
  left:-9px;
  top:17px;
  width:9px;
  height:1px;
  background:#49657e;
}

.compact-monitor-tree-panel .tree-children > .tree-node::after{
  content:"";
  position:absolute;
  left:-9px;
  top:-17px;
  width:1px;
  height:34px;
  background:#49657e;
}

.compact-monitor-tree-panel .tree-children > .tree-node:last-child::after{
  height:34px;
}

.compact-monitor-tree-panel .tree-event-indicators{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:3px;
  margin-left:4px;
}

.compact-monitor-tree-panel .tree-event-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 4px;
  border-radius:9px;
  font-size:9px!important;
  font-weight:400!important;
}

.compact-monitor-tree-panel .tree-search{
  padding:8px!important;
}

.compact-monitor-tree-panel .tree-search input{
  min-height:38px!important;
  font-size:10px!important;
}

@media(max-width:900px){
  .compact-monitor-tree-panel .auge-tree-row,
  .compact-monitor-tree-panel .tree-select-link{
    min-height:36px!important;
    height:36px;
  }

  .compact-monitor-tree-panel .tree-name{
    font-size:12px!important;
  }
}


/* ===== Versione 4.14.1: albero AUGE pulito senza linee ===== */

/* Elimina completamente linee verticali e raccordi */
.compact-monitor-tree-panel .tree-children > .tree-node::before,
.compact-monitor-tree-panel .tree-children > .tree-node::after{
  display:none!important;
  content:none!important;
}

.compact-monitor-tree-panel .tree-children{
  margin:0!important;
  padding-left:17px!important;
  border:0!important;
}

/* Riga più pulita e uniforme */
.compact-monitor-tree-panel .auge-tree-row{
  min-height:33px!important;
  margin:1px 0!important;
  padding:0 7px 0 4px!important;
  border:1px solid transparent!important;
  border-radius:4px!important;
  background:transparent!important;
  box-shadow:none!important;
  transition:
    background .12s ease,
    border-color .12s ease,
    box-shadow .12s ease;
}

/* Postazioni appena distinguibili, senza blocchi pesanti */
.compact-monitor-tree-panel .kind-site > .auge-tree-row{
  background:rgba(33,55,82,.22)!important;
}

.compact-monitor-tree-panel .kind-site > .auge-tree-row:hover{
  background:rgba(42,73,108,.55)!important;
}

/* Hover discreto */
.compact-monitor-tree-panel .auge-tree-row:hover{
  border-color:rgba(79,126,171,.32)!important;
  background:rgba(31,58,91,.72)!important;
}

/* Nuova selezione: morbida, con barra laterale e contorno leggero */
.compact-monitor-tree-panel .auge-tree-row.selected{
  border-color:rgba(74,157,229,.56)!important;
  background:
    linear-gradient(
      90deg,
      rgba(36,111,174,.52) 0%,
      rgba(31,72,112,.40) 70%,
      rgba(23,45,72,.22) 100%
    )!important;
  box-shadow:
    inset 3px 0 0 #55b3ff,
    0 0 0 1px rgba(44,122,185,.10)!important;
}

/* Evita la vecchia selezione piena su postazioni */
.compact-monitor-tree-panel .kind-site > .auge-tree-row.selected{
  background:
    linear-gradient(
      90deg,
      rgba(36,111,174,.52) 0%,
      rgba(31,72,112,.40) 70%,
      rgba(23,45,72,.22) 100%
    )!important;
}

/* Migliore allineamento icona/testo */
.compact-monitor-tree-panel .tree-select-link{
  height:32px!important;
  min-height:32px!important;
}

.compact-monitor-tree-panel .auge-tree-icon{
  flex-basis:22px!important;
  width:22px!important;
  margin-right:6px!important;
}

.compact-monitor-tree-panel .tree-name{
  font-size:11px!important;
  letter-spacing:.015em!important;
}

/* Freccia più discreta */
.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  flex-basis:16px!important;
  width:16px!important;
  margin-right:1px!important;
  color:#9fb8cf!important;
}

.compact-monitor-tree-panel .tree-toggle:hover{
  color:#ffffff!important;
  background:transparent!important;
}

/* Eventi meno invasivi */
.compact-monitor-tree-panel .tree-event-indicators{
  margin-left:3px!important;
}

.compact-monitor-tree-panel .tree-event-badge{
  min-width:17px!important;
  height:17px!important;
  padding:0 3px!important;
}

/* Più aria tra rami principali */
.compact-monitor-tree-panel .tree-root > .tree-node{
  margin-bottom:2px;
}


/* ===== Versione 4.14.2: albero ultra-semplice stile AUGE ===== */
.compact-monitor-tree-panel{
  --auge-green:#17aa2f;
  --auge-red:#df3a44;
  --auge-yellow:#d8b22b;
  --auge-orange:#f08a2a;
  --auge-gray:#8897a8;
}

/* struttura generale più pulita */
.compact-monitor-tree-panel .tree-root{
  padding:6px 6px 10px!important;
}
.compact-monitor-tree-panel .tree-node{
  position:relative;
  margin:0!important;
}
.compact-monitor-tree-panel .tree-children,
.compact-monitor-tree-panel .tree-children > .tree-node::before,
.compact-monitor-tree-panel .tree-children > .tree-node::after,
.compact-monitor-tree-panel .tree-children > .tree-node:last-child::after{
  border:0!important;
  background:none!important;
  content:none!important;
}
.compact-monitor-tree-panel .tree-children{
  margin:0!important;
  padding-left:18px!important;
}

/* righe completamente flat */
.compact-monitor-tree-panel .auge-tree-row,
.compact-monitor-tree-panel .kind-site > .auge-tree-row,
.compact-monitor-tree-panel .kind-device > .auge-tree-row{
  display:flex;
  align-items:center;
  min-height:28px!important;
  margin:1px 0!important;
  padding:0 4px!important;
  border:0!important;
  border-radius:3px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.compact-monitor-tree-panel .auge-tree-row:hover{
  background:rgba(255,255,255,.05)!important;
}
.compact-monitor-tree-panel .auge-tree-row.selected,
.compact-monitor-tree-panel .kind-site > .auge-tree-row.selected,
.compact-monitor-tree-panel .kind-device > .auge-tree-row.selected{
  background:#4d86ce!important;
  box-shadow:none!important;
}

/* toggle piccolo e semplice */
.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  display:inline-flex;
  flex:0 0 14px!important;
  width:14px!important;
  height:24px!important;
  margin:0 4px 0 0!important;
  padding:0!important;
  align-items:center;
  justify-content:center;
  color:#c9d8ea!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font-size:9px!important;
  line-height:1!important;
}
.compact-monitor-tree-panel .tree-toggle:hover{
  color:#ffffff!important;
  background:transparent!important;
}

/* link compatto */
.compact-monitor-tree-panel .tree-select-link{
  display:flex!important;
  align-items:center;
  flex:1 1 auto;
  min-width:0;
  height:28px!important;
  min-height:28px!important;
  padding:0 4px 0 0!important;
  color:inherit!important;
  text-decoration:none!important;
  gap:6px!important;
}

/* icona folder semplice stile AUGE */
.compact-monitor-tree-panel .auge-tree-icon{
  position:relative;
  display:inline-flex;
  flex:0 0 18px!important;
  width:18px!important;
  height:16px!important;
  margin-right:6px!important;
  align-items:flex-end;
  justify-content:center;
}
.compact-monitor-tree-panel .auge-folder-shape,
.compact-monitor-tree-panel .kind-device .auge-folder-shape{
  position:relative;
  display:block;
  width:16px!important;
  height:11px!important;
  border-radius:2px!important;
  background:var(--auge-gray)!important;
  box-shadow:none!important;
}
.compact-monitor-tree-panel .auge-folder-shape::before,
.compact-monitor-tree-panel .kind-device .auge-folder-shape::before{
  content:"";
  position:absolute;
  top:-3px;
  left:1px;
  width:7px;
  height:4px;
  border-radius:2px 2px 0 0;
  background:inherit;
}
/* niente pallino bianco, troppo confusionario */
.compact-monitor-tree-panel .auge-folder-shape::after,
.compact-monitor-tree-panel .kind-device .auge-folder-shape::after{
  display:none!important;
  content:none!important;
}
.compact-monitor-tree-panel .status-ok .auge-folder-shape{ background:var(--auge-green)!important; }
.compact-monitor-tree-panel .status-alarm .auge-folder-shape{ background:var(--auge-red)!important; }
.compact-monitor-tree-panel .status-unreachable .auge-folder-shape{ background:var(--auge-yellow)!important; }
.compact-monitor-tree-panel .status-fault .auge-folder-shape,
.compact-monitor-tree-panel .status-warning .auge-folder-shape{ background:var(--auge-orange)!important; }
.compact-monitor-tree-panel .status-unknown .auge-folder-shape,
.compact-monitor-tree-panel .status-disabled .auge-folder-shape{ background:var(--auge-gray)!important; }

/* testo più leggibile e semplice */
.compact-monitor-tree-panel .tree-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  color:#f2f7ff!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-overflow:ellipsis;
  text-transform:none!important;
  white-space:nowrap;
}
.compact-monitor-tree-panel .auge-tree-row.selected .tree-name{
  color:#ffffff!important;
}

/* contatori eventi meno invadenti */
.compact-monitor-tree-panel .tree-event-indicators{
  gap:4px!important;
  margin-left:4px!important;
}
.compact-monitor-tree-panel .tree-event-badge{
  min-width:16px!important;
  height:16px!important;
  padding:0 4px!important;
  border-radius:8px!important;
  font-size:9px!important;
}

/* nessuna card/box speciale sui rami */
.compact-monitor-tree-panel .tree-root > .tree-node,
.compact-monitor-tree-panel .tree-root > .tree-node > .tree-children > .tree-node{
  margin-bottom:0!important;
}


/* ===== Versione 4.14.3: reset albero essenziale stile AUGE ===== */

/* Reset completo di vecchie linee, raccordi, sfondi e ombre */
.compact-monitor-tree-panel .tree-node,
.compact-monitor-tree-panel .tree-root,
.compact-monitor-tree-panel .tree-children{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.compact-monitor-tree-panel .tree-node::before,
.compact-monitor-tree-panel .tree-node::after,
.compact-monitor-tree-panel .tree-children::before,
.compact-monitor-tree-panel .tree-children::after,
.compact-monitor-tree-panel .tree-row::before,
.compact-monitor-tree-panel .tree-row::after{
  display:none!important;
  content:none!important;
  border:0!important;
  background:none!important;
}

/* Rientro gerarchico minimale e costante */
.compact-monitor-tree-panel .tree-root{
  padding:5px 5px 10px!important;
}

.compact-monitor-tree-panel .tree-children{
  margin:0!important;
  padding-left:14px!important;
}

/* Riga piatta, senza card */
.compact-monitor-tree-panel .tree-row,
.compact-monitor-tree-panel .auge-tree-row,
.compact-monitor-tree-panel .kind-site > .auge-tree-row,
.compact-monitor-tree-panel .kind-device > .auge-tree-row{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-height:25px!important;
  height:25px!important;
  margin:0!important;
  padding:0 3px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
}

.compact-monitor-tree-panel .tree-row:hover,
.compact-monitor-tree-panel .auge-tree-row:hover,
.compact-monitor-tree-panel .kind-site > .auge-tree-row:hover,
.compact-monitor-tree-panel .kind-device > .auge-tree-row:hover{
  background:rgba(255,255,255,.045)!important;
}

/* Selezione identica per ogni livello: azzurro piatto */
.compact-monitor-tree-panel .tree-row.selected,
.compact-monitor-tree-panel .auge-tree-row.selected,
.compact-monitor-tree-panel .kind-site > .auge-tree-row.selected,
.compact-monitor-tree-panel .kind-device > .auge-tree-row.selected{
  border:0!important;
  border-radius:0!important;
  background:#4c89c8!important;
  box-shadow:none!important;
}

/* Triangolino piccolo, senza pulsante */
.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  display:inline-flex!important;
  flex:0 0 12px!important;
  width:12px!important;
  min-width:12px!important;
  height:25px!important;
  margin:0 3px 0 0!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  color:#d4dfec!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:8px!important;
  line-height:1!important;
}

.compact-monitor-tree-panel .tree-toggle:hover{
  color:#ffffff!important;
  background:transparent!important;
}

/* Link senza padding o box */
.compact-monitor-tree-panel .tree-select-link{
  display:flex!important;
  flex:1 1 auto!important;
  min-width:0!important;
  height:25px!important;
  min-height:25px!important;
  margin:0!important;
  padding:0!important;
  align-items:center!important;
  gap:5px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  text-decoration:none!important;
}

/* Icona cartella semplice, senza indicatori sovrapposti */
.compact-monitor-tree-panel .auge-tree-icon{
  position:relative!important;
  display:inline-flex!important;
  flex:0 0 17px!important;
  width:17px!important;
  height:14px!important;
  margin:0 5px 0 0!important;
  padding:0!important;
  align-items:flex-end!important;
  justify-content:center!important;
}

.compact-monitor-tree-panel .auge-folder-shape,
.compact-monitor-tree-panel .kind-device .auge-folder-shape{
  position:relative!important;
  display:block!important;
  width:16px!important;
  height:10px!important;
  margin:0!important;
  border:0!important;
  border-radius:2px!important;
  background:#8693a2!important;
  box-shadow:none!important;
}

.compact-monitor-tree-panel .auge-folder-shape::before,
.compact-monitor-tree-panel .kind-device .auge-folder-shape::before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  top:-3px!important;
  left:1px!important;
  width:7px!important;
  height:4px!important;
  border:0!important;
  border-radius:2px 2px 0 0!important;
  background:inherit!important;
}

.compact-monitor-tree-panel .auge-folder-shape::after,
.compact-monitor-tree-panel .kind-device .auge-folder-shape::after{
  display:none!important;
  content:none!important;
}

/* Colore stato direttamente sulla cartella */
.compact-monitor-tree-panel .status-ok .auge-folder-shape{
  background:#13a92a!important;
}
.compact-monitor-tree-panel .status-alarm .auge-folder-shape{
  background:#df303d!important;
}
.compact-monitor-tree-panel .status-unreachable .auge-folder-shape{
  background:#d9b224!important;
}
.compact-monitor-tree-panel .status-fault .auge-folder-shape,
.compact-monitor-tree-panel .status-warning .auge-folder-shape{
  background:#f18727!important;
}
.compact-monitor-tree-panel .status-unknown .auge-folder-shape,
.compact-monitor-tree-panel .status-disabled .auge-folder-shape{
  background:#82909f!important;
}

/* Nome semplice, leggibile, senza stile artificiale */
.compact-monitor-tree-panel .tree-name{
  display:block!important;
  flex:1 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
  color:#f5f7fb!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:25px!important;
  letter-spacing:0!important;
  text-align:left!important;
  text-overflow:ellipsis!important;
  text-transform:none!important;
  white-space:nowrap!important;
}

.compact-monitor-tree-panel .tree-row.selected .tree-name,
.compact-monitor-tree-panel .auge-tree-row.selected .tree-name{
  color:#ffffff!important;
}

/* Indicatori eventi piccoli e separati */
.compact-monitor-tree-panel .tree-event-indicators{
  display:flex!important;
  flex:0 0 auto!important;
  margin-left:4px!important;
  gap:3px!important;
}

.compact-monitor-tree-panel .tree-event-badge{
  min-width:15px!important;
  height:15px!important;
  padding:0 3px!important;
  border-radius:8px!important;
  font-size:8px!important;
}

/* Nessuna spaziatura extra tra i rami */
.compact-monitor-tree-panel .tree-root > .tree-node,
.compact-monitor-tree-panel .tree-node{
  margin-top:0!important;
  margin-bottom:0!important;
}


/* ===== Versione 4.14.4: frecce albero più grandi ===== */
.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  flex:0 0 16px!important;
  width:16px!important;
  min-width:16px!important;
  height:25px!important;
  margin:0 4px 0 0!important;
  font-size:11px!important;
  line-height:1!important;
}

.compact-monitor-tree-panel .tree-toggle{
  transform:translateY(-1px);
}

.compact-monitor-tree-panel .tree-toggle:hover{
  color:#ffffff!important;
}


/* ===== Versione 4.14.6: scroll albero e posizione persistente ===== */
.compact-monitor-tree-panel{
  display:flex!important;
  flex-direction:column!important;
  height:calc(100vh - 125px)!important;
  min-height:390px!important;
  max-height:calc(100vh - 125px)!important;
  overflow:hidden!important;
}

.compact-monitor-tree-panel .tree-title,
.compact-monitor-tree-panel .tree-search{
  flex:0 0 auto!important;
}

.compact-monitor-tree-panel .tree-root{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:#52799f #0d1a2d;
}

.compact-monitor-tree-panel .tree-root::-webkit-scrollbar{
  width:9px;
}

.compact-monitor-tree-panel .tree-root::-webkit-scrollbar-track{
  background:#0d1a2d;
}

.compact-monitor-tree-panel .tree-root::-webkit-scrollbar-thumb{
  border:2px solid #0d1a2d;
  border-radius:8px;
  background:#52799f;
}

.compact-monitor-tree-panel .tree-root::-webkit-scrollbar-thumb:hover{
  background:#6993bb;
}

.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle-placeholder{
  flex:0 0 19px!important;
  width:19px!important;
  min-width:19px!important;
  height:25px!important;
  margin-right:4px!important;
}

.compact-monitor-tree-panel .tree-toggle{
  font-size:15px!important;
  transform:translateY(-1px)!important;
}

@media(max-height:700px){
  .compact-monitor-tree-panel{
    height:calc(100vh - 92px)!important;
    min-height:290px!important;
    max-height:calc(100vh - 92px)!important;
  }
}

@media(max-width:900px){
  .compact-monitor-tree-panel{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }

  .compact-monitor-tree-panel .tree-root{
    max-height:60vh!important;
  }
}


/* ===== Versione 4.14.7: frecce albero colorblind-safe ===== */
:root{
  --tree-arrow-collapsed:#78c8ff; /* azzurro chiaro */
  --tree-arrow-expanded:#ffd166;  /* giallo/oro ad alto contrasto */
  --tree-arrow-hover:#ffffff;
  --tree-arrow-collapsed-bg:rgba(120,200,255,.10);
  --tree-arrow-expanded-bg:rgba(255,209,102,.14);
}

.compact-monitor-tree-panel .tree-toggle{
  color:var(--tree-arrow-collapsed)!important;
  background:var(--tree-arrow-collapsed-bg)!important;
  border:1px solid rgba(120,200,255,.22)!important;
  border-radius:6px!important;
  box-shadow:none!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="false"]{
  color:var(--tree-arrow-collapsed)!important;
  background:var(--tree-arrow-collapsed-bg)!important;
  border-color:rgba(120,200,255,.24)!important;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="true"]{
  color:var(--tree-arrow-expanded)!important;
  background:var(--tree-arrow-expanded-bg)!important;
  border-color:rgba(255,209,102,.34)!important;
}

.compact-monitor-tree-panel .tree-toggle:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle{
  color:var(--tree-arrow-hover)!important;
  border-color:rgba(255,255,255,.40)!important;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="false"]:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle[aria-expanded="false"]{
  background:rgba(120,200,255,.20)!important;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="true"]:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle[aria-expanded="true"]{
  background:rgba(255,209,102,.24)!important;
}

.compact-monitor-tree-panel .tree-toggle-placeholder{
  opacity:.34;
}


/* ===== Versione 4.14.8: albero sempre contenuto nel viewport ===== */
.compact-monitor-tree-panel{
  align-self:start!important;
}

.compact-monitor-tree-panel .tree-root{
  min-height:180px!important;
}


/* ===== Versione 4.14.10: frecce colorate senza riquadri ===== */
.compact-monitor-tree-panel .tree-toggle,
.compact-monitor-tree-panel .tree-toggle[aria-expanded="false"],
.compact-monitor-tree-panel .tree-toggle[aria-expanded="true"],
.compact-monitor-tree-panel .tree-toggle:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle,
.compact-monitor-tree-panel .tree-toggle[aria-expanded="false"]:hover,
.compact-monitor-tree-panel .tree-toggle[aria-expanded="true"]:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle[aria-expanded="false"],
.compact-monitor-tree-panel .tree-row:hover .tree-toggle[aria-expanded="true"]{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="false"]{
  color:#78c8ff!important;
}

.compact-monitor-tree-panel .tree-toggle[aria-expanded="true"]{
  color:#ffd166!important;
}

.compact-monitor-tree-panel .tree-toggle:hover,
.compact-monitor-tree-panel .tree-row:hover .tree-toggle{
  color:#ffffff!important;
}


/* ===== Versione 4.14.11: ripetizione manuale scanner IP ===== */
.scanner-repeat-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 10px;
  border:1px solid #4e7da8;
  border-radius:5px;
  color:#bfe1ff;
  background:#17314c;
  font-size:9px;
  font-weight:400;
  white-space:nowrap;
}

.scanner-repeat-button:hover{
  border-color:#72a9d8;
  color:#ffffff;
  background:#214666;
}


/* ===== Versione 4.14.12: griglia e collegamenti sinottici ===== */
.concept-stage.grid-enabled{
  background-image:
    linear-gradient(rgba(103,145,184,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(103,145,184,.18) 1px,transparent 1px),
    linear-gradient(rgba(103,145,184,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(103,145,184,.08) 1px,transparent 1px)!important;
  background-size:100px 100px,100px 100px,20px 20px,20px 20px!important;
}
.concept-toolbar-actions{
  flex-wrap:wrap;
  justify-content:flex-end;
}
.concept-toolbar-actions button{
  font-weight:400;
  white-space:nowrap;
}


/* ===== Versione 4.15.0: MikroTik dinamico ===== */
.dynamic-interface-box{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:10px;padding:12px;border:1px solid #31506e;border-radius:7px;background:#0e1c30}
.dynamic-interface-box>div{grid-column:1/-1;display:grid;gap:3px}.dynamic-interface-box small{color:#8faac3;font-size:10px}.mikrotik-page{width:min(1600px,calc(100% - 32px));margin:20px auto 40px}.mikrotik-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.mikrotik-head h1{margin:3px 0;font-weight:400}.mikrotik-head p{margin:0;color:#9ab1c8}.mikrotik-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;overflow:hidden}.mikrotik-summary>div{display:grid;gap:5px;padding:12px;border-right:1px solid #2e4965}.mikrotik-summary>div:last-child{border-right:0}.mikrotik-summary span{color:#76baff;font-size:9px}.mikrotik-summary b{overflow:hidden;font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.mikrotik-section{margin-bottom:14px;overflow:hidden}.mikrotik-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #2c4865;background:#172b48}.mikrotik-section-head h2{margin:0 0 3px;font-size:16px;font-weight:400}.mikrotik-section-head p{margin:0;color:#91aac2;font-size:10px}.mikrotik-metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;padding:12px}.mikrotik-metric{display:grid;gap:6px;padding:12px;border:1px solid #31506e;border-radius:7px;background:#101f35}.mikrotik-metric>span{color:#6db8fb;font-size:9px}.mikrotik-metric>b{font-size:18px;font-weight:400}.mikrotik-metric>small{overflow:hidden;color:#8fa8c0;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.mikrotik-interface-table{overflow-x:auto}.mikrotik-interface-row{display:grid;grid-template-columns:75px minmax(140px,1fr) minmax(170px,1fr) minmax(170px,1fr) minmax(280px,1.3fr);align-items:center;min-width:980px;min-height:48px;padding:7px 12px;border-bottom:1px solid #29435e;font-size:10px}.mikrotik-interface-row.head{min-height:34px;color:#83a9ca;background:#0d192b;font-size:9px;text-transform:uppercase}.mikrotik-interface-row strong{font-weight:400;color:#7cc2ff}.mikrotik-interface-action{display:flex;align-items:center;gap:7px;margin:0}.mikrotik-interface-action select{min-height:30px}.mikrotik-wireless-list{max-height:420px;overflow:auto}.mikrotik-wireless-list>div{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:12px;padding:8px 12px;border-bottom:1px solid #29435e;font-size:10px}.mikrotik-wireless-list code{color:#78c7ff}.mikrotik-wireless-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mikrotik-errors{padding:12px}.mikrotik-errors pre{max-height:260px;overflow:auto;white-space:pre-wrap}.mikrotik-empty{min-height:180px;display:grid;place-content:center;gap:8px;text-align:center}@media(max-width:900px){.dynamic-interface-box,.mikrotik-summary{grid-template-columns:1fr}.mikrotik-head{align-items:stretch;flex-direction:column}}


/* ===== Versione 4.15.1: aggiunta controlli OID wireless ===== */
.mikrotik-wireless-row{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) minmax(150px,.45fr) auto;
  align-items:center;
  gap:12px;
  min-height:46px;
  padding:7px 12px!important;
}

.mikrotik-wireless-row code,
.mikrotik-wireless-value{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.mikrotik-wireless-action{
  margin:0;
}

.mikrotik-wireless-action button{
  min-height:30px;
  white-space:nowrap;
}

@media(max-width:900px){
  .mikrotik-wireless-row{
    grid-template-columns:1fr;
  }
  .mikrotik-wireless-action button{
    width:100%;
  }
}


/* ===== Versione 4.15.2: classificazione Wi-Fi e Health ===== */
.mikrotik-health-section .mikrotik-section-head{border-left:4px solid #ffd166}
.mikrotik-point-list{display:grid;max-height:520px;overflow:auto}
.mikrotik-point-row{display:grid;grid-template-columns:minmax(360px,1fr) minmax(160px,.35fr) auto;align-items:center;gap:14px;min-height:76px;padding:10px 12px;border-bottom:1px solid #29435e}
.mikrotik-point-info{display:grid;min-width:0;gap:4px}.mikrotik-point-info>b{font-size:12px;font-weight:400;color:#eaf5ff}.mikrotik-point-info>span{font-size:10px;color:#adc1d4}.mikrotik-point-info>small{font-size:9px;color:#ffd166}.mikrotik-point-info>code{overflow:hidden;color:#70bfff;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.mikrotik-point-value{overflow:hidden;font-size:15px;color:#fff;text-overflow:ellipsis;white-space:nowrap}.mikrotik-point-row.compact{min-height:52px}.mikrotik-unknown-section>summary{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;background:#172b48}.mikrotik-unknown-note{margin:0;padding:10px 14px;color:#91aac2;font-size:10px;border-bottom:1px solid #29435e}
@media(max-width:900px){.mikrotik-point-row{grid-template-columns:1fr}.mikrotik-point-value{font-size:13px}.mikrotik-wireless-action button{width:100%}}


/* ===== Versione 4.15.3: OID Wi-Fi verificati e telecomandi MikroTik ===== */
.mikrotik-command-section .mikrotik-section-head{border-left:4px solid #78c8ff}
.mikrotik-command-list{display:grid;padding:12px;gap:8px}
.mikrotik-command-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;border:1px solid #31506e;border-radius:7px;background:#101f35}
.mikrotik-command-row>div{display:grid;gap:5px;min-width:0}.mikrotik-command-row b{font-size:13px;font-weight:400}.mikrotik-command-row span{color:#adc1d4;font-size:10px}.mikrotik-command-row code{overflow:hidden;color:#78c8ff;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.mikrotik-command-row form{margin:0}.mikrotik-command-empty{padding:16px;color:#9eb4c9;font-size:10px}
@media(max-width:900px){.mikrotik-command-row{grid-template-columns:1fr}.mikrotik-command-row button{width:100%}}


/* ===== Versione 4.16.0: monitoraggio MikroTik completo ===== */
.mikrotik-interface-row{grid-template-columns:70px minmax(120px,1fr) minmax(150px,1fr) minmax(130px,1fr) minmax(270px,1.3fr) 175px!important}
.mikrotik-interface-complete{margin:0;display:flex;justify-content:flex-end}
.mikrotik-interface-complete button{min-height:32px;padding:0 10px;font-size:9px;white-space:nowrap}
.mikrotik-point-info small{color:#7fb3df;font-size:9px}
@media(max-width:1100px){.mikrotik-interface-row{min-width:1100px}.mikrotik-interface-table{overflow-x:auto}}

/* --- Compattazione pagina modifica apparato / nodo --- */
.node-edit-page{display:grid;gap:10px}
.node-edit-toolbar{margin-bottom:4px;align-items:flex-end}
.node-edit-toolbar h1{margin:0;font-size:26px;line-height:1.05}
.node-edit-toolbar p{margin:4px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#76baff}
.node-edit-page .edit-section-nav{top:6px;padding:8px 10px;gap:8px;margin-bottom:0;border-radius:12px}
.node-edit-page .edit-section-nav .secondary,
.node-edit-page .save-all-button{min-height:38px;padding:8px 12px;font-size:13px}
.node-edit-page .edit-section-nav input{margin-top:0;min-height:38px;padding:8px 10px}
.node-edit-page .edit-section{margin-bottom:0;border-radius:12px}
.node-edit-page .section-toggle{padding:10px 14px;font-size:15px}
.node-edit-page .section-body{padding:12px 12px 14px}
.node-edit-page .section-body>h2{margin:0 0 8px;font-size:18px}
.node-edit-page .section-body>p{margin:0 0 8px;font-size:12px}
.node-edit-page .section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.node-edit-page .section-heading-row h2{margin:0 0 4px;font-size:18px}
.node-edit-page .section-heading-row p{margin:0;font-size:12px;max-width:780px}
.node-edit-page .card{padding:12px 14px;border-radius:12px}
.node-edit-page .check-card{margin-bottom:10px}
.node-edit-page .check-head{align-items:center;gap:10px;margin-bottom:8px}
.node-edit-page .check-head h3{margin:0;font-size:18px}
.node-edit-page .form label{margin-bottom:10px;font-size:12px;color:#a6b7ca}
.node-edit-page input,
.node-edit-page select,
.node-edit-page textarea{margin-top:4px;padding:9px 10px;font-size:13px}
.node-edit-page textarea{min-height:72px}
.node-edit-page .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.node-edit-page .checkline{margin-top:2px;font-size:12px}
.node-edit-page .form-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:10px}
.node-edit-page .save-all-bottom{margin:4px 0 0;padding:10px 12px;border-radius:12px}
.node-edit-page .save-all-bottom .save-all-button{min-width:240px}
.node-edit-page .delete-node-form{display:flex;justify-content:flex-end}
.node-edit-page .delete-node-form .danger{min-height:38px}
.node-edit-page .field-help{font-size:10px;line-height:1.3}
.node-edit-page .compact-check-summary{padding:8px 10px;grid-template-columns:60px 92px minmax(220px,1fr) minmax(110px,170px) 72px;gap:10px}
.node-edit-page .compact-check-main b{font-size:16px}
.node-edit-page .compact-check-main small{font-size:10px}
.node-edit-page .compact-section-name{font-size:11px}
.node-edit-page .compact-check-editor{padding:12px 12px 10px}
.node-edit-page .order-number{min-width:34px}
.node-edit-page .history-config-box,
.node-edit-page .dynamic-interface-box{padding:10px 12px;border-radius:10px}
.node-edit-page .history-config-header{gap:12px}
.node-edit-page .history-config-header b{font-size:14px}
.node-edit-page .history-config-header small,
.node-edit-page .history-retention-note,
.node-edit-page .dynamic-interface-box small{font-size:10px;line-height:1.35}
.node-edit-page .history-config-fields{gap:10px;margin-top:10px}
.node-edit-page .dynamic-interface-box{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.node-edit-page .dynamic-interface-box>div{gap:2px}
.node-edit-page .camera-config-card{padding:12px 14px}
.node-edit-page .camera-config-head{align-items:flex-start;gap:12px;margin-bottom:10px}
.node-edit-page .camera-config-head h2{margin:0 0 4px;font-size:18px}
.node-edit-page .camera-config-head p{margin:0;font-size:12px}
.node-edit-page .camera-enable-row{margin:0 0 10px;padding:8px 10px;gap:16px}
.node-edit-page .camera-config-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.node-edit-page .camera-config-grid label{gap:4px;font-size:12px}
.node-edit-page .camera-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.node-edit-page .camera-actions .secondary{min-height:36px;padding:8px 12px}
.node-edit-page .camera-discovery-result{margin-top:10px;padding:10px 12px;font-size:12px;min-height:48px}
.node-edit-page .new-oid-card .check-head{margin-bottom:10px}
.node-edit-page .new-oid-card .check-head h3{font-size:17px}
.node-edit-page .embedded-card button,
.node-edit-page .edit-form-card button,
.node-edit-page .compact-check-editor button{min-height:36px;padding:8px 12px}

@media(max-width:1260px){
  .node-edit-page .form-grid,
  .node-edit-page .camera-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .node-edit-page .section-heading-row,
  .node-edit-page .camera-config-head,
  .node-edit-page .history-config-header{flex-direction:column;align-items:stretch}
  .node-edit-page .compact-check-summary{grid-template-columns:56px 84px minmax(0,1fr) 72px}
  .node-edit-page .compact-section-name{grid-column:2/4}
}
@media(max-width:760px){
  .node-edit-page .form-grid,
  .node-edit-page .camera-config-grid,
  .node-edit-page .dynamic-interface-box,
  .node-edit-page .history-config-fields{grid-template-columns:1fr}
  .node-edit-page .edit-section-nav{padding:8px}
  .node-edit-page .edit-section-nav input{width:100%;max-width:none}
  .node-edit-page .compact-check-summary{grid-template-columns:52px 1fr 72px}
  .node-edit-page .compact-check-summary>.badge{grid-column:2;justify-self:start}
  .node-edit-page .compact-check-main{grid-column:1/-1}
  .node-edit-page .compact-section-name{grid-column:1/-1}
}

/* ===== Versione 4.16.2: flusso logico creazione/modifica ===== */
.node-edit-page,
.node-create-page{width:min(1540px,calc(100% - 20px));margin:0 auto 24px}

.node-edit-title,
.node-create-toolbar>div{display:grid;gap:3px}
.node-kind-label{color:#6fbcff;font-size:10px;letter-spacing:.11em;text-transform:uppercase}
.node-edit-title h1,
.node-create-toolbar h1{margin:0;font-size:28px;font-weight:500}
.node-edit-title p,
.node-create-toolbar p{margin:0;color:#92a9bf;font-size:11px}

.node-edit-nav{display:grid!important;grid-template-columns:auto auto auto auto auto minmax(240px,1fr) auto;align-items:center;gap:7px!important}
.node-edit-nav .edit-tab{min-width:108px;background:#223752;color:#b9cee0;border:1px solid transparent}
.node-edit-nav .edit-tab:hover{background:#29435f}
.node-edit-nav .edit-tab.active{background:#2f6da7;color:#fff;border-color:#5aaaf1;box-shadow:inset 0 -2px #7cc4ff}
.node-edit-nav input{max-width:none!important;width:100%}
.node-edit-nav .save-all-button{min-width:155px}

.node-edit-page .edit-tab-panel[hidden]{display:none!important}
.node-edit-page .edit-tab-panel.active{display:block}
.node-edit-page .section-toggle{display:none}
.node-edit-page .section-body{padding:0!important}
.node-edit-page .edit-section{border:0!important;background:transparent!important;overflow:visible!important}
.node-edit-page .edit-form-card{display:grid;gap:10px;padding:10px!important}

.edit-card-block,
.create-block{border:1px solid #2c4562;border-radius:9px;background:#101d31;padding:11px 12px}
.edit-card-block-title,
.create-block-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;padding-bottom:7px;border-bottom:1px solid #263e59;color:#dce8f4;font-size:13px}
.edit-card-block-title small,
.create-block-title small{color:#8ea7be;font-size:10px;font-weight:400}

.edit-identity-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(280px,1.4fr) minmax(0,2fr);gap:9px 11px;align-items:end}
.edit-description-field{grid-column:3;grid-row:1/3}
.edit-description-field textarea{min-height:78px!important;resize:vertical}
.edit-enabled-line{grid-column:1/3;margin:0!important;min-height:34px}
.edit-network-grid{display:grid;grid-template-columns:1fr .75fr 1fr 1fr;gap:9px 11px}
.coordinate-edit-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(420px,1.8fr);gap:9px 11px;align-items:end}
.coordinate-edit-actions{display:flex;align-items:end;gap:7px;flex-wrap:wrap}
.coordinate-edit-actions button{min-height:36px!important;padding:7px 10px!important;font-size:11px!important}
.edit-primary-actions,
.create-form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:2px}
.edit-primary-actions button,
.create-form-actions button,
.create-form-actions .button{min-width:145px}

.node-edit-page #section-ping .section-body,
.node-edit-page #section-camera .section-body,
.node-edit-page #section-ingressi .section-body,
.node-edit-page #section-uscite .section-body{display:grid;gap:10px}
.node-edit-page #section-ping .section-body>h2,
.node-edit-page #section-uscite .section-body>h2,
.node-edit-page #section-uscite .section-body>p{display:none}
.node-edit-page #section-ping .check-card{margin:0}
.node-edit-page #section-ping .form-grid{grid-template-columns:2fr .7fr .7fr .7fr;align-items:end}
.node-edit-page #section-ping .form-grid .wide{grid-column:span 2}
.node-edit-page #section-ping textarea{min-height:62px}
.node-edit-page #section-ping .checkline{display:inline-flex!important;margin-right:12px!important}
.node-edit-page #section-ping form>button{float:right}

.node-edit-page #section-camera .camera-config-card{margin:0}
.node-edit-page #section-camera .camera-config-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.node-edit-page #section-camera .camera-config-grid label:nth-child(5),
.node-edit-page #section-camera .camera-config-grid label:nth-child(6){grid-column:span 2}

.node-edit-page #section-ingressi .section-heading-row{padding:10px 12px;margin:0;border:1px solid #2c4562;border-radius:9px;background:#101d31}
.node-edit-page #section-ingressi .new-oid-card{margin:0}
.node-edit-page #section-ingressi .new-oid-card .form-grid,
.node-edit-page .compact-check-editor .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}
.node-edit-page #section-ingressi .new-oid-card .wide,
.node-edit-page .compact-check-editor .wide{grid-column:1/-1}
.node-edit-page #section-ingressi .new-oid-card textarea,
.node-edit-page .compact-check-editor textarea{min-height:58px}
.node-edit-page .history-config-box.wide,
.node-edit-page .dynamic-interface-box.wide{grid-column:1/-1}
.node-edit-page .dynamic-interface-box{grid-template-columns:1fr 1fr!important}
.node-edit-page .history-config-fields{grid-template-columns:1fr 1fr!important}

.node-edit-page #section-uscite .compact-check-card{margin:0 0 8px}
.node-edit-page .save-all-bottom{position:sticky;bottom:6px;margin-top:4px;background:rgba(9,18,31,.96)}

.node-create-toolbar{margin-bottom:10px!important}
.node-create-form{display:grid;gap:10px;padding:10px!important}
.create-grid{display:grid;gap:9px 11px}
.create-grid-main{grid-template-columns:.65fr 1fr 1.5fr}
.create-parent-field{grid-column:3}
.create-description-field{grid-column:1/-1}
.create-description-field textarea{min-height:66px!important}
.create-grid-network{grid-template-columns:1fr .8fr 1fr 1fr}
.node-create-form label{margin:0!important;font-size:12px}
.node-create-form input,
.node-create-form select,
.node-create-form textarea{margin-top:4px}

@media(max-width:1250px){
  .node-edit-nav{grid-template-columns:repeat(5,auto) minmax(220px,1fr);}
  .node-edit-nav .save-all-button{grid-column:1/-1;justify-self:end}
  .edit-identity-grid{grid-template-columns:1fr 1.5fr}
  .edit-description-field{grid-column:1/-1;grid-row:auto}
  .edit-enabled-line{grid-column:1/-1}
  .edit-network-grid{grid-template-columns:repeat(2,1fr)}
  .coordinate-edit-grid{grid-template-columns:1fr 1fr}
  .coordinate-edit-actions{grid-column:1/-1}
  .node-edit-page #section-camera .camera-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .node-edit-page #section-ingressi .new-oid-card .form-grid,
  .node-edit-page .compact-check-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .create-grid-main{grid-template-columns:1fr 1fr}
  .create-parent-field{grid-column:auto}
  .create-grid-network{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:850px){
  .node-edit-page,
  .node-create-page{width:100%}
  .node-edit-nav{display:flex!important;overflow-x:auto;flex-wrap:nowrap!important}
  .node-edit-nav .edit-tab{min-width:max-content}
  .node-edit-nav input{min-width:250px}
  .node-edit-nav .save-all-button{min-width:max-content}
  .edit-identity-grid,
  .edit-network-grid,
  .coordinate-edit-grid,
  .node-edit-page #section-ping .form-grid,
  .node-edit-page #section-camera .camera-config-grid,
  .node-edit-page #section-ingressi .new-oid-card .form-grid,
  .node-edit-page .compact-check-editor .form-grid,
  .create-grid-main,
  .create-grid-network{grid-template-columns:1fr}
  .edit-description-field,
  .edit-enabled-line,
  .coordinate-edit-actions,
  .create-description-field{grid-column:1}
  .node-edit-page #section-ping .form-grid .wide,
  .node-edit-page #section-camera .camera-config-grid label:nth-child(5),
  .node-edit-page #section-camera .camera-config-grid label:nth-child(6){grid-column:1}
  .coordinate-edit-actions{align-items:stretch}
  .coordinate-edit-actions button{flex:1 1 190px}
}

/* ===== Versione 4.16.3: larghezza uniforme editor SNMP ===== */
.node-edit-page .edit-tab-panel,
.node-edit-page .edit-tab-panel .section-body,
.node-edit-page #section-ingressi .section-heading-row,
.node-edit-page #section-ingressi .compact-check-card,
.node-edit-page #section-ingressi .new-oid-card,
.node-edit-page #section-uscite .compact-check-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
.node-edit-page #section-ingressi .compact-check-card,
.node-edit-page #section-uscite .compact-check-card{
  justify-self:stretch!important;
}


/* ===== Versione 4.16.4: isolamento corretto tab Uscite SNMP ===== */
.node-edit-page .edit-tab-panel[hidden],
.node-edit-page #section-uscite[hidden],
.node-edit-page #section-uscite[hidden] *{
  display:none!important;
}

.node-edit-page #section-uscite{
  width:100%!important;
  min-width:0!important;
}

/* ===== Versione 4.17.0: telecomandi singoli, ON/OFF e temporizzati ===== */
.command-mode-config{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.command-off-value[hidden],.command-duration[hidden]{display:none!important}
.command-control-card{display:grid;gap:9px;padding:11px;border:1px solid #2b4564;border-radius:8px;background:#0e1b2d;min-width:240px}
.command-control-head{display:flex;align-items:flex-start;gap:9px;min-width:0}
.command-control-title{display:block;min-width:0;flex:1}
.command-control-title b,.command-control-title small{display:block}
.command-control-title b{font-size:13px;font-weight:600}
.command-control-title small{margin-top:3px;color:#91a9bf;font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.command-action-row{display:flex;gap:7px;align-items:center}
.command-action-row form{flex:1;margin:0}
.command-action-button{width:100%;min-height:34px;padding:7px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.04em}
.command-action-button.command-on{background:#287fc4;color:#fff}
.command-action-button.command-off{background:#ad741d;color:#fff}
.command-action-button.command-timed{background:#7161c8;color:#fff}
.command-action-button.command-single{background:#2e8cff;color:#fff}
.command-action-button:disabled{opacity:.45;cursor:not-allowed}
.command-control-card.on_off{border-color:#3e6d92}
.command-control-card.timed{border-color:#65599d}
@media(max-width:700px){.command-action-row{flex-direction:column}.command-action-row form{width:100%}}

/* ===== Versione 4.18.0: telecomandi illimitati e apparati command-only ===== */
.node-edit-page .new-command-card{margin-top:10px;border-color:#3e6f98;background:#0f2036}
.node-edit-page .new-command-card[hidden]{display:none!important}
.node-edit-page .command-only-empty{min-height:86px;display:grid;place-items:center;padding:16px;margin-bottom:10px;text-align:center}
.node-edit-page #section-uscite .section-heading-row .button{white-space:nowrap;align-self:center}
.node-edit-page #section-uscite .compact-check-card{width:100%;max-width:none}


/* ===== Versione 4.18.1: semplificazione salvataggi modifica apparato ===== */
.node-edit-nav{
  position:sticky;
  top:8px;
  z-index:35;
  background:rgba(7,16,28,.96);
  backdrop-filter:blur(10px);
  border:1px solid #27405c;
  border-radius:14px;
  padding:8px;
}
.node-edit-page .compact-actions-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.node-edit-page .inline-save-note{
  color:#8ea7be;
  font-size:11px;
  line-height:1.35;
}
.node-edit-page #section-ping .compact-actions-row,
.node-edit-page #section-uscite .compact-actions-row{
  margin-top:8px;
}
.node-edit-page .delete-node-form{
  margin-top:6px;
}
@media(max-width:900px){
  .node-edit-page .compact-actions-row{
    align-items:flex-start;
  }
  .node-edit-page .compact-actions-row .danger{
    width:100%;
  }
}

/* ===== Versione 4.19.1: localizzazione eventi nell'albero ===== */
.compact-monitor-tree-panel .event-branches-button,
.compact-monitor-tree-panel .tree-filter-button{
  font-weight:900;
}
.compact-monitor-tree-panel .tree-filter-button.filter-alarm{
  background:#7a2530!important;
  color:#fff!important;
}
.compact-monitor-tree-panel .tree-filter-button.filter-unreachable{
  background:#5a4311!important;
  color:#ffe08a!important;
}
.compact-monitor-tree-panel .tree-filter-button.filter-event{
  background:#163d74!important;
  color:#9fd1ff!important;
}
.compact-monitor-tree-panel .tree-node[data-has-unread="1"] > .tree-row{
  box-shadow:inset 3px 0 #ffb52e;
}
.compact-monitor-tree-panel .tree-event-indicators.branch-events{
  border:1px solid rgba(255,181,46,.65);
  border-radius:999px;
  background:rgba(255,181,46,.08);
}
.compact-monitor-tree-panel .tree-event-indicators.branch-events::before{
  content:"ramo";
  margin-left:3px;
  color:#ffcf70;
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
}


/* ===== Versione 4.19.2: indicatori eventi albero semplificati ===== */
.compact-monitor-tree-panel .tree-event-indicators{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  margin-left:6px!important;
  padding:0!important;
  text-decoration:none!important;
}

.compact-monitor-tree-panel .tree-event-indicators.branch-events{
  border:none!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.compact-monitor-tree-panel .tree-event-indicators.branch-events::before{
  content:none!important;
  display:none!important;
}

.compact-monitor-tree-panel .tree-event-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:auto!important;
  height:auto!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  line-height:1!important;
}

.compact-monitor-tree-panel .tree-event-badge b{
  margin-left:4px!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:900!important;
}

.compact-monitor-tree-panel .tree-event-badge.change-event{
  color:#64a8ff!important;
  font-size:16px!important;
  font-weight:900!important;
}

.compact-monitor-tree-panel .tree-event-badge.unreachable-event{
  color:#ffd166!important;
  font-size:16px!important;
  font-weight:900!important;
}

.compact-monitor-tree-panel .tree-event-badge.alarm-event{
  color:#ff9364!important;
  font-size:15px!important;
  font-weight:900!important;
}

/* ===== Versione 4.19.3: risorse instabili nelle ultime 24 ore ===== */
.ops-counter.unstable-counter{border-top:4px solid #ff9f2e}
.ops-counter.unstable-counter b{color:#ffc56f}
.unstable-resources-panel{margin:14px 0}
.panel-count.unstable{background:#6f4617;color:#ffd28d}
.unstable-resources-list{display:grid;gap:7px}
.unstable-resource-row{display:grid;grid-template-columns:110px minmax(0,1fr) 160px;align-items:center;gap:14px;padding:10px 12px;border:1px solid #2a425e;border-radius:8px;background:#101d31;color:var(--text);text-decoration:none}
.unstable-resource-row:hover{background:#162744;border-color:#4a6e98}
.unstable-resource-count{display:grid;justify-items:center;padding:7px 10px;border-radius:7px;background:#36260f;border:1px solid #75501c}
.unstable-resource-count b{font-size:24px;line-height:1;color:#ffc56f}
.unstable-resource-count span{margin-top:3px;color:#d7b77f;font-size:9px;text-transform:uppercase}
.unstable-resource-main{min-width:0;display:grid;gap:3px}
.unstable-resource-main>b{font-size:14px}
.unstable-resource-main small{overflow:hidden;color:#b5c4d5;text-overflow:ellipsis;white-space:nowrap}
.unstable-resource-row time{justify-self:end;color:#91a8bf;font-size:10px;white-space:nowrap}
.compact-all-clear{min-height:90px}
@media(max-width:900px){
  .unstable-resource-row{grid-template-columns:86px minmax(0,1fr)}
  .unstable-resource-row time{grid-column:2;justify-self:start}
}

/* ===== Versione 4.19.4: pagina dedicata risorse instabili ===== */
.ops-counter.unstable-counter{cursor:pointer}
.unstable-page{width:min(1500px,calc(100% - 20px));margin:0 auto 28px}
.unstable-page-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.unstable-page-toolbar h1{margin:3px 0 5px;font-size:27px}
.unstable-page-toolbar p{margin:0}
.unstable-page-summary{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.unstable-page-summary>div{padding:12px 14px;border:1px solid #2a425e;border-radius:9px;background:#101d31}
.unstable-page-summary span{display:block;color:#91a8bf;font-size:10px;text-transform:uppercase}
.unstable-page-summary b{display:block;margin-top:5px;color:#ffc56f;font-size:22px}
.unstable-page-panel{margin:0}
@media(max-width:800px){
  .unstable-page-toolbar{align-items:stretch;flex-direction:column}
  .unstable-page-summary{grid-template-columns:1fr}
}

/* ===== Versione 4.19.5: nomi risorse albero in maiuscolo ===== */
.compact-monitor-tree-panel .tree-name{
  text-transform:uppercase!important;
}

/* ===== Versione 4.19.6: filtro periodo registro eventi ===== */
.events-period-filter{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
  padding:10px 12px!important;
}
.events-period-quick{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.events-period-quick .button{
  min-height:34px;
  padding:7px 11px;
  font-size:11px;
}
.events-period-quick .button.active{
  background:#2f78b8;
  border-color:#65b2f5;
  color:#fff;
  box-shadow:inset 0 -2px #83c8ff;
}
.events-custom-period{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.events-custom-period label{
  display:grid;
  gap:3px;
  margin:0;
  color:#94abc1;
  font-size:10px;
  text-transform:uppercase;
}
.events-custom-period input{
  width:155px;
  min-height:34px;
  margin:0;
  padding:6px 8px;
  font-size:11px;
}
.events-custom-period button{
  min-height:34px;
  padding:7px 12px;
  font-size:11px;
}
@media(max-width:900px){
  .events-period-filter{
    align-items:stretch;
    flex-direction:column;
  }
  .events-custom-period{
    justify-content:flex-start;
  }
}
@media(max-width:560px){
  .events-custom-period label,
  .events-custom-period input,
  .events-custom-period button{
    width:100%;
  }
}


/* ===== Versione 4.19.7: filtri allarmi / non raggiungibili / eventi nell'albero ===== */
.compact-monitor-tree-panel .tree-buttons{
  gap:6px;
}
.compact-monitor-tree-panel .tree-filter-button{
  min-width:34px;
}

/* ===== Versione 4.19.8: barra superiore professionale ===== */
.main-header.compact-main-header{
  min-height:70px!important;
  height:auto!important;
  display:grid!important;
  grid-template-columns:minmax(210px,250px) minmax(0,1fr) minmax(205px,245px)!important;
  align-items:center!important;
  gap:18px!important;
  padding:9px 18px!important;
  background:linear-gradient(180deg,#0d1d31 0%,#091525 100%)!important;
  border-bottom:1px solid #28425f!important;
  box-shadow:0 6px 22px rgba(0,0,0,.18)!important;
}

.compact-main-header .brand-area{
  min-width:0!important;
  padding-right:18px!important;
  border-right:1px solid rgba(109,151,194,.22)!important;
}

.compact-main-header .brand-link{
  display:grid!important;
  gap:3px!important;
  padding:0!important;
  color:#fff!important;
  text-decoration:none!important;
}

.compact-main-header .brand-link strong{
  font-size:18px!important;
  line-height:1!important;
  letter-spacing:.09em!important;
  font-weight:800!important;
}

.compact-main-header .brand-link span{
  margin:0!important;
  color:#7fb8ee!important;
  font-size:8px!important;
  line-height:1.2!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}

.compact-main-nav{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  margin:0!important;
  overflow-x:auto!important;
  scrollbar-width:none!important;
}
.compact-main-nav::-webkit-scrollbar{display:none!important}

.compact-main-nav .nav-item{
  position:relative!important;
  min-height:46px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:8px 13px!important;
  margin:0!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#b9cbe0!important;
  font-size:12px!important;
  font-weight:650!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease!important;
}

.compact-main-nav .nav-item:hover{
  color:#fff!important;
  background:rgba(53,88,128,.26)!important;
  border-color:rgba(92,137,184,.30)!important;
  transform:translateY(-1px)!important;
}

.compact-main-nav .nav-item.active{
  color:#fff!important;
  background:linear-gradient(180deg,rgba(37,79,128,.78),rgba(27,61,103,.72))!important;
  border-color:#4d86bd!important;
  box-shadow:inset 0 -2px #67b1ff,0 4px 14px rgba(18,69,119,.22)!important;
}

.compact-main-nav .nav-item.active::after{
  content:""!important;
  position:absolute!important;
  left:18px!important;
  right:18px!important;
  bottom:-2px!important;
  height:2px!important;
  border-radius:2px!important;
  background:#76bbff!important;
}

.compact-main-nav .nav-icon{
  width:19px!important;
  height:19px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#83baf0!important;
  font-size:15px!important;
  line-height:1!important;
}

.compact-main-nav .logout-item{
  margin-left:4px!important;
  padding-left:14px!important;
  border-left-color:rgba(105,145,184,.18)!important;
  color:#d7e2ef!important;
}

.compact-main-nav .nav-unread-badge{
  top:2px!important;
  right:2px!important;
  min-width:18px!important;
  height:18px!important;
  padding:0 5px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:2px solid #0d1d31!important;
  border-radius:999px!important;
  background:#ff4f66!important;
  color:#fff!important;
  font-size:9px!important;
  font-weight:800!important;
}

.header-poller{
  width:100%!important;
  min-width:0!important;
  min-height:50px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  padding:8px 12px!important;
  border:1px solid #36536f!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,#10223a,#0c1b2e)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.025)!important;
  text-align:left!important;
}

.header-poller:hover{filter:brightness(1.04)!important}
.header-poller-led{
  width:12px!important;
  height:12px!important;
  box-shadow:0 0 0 5px rgba(86,153,214,.10)!important;
}
.header-poller-copy{min-width:0!important;display:grid!important;gap:2px!important}
.header-poller-copy b{
  overflow:hidden!important;
  color:#edf5ff!important;
  font-size:12px!important;
  line-height:1.15!important;
  font-weight:750!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.header-poller-copy small{
  overflow:hidden!important;
  color:#8fa8c0!important;
  font-size:9px!important;
  line-height:1.2!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.header-poller.ok{
  border-color:#16765d!important;
  background:linear-gradient(180deg,rgba(14,58,54,.78),rgba(11,35,38,.92))!important;
}
.header-poller.ok .header-poller-led{
  background:#23cb8b!important;
  box-shadow:0 0 0 5px rgba(35,203,139,.12),0 0 14px rgba(35,203,139,.55)!important;
}
.header-poller.busy{border-color:#4d79a6!important}
.header-poller.busy .header-poller-led{box-shadow:0 0 0 5px rgba(56,142,230,.14),0 0 14px rgba(56,142,230,.45)!important}
.header-poller.error{border-color:#8d3540!important;background:linear-gradient(180deg,#351c29,#271520)!important}
.header-poller.stopped{border-color:#6c7785!important;background:linear-gradient(180deg,#252e3b,#1a222d)!important}

@media(max-width:1450px){
  .main-header.compact-main-header{
    grid-template-columns:190px minmax(0,1fr) 205px!important;
    gap:12px!important;
    padding:8px 12px!important;
  }
  .compact-main-nav .nav-item{padding:8px 10px!important;font-size:11px!important}
}

@media(max-width:1100px){
  .main-header.compact-main-header{
    grid-template-columns:190px minmax(0,1fr)!important;
  }
  .header-poller{
    grid-column:1/-1!important;
    width:min(310px,100%)!important;
    justify-self:end!important;
  }
}

@media(max-width:760px){
  .main-header.compact-main-header{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    padding:10px!important;
  }
  .compact-main-header .brand-area{
    width:100%!important;
    padding:0 0 9px!important;
    border-right:0!important;
    border-bottom:1px solid rgba(109,151,194,.20)!important;
  }
  .compact-main-nav{width:100%!important;justify-content:flex-start!important}
  .compact-main-nav .nav-item{min-height:42px!important}
  .header-poller{width:100%!important;justify-self:stretch!important}
}

/* ===== Versione 4.20.0: pagina attività motore in tempo reale ===== */
.header-poller{color:inherit;text-decoration:none}
.header-poller.active{border-color:#4d8fca;box-shadow:inset 0 -2px #5aaaf1}
.poller-live-page{width:min(1700px,calc(100% - 24px));margin:0 auto 28px;display:grid;gap:16px}
.poller-live-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 4px 2px}
.poller-live-head h1{margin:3px 0 4px;font-size:30px;font-weight:500}
.poller-live-head p{margin:0;font-size:13px}
.poller-live-connection{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #324b67;border-radius:9px;background:#101d31;color:#a9bed2;font-size:11px}
.poller-live-connection span{width:9px;height:9px;border-radius:50%;background:#718096}
.poller-live-connection.connected span{background:var(--ok);box-shadow:0 0 0 5px rgba(38,194,129,.12)}
.poller-live-connection.disconnected span{background:var(--alarm)}
.poller-live-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.poller-live-metrics .metric-card{display:grid;gap:4px;min-height:104px;padding:14px 15px;border-top:3px solid #477cae}
.poller-live-metrics .metric-card>span{color:#78bdf8;font-size:9px;letter-spacing:.08em}
.poller-live-metrics .metric-card>b{font-size:23px;font-weight:500}
.poller-live-metrics .metric-card>b.ok{color:var(--ok)}
.poller-live-metrics .metric-card>b.busy{color:#70baff}
.poller-live-metrics .metric-card>b.error,.poller-live-metrics .metric-card>b.stopped{color:var(--alarm)}
.poller-live-metrics .metric-card>small{color:#91a8bd;font-size:10px}
.poller-live-section{overflow:hidden;border:1px solid #2b435e;border-radius:11px;background:#0f1d31}
.poller-live-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #2b435e;background:#172a46}
.poller-live-section-head h2{margin:0 0 3px;font-size:18px;font-weight:500}
.poller-live-section-head p{margin:0;font-size:10px}
.poller-current-list{display:grid;gap:6px;padding:10px}
.poller-current-row{display:grid;grid-template-columns:18px minmax(180px,1fr) 72px minmax(160px,1.4fr) 80px 100px;align-items:center;gap:10px;padding:9px 11px;border:1px solid #2b435e;border-radius:8px;background:#101f35;font-size:11px}
.poller-current-row b,.poller-current-row small{display:block}
.poller-current-row small{margin-top:2px;color:#8ea8bf;font-size:9px}
.poller-working-dot{width:10px;height:10px;border-radius:50%;background:#4da0ff;box-shadow:0 0 0 5px rgba(77,160,255,.12);animation:pollerPulse 1.1s ease-in-out infinite}
@keyframes pollerPulse{50%{opacity:.35}}
.poller-kind{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:2px 7px;border-radius:5px;background:#203956;color:#9ed0ff;font-size:9px;font-weight:800}
.poller-current-row code,.poller-live-table code{display:block;overflow:hidden;color:#8fb7d9;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.poller-live-table-wrap{overflow-x:auto}
.poller-live-table{width:100%;border-collapse:collapse;min-width:1100px}
.poller-live-table th,.poller-live-table td{padding:9px 11px;border-bottom:1px solid #29415b;text-align:left;vertical-align:middle;font-size:10px}
.poller-live-table th{color:#8eb6d9;background:#0c182a;font-size:9px;letter-spacing:.05em;text-transform:uppercase}
.poller-live-table tr:last-child td{border-bottom:0}
.poller-live-table tbody tr:hover{background:#142641}
.poller-status{display:inline-flex;min-width:80px;justify-content:center;padding:4px 7px;border-radius:5px;background:#667386;color:white;font-size:8px;font-weight:900}
.poller-status.ok{background:var(--ok);color:#071a12}
.poller-status.alarm{background:var(--alarm)}
.poller-status.unreachable{background:var(--unreachable);color:#2a1b00}
.poller-status.fault{background:var(--fault)}
.poller-result{max-width:360px;overflow:hidden;color:#c9d8e6;text-overflow:ellipsis;white-space:nowrap}
.poller-result.error{color:#ff9ca5}
.poller-empty{padding:24px;color:#8fa7bd;text-align:center;font-size:11px}
@media(max-width:1200px){.poller-live-metrics{grid-template-columns:repeat(3,1fr)}.poller-current-row{grid-template-columns:18px minmax(160px,1fr) 70px minmax(130px,1fr) 75px}.poller-current-row>small:last-child{display:none}}
@media(max-width:760px){.poller-live-head{align-items:stretch;flex-direction:column}.poller-live-metrics{grid-template-columns:1fr 1fr}.poller-current-row{grid-template-columns:18px 1fr 70px}.poller-current-row code{grid-column:2/4}.poller-current-row>span:nth-last-child(2){grid-column:2}.poller-live-metrics .metric-card{min-height:90px}}


/* ===== Versione 4.20.1: elenco contenuto più compatto ===== */
.monitor-detail-panel .children-list{
  gap:5px;
}
.monitor-detail-panel .child-row{
  min-height:42px;
  padding:6px 10px;
  gap:9px;
}
.monitor-detail-panel .child-info{
  display:flex;
  align-items:center;
  min-width:0;
}
.monitor-detail-panel .child-info b{
  overflow:hidden;
  font-size:14px;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.monitor-detail-panel .child-info small{
  display:none!important;
}
.monitor-detail-panel .child-kind{
  padding:3px 6px;
  font-size:9px;
}
.monitor-detail-panel .child-state{
  font-size:10px;
}

/* ===== Versione 4.20.3: badge tipo risorsa colorati per stato ===== */
.monitor-detail-panel .child-row{
  grid-template-columns:64px minmax(0,1fr) auto;
}
.monitor-detail-panel .child-kind{
  min-width:54px;
  border:1px solid transparent;
  font-weight:900;
  letter-spacing:.04em;
}
.monitor-detail-panel .child-kind.status-ok{
  background:rgba(38,194,129,.18);
  border-color:rgba(38,194,129,.52);
  color:#7be4b6;
}
.monitor-detail-panel .child-kind.status-alarm{
  background:rgba(255,77,95,.20);
  border-color:rgba(255,77,95,.58);
  color:#ff9aa5;
}
.monitor-detail-panel .child-kind.status-unreachable{
  background:rgba(244,183,64,.20);
  border-color:rgba(244,183,64,.58);
  color:#ffd978;
}
.monitor-detail-panel .child-kind.status-fault{
  background:rgba(255,138,61,.20);
  border-color:rgba(255,138,61,.58);
  color:#ffb17a;
}
.monitor-detail-panel .child-kind.status-warning{
  background:rgba(244,183,64,.16);
  border-color:rgba(244,183,64,.46);
  color:#f4cf72;
}
.monitor-detail-panel .child-kind.status-unknown{
  background:rgba(125,135,151,.18);
  border-color:rgba(125,135,151,.46);
  color:#b3bfce;
}

/* ===== Versione 4.21.0: inventario completo delle risorse ===== */
.inventory-page{width:min(1760px,calc(100% - 24px));margin:20px auto 38px}
.inventory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.inventory-head h1{margin:3px 0 4px;font-size:28px;font-weight:500}
.inventory-head p{margin:0;color:#90a8c0;font-size:12px}
.page-eyebrow{color:#68b9ff;font-size:9px;font-weight:800;letter-spacing:.12em}
.inventory-summary{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:9px;margin-bottom:10px}
.inventory-summary>div{padding:10px 12px;border:1px solid #2b4664;border-radius:8px;background:#101e32}
.inventory-summary span{display:block;color:#89a5bf;font-size:9px;text-transform:uppercase}
.inventory-summary b{display:block;margin-top:3px;font-size:22px;font-weight:500}
.inventory-toolbar{display:grid;grid-template-columns:minmax(320px,1fr) 190px 220px auto;align-items:end;gap:10px;margin-bottom:10px;padding:10px 12px}
.inventory-toolbar label{display:grid;gap:4px;margin:0;color:#9bb1c7;font-size:10px;text-transform:uppercase}
.inventory-toolbar input,.inventory-toolbar select{min-height:38px;margin:0}
.inventory-toolbar button{min-height:38px;white-space:nowrap}
.inventory-table-wrap{overflow:auto;border:1px solid #2a4360;border-radius:9px;background:#0e1b2e}
.inventory-table{width:100%;border-collapse:collapse;min-width:1180px}
.inventory-table th{position:sticky;top:0;z-index:2;padding:9px 10px;border-bottom:1px solid #365577;background:#172b47;color:#a9c6e1;font-size:9px;text-align:left;text-transform:uppercase}
.inventory-table td{height:45px;padding:7px 10px;border-bottom:1px solid #263d57;color:#d8e4f0;font-size:11px;vertical-align:middle}
.inventory-table tbody tr:last-child td{border-bottom:0}
.inventory-table tbody tr:hover{background:#152843}
.inventory-name{display:block;color:#fff;font-size:12px;font-weight:700;text-decoration:none}
.inventory-name:hover{color:#7cc5ff}
.inventory-name+small{display:block;margin-top:2px;color:#ff9b73;font-size:8px;text-transform:uppercase}
.inventory-table code{color:#87caff;font-family:Consolas,monospace;font-size:10px}
.inventory-path{max-width:360px;overflow:hidden;color:#89a9c7!important;text-overflow:ellipsis;white-space:nowrap}
.inventory-number{text-align:center;font-weight:700}
.inventory-status,.inventory-kind{display:inline-flex;align-items:center;justify-content:center;min-width:76px;min-height:24px;padding:3px 7px;border-radius:5px;font-size:8px;font-weight:900;white-space:nowrap}
.inventory-status.ok{background:#146d4c;color:#b7ffe1}
.inventory-status.alarm{background:#842d3a;color:#fff}
.inventory-status.unreachable{background:#775916;color:#ffeca6}
.inventory-status.fault{background:#8a481c;color:#ffe0bf}
.inventory-status.unknown{background:#405064;color:#e1e8ef}
.inventory-kind{min-width:48px;background:#243f62;color:#b9d9fa}
.inventory-kind.site{background:#174b57;color:#a5edf4}
.inventory-kind.folder{background:#594a17;color:#ffe58f}
.inventory-open{min-height:30px!important;padding:6px 10px!important;font-size:9px!important}
.inventory-table-wrap>.empty-panel{margin:10px}
@media(max-width:1100px){
  .inventory-summary{grid-template-columns:repeat(3,1fr)}
  .inventory-toolbar{grid-template-columns:1fr 1fr}
  .inventory-search-field{grid-column:1/-1}
}
@media(max-width:650px){
  .inventory-page{width:calc(100% - 12px);margin-top:10px}
  .inventory-head{align-items:stretch;flex-direction:column}
  .inventory-summary{grid-template-columns:repeat(2,1fr)}
  .inventory-toolbar{grid-template-columns:1fr}
  .inventory-search-field{grid-column:auto}
}

/* ===== Versione 4.22.0: gestione operativa professionale ===== */
.operations-toolbar{align-items:flex-end;gap:16px}
.operations-links{display:flex;gap:8px;flex-wrap:wrap}
.operations-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.metric-card{display:grid;gap:4px;padding:13px 15px;border:1px solid #2b4564;border-radius:10px;background:#101d31}
.metric-card span{color:#79baff;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.metric-card b{font-size:24px;font-weight:600}
.metric-card small{color:#8ea7be;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.operations-section{margin-bottom:14px;padding:14px}
.operations-section h2{margin:0 0 4px;font-size:18px}
.operations-inline-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.operations-inline-form label{display:grid;gap:4px;min-width:180px;color:#9eb2c7;font-size:11px}
.operations-inline-form .wide-grow{flex:1;min-width:260px}
.operations-inline-form input,.operations-inline-form select{margin:0;min-height:38px}
.operations-inline-form button{min-height:38px}
.maintenance-list,.delayed-list{display:grid;gap:7px;margin-top:12px}
.maintenance-list>div,.delayed-list>div{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(200px,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:1px solid #2a435f;border-radius:8px;background:#0d192b}
.maintenance-list span{color:#74b8f6}.maintenance-list small,.delayed-list span{color:#91a8bf}
.dependency-table-wrap,.table-wrap{overflow:auto}
.operations-table{width:100%;border-collapse:collapse;min-width:760px}
.operations-table th,.operations-table td{padding:9px 10px;border-bottom:1px solid #29415d;text-align:left;vertical-align:middle}
.operations-table th{color:#77b7ef;background:#0d192b;font-size:10px;text-transform:uppercase}
.operations-table td{font-size:11px}
.dependency-form{display:flex;align-items:center;gap:7px;margin:0}
.dependency-form select{min-width:280px;margin:0;min-height:34px}
.dependency-form button{min-height:34px;padding:6px 10px}
.audit-search,.period-picker{display:flex;align-items:end;gap:8px;margin-bottom:12px;padding:10px}
.audit-search input{margin:0;flex:1}.period-picker label{display:grid;gap:4px}.period-picker select{margin:0}
.audit-table td:nth-child(5){max-width:520px;white-space:normal}
.availability-value{font-size:16px}.availability-value.good,.ok-text{color:#35d495}.availability-value.warning{color:#ffd166}.availability-value.bad,.alarm-text{color:#ff6f7d}
.backup-actions{display:flex;gap:7px}.backup-actions form{margin:0}
.unstable-resource-count.critical{border-color:#9b303b;background:#421a20}.unstable-resource-count.critical b{color:#ff7c87}
.unstable-resource-count.unstable{border-color:#925a16;background:#3a270e}.unstable-resource-count.warning{border-color:#6e6a25;background:#2c2b11}
@media(max-width:1050px){.operations-metrics{grid-template-columns:repeat(2,1fr)}.maintenance-list>div{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.operations-metrics{grid-template-columns:1fr}.operations-links{width:100%}.operations-links .button{flex:1;text-align:center}.maintenance-list>div{grid-template-columns:1fr}.operations-inline-form>*{width:100%}}
.operations-metrics{grid-template-columns:repeat(7,minmax(0,1fr))}
.backup-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:12px 0;flex-wrap:wrap}
.restore-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.restore-form label{display:grid;gap:4px;color:#9eb2c7;font-size:11px}.restore-form input{margin:0}
@media(max-width:1500px){.operations-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.operations-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.operations-metrics{grid-template-columns:1fr}}

/* ===== Versione 4.22.1: barra superiore professionale e compatta ===== */
.compact-main-header{
  min-height:60px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  padding:10px 16px!important;
}
.compact-main-header .brand-area{
  min-width:0!important;
}
.compact-main-header .brand-link{
  gap:1px!important;
}
.compact-main-header .brand-link strong{
  font-size:15px!important;
  letter-spacing:.08em!important;
}
.compact-main-header .brand-link span{
  font-size:8px!important;
  letter-spacing:.14em!important;
}
.compact-main-nav{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin-left:0!important;
}
.compact-main-nav .main-nav-primary,
.compact-main-nav .main-nav-secondary{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.compact-main-nav .main-nav-primary{
  flex:1 1 auto;
  min-width:0;
}
.compact-main-nav .main-nav-secondary{
  flex:0 0 auto;
  padding-left:10px;
  border-left:1px solid rgba(92,124,168,.32);
}
.compact-main-nav .nav-item{
  min-height:36px!important;
  padding:0 10px!important;
  font-size:11px!important;
  letter-spacing:.01em!important;
  gap:6px!important;
  white-space:nowrap;
}
.compact-main-nav .nav-icon{
  width:15px!important;
  height:15px!important;
  font-size:13px!important;
}
.compact-main-nav .nav-item span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
}
.compact-main-nav .logout-item{
  color:#cfe0f7!important;
}
.nav-dropdown{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-dropdown-trigger{
  padding-right:8px!important;
}
.nav-caret{
  margin-left:2px;
  color:#82b8f1;
  font-size:11px;
}
.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:80;
  display:none;
  min-width:220px;
  padding:8px;
  border:1px solid #2f4d73;
  border-radius:12px;
  background:rgba(11,21,38,.98);
  box-shadow:0 14px 32px rgba(0,0,0,.38);
  backdrop-filter:blur(8px);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  display:block;
}
.nav-dropdown-menu a{
  display:flex;
  align-items:center;
  min-height:36px;
  padding:0 11px;
  margin:0;
  border-radius:8px;
  color:#d5e4f7;
  font-size:12px;
  font-weight:650;
  text-decoration:none;
}
.nav-dropdown-menu a:hover{
  background:#18304f;
  color:#fff;
}
.header-poller{
  min-width:182px!important;
  max-width:220px;
  min-height:42px!important;
  padding:7px 12px!important;
  border-radius:12px!important;
}
.header-poller-copy b{
  font-size:11px!important;
}
.header-poller-copy small{
  font-size:10px!important;
}
@media(max-width:1450px){
  .compact-main-header{
    grid-template-columns:auto 1fr!important;
    grid-template-areas:
      'brand poller'
      'nav nav'!important;
  }
  .compact-main-header .brand-area{grid-area:brand}
  .compact-main-header .compact-main-nav{grid-area:nav}
  .compact-main-header .header-poller{grid-area:poller;justify-self:end}
}
@media(max-width:1100px){
  .compact-main-nav{
    flex-direction:column;
    align-items:stretch!important;
    gap:8px!important;
  }
  .compact-main-nav .main-nav-primary,
  .compact-main-nav .main-nav-secondary{
    overflow-x:auto;
    padding-bottom:2px;
  }
  .compact-main-nav .main-nav-secondary{
    border-left:0;
    padding-left:0;
  }
}
@media(max-width:760px){
  .compact-main-header{
    grid-template-columns:1fr!important;
    grid-template-areas:
      'brand'
      'poller'
      'nav'!important;
  }
  .compact-main-header .header-poller{
    justify-self:stretch;
    max-width:none;
  }
}

/* ===== Versione 4.22.3: centro Tools professionale ===== */
.nav-dropdown-menu .nav-dropdown-home{
  color:#ffffff;
  background:#183553;
  font-weight:800;
}
.nav-dropdown-divider{
  display:block;
  height:1px;
  margin:6px 4px;
  background:#29435f;
}

.hub-page{
  width:min(1500px,calc(100% - 24px));
  margin:0 auto 32px;
}
.hub-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:10px 0 18px;
  padding:18px 22px;
  border:1px solid #294563;
  border-radius:14px;
  background:linear-gradient(135deg,#101f35 0%,#0c192b 65%,#10233a 100%);
}
.hub-hero-main{
  min-width:0;
  flex:1 1 auto;
  max-width:840px;
}
.hub-hero h1{
  margin:3px 0 6px;
  font-size:30px;
  font-weight:500;
}
.hub-hero p{
  margin:0;
  color:#95abc1;
  font-size:13px;
  line-height:1.5;
}
.hub-hero-badge{
  display:flex;
  align-items:center;
  gap:11px;
  flex:0 0 auto;
  min-width:250px;
  max-width:320px;
  padding:10px 14px;
  border-radius:12px;
}
.hub-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.hub-card{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 24px;
  align-items:center;
  gap:14px;
  min-height:134px;
  padding:18px;
  border:1px solid #29435f;
  border-radius:12px;
  background:#101d31;
  color:#e8f1fb;
  text-decoration:none;
  transition:transform .14s ease,border-color .14s ease,background .14s ease;
}
.hub-card:hover{
  transform:translateY(-2px);
  border-color:#4f78a5;
  background:#142641;
}
.hub-card-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid #365676;
  border-radius:11px;
  background:#172d49;
  color:#79baff;
  font-size:22px;
}
.hub-card-copy{min-width:0}
.hub-card-copy>span{
  color:#6caef3;
  font-size:9px;
  font-weight:800;
  letter-spacing:.10em;
}
.hub-card-copy h2{
  margin:5px 0 6px;
  font-size:17px;
  font-weight:600;
}
.hub-card-copy p{
  margin:0;
  color:#91a7bd;
  font-size:11px;
  line-height:1.5;
}
.hub-card-arrow{
  align-self:center;
  color:#6c93bb;
  font-size:20px;
}
.hub-card:hover .hub-card-arrow{color:#ffffff}

.tools-page{}
.tools-hero{}
.tools-hero-status{
  border:1px solid #245f54;
  background:rgba(13,56,49,.34);
}
.tools-status-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#26c281;
  box-shadow:0 0 0 5px rgba(38,194,129,.10);
}
.tools-hero-status b,
.tools-hero-status small,
.settings-hero-status b,
.settings-hero-status small{
  display:block;
}
.tools-hero-status b,
.settings-hero-status b{
  color:#e9fff6;
  font-size:12px;
}
.tools-hero-status small,
.settings-hero-status small{
  margin-top:2px;
  color:#8cb7aa;
  font-size:10px;
}
.tools-grid{}
.tools-module{}
.tools-module.featured{
  border-color:#376b9e;
  background:linear-gradient(135deg,#142b49,#10223a);
}
.tools-module.warning{border-color:#66502a}
.tools-module.engine{border-color:#245e55}
.tools-module-icon{}
.tools-module.warning .tools-module-icon{
  color:#ffd166;
  border-color:#69532a;
  background:#2c2517;
}
.tools-module.engine .tools-module-icon{
  color:#61d9ad;
  border-color:#2d6658;
  background:#14332d;
}
.tools-module-copy{}
.tools-module-arrow{}

.settings-page{}
.settings-hero{}
.settings-hero-status{
  border:1px solid #365f8c;
  background:rgba(18,45,77,.45);
}
.settings-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.settings-tile{
  min-height:128px;
}
.settings-tile-icon{
  font-size:27px;
}
.settings-tile-copy{}
.settings-tile-arrow{}

.settings-form{max-width:760px}
.settings-test-form{margin-top:12px}

@media(max-width:1100px){
  .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .hub-page{width:calc(100% - 16px)}
  .hub-hero{align-items:stretch;flex-direction:column;padding:17px}
  .hub-hero-badge{min-width:0;max-width:none}
  .hub-grid,.settings-grid{grid-template-columns:1fr}
  .hub-card{min-height:120px}
}

/* ===== Versione 4.23.0: rilevamento universale apparati ===== */
.device-detect-page{width:min(1560px,calc(100% - 24px));margin:18px auto 36px;display:grid;gap:12px}
.device-detect-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 2px 4px}
.device-detect-head .eyebrow{display:block;color:#69baff;font-size:9px;letter-spacing:.12em}
.device-detect-head h1{margin:3px 0;font-size:28px;font-weight:500}
.device-detect-head p{margin:0;color:#91aac2;font-size:11px}
.device-detect-actions{display:flex;align-items:center;gap:8px}.device-detect-actions form{margin:0}
.device-identification{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.6fr);gap:16px;padding:16px}
.device-identification-main{display:grid;align-content:center;gap:6px;padding-right:16px;border-right:1px solid #2b4562}
.device-vendor-badge{width:max-content;padding:4px 8px;border:1px solid #3974a9;border-radius:999px;background:#173a60;color:#9dd2ff;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.device-identification-main h2{margin:2px 0;font-size:22px;font-weight:500}.device-identification-main p{margin:0;font-size:11px;line-height:1.45}
.device-identification-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.device-identification-grid>div{min-width:0;padding:10px;border:1px solid #2a435f;border-radius:8px;background:#0d1b2f}
.device-identification-grid span{display:block;margin-bottom:5px;color:#73b9f3;font-size:8px;letter-spacing:.08em}.device-identification-grid b,.device-identification-grid code{display:block;overflow:hidden;color:#e5eef8;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.device-detect-section{padding:0;overflow:hidden}.device-detect-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #2c4865;background:#172b48}
.device-detect-section-head h2{margin:0 0 3px;font-size:17px;font-weight:500}.device-detect-section-head p{margin:0;font-size:10px}.device-detect-section-head form{margin:0}
.detected-point-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px;padding:12px}
.detected-point-card{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:11px;border:1px solid #2c4966;border-radius:8px;background:#0f1e33}
.detected-point-copy{min-width:0;display:grid;gap:3px}.detected-point-copy b{font-size:11px}.detected-point-copy strong{color:#75c4ff;font-size:15px;font-weight:500}.detected-point-copy code{overflow:hidden;color:#809bb5;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.detected-point-card form,.detected-point-row form{flex:0 0 auto;margin:0}
.detected-point-list{display:grid}.detected-point-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 13px;border-bottom:1px solid #28415d}.detected-point-row:last-child{border-bottom:0}.detected-point-row>div{min-width:0;display:grid;grid-template-columns:minmax(170px,.8fr) minmax(150px,.5fr) minmax(260px,1.4fr);align-items:center;gap:12px;flex:1}.detected-point-row b{font-size:11px}.detected-point-row span{color:#7bc5ff;font-size:11px}.detected-point-row code{overflow:hidden;color:#8ba5bd;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.device-interface-table{overflow-x:auto}.device-interface-row{display:grid;grid-template-columns:65px minmax(130px,.7fr) minmax(180px,1fr) minmax(150px,.8fr) minmax(270px,1.2fr) 130px;align-items:center;gap:9px;min-width:1080px;min-height:48px;padding:7px 12px;border-bottom:1px solid #29435e;font-size:10px}.device-interface-row.head{min-height:34px;color:#83a9ca;background:#0d192b;font-size:8px;text-transform:uppercase}.device-interface-row form{display:flex;align-items:center;gap:6px;margin:0}.device-interface-row select{min-height:31px;margin:0;padding:5px 7px;font-size:9px}.device-interface-row button{min-height:31px;padding:6px 8px;font-size:9px}
.device-detect-help{padding:14px}.device-detect-help h2{margin:0 0 10px;font-size:17px}.device-detect-help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.device-detect-help-grid>div{display:grid;gap:4px;padding:11px;border:1px solid #2b4562;border-radius:8px;background:#0e1c30}.device-detect-help-grid b{font-size:11px}.device-detect-help-grid span{color:#8fa8c0;font-size:9px;line-height:1.4}.device-detect-errors pre{max-height:260px;overflow:auto;white-space:pre-wrap}.device-detect-empty{min-height:220px;display:grid;place-content:center;gap:8px;text-align:center}
@media(max-width:1050px){.device-identification{grid-template-columns:1fr}.device-identification-main{padding-right:0;padding-bottom:12px;border-right:0;border-bottom:1px solid #2b4562}.device-identification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-detect-help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.device-detect-head{align-items:stretch;flex-direction:column}.device-detect-actions{flex-wrap:wrap}.device-identification-grid,.device-detect-help-grid{grid-template-columns:1fr}.detected-point-row{align-items:stretch;flex-direction:column}.detected-point-row>div{grid-template-columns:1fr}.detected-point-row form button{width:100%}}

/* ===== Versione 4.23.2: correzione definitiva intestazioni Tools e Impostazioni ===== */
main .hub-hero{
  height:auto!important;
  min-height:116px!important;
  max-height:none!important;
  overflow:visible!important;
  align-items:center!important;
  padding:20px 24px!important;
}
main .hub-hero-main{
  display:grid!important;
  align-content:center!important;
  gap:0!important;
  min-height:72px!important;
}
main .hub-hero .detail-type{
  display:block!important;
  margin:0 0 4px!important;
  color:#62b5ff!important;
  font-size:9px!important;
  line-height:1.2!important;
  letter-spacing:.08em!important;
}
main .hub-hero h1{
  margin:0 0 7px!important;
  font-size:30px!important;
  line-height:1.08!important;
  font-weight:500!important;
}
main .hub-hero p{
  display:block!important;
  margin:0!important;
  max-width:860px!important;
  color:#9cb2c8!important;
  font-size:12px!important;
  line-height:1.45!important;
  overflow:visible!important;
}
main .hub-hero-badge{
  align-self:center!important;
  margin:0!important;
}
@media(max-width:760px){
  main .hub-hero{
    min-height:0!important;
    padding:17px!important;
  }
}

/* ===== Versione 4.23.3: walk universale rilevamento apparato ===== */
.device-detect-walk{padding:0;overflow:hidden}
.device-detect-walk>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;background:#162b48;font-size:14px;font-weight:700}
.device-walk-table{max-height:420px;overflow:auto}
.device-walk-row{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.6fr) 90px;gap:12px;align-items:center;min-height:38px;padding:7px 13px;border-top:1px solid #29435f;font-size:10px}
.device-walk-row.head{position:sticky;top:0;background:#0d1b2f;color:#86a9cb;font-size:9px;text-transform:uppercase;z-index:2}
.device-walk-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#82c4ff}
.device-walk-row span{overflow-wrap:anywhere;color:#d8e6f4}
.device-walk-row small{color:#8da7bf;text-transform:uppercase}
@media(max-width:800px){.device-walk-row{grid-template-columns:1fr}.device-walk-row.head{display:none}}

/* ===== Versione 4.23.7: Scanner IP nei Tools ===== */
.tools-module.scanner{border-color:#315f83}
.tools-module.scanner .tools-module-icon{color:#79c8ff;border-color:#315f83;background:#142d43}

/* ===== Versione 4.24.1: storico grafico della coda poller ===== */
.poller-history-section{margin-top:14px}
.poller-chart-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.poller-chart-controls button{min-height:32px;padding:6px 10px;font-size:10px}
.poller-chart-controls button.active{border-color:#4c9df0;background:#234b78;color:#fff}
.poller-chart-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 13px;border-bottom:1px solid #29435f;color:#8faac4;font-size:10px}
.poller-trend{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.poller-trend.stable{color:#9bc7ed;background:#183451}
.poller-trend.growing{color:#ffd166;background:#493514}
.poller-trend.falling{color:#62d8a8;background:#14372e}
.poller-chart-wrap{height:300px;padding:14px}
@media(max-width:760px){.poller-chart-summary{align-items:flex-start;flex-direction:column}.poller-chart-wrap{height:250px}}

/* ===== Versione 4.24.4: contatori dashboard tutti sulla stessa riga ===== */
.dashboard-status-counters.compact-ops-primary-counters{
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:7px!important;
}
.dashboard-status-counters.compact-ops-primary-counters .ops-counter{
  min-width:0!important;
  min-height:76px!important;
  padding:8px 10px!important;
  gap:2px!important;
  border-radius:10px!important;
}
.dashboard-status-counters.compact-ops-primary-counters .ops-counter span{
  overflow:hidden;
  font-size:8px!important;
  line-height:1.15!important;
  letter-spacing:.045em!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-status-counters.compact-ops-primary-counters .ops-counter b{
  font-size:24px!important;
  line-height:1!important;
}
.dashboard-status-counters.compact-ops-primary-counters .ops-counter small{
  overflow:hidden;
  font-size:7.5px!important;
  line-height:1.2!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:1500px){
  .dashboard-status-counters.compact-ops-primary-counters{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media(max-width:900px){
  .dashboard-status-counters.compact-ops-primary-counters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:560px){
  .dashboard-status-counters.compact-ops-primary-counters{
    grid-template-columns:1fr!important;
  }
}

/* ===== Versione 4.25.0: suggerimenti automatici e soglie intelligenti ===== */
.tools-module.intelligent{border-color:#4c4f91;background:linear-gradient(135deg,#171f44,#111d36)}
.tools-module.intelligent .tools-module-icon{color:#b7adff;border-color:#555a9e;background:#222951}
.auto-alarm-page{width:min(1600px,calc(100% - 24px));margin:18px auto 40px}
.auto-alarm-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.auto-alarm-counters>div{padding:12px 14px;border:1px solid #29435f;border-radius:10px;background:#101d31}
.auto-alarm-counters span,.auto-alarm-counters b{display:block}.auto-alarm-counters span{color:#87a7c6;font-size:9px;text-transform:uppercase}.auto-alarm-counters b{margin-top:5px;font-size:23px}
.auto-alarm-panel{padding:0;overflow:hidden}
.auto-alarm-head,.auto-alarm-row{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(180px,.8fr) minmax(300px,1.35fr) 110px minmax(260px,.9fr);gap:12px;align-items:center}
.auto-alarm-head{padding:10px 13px;background:#192e4d;color:#86a9cc;font-size:8px;text-transform:uppercase}
.auto-alarm-row{min-height:74px;padding:10px 13px;border-top:1px solid #29435f}
.auto-alarm-row b,.auto-alarm-row small{display:block}.auto-alarm-row small{margin-top:4px;color:#8ca7c1;font-size:9px}
.auto-state{display:inline-flex;justify-content:center;min-width:88px;padding:5px 8px;border-radius:999px;background:#263c59;color:#b8cce2;font-size:8px;font-weight:900}
.auto-state.learning{background:#54451b;color:#ffe18a}.auto-state.active{background:#174d3e;color:#68e0b0}.auto-state.manual{background:#24436b;color:#9dc9ff}.auto-state.ignored{background:#3e3541;color:#b7a9ba}
.auto-alarm-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.auto-alarm-actions form{margin:0}.auto-alarm-actions button,.auto-alarm-actions .button{min-height:30px;padding:5px 9px;font-size:9px}
@media(max-width:1100px){.auto-alarm-head{display:none}.auto-alarm-row{grid-template-columns:1fr 1fr}.auto-alarm-actions{justify-content:flex-start}.auto-alarm-counters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.auto-alarm-page{width:calc(100% - 16px)}.auto-alarm-row{grid-template-columns:1fr}.auto-alarm-counters{grid-template-columns:1fr}}

/* Generatore automatico sinottici da dipendenze */
.concept-generator-dialog{border:0;padding:0;background:transparent;max-width:min(620px,calc(100vw - 28px));width:100%;color:var(--text)}
.concept-generator-dialog::backdrop{background:rgba(3,10,19,.78);backdrop-filter:blur(2px)}
.concept-generator-card{background:#0f2032;border:1px solid #36536f;border-radius:12px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.concept-generator-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.concept-generator-head h2{margin:0 0 5px;font-size:19px}.concept-generator-head p{margin:0;color:#a9bfd3;font-size:13px}
.concept-generator-card label{display:block;margin:12px 0;color:#dbeaf6}.concept-generator-card select{width:100%;margin-top:6px}
.concept-generator-check{display:flex!important;align-items:center;gap:9px}.concept-generator-check input{width:auto;margin:0}
.concept-generator-note{padding:11px 12px;border:1px solid #294965;border-radius:8px;background:#0a1928;color:#a9bfd3;font-size:12px;line-height:1.45}
.concept-generator-result{margin-top:12px;padding:10px 12px;border-radius:8px;background:#172a3d;color:#dbeaf6;font-size:13px}.concept-generator-result.ok{border:1px solid #2b8a68}.concept-generator-result.error{border:1px solid #b64753;color:#ffd9dd}
.concept-generator-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}


/* ===== v4.26.1: direzione dipendenze più leggibile ===== */
.dependency-direction-legend{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #315979;border-radius:7px;background:#0d2539;color:#dcefff;font:700 10px/1.1 "Lucida Console",monospace;white-space:nowrap}
.dependency-direction-legend b{color:#4db6ff;font-size:16px;line-height:8px}.dependency-direction-legend strong{color:#4db6ff;letter-spacing:-2px;font-size:14px}
.dependency-view-legend{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 10px;padding:8px 12px;border:1px solid #294d69;border-radius:8px;background:#0d2133;color:#e7f4ff;font:700 11px/1.2 "Lucida Console",monospace}
.dependency-view-legend small{margin-left:10px;color:#9fb8cc;font-weight:400}.dependency-source-dot{width:10px;height:10px;border-radius:50%;background:#4db6ff;border:2px solid #07111f;box-shadow:0 0 0 1px #4db6ff}.dependency-line-sample{color:#4db6ff;font-size:16px;letter-spacing:-2px}
@media(max-width:850px){.dependency-direction-legend{display:none}.dependency-view-legend{flex-wrap:wrap}.dependency-view-legend small{width:100%;margin:2px 0 0;text-align:center}}

/* Gestione operativa: percorsi completi e salvataggio dipendenze senza ricarico pagina */
.operations-resource-cell b { display:block; }
.operations-resource-cell small {
  display:block;
  margin-top:4px;
  max-width:430px;
  color:#91b7e6;
  font-size:11px;
  font-weight:400;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
}
.dependency-form { align-items:center; }
.dependency-form select { min-width:0; }
.dependency-save-status {
  min-width:54px;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.dependency-save-status.ok { color:#55d994; }
.dependency-save-status.error { color:#ff657d; }

/* v4.26.4 - ricerca dipendenze per nome/percorso/IP */
.dependency-search-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:300px}
.dependency-search-input{width:100%;min-height:34px;margin:0;padding-right:34px}
.dependency-clear-button{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:25px;height:25px;min-height:0;padding:0;border:0;background:transparent;color:#91abc4;font-size:20px;line-height:1;cursor:pointer}
.dependency-clear-button:hover{color:#fff;background:#263d59}
.dependency-form{min-width:520px}
@media(max-width:900px){.dependency-form{min-width:420px}.dependency-search-wrap{min-width:240px}}


/* ===== Versione 4.26.7: albero rete più leggibile, ridimensionabile e contenuto nel viewport ===== */
:root{
  --network-tree-width:370px;
}

.monitor-layout{
  grid-template-columns:var(--network-tree-width) minmax(0,1fr)!important;
  align-items:start!important;
  overflow:visible!important;
}

.compact-monitor-tree-panel{
  position:relative!important;
  width:var(--network-tree-width)!important;
  min-width:var(--network-tree-width)!important;
  max-width:var(--network-tree-width)!important;
  min-height:0!important;
  overflow:hidden!important;
}

.compact-monitor-tree-panel .tree-root{
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}

.compact-monitor-tree-panel .tree-name{
  font-size:11px!important;
  line-height:1.25!important;
}

.compact-monitor-tree-panel .tree-row{
  min-height:33px!important;
}

.network-tree-resize-handle{
  top:0!important;
  right:-9px!important;
  width:18px!important;
  height:100%!important;
  z-index:1000!important;
  cursor:col-resize!important;
  pointer-events:auto!important;
}

.network-tree-resize-handle::before{
  left:7px!important;
  width:4px!important;
}

.workspace-header .monitor-toolbar>div>h1{
  margin-bottom:0!important;
}

@media(max-width:900px){
  .monitor-layout{grid-template-columns:1fr!important}
  .compact-monitor-tree-panel{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  .network-tree-resize-handle{display:none!important}
}

/* ===== Versione 4.26.8: albero sempre contenuto nel viewport ===== */
body.network-page{
  overflow:hidden!important;
}
body.network-page main{
  height:calc(100dvh - 64px)!important;
  min-height:0!important;
  overflow:hidden!important;
}
body.network-page .monitor-layout{
  min-height:0!important;
  overflow:hidden!important;
}
body.network-page .compact-monitor-tree-panel{
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
  align-self:stretch!important;
}
body.network-page .compact-monitor-tree-panel .tree-title,
body.network-page .compact-monitor-tree-panel .tree-search{
  flex:0 0 auto!important;
}
body.network-page .compact-monitor-tree-panel .tree-root{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
body.network-page .monitor-detail-panel{
  min-height:0!important;
  max-height:100%!important;
  overflow:auto!important;
  box-sizing:border-box!important;
}
@media(max-width:900px){
  body.network-page{overflow:auto!important}
  body.network-page main{height:auto!important;overflow:visible!important}
  body.network-page .monitor-layout{height:auto!important;max-height:none!important;overflow:visible!important}
  body.network-page .compact-monitor-tree-panel{height:min(520px,65dvh)!important;max-height:min(520px,65dvh)!important}
  body.network-page .monitor-detail-panel{max-height:none!important;overflow:visible!important}
}

/* ===== Versione 4.26.9: scorrimento albero affidabile senza bloccare la pagina ===== */
body.network-page{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
body.network-page main{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
body.network-page .monitor-layout{
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  overflow:visible!important;
  align-items:start!important;
}
body.network-page .compact-monitor-tree-panel{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
}
body.network-page .compact-monitor-tree-panel .tree-title,
body.network-page .compact-monitor-tree-panel .tree-search{
  flex:0 0 auto!important;
}
body.network-page .compact-monitor-tree-panel .tree-root{
  display:block!important;
  flex:none!important;
  min-height:0!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}
body.network-page .monitor-detail-panel{
  max-height:none!important;
  overflow:visible!important;
}
@media(max-width:900px){
  body.network-page .compact-monitor-tree-panel{
    height:min(520px,65dvh)!important;
    max-height:min(520px,65dvh)!important;
  }
  body.network-page .compact-monitor-tree-panel .tree-root{
    height:auto!important;
    max-height:none!important;
    flex:1 1 auto!important;
    overflow-y:auto!important;
  }
}

/* ===== Versione 4.26.10: scorrimento verticale indipendente dell'albero ===== */
body.network-page .compact-monitor-tree-panel{
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr)!important;
  min-height:0!important;
  overflow:hidden!important;
}
body.network-page .compact-monitor-tree-panel .tree-title,
body.network-page .compact-monitor-tree-panel .tree-search{
  min-height:0!important;
}
body.network-page .compact-monitor-tree-panel .tree-root{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch!important;
  outline:none!important;
}
body.network-page .compact-monitor-tree-panel .tree-root:focus-visible{
  box-shadow:inset 0 0 0 1px #5faeff!important;
}
@media(max-width:900px){
  body.network-page .compact-monitor-tree-panel{
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    height:min(520px,65dvh)!important;
    max-height:min(520px,65dvh)!important;
  }
  body.network-page .compact-monitor-tree-panel .tree-root{
    height:100%!important;
    min-height:0!important;
    overflow-y:auto!important;
  }
}

/* ===== Versione 4.26.11: altezza reale e scroll definitivo dell'albero ===== */
@media(min-width:901px){
  body.network-page .compact-monitor-tree-panel{
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.network-page .compact-monitor-tree-panel .tree-title,
  body.network-page .compact-monitor-tree-panel .tree-search{
    flex:0 0 auto!important;
    min-height:0!important;
  }
  body.network-page .compact-monitor-tree-panel .tree-root{
    display:block!important;
    flex:1 1 0%!important;
    width:100%!important;
    height:0!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    scrollbar-gutter:stable!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    box-sizing:border-box!important;
  }
}


/* ===== Versione 4.26.12: albero ancorato al viewport, scroll nativo ===== */
@media(min-width:901px){
  body.network-page .monitor-layout{
    align-items:start!important;
    min-height:0!important;
  }

  body.network-page .compact-monitor-tree-panel{
    position:sticky!important;
    top:70px!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    height:var(--network-tree-viewport-height, calc(100dvh - 190px))!important;
    min-height:240px!important;
    max-height:var(--network-tree-viewport-height, calc(100dvh - 190px))!important;
    overflow:hidden!important;
    align-self:start!important;
    contain:layout paint!important;
  }

  body.network-page .compact-monitor-tree-panel .tree-title,
  body.network-page .compact-monitor-tree-panel .tree-search{
    position:relative!important;
    z-index:2!important;
    min-height:0!important;
    overflow:visible!important;
  }

  body.network-page .compact-monitor-tree-panel .tree-root{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-gutter:stable!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* ===== Versione 4.26.13: pagina Rete apparati contenuta nel viewport ===== */
@media(min-width:901px){
  body.network-page{
    height:100dvh!important;
    overflow:hidden!important;
  }

  body.network-page main{
    height:calc(100dvh - 64px)!important;
    min-height:0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.network-page .workspace-header{
    flex:0 0 auto!important;
  }

  body.network-page .monitor-layout{
    height:var(--network-layout-viewport-height, calc(100dvh - 180px))!important;
    min-height:240px!important;
    max-height:var(--network-layout-viewport-height, calc(100dvh - 180px))!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }

  body.network-page .compact-monitor-tree-panel{
    position:relative!important;
    top:auto!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    align-self:stretch!important;
  }

  body.network-page .monitor-detail-panel{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    box-sizing:border-box!important;
  }
}


/* ===== Versione 4.26.14: Dashboard ed Eventi contenuti nel viewport ===== */
@media(min-width:901px){
  body.dashboard-page,
  body.events-page{
    height:100dvh!important;
    overflow:hidden!important;
  }

  body.dashboard-page main,
  body.events-page main{
    height:calc(100dvh - 64px)!important;
    min-height:0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.dashboard-page .ops-dashboard{
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.dashboard-page .dashboard-clean-header,
  body.dashboard-page .dashboard-status-counters,
  body.dashboard-page .ops-system-strip{
    flex:0 0 auto!important;
  }

  body.dashboard-page .dashboard-clean-header{
    min-height:0!important;
    margin-bottom:10px!important;
  }

  body.dashboard-page .dashboard-clean-header h1{
    margin-bottom:0!important;
  }

  body.dashboard-page .ops-grid{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:hidden!important;
    align-items:stretch!important;
  }

  body.dashboard-page .ops-panel{
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.dashboard-page .ops-panel-head{
    flex:0 0 auto!important;
  }

  body.dashboard-page .current-alarms-list,
  body.dashboard-page .recent-changes-list{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
  }

  body.events-page .events-page-shell{
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  body.events-page .events-page-toolbar,
  body.events-page .events-period-filter{
    flex:0 0 auto!important;
  }

  body.events-page .events-register-v2{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
    box-sizing:border-box!important;
  }

  body.events-page .events-register-head{
    position:sticky!important;
    top:0!important;
    z-index:4!important;
    background:#14243e!important;
  }
}

@media(max-width:900px){
  body.dashboard-page,
  body.events-page{
    height:auto!important;
    overflow:auto!important;
  }

  body.dashboard-page main,
  body.events-page main,
  body.dashboard-page .ops-dashboard,
  body.events-page .events-page-shell{
    height:auto!important;
    overflow:visible!important;
  }

  body.dashboard-page .ops-grid,
  body.dashboard-page .ops-panel,
  body.dashboard-page .current-alarms-list,
  body.dashboard-page .recent-changes-list,
  body.events-page .events-register-v2{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
}

/* ===== Versione 4.26.15: pannello anomalie ad altezza dinamica ===== */
@media(min-width:901px){
  body.dashboard-page .ops-grid{
    align-items:start!important;
  }

  body.dashboard-page .alarm-panel{
    height:auto!important;
    min-height:0!important;
    max-height:100%!important;
    align-self:start!important;
  }

  body.dashboard-page .alarm-panel .current-alarms-list{
    flex:0 1 auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 455px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  body.dashboard-page .changes-panel{
    height:100%!important;
    align-self:stretch!important;
  }
}

/* ===== Versione 4.26.16: barra superiore più sobria e professionale ===== */
.main-header.compact-main-header{
  min-height:64px!important;
  height:64px!important;
  grid-template-columns:210px minmax(0,1fr) 205px!important;
  gap:18px!important;
  padding:0 18px!important;
  background:#0a1728!important;
  border-bottom:1px solid #28445f!important;
  box-shadow:0 3px 14px rgba(0,0,0,.20)!important;
}
.compact-main-header .brand-area{
  height:40px!important;
  display:flex!important;
  align-items:center!important;
  padding-right:18px!important;
  border-right:1px solid rgba(111,151,190,.22)!important;
}
.compact-main-header .brand-link{gap:2px!important}
.compact-main-header .brand-link strong{
  font-size:15px!important;
  line-height:1!important;
  letter-spacing:.075em!important;
}
.compact-main-header .brand-link span{
  font-size:7px!important;
  letter-spacing:.18em!important;
  color:#68a9e4!important;
}
.compact-main-nav{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  justify-content:stretch!important;
  gap:18px!important;
  overflow:visible!important;
}
.compact-main-nav .main-nav-primary,
.compact-main-nav .main-nav-secondary{
  gap:3px!important;
  overflow:visible!important;
}
.compact-main-nav .main-nav-primary{justify-content:flex-start!important}
.compact-main-nav .main-nav-secondary{
  justify-content:flex-end!important;
  padding-left:14px!important;
  border-left:1px solid rgba(100,139,178,.20)!important;
}
.compact-main-nav .nav-item{
  min-height:38px!important;
  height:38px!important;
  padding:0 12px!important;
  border:1px solid transparent!important;
  border-radius:7px!important;
  color:#aebfd2!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:11px!important;
  font-weight:650!important;
  transition:background .14s ease,border-color .14s ease,color .14s ease!important;
}
.compact-main-nav .nav-item:hover{
  color:#eef6ff!important;
  background:#112640!important;
  border-color:#294b6d!important;
  transform:none!important;
}
.compact-main-nav .nav-item.active{
  color:#f3f8ff!important;
  background:#18385c!important;
  border-color:#477aa9!important;
  box-shadow:inset 0 -2px #68aef0!important;
}
.compact-main-nav .nav-item.active::after{display:none!important}
.compact-main-nav .nav-icon{
  width:16px!important;
  height:16px!important;
  font-size:13px!important;
  color:#69a9e5!important;
  opacity:.95!important;
}
.compact-main-nav .logout-item{
  margin-left:2px!important;
  padding-left:12px!important;
  border-left-color:transparent!important;
}
.header-poller{
  width:205px!important;
  min-width:205px!important;
  max-width:205px!important;
  min-height:42px!important;
  height:42px!important;
  padding:6px 11px!important;
  gap:9px!important;
  border-radius:10px!important;
  background:#0d2036!important;
  border-color:#365b7d!important;
  box-shadow:none!important;
}
.header-poller-led{
  width:10px!important;
  height:10px!important;
}
.header-poller-copy b{font-size:11px!important;font-weight:750!important}
.header-poller-copy small{font-size:9px!important;color:#93abc2!important}
.header-poller.ok{
  background:#0d2929!important;
  border-color:#16725f!important;
}
.header-poller.busy{background:#10253d!important;border-color:#416f9a!important}
.header-poller.error{background:#301b25!important;border-color:#873744!important}
.header-poller.stopped{background:#202936!important;border-color:#657383!important}

@media(max-width:1450px){
  .main-header.compact-main-header{
    height:auto!important;
    min-height:64px!important;
    grid-template-columns:180px minmax(0,1fr) 190px!important;
    gap:10px!important;
    padding:0 12px!important;
  }
  .header-poller{width:190px!important;min-width:190px!important;max-width:190px!important}
  .compact-main-nav{gap:8px!important}
  .compact-main-nav .nav-item{padding:0 9px!important;font-size:10.5px!important}
}
@media(max-width:1120px){
  .main-header.compact-main-header{
    height:auto!important;
    grid-template-columns:180px minmax(0,1fr)!important;
    padding:8px 12px!important;
  }
  .compact-main-nav{grid-template-columns:1fr!important;gap:6px!important}
  .compact-main-nav .main-nav-secondary{border-left:0!important;padding-left:0!important;justify-content:flex-start!important}
  .header-poller{grid-column:2!important;grid-row:1!important;justify-self:end!important}
}
@media(max-width:760px){
  .main-header.compact-main-header{display:flex!important;height:auto!important;padding:10px!important}
  .compact-main-header .brand-area{width:100%!important;height:auto!important;padding:0 0 8px!important;border-right:0!important;border-bottom:1px solid rgba(109,151,194,.20)!important}
  .compact-main-nav{display:flex!important;width:100%!important;overflow-x:auto!important}
  .compact-main-nav .main-nav-primary,.compact-main-nav .main-nav-secondary{overflow-x:visible!important}
  .header-poller{width:100%!important;min-width:0!important;max-width:none!important}
}

/* ===== Versione 4.26.17: navigazione Lucide e titolo pagina nella barra ===== */
.main-header.compact-main-header{
  grid-template-columns:250px minmax(0,1fr) 198px!important;
  height:60px!important;
  min-height:60px!important;
  padding:0 16px!important;
  gap:14px!important;
}
.compact-main-header .page-brand-area{
  height:42px!important;
  min-width:0!important;
  padding-right:16px!important;
}
.compact-main-header .page-brand-link{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:2px!important;
  text-decoration:none!important;
}
.compact-main-header .page-brand-link strong{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:15px!important;
  line-height:1.05!important;
  letter-spacing:.045em!important;
  color:#f3f7fc!important;
}
.compact-main-header .page-brand-link span{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:7px!important;
  line-height:1!important;
  letter-spacing:.16em!important;
  color:#63a9ea!important;
}
.compact-main-nav .nav-item{
  height:36px!important;
  min-height:36px!important;
  padding:0 11px!important;
  font-size:10px!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  gap:8px!important;
}
.compact-main-nav .nav-icon.lucide-icon{
  width:15px!important;
  min-width:15px!important;
  height:15px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  color:#67afea!important;
  opacity:1!important;
}
.compact-main-nav .nav-item.active .lucide-icon{color:#8bc7ff!important}
.compact-main-nav .nav-caret{font-size:9px!important;margin-left:-3px!important}
.header-poller{
  width:198px!important;
  min-width:198px!important;
  max-width:198px!important;
  height:40px!important;
  min-height:40px!important;
  border-radius:8px!important;
}
.header-poller-copy b{text-transform:uppercase!important;letter-spacing:.025em!important;font-size:10px!important}
.header-poller-copy small{font-size:8.5px!important}

/* Il titolo principale ora vive nella barra superiore. */
body.dashboard-page .ops-header,
body.network-page .workspace-header .monitor-toolbar{
  display:none!important;
}
body.dashboard-page main{padding-top:16px!important}
body.network-page main{padding-top:14px!important}
body.events-page .events-page-toolbar.compact-page-actions{
  min-height:34px!important;
  margin:0 0 10px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.events-inline-status{font-size:9px!important;color:#7fa9ce!important;letter-spacing:.04em!important}
.concept-list-toolbar.compact-page-actions{
  min-height:40px!important;
  margin-bottom:10px!important;
}

@media(max-width:1450px){
  .main-header.compact-main-header{grid-template-columns:220px minmax(0,1fr) 185px!important}
  .header-poller{width:185px!important;min-width:185px!important;max-width:185px!important}
  .compact-main-nav .nav-item{padding:0 8px!important;font-size:9.5px!important;gap:6px!important}
}


/* ===== Versione 4.26.18: divisore albero a tutta altezza e navbar più leggibile ===== */
.compact-monitor-tree-panel{
  position:relative!important;
}
.compact-monitor-tree-panel > .network-tree-resize-handle{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  right:-10px!important;
  width:20px!important;
  height:auto!important;
  min-height:100%!important;
  z-index:1200!important;
  pointer-events:auto!important;
  cursor:col-resize!important;
  touch-action:none!important;
}
.compact-monitor-tree-panel > .network-tree-resize-handle::before{
  content:"";
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:8px!important;
  width:4px!important;
  height:auto!important;
  border-radius:4px!important;
  background:transparent!important;
  transition:background .15s ease!important;
}
.compact-monitor-tree-panel > .network-tree-resize-handle:hover::before,
.compact-monitor-tree-panel > .network-tree-resize-handle.is-dragging::before,
body.network-tree-resizing .compact-monitor-tree-panel > .network-tree-resize-handle::before{
  background:rgba(83,169,244,.58)!important;
}

/* Un piccolo aumento, mantenendo la barra compatta. */
.compact-main-nav .nav-item{
  font-size:11.5px!important;
  gap:8px!important;
}
.compact-main-nav .nav-icon,
.compact-main-nav .lucide-icon{
  width:17.5px!important;
  height:17.5px!important;
  min-width:17.5px!important;
  stroke-width:1.9!important;
}
.compact-main-header .page-brand-link strong{
  font-size:16px!important;
}
.compact-main-header .page-brand-link span{
  font-size:7.5px!important;
}
@media(max-width:1450px){
  .compact-main-nav .nav-item{font-size:10.5px!important;gap:7px!important}
  .compact-main-nav .nav-icon,
  .compact-main-nav .lucide-icon{width:16.5px!important;height:16.5px!important;min-width:16.5px!important}
}
@media(max-width:900px){
  .compact-monitor-tree-panel > .network-tree-resize-handle{display:none!important}
}


/* ===== Versione 4.26.19: registro eventi più pulito ===== */
.events-period-quick .button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
body.events-page .events-page-toolbar:empty{display:none!important;}

/* v4.26.21 - stato risorsa senza badge duplicato */
.detail-header{justify-content:flex-start!important;}
.detail-state-value{display:inline-flex!important;align-items:center;gap:7px;}
.detail-state-value::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 16%,transparent);}
.detail-state-value.ok{color:var(--ok)!important;}
.detail-state-value.alarm{color:var(--alarm)!important;}
.detail-state-value.unreachable,.detail-state-value.warning{color:var(--unreachable)!important;}
.detail-state-value.fault{color:var(--fault)!important;}
.detail-state-value.unknown{color:var(--muted)!important;}

/* v4.26.22 - glyph centrati geometricamente nei badge evento */
.current-alarm-icon,.recent-change-icon,.event-level-icon{line-height:0!important}
.status-glyph{display:block;width:56%;height:56%;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;transform:none}
.current-alarm-icon .status-glyph{width:54%;height:54%}
.recent-change-icon .status-glyph,.event-level-icon .status-glyph{width:58%;height:58%}


/* ===== Versione 4.26.23b: pagina modifica apparato più professionale ===== */
.node-edit-page .inline-delete-form{display:none}
.node-edit-page .secondary-danger{background:#3b2430!important;border:1px solid #8f485a!important;color:#ffd7dd!important}
.node-edit-page .secondary-danger:hover{background:#4b2b39!important;border-color:#b05b70!important}
.node-edit-page .ghost-danger{background:#2f2130!important;border:1px solid #6f4658!important;color:#ffd6de!important}
.node-edit-page .ghost-danger:hover{background:#422839!important}
.node-edit-page .ping-edit-card{padding:12px!important;border:1px solid #34506f;background:linear-gradient(180deg,#11243b 0%,#0e1a2d 100%)}
.node-edit-page .ping-check-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #243b57}
.node-edit-page .ping-check-head h3{margin:0;font-size:18px}
.node-edit-page .ping-check-head p{margin:4px 0 0;color:#8ca3bb;font-size:11px;line-height:1.4}
.node-edit-page .ping-check-head .badge{align-self:flex-start;min-width:92px;justify-content:center}
.node-edit-page .ping-settings-grid{display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(4,minmax(110px,.6fr));gap:10px 12px;align-items:end}
.node-edit-page .ping-settings-grid .ping-name-field{grid-column:1/3}
.node-edit-page .ping-settings-grid .ping-inline-check{align-self:center;min-height:40px;display:flex;align-items:center;padding:0 2px;margin:0!important}
.node-edit-page .ping-message-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.node-edit-page .ping-message-grid textarea{min-height:92px!important}
.node-edit-page .ping-actions-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}
.node-edit-page .ping-actions-row .inline-save-note{color:#8ea7be;font-size:11px}
.node-edit-page .ping-actions-row .ghost-danger{margin-left:auto}
@media(max-width:1180px){
  .node-edit-page .ping-settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .node-edit-page .ping-settings-grid .ping-name-field{grid-column:1/-1}
}
@media(max-width:760px){
  .node-edit-page .ping-message-grid,
  .node-edit-page .ping-settings-grid{grid-template-columns:1fr}
  .node-edit-page .ping-actions-row{flex-direction:column;align-items:stretch}
  .node-edit-page .ping-actions-row .ghost-danger{margin-left:0}
}


/* ===== Versione 4.26.24a: pagina utenti - scroll e selezione massiva ===== */
.user-edit-form{max-width:1100px;padding-bottom:14px}
.user-edit-form .form-grid{align-items:end}
.user-form .user-form-actions{margin-top:16px;gap:14px;flex-wrap:wrap;justify-content:flex-start}
.user-form .user-form-actions button{min-width:150px}
.permission-panel{display:flex;flex-direction:column;min-height:0}
.permission-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:14px 14px 12px;background:#172846}
.permission-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:min(100%,430px)}
.permission-tools input{width:min(100%,340px);max-width:100%}
.permission-bulk-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.button.small,.permission-bulk-actions .button{padding:9px 12px;min-height:auto;font-size:12px}
.permission-list{max-height:min(52vh,560px);overflow:auto;padding:8px 8px 12px;scrollbar-gutter:stable both-edges;overscroll-behavior:contain}
.permission-row{min-height:48px;padding:10px 12px;border-radius:8px;border-bottom:1px solid rgba(255,255,255,.04)}
.permission-row:hover{background:#142640}
.permission-row input[type="checkbox"]{justify-self:center}
.permission-panel-head h2{margin:0}
.permission-panel-head p{margin:4px 0 0;color:var(--text-soft);font-size:11px}
.permission-kind{font-size:9px;font-weight:800;color:#85a8d2;letter-spacing:.04em}
@media (max-width: 860px){
  .permission-panel-head{flex-direction:column;align-items:stretch}
  .permission-tools{align-items:stretch;min-width:0}
  .permission-tools input{width:100%}
  .permission-bulk-actions{justify-content:stretch}
  .permission-bulk-actions .button{flex:1 1 180px}
}

/* v4.27.0 security: logout POST mantiene lo stile navbar */
.nav-logout-form{margin:0;padding:0;display:flex}
.nav-logout-button{font:inherit;border:0;cursor:pointer;background:transparent}

/* ===== Versione 4.27.1: mappa risorse professionale ===== */
.professional-resource-map{height:calc(100vh - 82px);min-height:520px;border:1px solid #29415e;border-radius:12px;background:#0d1727}
.resource-map-marker-wrap{background:transparent!important;border:0!important}
.resource-map-marker{position:relative;width:34px;height:38px;display:grid;place-items:center;border-radius:18px 18px 18px 7px;transform:rotate(45deg);border:2px solid rgba(255,255,255,.88);box-shadow:0 3px 10px rgba(2,9,19,.34),0 0 0 3px rgba(9,20,35,.30)}
.resource-map-marker svg{width:19px;height:19px;transform:rotate(-45deg);fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.resource-map-marker.status-ok{background:#159b70}
.resource-map-marker.status-alarm{background:#d83a52}
.resource-map-marker.status-unreachable{background:#d69b20}
.resource-map-marker.status-fault{background:#d66d2f}
.resource-map-marker.status-unknown{background:#66758a}
.resource-marker-count{position:absolute;right:-8px;top:-8px;transform:rotate(-45deg);min-width:19px;height:19px;padding:0 4px;border-radius:10px;display:grid;place-items:center;background:#0b1525;color:#fff;border:1px solid rgba(255,255,255,.88);font-size:9px;font-weight:800;line-height:1}
.resource-leaflet-popup .leaflet-popup-content-wrapper{border-radius:10px;background:#101d31;color:#dce8f4;border:1px solid #36516f;box-shadow:0 12px 28px rgba(0,0,0,.34);padding:0;overflow:hidden}
.resource-leaflet-popup .leaflet-popup-content{margin:0;width:auto!important;min-width:320px}
.resource-leaflet-popup .leaflet-popup-tip{background:#101d31;border-right:1px solid #36516f;border-bottom:1px solid #36516f}
.resource-leaflet-popup .leaflet-popup-close-button{top:8px!important;right:8px!important;width:28px!important;height:28px!important;border-radius:6px;color:#9eb4c9!important;font-size:20px!important;line-height:25px!important}
.resource-leaflet-popup .leaflet-popup-close-button:hover{background:#1b304a;color:#fff!important}
.resource-map-popup{font-family:inherit;font-size:12px}
.map-popup-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 42px 12px 14px;background:#142741;border-bottom:1px solid #2a4564}
.map-popup-heading>div{display:grid;gap:2px;min-width:0}
.map-popup-kicker{font-size:8px;font-weight:800;letter-spacing:.11em;color:#65b7ff}
.map-popup-title{font-size:15px;color:#f1f6fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-site-status,.map-device-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:9px;font-weight:700;text-transform:uppercase}
.map-site-status i,.map-device-status i{width:8px;height:8px;border-radius:50%;display:inline-block;background:#6e7c8e}
.map-site-status.status-ok i,.map-device-status.status-ok i{background:#2ac98f}
.map-site-status.status-alarm i,.map-device-status.status-alarm i{background:#ff5268}
.map-site-status.status-unreachable i,.map-device-status.status-unreachable i{background:#e9b13c}
.map-site-status.status-fault i,.map-device-status.status-fault i{background:#ff8846}
.map-site-status.status-unknown i,.map-device-status.status-unknown i{background:#8491a1}
.map-popup-summary{display:flex;justify-content:space-between;gap:10px;padding:8px 14px;color:#8fa9c1;font-size:10px;border-bottom:1px solid #243b56}
.map-popup-problems{color:#f5bd59}
.map-device-list{max-height:270px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.map-device-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;color:#dce8f4!important;text-decoration:none!important;border-bottom:1px solid #213853}
.map-device-row:hover{background:#182d48}
.map-device-main{display:grid;gap:2px;min-width:0}
.map-device-main strong{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-device-main small{font-size:9px;color:#7fa9cc}
.map-popup-empty{padding:18px 14px;color:#8fa9c1;text-align:center}
.map-popup-open{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#112239;color:#71bfff!important;text-decoration:none!important;font-weight:700}
.map-popup-open:hover{background:#19304b;color:#a8d8ff!important}
.leaflet-tooltip{background:#0f1d30!important;color:#e5edf5!important;border:1px solid #36516f!important;box-shadow:0 4px 12px rgba(0,0,0,.25)!important;font-family:inherit!important;font-size:10px!important}
.leaflet-tooltip-top:before{border-top-color:#36516f!important}
@media(max-width:760px){.professional-resource-map{height:calc(100vh - 72px);min-height:440px}.resource-leaflet-popup .leaflet-popup-content{min-width:270px}.map-popup-heading{flex-direction:column}.map-site-status{align-self:flex-start}}

/* ===== v4.28.0: motore sinottici NOC ===== */
.noc-synoptic-view{padding:10px 14px 14px}
.noc-synoptic-toolbar{margin-bottom:7px!important;gap:14px}
.noc-synoptic-toolbar h1{margin:2px 0 0;font-size:22px}
.noc-synoptic-toolbar p{margin:3px 0 0;color:#8fa8bf;font-size:10px}
.noc-view-actions{gap:6px!important}
.noc-mode-switch{display:flex;align-items:center;gap:5px;padding:4px;border:1px solid #29445f;border-radius:9px;background:#0a1727}
.noc-mode-switch button{min-height:30px!important;padding:6px 10px!important;font-size:9px!important}
.noc-mode-switch button.active{background:#245d8f!important;border-color:#64b7f4!important;color:#fff!important}
.noc-synoptic-legend{display:flex;align-items:center;gap:15px;min-height:30px;margin:0 0 7px;padding:5px 10px;border:1px solid #263f59;border-radius:8px;background:#0d1b2d;color:#b9cbda;font-size:9px}
.noc-synoptic-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.noc-synoptic-legend small{margin-left:auto;color:#718ca6}
.noc-synoptic-legend .state-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#8291a5}
.noc-synoptic-legend .state-dot.ok{background:#39c995}.noc-synoptic-legend .state-dot.alarm{background:#ff536c}.noc-synoptic-legend .state-dot.unreachable{background:#e9b93f}.noc-synoptic-legend .state-dot.fault{background:#ff8b3e}
.noc-synoptic-view .concept-view-shell{height:calc(100vh - 142px);min-height:520px;border-color:#29445f;background:#07111f}
.concept-generator-note strong{color:#dcefff}
@media(max-width:1000px){.noc-synoptic-legend{overflow-x:auto}.noc-synoptic-legend small{display:none}.noc-synoptic-toolbar{align-items:flex-start}.noc-view-actions{justify-content:flex-end}}

/* ===== v4.28.2 editor sinottici a due livelli ===== */
.editor-mode-switch{display:inline-flex;gap:4px;padding:3px;border:1px solid #29445f;border-radius:8px;background:#0d1a2c}
.editor-mode-switch .secondary{min-width:86px}
.editor-mode-switch .secondary.active{background:#2d6da8;border-color:#6bbcff;color:#fff;box-shadow:inset 0 -2px #8fd1ff}

/* ===== v4.28.4: dipendenze modificabili dal sinottico ===== */
.concept-dependency-properties{margin-top:12px;padding:12px;border:1px solid #294663;border-radius:10px;background:#0e1d31;display:grid;gap:10px}
.concept-dependency-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid #253e59}
.concept-dependency-head>div{display:grid;gap:2px}.concept-dependency-head b{font-size:13px}.concept-dependency-head small{font-size:9px;color:#8fa8c0;line-height:1.35}
.concept-dependency-save-state{font-size:9px;color:#75c9ff;white-space:nowrap}
.concept-dependency-properties label{margin:0!important;font-size:10px;color:#a8bdd0}
.concept-dependency-properties input[type="search"]{margin-top:5px!important;min-height:34px!important;padding:7px 9px!important;font-size:11px!important}
.concept-dependency-current{padding:8px 9px;border-radius:7px;background:#112740;border:1px solid #294a68;color:#dbeaff;font-size:10px;line-height:1.35;word-break:break-word}
.concept-dependency-results{max-height:210px;overflow:auto;border:1px solid #294663;border-radius:8px;background:#091726;padding:4px;display:grid;gap:3px;scrollbar-gutter:stable}
.concept-dependency-result{display:grid!important;gap:2px!important;text-align:left!important;width:100%;min-height:42px!important;padding:7px 8px!important;border-radius:6px!important;background:#102139!important;border:1px solid transparent!important;color:#eaf4ff!important}
.concept-dependency-result:hover{background:#18304b!important;border-color:#3b6386!important}.concept-dependency-result b{font-size:10px}.concept-dependency-result small{font-size:8px;color:#8eabc4;white-space:normal;line-height:1.3}
.concept-dependency-empty{padding:10px;color:#8198ac;font-size:10px}
.concept-dependency-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.concept-dependency-actions button{min-height:34px!important;padding:7px 8px!important;font-size:10px!important}
.concept-dependents-block{padding-top:8px;border-top:1px solid #253e59}.concept-dependents-title{font-size:9px;color:#7fb8e7;text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}
.concept-dependents-list{display:grid;gap:4px;max-height:150px;overflow:auto}.concept-dependent-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:7px!important;align-items:center;text-align:left!important;background:#102139!important;border:1px solid #294663!important;border-radius:6px!important;padding:6px 8px!important;min-height:32px!important;color:#dcecff!important}
.concept-dependent-item:hover{border-color:#4b789d!important;background:#17304a!important}.concept-dependent-item span{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.concept-dependent-item small{font-size:8px;color:#80a3bf;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
