:root{
  --cream:#FEFEF7;
  --blue:#1C2F48;
  --blue-2:#233B58;
  --orange:#F05223;
  --black:#000000;
  --white:#FFFFFF;
  --surface:#FFFFFF;
  --soft:#F5F6F2;
  --soft-blue:#EEF3F8;
  --line:#DCE2E5;
  --muted:#667487;
  --green:#20A35A;
  --green-bg:#E4F7EA;
  --red:#D22C2C;
  --red-bg:#FDE9E9;
  --amber:#C78200;
  --amber-bg:#FFF2D8;
  --gray:#778393;
  --gray-bg:#E9EDF1;
  --charge:#2288C9;
  --charge-bg:#E3F3FD;
  --discharge:#E9792D;
  --discharge-bg:#FFF0E5;
  --radius:12px;
  --shadow:0 8px 28px rgba(28,47,72,.06);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--cream);color:var(--blue);font-family:"Alexandria","Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.35}
body{min-width:320px}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.num{font-variant-numeric:tabular-nums}
.strong{font-weight:650;color:var(--blue)}
.muted{color:var(--muted)}
.small{font-size:12px}
code{font:12px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;background:#EDF1F2;color:#24445F;padding:2px 6px;border-radius:4px;word-break:break-all}

/* App frame */
.portal-shell{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--blue);color:#EAF0F5;padding:22px 14px 14px;display:flex;flex-direction:column;overflow-y:auto}
.sidebar-brand{display:flex;flex-direction:column;gap:8px;padding:0 8px 24px}
.sidebar-brand img{width:166px;height:auto;display:block;transform:translateY(-3px)}
.sidebar-brand span{font-size:13px;font-weight:600;color:#FFF;letter-spacing:.01em}
.nav-group-title{font-size:10px;letter-spacing:.08em;color:#92A2B3;margin:15px 8px 7px;text-transform:uppercase}
.nav-list{display:flex;flex-direction:column;gap:3px}
.nav-item{display:flex;align-items:center;gap:11px;color:#C7D2DC;padding:10px 11px;border-radius:8px;font-size:13px;transition:.12s ease}
.nav-item:hover{background:rgba(255,255,255,.07);color:#FFF}
.nav-item.active{background:var(--orange);color:#FFF;font-weight:650}
.nav-icon{width:20px;height:20px;display:grid;place-items:center;font-weight:700;font-size:16px;line-height:1}
.nav-separator{height:1px;background:rgba(255,255,255,.12);margin:16px 8px 8px}
.sidebar-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:16px 7px 9px;border-top:1px solid rgba(255,255,255,.12)}
.avatar{width:38px;height:38px;border-radius:50%;background:#E4EAF0;color:var(--blue);display:grid;place-items:center;font-weight:650}
.sidebar-user-copy{display:flex;flex-direction:column;min-width:0}.sidebar-user-copy strong{font-size:12px;color:#FFF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-copy span{font-size:11px;color:#9EADBC}
.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;padding:5px 8px 0;font-size:10px;color:#8495A7}.sidebar-logout{border:0;background:transparent;color:#AFC0CF;padding:4px}.sidebar-logout:hover{color:#FFF}
.main-shell{min-width:0;background:#F7F9F8}
.topline{display:none}
.content{max-width:1700px;margin:0 auto;padding:24px 24px 50px}

/* Typography / page */
.eyebrow{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
h1,h2,h3,h4{margin:0;color:var(--blue);line-height:1.08;font-weight:600}
h1{font-size:29px}h2{font-size:19px}h3{font-size:15px}h4{font-size:13px}
p{margin:6px 0 0;color:var(--muted)}
.page-title-row,.project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-title-row>div:first-child,.project-head>div:first-child{min-width:0}.project-head.compact{margin-bottom:13px}.project-head-status,.project-head-actions{padding-top:7px}.crumb{margin:0 0 8px}.crumb a{font-size:12px;color:#53708A}.crumb a:hover{color:var(--orange)}

/* Inputs/buttons */
input,select,textarea{width:100%;border:1px solid #CCD5DC;background:#FFF;color:var(--blue);border-radius:7px;min-height:38px;padding:8px 10px;outline:none}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#8BA1B5;box-shadow:0 0 0 3px rgba(28,47,72,.07)}
label>span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 13px;border:1px solid #C8D2DA;border-radius:7px;background:#FFF;color:var(--blue);font-weight:650;white-space:nowrap}
.btn:hover{background:#F2F5F7}.btn.primary{background:var(--blue);border-color:var(--blue);color:#FFF}.btn.primary:hover{background:#263E5B}.small-btn{min-height:32px;padding:5px 9px;font-size:11px}
.form-stack{display:flex;flex-direction:column;gap:13px}.form-grid{display:grid;gap:11px}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four-col{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.form-grid.five-col{grid-template-columns:repeat(5,minmax(0,1fr)) auto}.form-grid.six-col{grid-template-columns:repeat(6,minmax(0,1fr)) auto}.form-grid.align-end{align-items:end}.span-all{grid-column:1/-2}.checkline{display:flex;align-items:center;gap:8px;min-height:38px}.checkline input{width:auto;min-height:auto;accent-color:var(--orange)}.checkline>span{margin:0;color:var(--blue)}.field-explain{display:flex;flex-direction:column;justify-content:center}.field-explain strong{font-size:18px}.field-explain span{font-size:11px;color:var(--muted)}.form-section+ .form-section{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.form-section h2{margin-bottom:13px}.form-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.form-panel{max-width:1200px}
.inline-form{display:flex;align-items:center;gap:6px}.inline-form input,.inline-form select{min-width:100px;min-height:32px;padding:5px 7px}.flash{background:#FFF0E8;border:1px solid #F7B89F;border-left:4px solid var(--orange);color:#663C2B;padding:12px 14px;border-radius:8px;margin-bottom:16px;white-space:pre-wrap;word-break:break-word}

/* Generic panels */
.panel{background:#FFF;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.section-space{margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}.two-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.compact-grid{gap:12px}.empty-state{padding:24px;color:var(--muted);text-align:center}.info-note{background:#FFF5EF;border-left:3px solid var(--orange);padding:10px 12px;color:#625149;font-size:12px;margin:10px 0}.resolution-note{margin:12px 4px;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.live-pulse,.refresh-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 0 3px rgba(32,163,90,.12)}

/* Badges/status */
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:5px 8px;font-size:11px;line-height:1;font-weight:600;white-space:nowrap}.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge.large{padding:7px 10px;font-size:12px}.badge.ok{color:#158347;background:var(--green-bg)}.badge.warn{color:#A76500;background:var(--amber-bg)}.badge.bad{color:#C62222;background:var(--red-bg)}.badge.off{color:#5F6E7D;background:var(--gray-bg)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 9px}.dot.ok{background:var(--green)}.dot.warn{background:var(--amber)}.dot.bad{background:var(--red)}.dot.off{background:#8B99A8}
.mode-badge{display:inline-flex;align-items:center;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:600;white-space:nowrap}.mode-badge.charge{color:#146A9E;background:var(--charge-bg)}.mode-badge.discharge{color:#A94E13;background:var(--discharge-bg)}.mode-badge.idle{color:#3F657F;background:#EAF1F6}.mode-badge.offline,.mode-badge.unknown{color:#5F6E7D;background:var(--gray-bg)}

/* Overview */
.overview-tools{display:flex;gap:8px;align-items:center}.searchbox{display:flex;align-items:center;gap:8px;background:#FFF;border:1px solid #CCD5DC;border-radius:7px;padding:0 10px;min-width:285px}.searchbox input{border:0;box-shadow:none;padding-left:0}.searchbox input:focus{box-shadow:none}.searchbox.compact-search{min-width:250px}.summary-row{display:flex;justify-content:flex-end;gap:8px;margin:-6px 0 14px}.summary-card{min-width:82px;height:64px;border-radius:9px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:9px 11px;background:#FFF;border:1px solid var(--line)}.summary-card .summary-icon{grid-row:1/3;font-size:16px;margin-right:7px}.summary-card strong{font-size:19px;line-height:1}.summary-card>span:last-child{font-size:10px;color:var(--muted);align-self:start}.summary-card.green{background:var(--green-bg);border-color:#D5F1DE;color:#188A4B}.summary-card.gray{background:var(--gray-bg);color:#607080}.summary-card.red{background:var(--red-bg);border-color:#F7D5D5;color:#C62222}.summary-card.plain strong{grid-row:1/2}.summary-card.plain span{grid-column:1/3}.project-list-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto;width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:10px;color:#56687A;font-weight:650;background:#FBFCFD;white-space:nowrap}td{font-size:12px;color:#41556A}tbody tr:last-child td{border-bottom:0}.project-table tbody tr:hover{background:#FAFCFD}.project-link{display:flex;align-items:center;gap:9px;color:var(--blue)}.row-arrow{font-size:23px;color:#314B66}.capacity-cell{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:3px 8px;align-items:center;min-width:130px}.soc-text{font-size:10px;color:var(--muted);justify-self:end}.progress{grid-column:1/3;height:8px;border-radius:20px;background:#E8EDF1;overflow:hidden}.progress i{display:block;height:100%;border-radius:inherit;background:var(--green)}

/* Tabs */
.tabs-line{display:flex;gap:28px;align-items:center;border-bottom:1px solid var(--line);margin:0 0 15px;padding:0 16px}.tabs-line a{font-size:12px;color:#5D7084;padding:10px 0 9px;border-bottom:3px solid transparent;margin-bottom:-1px}.tabs-line a:hover{color:var(--blue)}.tabs-line a.active{color:var(--blue);font-weight:650;border-color:var(--orange)}

/* Project detail */
.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.kpi-box{background:#FFF;border:1px solid var(--line);border-radius:10px;padding:13px 15px;min-height:94px}.kpi-box>span{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.kpi-box>strong{display:block;font-size:23px;margin-top:6px;color:var(--blue)}.kpi-box>strong small{font-size:12px}.kpi-box>em{display:block;font-size:10px;font-style:normal;color:var(--muted);margin-top:7px}.detail-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}.info-grid{display:grid;grid-template-columns:1fr 1fr}.info-grid>div,.info-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.info-grid>div:nth-last-child(-n+2){border-bottom:0}.info-grid span,.info-list span{font-size:11px;color:var(--muted)}.info-grid strong,.info-list strong{font-size:12px;text-align:right;color:var(--blue)}.period-chip,.resolution-chip,.category-chip{font-size:10px;color:#536C84;border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:#F8FAFB}.rte-big{font-size:38px;font-weight:700;color:var(--blue);margin:4px 0 14px}.rte-big small{font-size:15px}.rte-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rte-values div{background:#F8FAFB;padding:9px;border-radius:7px}.rte-values span{display:block;font-size:10px;color:var(--muted)}.rte-values strong{font-size:12px}.footnote{font-size:10px}.cabinet-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.cabinet-summary-card{background:#FFF;border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:var(--shadow)}.cabinet-summary-card:hover{border-color:#B9C6CF;transform:translateY(-1px)}.cabinet-summary-top{display:flex;justify-content:space-between;gap:10px}.cabinet-summary-top>div{display:flex;flex-direction:column}.cabinet-summary-top strong{font-size:14px}.cabinet-summary-top span:not(.badge){font-size:10px;color:var(--muted);margin-top:2px}.cabinet-mini-layout{height:120px;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#F2F5F6;border-radius:8px;padding:9px}.mini-rack,.mini-boxes{background:#29333A;border:3px solid #58636C;border-radius:4px;padding:5px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.battery-slab{height:9px;border-radius:2px;background:#101417;border-left:5px solid var(--green)}.battery-slab.alarm{border-left-color:var(--red)}.box-slab{height:14px;border-radius:2px;background:#4B5359;color:#D9E2E7;font-style:normal;font-size:8px;display:flex;align-items:center;padding-left:5px;border-left:4px solid var(--green)}.box-slab.warn{border-left-color:var(--amber)}.box-slab.bad{border-left-color:var(--red)}.box-slab.off{border-left-color:#8B99A8}.mini-placeholder{color:#AEB8BE;font-size:10px;margin:auto}.cabinet-summary-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cabinet-summary-metrics div{display:flex;flex-direction:column}.cabinet-summary-metrics span{font-size:9px;text-transform:uppercase;color:var(--muted)}.cabinet-summary-metrics strong{font-size:12px;margin-top:2px}#historyChart{display:block;width:100%;height:270px;background:#FFF;border:1px solid var(--line);border-radius:8px}.chart-legend{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:var(--muted)}.legend-line{display:inline-block;width:22px;height:2px;background:var(--blue);vertical-align:middle;margin-right:6px}.alarm-list{display:flex;flex-direction:column;gap:8px}.alarm-row{display:flex;gap:10px;align-items:center;background:var(--red-bg);border-radius:7px;padding:10px}.alarm-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#FFF;font-weight:700}.alarm-row>div{display:flex;flex-direction:column}.alarm-row strong{font-size:12px;color:#A91F1F}.alarm-row span{font-size:10px;color:#8F5A5A}.ok-message{display:flex;align-items:center;gap:10px;color:#197B48;padding:18px}.ok-message>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--green-bg);font-weight:700}

/* Cabinet detail / rack visualization */
.cabinet-detail-layout{display:grid;grid-template-columns:minmax(370px,1.1fr) minmax(350px,.95fr) minmax(270px,.65fr);gap:12px;align-items:start}.battery-panel,.pixiibox-panel,.cabinet-info-panel{min-height:500px}.soc-big{font-size:11px;color:var(--muted)}.soc-big strong{font-size:20px;color:var(--blue);margin-left:7px}.soc-bar{height:8px;background:#E4EAEE;border-radius:8px;margin:-3px 0 12px;overflow:hidden}.soc-bar i{display:block;height:100%;background:var(--green);border-radius:inherit}.battery-rack{display:grid;gap:10px;background:#242B30;border:5px solid #596268;border-bottom-width:10px;padding:10px;border-radius:5px;min-height:285px;box-shadow:inset 0 0 0 2px #111}.battery-rack.columns-1{grid-template-columns:1fr}.battery-rack.columns-2{grid-template-columns:1fr 1fr}.battery-column{display:flex;flex-direction:column;gap:5px}.battery-module{min-height:42px;background:#11171B;border:1px solid #545E65;border-radius:3px;display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;padding:6px 8px;color:#E7EDF1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}.battery-led{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 5px rgba(32,163,90,.7)}.battery-module.alarm .battery-led{background:var(--red)}.battery-module-main{display:flex;flex-direction:column}.battery-module-main strong{font-size:10px;color:#FFF}.battery-module-main span{font-size:8px;color:#8999A4}.battery-module-values{display:flex;flex-direction:column;text-align:right}.battery-module-values strong{font-size:10px;color:#FFF}.battery-module-values span{font-size:8px;color:#9CADB7}.battery-empty{margin:auto;color:#A7B2B9;text-align:center;font-size:11px}.battery-detail-table{margin-top:12px}.pixiibox-stack{display:flex;flex-direction:column;gap:9px}.pixiibox-card{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:8px;padding:10px;background:#FCFDFD}.pixiibox-card.warn{border-left-color:var(--amber)}.pixiibox-card.bad{border-left-color:var(--red)}.pixiibox-card.off{border-left-color:#8B99A8}.pixiibox-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.pixiibox-id{display:flex;align-items:center;gap:7px}.pixiibox-id strong{font-size:12px}.pixiibox-body{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:8px;padding-top:7px;border-top:1px solid var(--line)}.pixiibox-body div{display:flex;justify-content:space-between;gap:8px}.pixiibox-body span{font-size:9px;color:var(--muted)}.pixiibox-body strong{font-size:10px}.cabinet-events{margin-top:12px;display:flex;flex-direction:column;gap:5px}.cabinet-events div{font-size:10px;color:#A82929;background:var(--red-bg);padding:7px;border-radius:6px}.cabinet-events span{display:inline-grid;width:18px;height:18px;place-items:center;background:var(--red);color:#FFF;border-radius:50%;margin-right:6px;font-weight:700}

/* Administration */
.admin-stat-grid{display:grid;grid-template-columns:repeat(3,150px);gap:10px;margin:12px 0 17px}.mini-admin-stat{background:#FFF;border:1px solid var(--line);border-radius:9px;padding:12px}.mini-admin-stat strong{display:block;font-size:22px}.mini-admin-stat span{font-size:10px;color:var(--muted)}.admin-tabs{overflow-x:auto;white-space:nowrap}.admin-section{display:none}.admin-section.active{display:block}.source-config,.cabinet-config-card{border:1px solid var(--line);border-radius:9px;padding:13px;margin-top:12px;background:#FBFCFD}.source-config-head,.cabinet-config-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.source-config-head>div,.cabinet-config-head>div{display:flex;flex-direction:column}.source-config-head span:not(.badge),.cabinet-config-head span:not(.badge){font-size:10px;color:var(--muted)}.mapping-list{margin-top:12px}.form-divider{height:1px;background:var(--line);margin:18px 0}.endpoint-inline{display:flex;flex-direction:column;text-align:right}.endpoint-inline strong{font-size:16px}.endpoint-inline span{font-size:10px;color:var(--muted)}.chip-list{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 10px}.component-chip{font-size:9px;background:#EEF2F4;color:#4A6175;border-radius:20px;padding:5px 8px}.access-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.access-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:7px;padding:7px 10px}.access-row .checkline span{display:flex;flex-direction:column}.access-row small{color:var(--muted)}.role-cards{display:flex;flex-direction:column;gap:9px}.role-cards div{border-left:3px solid var(--orange);padding:8px 10px;background:#FAFBFC}.role-cards strong{display:block;font-size:12px}.role-cards span{font-size:10px;color:var(--muted)}.alarm-project-list{display:flex;flex-direction:column;gap:9px}.alarm-project-card{display:flex;justify-content:space-between;align-items:center}.alarm-project-card>div{display:flex;flex-direction:column}.alarm-project-card span:not(.badge){font-size:10px;color:var(--muted)}

/* Login */
.login-page{min-height:100vh;display:grid;place-items:center;background:var(--cream);padding:20px}.login-panel{width:min(430px,100%);box-shadow:var(--shadow)}.login-brand{background:var(--blue);border-radius:12px 12px 0 0;padding:20px 24px;color:#FFF}.login-brand img{width:220px;display:block;transform:translateY(-2px)}.login-brand div{font-size:11px;margin-top:8px;color:#C8D3DD;letter-spacing:.07em}.login-card{background:#FFF;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:23px}.login-card h1{font-size:22px;margin-bottom:18px}.alert{padding:10px;border-radius:7px;margin-bottom:12px}.alert.bad{background:var(--red-bg);color:#B82424}

@media(max-width:1250px){.cabinet-detail-layout{grid-template-columns:1fr 1fr}.cabinet-info-panel{grid-column:1/-1}.form-grid.four-col,.form-grid.five-col,.form-grid.six-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four-col button,.form-grid.five-col button,.form-grid.six-col button{grid-column:auto}.span-all{grid-column:1/-1}}
@media(max-width:1000px){.portal-shell{grid-template-columns:185px minmax(0,1fr)}.sidebar-brand img{width:145px}.content{padding:20px 16px 40px}.kpi-strip{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.overview-tools{flex-wrap:wrap}.project-table{min-width:980px}}
@media(max-width:760px){.portal-shell{display:block}.sidebar{position:relative;height:auto;min-height:0}.nav-list{flex-direction:row;overflow-x:auto}.nav-group-title,.nav-separator,.sidebar-user,.sidebar-bottom{display:none}.sidebar-brand{padding-bottom:10px}.sidebar-brand span{display:none}.content{padding:16px 12px 35px}.page-title-row,.project-head{flex-direction:column}.summary-row{justify-content:flex-start;overflow-x:auto}.overview-tools{width:100%}.searchbox{min-width:0;flex:1}.kpi-strip{grid-template-columns:1fr 1fr}.cabinet-detail-layout{grid-template-columns:1fr}.cabinet-info-panel{grid-column:auto}.form-grid.two-col,.form-grid.three-col,.form-grid.four-col,.form-grid.five-col,.form-grid.six-col{grid-template-columns:1fr}.span-all{grid-column:auto}.two-panel-grid{grid-template-columns:1fr}.tabs-line{gap:16px;overflow-x:auto;white-space:nowrap}.battery-rack.columns-2{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.kpi-strip{grid-template-columns:1fr}.summary-card{min-width:76px}.battery-rack.columns-2{grid-template-columns:1fr}.rte-values{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}}
.mode-sub{font-size:9px;color:var(--muted);margin-top:3px}.info-grid strong .mode-sub{display:block;text-align:right;font-weight:400}

/* 0.3.1 – clean project system information layout */
.kpi-strip-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.system-overview-card{min-width:0}
.system-info-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.system-info-group{padding:0 18px 4px;min-width:0}
.system-info-group+.system-info-group{border-left:1px solid var(--line)}
.system-info-group-title{padding:12px 0 8px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:600}
.system-info-row{display:grid;grid-template-columns:minmax(105px,.85fr) minmax(0,1.15fr);align-items:center;column-gap:16px;min-height:40px;border-top:1px solid var(--line)}
.system-info-row>span{font-size:11px;color:var(--muted);white-space:nowrap}
.system-info-row>strong{font-size:12px;color:var(--blue);font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere}
.system-info-row .badge,.system-info-row .mode-badge{vertical-align:middle}
@media(max-width:1200px){.system-info-grid{grid-template-columns:1fr 1fr}.system-info-group:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.system-info-group:nth-child(2){border-left:1px solid var(--line)}}
@media(max-width:760px){.kpi-strip-three{grid-template-columns:1fr}.system-info-grid{grid-template-columns:1fr}.system-info-group+.system-info-group,.system-info-group:nth-child(2),.system-info-group:nth-child(3){border-left:0;border-top:1px solid var(--line);grid-column:auto}.system-info-row{grid-template-columns:1fr auto;column-gap:12px}}
/* ENERGICO Vision product lockup */
.sidebar-brand>span,.topline-brand>span{display:flex;flex-direction:column;line-height:1.05}
.sidebar-brand>span strong,.topline-brand>span strong{font-size:13px;font-weight:600}
.sidebar-brand>span small,.topline-brand>span small{font-size:8px;font-weight:400;letter-spacing:.03em;opacity:.75;margin-top:3px}

/* --------------------------------------------------------------------------
   ENERGICO Vision 0.4.2
   -------------------------------------------------------------------------- */
.summary-card.amber{background:var(--amber-bg);border-color:#F2D9A5;color:#A76500}
.summary-static .summary-card{cursor:default}
.sortable-table th[data-sort]{cursor:pointer;user-select:none;transition:.12s ease}
.sortable-table th[data-sort]:hover{background:#F1F4F6;color:var(--blue)}
.sortable-table th.sort-active{color:var(--blue);background:#EEF3F8}
.sortable-table th i{display:inline-block;min-width:12px;margin-left:4px;color:var(--orange);font-style:normal}
.kpi-strip-four{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Cabinet layout: physical battery rack + aggregate PixiiBox overview */
.cabinet-hero{padding:16px}
.cabinet-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:14px;background:#FBFCFD}
.cabinet-kpis>div{padding:11px 14px;min-width:0}
.cabinet-kpis>div+div{border-left:1px solid var(--line)}
.cabinet-kpis span:not(.badge){display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cabinet-kpis strong{display:block;margin-top:4px;font-size:17px;color:var(--blue);font-variant-numeric:tabular-nums}
.cabinet-hardware-layout{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(300px,.9fr) minmax(260px,.65fr);gap:14px;align-items:stretch}
.hardware-zone{min-width:0;border:1px solid var(--line);border-radius:10px;background:#FFF;padding:14px}
.hardware-zone-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.hardware-zone-head>span{font-size:10px;color:var(--muted);white-space:nowrap}
.hardware-zone .soc-bar.large{position:relative;height:18px;margin:0 0 12px;background:#E9EEF0}
.hardware-zone .soc-bar.large span{position:absolute;inset:0;display:grid;place-items:center;font-size:9px;color:var(--blue);font-weight:650}
.battery-rack.visual{height:500px;min-height:500px;align-items:stretch;padding:12px;border-radius:6px;background:#20272C;border:6px solid #56616A;border-bottom-width:12px}
.battery-rack.visual.columns-2{grid-template-columns:1fr 1fr}
.battery-rack.visual.columns-1{grid-template-columns:1fr}
.battery-column.physical-column{display:flex;flex-direction:column;justify-content:flex-end;gap:5px;min-width:0}
.battery-module.visual{min-height:38px;padding:5px 7px;display:block}
.battery-front{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%}
.rack-direction-note{margin-top:8px;font-size:9px;color:var(--muted);text-align:center}
.pixiibox-aggregate.summary-only{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.pixiibox-aggregate.summary-only>div{border:1px solid var(--line);border-radius:8px;background:#F8FAFB;padding:10px;min-height:66px}
.pixiibox-aggregate.summary-only span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.pixiibox-aggregate.summary-only strong{display:block;margin-top:5px;color:var(--blue);font-size:14px}
.pixiibox-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;margin-top:10px}
.pixiibox-slot{min-height:43px;border:1px solid #CBD4DA;border-radius:6px;background:#EEF2F4;display:flex;align-items:center;justify-content:center;gap:5px;font-size:9px;color:#42566A}
.slot-led{width:7px;height:7px;border-radius:50%;background:#8897A5}.slot-led.ok{background:var(--green)}.slot-led.warn{background:var(--amber)}.slot-led.bad{background:var(--red)}
.info-note.compact-note{font-size:10px;margin-top:10px}
.hardware-missing{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:var(--muted);background:#F8FAFB;border:1px dashed #C9D2D8;border-radius:8px;padding:18px}
.hardware-missing strong{color:var(--blue)}

/* Fixed project history */
.operational-history-module{overflow:hidden}
.operational-toolbar{display:flex;gap:4px;margin:-2px 0 10px;flex-wrap:wrap}
.operational-toolbar button{border:1px solid var(--line);background:#FFF;color:#52677B;border-radius:6px;padding:5px 9px;font-size:10px;min-height:29px}
.operational-toolbar button:hover{background:#F2F5F7}.operational-toolbar button.active{background:var(--blue);border-color:var(--blue);color:#FFF}
.history-canvas-wrap{position:relative;min-height:390px;border:1px solid var(--line);border-radius:8px;background:#FFF;overflow:hidden}
.history-canvas-wrap.loading::after{content:"Načítám data…";position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.82);color:var(--muted);font-size:11px;z-index:5}
.history-canvas-wrap canvas{display:block;width:100%;height:390px}
.history-tooltip{position:absolute;z-index:10;min-width:230px;max-width:330px;background:rgba(28,47,72,.96);color:#FFF;padding:9px 10px;border-radius:7px;box-shadow:0 8px 24px rgba(28,47,72,.2);pointer-events:none;font-size:10px}
.history-tooltip>strong{display:block;margin-bottom:6px;font-size:11px}.history-tooltip>div{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;padding:2px 0}.history-tooltip i{width:7px;height:7px;border-radius:50%}.history-tooltip b{font-variant-numeric:tabular-nums}
.operational-legend,.history-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:9px;font-size:10px;color:var(--muted)}
.operational-legend span,.history-legend span{display:flex;align-items:center;gap:6px}.operational-legend i,.history-legend i{width:22px;height:2px;display:inline-block;background:#777}.operational-legend .line-grid{background:#000}.operational-legend .line-bess{background:var(--blue)}.operational-legend .line-soc{background:#6E7781}.operational-legend .line-demand{height:0;border-top:2px dashed var(--orange);background:transparent}
.history-help{font-size:10px;color:var(--muted);margin-top:8px}
.analysis-collapsed{padding:0;overflow:hidden}.analysis-collapsed>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px}.analysis-collapsed>summary::-webkit-details-marker{display:none}.analysis-collapsed>summary>span:first-child{display:flex;flex-direction:column}.analysis-collapsed>summary b{font-size:12px}.analysis-collapsed>summary small{font-size:9px;color:var(--muted);margin-top:2px}.analysis-collapsed>summary>span:last-child{font-size:10px;color:var(--muted)}.analysis-body{border-top:1px solid var(--line);padding:12px 14px 14px}
.history-toolbar.compact-history-toolbar{display:flex;gap:6px;align-items:end;flex-wrap:wrap;margin-bottom:7px}.compact-history-toolbar label{width:auto;min-width:140px}.compact-history-toolbar select{min-height:31px;height:31px;padding:4px 7px;font-size:10px}.compact-history-toolbar .metric-picker{min-width:260px;flex:1}.compact-history-toolbar .btn{min-height:31px}.compact-series{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.compact-series .history-series-row{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#F8FAFB;border-radius:20px;padding:4px 6px;font-size:9px}.compact-series .series-swatch{width:7px;height:7px;border-radius:50%}.compact-series .series-copy span{display:none}.compact-series .series-copy strong{font-size:9px}.compact-series label{display:flex;align-items:center;gap:3px}.compact-series label>span{display:none}.compact-series select{width:auto;min-width:48px;min-height:25px;height:25px;padding:2px 4px;font-size:9px}.icon-btn{border:0;background:transparent;color:#6F7C88;padding:1px 4px;font-size:14px}.axis-details{margin:5px 0 8px}.axis-details summary{font-size:10px;color:var(--muted);cursor:pointer}.history-axis-config{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.axis-config-row{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:9px;background:#FBFCFD}.axis-config-row label{display:flex;align-items:center;gap:3px}.axis-config-row input{width:70px;min-height:27px;height:27px;padding:3px 5px}

/* Native read-only Pixii alarm cards */
.native-alert-list{display:flex;flex-direction:column;gap:8px}.native-alert{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;border-radius:8px;padding:11px 12px;border:1px solid var(--line)}.native-alert.alarm{background:var(--red-bg);border-color:#F3CBCB}.native-alert.warning{background:var(--amber-bg);border-color:#F0D8A6}.native-alert-sign{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#FFF;font-weight:700;background:var(--red)}.native-alert.warning .native-alert-sign{background:var(--amber)}.native-alert-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.native-alert-title strong{font-size:13px;color:var(--blue)}.native-alert-location{font-size:10px;color:var(--muted);margin-top:2px}.native-alert p{font-size:11px;color:#4A5967;margin-top:5px}.native-alert-action{margin-top:7px;display:flex;flex-direction:column;border-top:1px solid rgba(28,47,72,.1);padding-top:6px}.native-alert-action span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.native-alert-action strong{font-size:10px;color:var(--blue);font-weight:600}

/* Admin MQTT consolidation / configuration */
.subsection-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:22px 0 9px;padding-top:15px;border-top:1px solid var(--line)}.subsection-head h3{font-size:13px}.subsection-head>span{font-size:9px;color:var(--muted)}.section-space-sm{margin-top:10px}.inline-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.create-mqtt-row{margin-top:9px}.create-mqtt-row input{min-width:180px}.create-mqtt-row select{min-width:180px}.topic-root-chip{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;background:#EDF1F2;color:var(--blue);padding:5px 8px;border-radius:6px}.topic-check-grid{display:flex;flex-direction:column;gap:6px}.topic-check{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#FBFCFD}.topic-check.active{border-left:3px solid var(--green)}.topic-check.stale{border-left:3px solid var(--amber)}.topic-check.missing{border-left:3px solid #9AA6B1}.topic-check-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#EDF1F3;color:var(--blue);font-weight:700}.topic-check-main>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.topic-check-main strong{font-size:11px}.topic-check-main p{font-size:9px;margin:2px 0}.topic-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:8px;color:var(--muted);margin:4px 0}.required-chip,.optional-chip{font-size:8px;border-radius:12px;padding:3px 6px;background:var(--orange);color:#FFF}.optional-chip{background:#E8EDF1;color:#5A6E80}.topic-state{padding-top:1px}.source-card{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:7px;background:#FCFDFD}.source-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.source-card-head>div{display:flex;align-items:center;gap:7px}.param-tools{display:flex;justify-content:flex-end;margin-bottom:7px}.current-parameters-wrap{max-height:430px;border:1px solid var(--line);border-radius:8px}.current-parameters-wrap table thead{position:sticky;top:0;z-index:1}.timeout-config{display:grid;grid-template-columns:1fr 1fr;gap:8px}.setting-checks{display:flex;gap:18px;flex-wrap:wrap}.timeout-preview{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#F8FAFB;border:1px solid var(--line);padding:8px 10px;border-radius:7px;font-size:10px}.timeout-preview span{color:var(--muted)}
.danger-zone{border-color:#E5C7C7}.danger-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.danger-actions>div{border:1px solid var(--line);border-radius:8px;padding:12px}.danger-actions .danger-delete{border-color:#E6BFC0;background:#FFF8F8}.danger-actions strong{font-size:12px}.danger-actions p{font-size:10px}.danger-btn{background:#B82D2D;border-color:#B82D2D;color:#FFF}.danger-btn:hover{background:#9F2424}.delete-user-details summary{cursor:pointer;font-size:10px;color:#B82D2D}.delete-user-details form{margin-top:5px}.delete-user-details input{min-width:150px}

@media(max-width:1200px){.cabinet-hardware-layout{grid-template-columns:1fr 1fr}.cabinet-info-panel{grid-column:1/-1}.kpi-strip-four{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.cabinet-kpis{grid-template-columns:1fr 1fr}.cabinet-kpis>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.cabinet-kpis>div:nth-child(4){border-top:1px solid var(--line)}.cabinet-hardware-layout{grid-template-columns:1fr}.battery-rack.visual{height:430px;min-height:430px}.danger-actions{grid-template-columns:1fr}.timeout-config{grid-template-columns:1fr}.kpi-strip-four{grid-template-columns:1fr}.history-canvas-wrap{min-height:340px}.history-canvas-wrap canvas{height:340px}}
/* Vision 0.4.2 — native alarm overview */
.alarm-project-list.detailed{display:grid;gap:14px}.alarm-project-card.detailed-card{display:block;color:inherit;text-decoration:none}.alarm-project-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.alarm-project-heading>div{display:flex;flex-direction:column;gap:3px}.alarm-project-heading a{color:var(--blue,#1C2F48);text-decoration:none}.alarm-project-heading span:not(.badge){font-size:12px;color:#6b7684}.alarm-preview-list{display:grid;gap:7px;margin-top:14px}.alarm-preview-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:9px 0;border-top:1px solid rgba(28,47,72,.08);color:inherit;text-decoration:none}.alarm-preview-row div{display:flex;flex-direction:column;gap:2px}.alarm-preview-row small{color:#6b7684}

/* ENERGICO Vision 0.4.2 */
.kpi-strip-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.derived-kpi{border-top:3px solid var(--orange)}
.mqtt-password-cell{display:flex;align-items:center;gap:6px;min-width:310px}
.mqtt-password-cell input{min-width:170px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;padding:7px 8px}
.battery-rack.visual{height:520px;min-height:520px}
.battery-column.physical-column{display:grid;grid-template-rows:repeat(9,minmax(0,1fr));gap:4px;align-items:stretch}
.battery-column.physical-column .battery-module.visual{min-height:0;height:100%;align-self:stretch}
.battery-column.physical-column .battery-module.visual:nth-child(1){ }
.battery-module.visual.warning .battery-led{background:var(--amber);box-shadow:0 0 5px rgba(219,144,0,.55)}
.battery-module.visual.alarm .battery-led{background:var(--red)}
.battery-module-values .battery-soc{font-size:11px;color:#fff}
.battery-module-values span{line-height:1.25}
.battery-diag-mini{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.battery-diag-mini .badge{font-size:8px;padding:2px 4px}
.alarm-history-block{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.alarm-history-desc{display:block;max-width:520px;font-size:10px}.alarm-history-desc+small{display:block;color:var(--muted);margin-top:4px;max-width:520px}
@media(max-width:1350px){.kpi-strip-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.kpi-strip-five{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.kpi-strip-five{grid-template-columns:1fr}.mqtt-password-cell{min-width:0;flex-wrap:wrap}.mqtt-password-cell input{width:100%}}
.legacy-password-migrate{display:flex;flex-direction:column;gap:5px;min-width:300px}.legacy-password-migrate .inline-form{display:flex;gap:5px}.legacy-password-migrate input{min-width:160px}

/* ENERGICO Vision 0.4.3 */
.sidebar-brand>span strong{font-size:25px;line-height:1;font-weight:650;letter-spacing:.08em;color:#FFF;margin-top:1px}
.sidebar-brand>span small{font-size:8px;margin-top:6px;letter-spacing:.05em}
.topline-brand>span strong{font-size:18px;letter-spacing:.06em}
.project-page-nav{margin-bottom:16px}
.live-kpi-strip .kpi-grid{border-top:3px solid #D22C2C}.live-kpi-strip .kpi-consumption{border-top:3px solid #6D5CA8}.live-kpi-strip .kpi-bess{border-top:3px solid #2F6FB2}.live-kpi-strip .kpi-energy{border-top:3px solid #20A35A}.live-kpi-strip .kpi-system{border-top:3px solid var(--blue)}
.compact-current-alarms{padding-bottom:13px}

/* Project cabinet overview */
.cabinet-page-title{align-items:end;margin:4px 0 12px}.cabinet-overview-list{display:grid;gap:14px}.cabinet-overview-card{display:block;background:#FFF;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:15px;color:inherit}.cabinet-overview-card:hover{border-color:#AEBBC6;box-shadow:0 10px 28px rgba(28,47,72,.09)}
.cabinet-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.cabinet-overview-head>div{display:flex;flex-direction:column;gap:2px}.cabinet-overview-head strong{font-size:15px}.cabinet-overview-head span:not(.badge){font-size:10px;color:var(--muted)}
.cabinet-overview-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px 0}.cabinet-overview-kpis>div{background:#F8FAFB;border-radius:7px;padding:8px 10px}.cabinet-overview-kpis span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cabinet-overview-kpis strong{display:block;margin-top:3px;font-size:13px;color:var(--blue)}
.cabinet-overview-body{display:grid;grid-template-columns:minmax(410px,1.15fr) minmax(330px,.85fr);gap:12px;min-height:280px}.cabinet-preview-rack,.cabinet-preview-boxes{background:#F5F7F8;border:1px solid #E2E7EA;border-radius:9px;padding:10px}.cabinet-preview-rack{display:flex;flex-direction:column;align-items:center;justify-content:center}.cabinet-preview-rack small{font-size:9px;color:var(--muted);margin-top:5px}.preview-rack-frame{width:min(100%,660px);height:230px;background:#263039;border:5px solid #59666F;border-bottom-width:10px;border-radius:6px;padding:7px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.preview-rack-column{display:grid;grid-template-rows:repeat(9,1fr);gap:3px}.preview-battery{border-radius:3px;background:#F8FBFC;border-left:5px solid var(--green);display:flex;align-items:center;justify-content:space-between;padding:2px 7px;color:#21394F;font-size:8px;min-height:0}.preview-battery.warning{background:#FFF3DC;border-left-color:var(--amber)}.preview-battery.alarm{background:#FDE9E9;border-left-color:var(--red)}.preview-battery.unknown{background:#E8ECEF;border-left-color:#8D99A4}.preview-battery.empty{background:#323E47;border-left-color:#44515A;opacity:.48}.preview-battery strong{font-size:9px}
.cabinet-preview-boxes{display:flex;flex-direction:column}.cabinet-preview-box-summary{display:flex;flex-direction:column;padding-bottom:8px;border-bottom:1px solid var(--line)}.cabinet-preview-box-summary span{font-size:9px;text-transform:uppercase;color:var(--muted)}.cabinet-preview-box-summary strong{font-size:17px;margin-top:2px}.cabinet-preview-box-summary small{font-size:9px;color:var(--muted)}.preview-box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:5px;margin-top:9px}.preview-box{height:34px;border-radius:5px;background:#E9F6EE;border:1px solid #BFDCC9;display:grid;place-items:center;font-style:normal;font-size:9px;font-weight:650}.preview-box.warn{background:#FFF1D8;border-color:#EBCB8C}.preview-box.bad{background:#FBE1E1;border-color:#E5ACAC}.cabinet-preview-events{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.cabinet-preview-events span{font-size:8px;border-radius:12px;padding:4px 6px}.cabinet-preview-events .warning{background:var(--amber-bg);color:#9A6200}.cabinet-preview-events .alarm{background:var(--red-bg);color:#B92727}.cabinet-open-hint{text-align:right;font-size:10px;color:#506B83;margin-top:8px}

/* Cabinet detail – larger, centered and information rich battery rack */
.cabinet-detail-v043{padding:14px}.cabinet-kpis-v043{grid-template-columns:repeat(6,minmax(0,1fr))}.cabinet-hardware-v043{grid-template-columns:minmax(720px,1.7fr) minmax(330px,.72fr) minmax(260px,.58fr);align-items:stretch}.battery-zone-v043{min-height:760px}.battery-rack-v043{width:min(100%,1050px);height:680px;min-height:680px;margin:8px auto 0;padding:12px;gap:8px;align-items:stretch}.battery-rack-v043 .physical-column{gap:5px}.battery-card-v043{height:100%;min-height:0!important;padding:6px 8px!important;background:#F8FBFC!important;border:1px solid #CBD6DE!important;border-left:5px solid var(--green)!important;color:var(--blue)!important;box-shadow:none!important;display:flex!important;flex-direction:column;justify-content:center;gap:4px}.battery-card-v043.warning{background:#FFF4DF!important;border-color:#E9CF9D!important;border-left-color:var(--amber)!important}.battery-card-v043.alarm{background:#FDEAEA!important;border-color:#E7B8B8!important;border-left-color:var(--red)!important}.battery-card-v043.unknown{background:#EDF1F3!important;border-left-color:#8996A2!important;color:#64717D!important}.battery-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.battery-card-head>div{display:flex;align-items:center;gap:6px}.battery-card-head strong{font-size:10px}.battery-state-label{font-size:7px;font-weight:700;letter-spacing:.05em;color:#71808D}.battery-card-main{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.battery-card-main div,.battery-card-cells div{display:flex;justify-content:space-between;gap:4px}.battery-card-main span,.battery-card-cells span{font-size:7px;color:#72808D}.battery-card-main strong{font-size:9px;color:var(--blue)}.battery-card-cells{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding-top:3px;border-top:1px solid rgba(28,47,72,.08)}.battery-card-cells b{font-size:8px;color:#324A61}.battery-card-cells .cell-delta b{color:#7D4D12}.battery-card-extra{display:flex;gap:12px;font-size:7px;color:#657685}.battery-card-alerts{display:flex;gap:3px;flex-wrap:wrap}.battery-card-alerts span{font-size:7px;padding:2px 4px;border-radius:4px}.battery-card-alerts .warning{background:#FFE4A9;color:#8A5700}.battery-card-alerts .alarm{background:#F6C6C6;color:#A61F1F}.battery-slot-empty{border:1px dashed #56636D;border-radius:3px;background:#2C363E;opacity:.4}.box-zone-v043{min-height:760px}.pixiibox-grid-v043{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.pixiibox-grid-v043 .pixiibox-slot{min-height:50px}.cabinet-info-panel{min-height:760px}

/* Operational history */
.operational-legend .line-grid{background:#D22C2C}.operational-legend .line-bess{background:#2F6FB2}.operational-legend .line-soc{background:#20A35A}.operational-legend .line-demand{height:0;border-top:2px dashed #F05223;background:transparent}.history-range-toolbar{align-items:end}.custom-range,.analysis-custom-range{display:flex;gap:5px;align-items:end;flex-wrap:wrap}.custom-range label,.analysis-custom-range label{font-size:9px;color:var(--muted)}.custom-range input,.analysis-custom-range input{min-height:30px;height:30px;padding:4px 6px;font-size:10px;width:180px}.export-actions{display:flex;gap:4px;margin-left:auto}

/* Alarm history filters */
.alarm-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:8px;align-items:end;padding:11px;background:#F8FAFB;border:1px solid var(--line);border-radius:9px;margin-bottom:12px}.alarm-filter-grid input,.alarm-filter-grid select{min-height:34px;height:34px;padding:5px 7px;font-size:10px}.grouped-check{align-self:end}.alarm-filter-actions{display:flex;gap:5px}.custom-alarm-chip{display:block;width:max-content;margin-top:3px;padding:2px 5px;border-radius:4px;background:#EEEAF9;color:#665394;font-size:8px}.alarm-history-page table td{vertical-align:top}
.report-range{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.report-range label{min-width:220px}

@media(max-width:1350px){.cabinet-hardware-v043{grid-template-columns:1fr 1fr}.cabinet-info-panel{grid-column:1/-1;min-height:auto}.battery-zone-v043,.box-zone-v043{min-height:auto}.alarm-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:900px){.cabinet-overview-kpis{grid-template-columns:repeat(3,1fr)}.cabinet-overview-body{grid-template-columns:1fr}.cabinet-hardware-v043{grid-template-columns:1fr}.battery-rack-v043{height:620px;min-height:620px}.cabinet-kpis-v043{grid-template-columns:repeat(3,1fr)}.alarm-filter-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.export-actions{margin-left:0}}
@media(max-width:620px){.cabinet-overview-kpis{grid-template-columns:1fr 1fr}.preview-rack-frame{height:220px}.battery-rack-v043{height:auto;min-height:920px}.battery-card-main{grid-template-columns:1fr 1fr}.battery-card-cells{grid-template-columns:1fr 1fr}.alarm-filter-grid{grid-template-columns:1fr}.cabinet-kpis-v043{grid-template-columns:1fr 1fr}}
.preview-box.aggregate{background:#EEF3F7;border-color:#CCD8E0;color:#4B6175}.slot-led.aggregate{background:#70879A;box-shadow:none}

/* Vision 0.4.3 custom INFO severity */
.native-alert.info{background:#F1F4F7;border-color:#DCE3E8}.native-alert.info .native-alert-sign{background:#6C7A88}

/* ENERGICO Vision 0.4.4 */
/* Main operational graph */
.project-operational-graph{margin:14px 0}.operational-legend .line-consumption{background:#7A5AA6}.excel-profile{display:flex;align-items:center;gap:5px;margin-left:4px}.excel-profile span{font-size:9px;color:var(--muted)}.excel-profile select{height:29px;min-height:29px;padding:3px 24px 3px 7px;font-size:10px;border:1px solid var(--line);border-radius:6px;background:#FFF;color:#52677B}

/* Cabinet detail: hard 2 x 9 geometry, no overflow, more readable colors */
.cabinet-hardware-v043{grid-template-columns:minmax(0,1.58fr) minmax(285px,.72fr) minmax(285px,.64fr);gap:14px;min-width:0}
.battery-zone-v043,.box-zone-v043,.cabinet-info-panel{min-width:0}
.battery-rack-v043{box-sizing:border-box;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:1fr;width:min(100%,1050px);height:680px;min-height:680px;max-height:680px;margin:8px auto 0;padding:12px;gap:8px;overflow:hidden}
.battery-rack-v043 .physical-column{display:grid!important;grid-template-rows:repeat(9,minmax(0,1fr))!important;grid-auto-rows:minmax(0,1fr);gap:5px;min-width:0;min-height:0;overflow:hidden}
.battery-rack-v043 .battery-card-v043,.battery-rack-v043 .battery-slot-empty{box-sizing:border-box;min-width:0;min-height:0!important;height:100%!important;max-height:100%;overflow:hidden}
.battery-card-v043.live{background:#F1FAF5!important;border-color:#BFDCC9!important;border-left-color:#20A35A!important}
.battery-card-v043.warning{background:#FFF2D8!important;border-color:#EBCB8C!important;border-left-color:#D99100!important}
.battery-card-v043.alarm{background:#FCE5E5!important;border-color:#E6AAAA!important;border-left-color:#C92B2B!important}
.battery-card-v043.unknown{background:#EDF1F3!important;border-color:#D2D9DE!important;border-left-color:#8996A2!important}
.battery-card-v043{padding:5px 7px!important;gap:3px!important}.battery-card-head strong{font-size:9px}.battery-state-label{font-size:6.5px}.battery-card-main{gap:4px}.battery-card-main span,.battery-card-cells span{font-size:6.5px}.battery-card-main strong{font-size:8px}.battery-card-cells{gap:4px;padding-top:2px}.battery-card-cells b{font-size:7.5px}.battery-card-extra{gap:10px;font-size:6.5px;white-space:nowrap}.battery-card-alerts{max-height:18px;overflow:hidden;flex-wrap:nowrap}.battery-card-alerts span{font-size:6.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cabinet-info-panel .info-list>div{align-items:flex-start}.cabinet-info-panel .info-list span{flex:0 0 46%}.cabinet-info-panel .info-list strong{flex:1;min-width:0;overflow-wrap:anywhere;white-space:normal}
@media(max-width:1280px){.cabinet-hardware-v043{grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr)}.cabinet-info-panel{grid-column:1/-1;min-height:auto}.battery-zone-v043,.box-zone-v043{min-height:auto}}
@media(max-width:900px){.cabinet-hardware-v043{grid-template-columns:1fr}.battery-rack-v043{height:680px;min-height:680px;max-height:680px}.excel-profile{margin-left:0}}
@media(max-width:620px){.battery-rack-v043{height:760px;min-height:760px;max-height:760px;padding:8px;gap:5px}.battery-rack-v043 .physical-column{gap:3px}.battery-card-main{grid-template-columns:1fr 1fr}.battery-card-cells{grid-template-columns:1fr 1fr}.battery-card-extra{display:none}}

/* ENERGICO Vision 0.4.5 — open battery module layout */
.cabinet-hardware-v043{align-items:start}
.battery-zone-v045{min-width:0;background:#FFF}
.hardware-zone-subtitle{margin:5px 0 0;font-size:10px;color:var(--muted);font-weight:400}
.battery-layout-v045{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;padding:0;background:transparent;border:0;overflow:visible}
.battery-column-v045{display:flex;flex-direction:column;gap:10px;min-width:0}
.battery-module-v045,.battery-slot-empty-v045{box-sizing:border-box;min-width:0;min-height:118px;border-radius:9px}
.battery-module-v045{position:relative;background:#FBFDFC;border:1px solid #C9D8D0;border-left:6px solid #20A35A;padding:12px 14px;color:var(--blue);box-shadow:0 2px 8px rgba(28,47,72,.045);display:flex;flex-direction:column;gap:9px}
.battery-module-v045.live{background:#F5FBF7;border-color:#C7DED0;border-left-color:#20A35A}
.battery-module-v045.warning{background:#FFF8EA;border-color:#E7C889;border-left-color:#D99100}
.battery-module-v045.alarm{background:#FFF0F0;border-color:#E5B3B3;border-left-color:#C92B2B}
.battery-module-v045.unknown{background:#F2F4F5;border-color:#D4DADF;border-left-color:#8996A2;color:#5E6A74}
.battery-v045-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid rgba(28,47,72,.09)}
.battery-v045-title{display:flex;align-items:center;gap:7px}.battery-v045-title strong{font-size:13px;letter-spacing:.01em}
.battery-v045-state{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:8px;font-weight:700;letter-spacing:.05em;background:#E9F6EE;color:#177A44}
.battery-v045-state.warning{background:#FFF0CE;color:#9A6200}.battery-v045-state.alarm{background:#FBE0E0;color:#B32727}.battery-v045-state.unknown{background:#E5E9EC;color:#63717D}
.battery-v045-body{display:grid;grid-template-columns:minmax(92px,.65fr) minmax(0,1.35fr);gap:14px;align-items:center}
.battery-v045-soc{display:flex;flex-direction:column;gap:2px;padding-right:12px;border-right:1px solid rgba(28,47,72,.10)}
.battery-v045-soc span,.battery-v045-primary span,.battery-v045-cells span,.battery-v045-extra span{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:#70808F}
.battery-v045-soc strong{font-size:23px;line-height:1;color:var(--blue)}.battery-v045-soc small{font-size:11px;font-weight:600}
.battery-v045-primary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.battery-v045-primary>div,.battery-v045-cells>div,.battery-v045-extra>div{display:flex;flex-direction:column;gap:2px;min-width:0}.battery-v045-primary strong{font-size:13px}
.battery-v045-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px 0;border-top:1px solid rgba(28,47,72,.08);border-bottom:1px solid rgba(28,47,72,.08)}
.battery-v045-cells strong{font-size:11px;white-space:nowrap}.battery-v045-delta strong{color:#A46600}
.battery-v045-extra{display:grid;grid-template-columns:1fr 1fr;gap:10px}.battery-v045-extra strong{font-size:10px}
.battery-v045-alerts{display:flex;flex-wrap:wrap;gap:5px}.battery-v045-alerts span{display:inline-flex;align-items:center;border-radius:5px;padding:4px 6px;font-size:8px;font-weight:600}.battery-v045-alerts .warning{background:#FFE9B8;color:#865500}.battery-v045-alerts .alarm{background:#F7CCCC;color:#A52222}
.battery-slot-empty-v045{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed #CBD4DA;background:#F7F9FA;color:#8A98A3}.battery-slot-empty-v045 span{font-size:9px;font-weight:650;letter-spacing:.05em}.battery-slot-empty-v045 small{font-size:8px}
.rack-direction-note-v045{margin-top:12px;text-align:center;border-top:1px solid var(--line);padding-top:9px}

/* Cabinet list preview: no dark rack screen */
.cabinet-preview-rack,.cabinet-preview-boxes{background:#FFF}
.preview-rack-frame{height:auto;min-height:250px;background:#F7F9FA;border:1px solid #DCE3E7;border-radius:9px;padding:9px;gap:7px;box-shadow:none}
.preview-rack-column{gap:4px}.preview-battery{min-height:22px;background:#F5FBF7;border:1px solid #D6E3DB;border-left:4px solid #20A35A;border-radius:5px;padding:4px 7px;font-size:8px}.preview-battery.warning{background:#FFF7E6;border-color:#ECD8AA;border-left-color:#D99100}.preview-battery.alarm{background:#FFF0F0;border-color:#E9C3C3;border-left-color:#C92B2B}.preview-battery.unknown{background:#F0F3F5;border-color:#D8DEE2;border-left-color:#8996A2}.preview-battery.empty{background:#F4F6F7;border:1px dashed #CBD4DA;opacity:1}

@media(max-width:1500px){.cabinet-hardware-v043{grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr) minmax(285px,.64fr)}.battery-module-v045{padding:11px 12px}.battery-v045-cells{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1280px){.cabinet-hardware-v043{grid-template-columns:1fr 1fr}.cabinet-info-panel{grid-column:1/-1}.battery-layout-v045{gap:10px}.battery-module-v045{min-height:124px}}
@media(max-width:900px){.cabinet-hardware-v043{grid-template-columns:1fr}.battery-layout-v045{grid-template-columns:1fr 1fr}.battery-module-v045{min-height:128px}}
@media(max-width:680px){.battery-layout-v045{grid-template-columns:1fr}.battery-column-v045{gap:8px}.battery-module-v045,.battery-slot-empty-v045{min-height:126px}.battery-v045-cells{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ENERGICO Vision 0.4.6 — monitoring UX refinements */
/* GRID: canonical + = import from grid, canonical - = export to grid. */
.live-kpi-strip .kpi-grid.import{border-top-color:#D22C2C}.live-kpi-strip .kpi-grid.import>strong,.grid-direction.import{color:#B82424}
.live-kpi-strip .kpi-grid.export{border-top-color:#20A35A}.live-kpi-strip .kpi-grid.export>strong,.grid-direction.export{color:#177A44}
.live-kpi-strip .kpi-grid.idle{border-top-color:#8A96A3}.grid-direction.idle{color:#667487}

/* Calibration status on project overview */
.calibration-overview{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:12px 0 14px;padding:13px 15px;border:1px solid var(--line);border-left:5px solid #20A35A;border-radius:10px;background:#F7FBF8;box-shadow:var(--shadow)}
.calibration-overview.required{background:#FFF8EA;border-color:#E7C889;border-left-color:#D99100}.calibration-overview.running{background:#F0F5FA;border-color:#BCD0E1;border-left-color:#2F6FB2}
.calibration-overview-main{display:flex;align-items:center;gap:12px;min-width:0}.calibration-icon{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:#E7F5EC;color:#177A44;font-size:23px;font-weight:700}.calibration-overview.required .calibration-icon{background:#FFEABF;color:#9A6200}.calibration-overview.running .calibration-icon{background:#E0ECF6;color:#2F6FB2}
.calibration-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.calibration-title-row h3{font-size:14px;margin:1px 0}.calibration-overview p{font-size:10px;margin:3px 0 0;color:#5F7181}.calibration-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:8px;font-weight:700;letter-spacing:.04em;background:#E7F5EC;color:#177A44}.calibration-badge.required{background:#FFEABF;color:#8C5A00}.calibration-badge.running{background:#DDEAF5;color:#245F94}
.calibration-last{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:220px;padding-left:16px;border-left:1px solid rgba(28,47,72,.10)}.calibration-last span{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.calibration-last strong{font-size:12px;color:var(--blue)}.calibration-last small{font-size:9px;color:var(--muted);text-align:right}

/* Operational graph series can be toggled directly in the legend. */
.operational-legend.series-switches{gap:7px}.series-switches .series-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid #D6DEE3;background:#FFF;color:#52677B;border-radius:999px;padding:6px 9px;font:600 9px Alexandria,Arial,sans-serif;cursor:pointer;min-height:29px}.series-switches .series-toggle:hover{border-color:#AEBBC6;background:#F8FAFB}.series-switches .series-toggle.disabled{opacity:.42;background:#F2F4F5}.series-switches .series-toggle small{font-size:7px;font-weight:400;color:#7A8996}.series-switches .series-toggle>i,.grid-dual-swatch i{width:20px;height:2px;display:inline-block;flex:0 0 20px}.series-switches .line-consumption{background:#7A5AA6}.series-switches .line-bess{background:#2F6FB2}.series-switches .line-soc{background:#20A35A}.series-switches .line-demand{height:0;border-top:2px dashed #F05223;background:transparent}.grid-dual-swatch{display:inline-flex;gap:2px;align-items:center}.grid-dual-swatch i{width:10px;flex-basis:10px}.line-grid-import{background:#D22C2C}.line-grid-export{background:#20A35A}

/* Cabinet: no fake individual PixiiBox blocks; aggregated electronics + technical summary. */
.cabinet-hardware-v043{grid-template-columns:minmax(0,1.62fr) minmax(360px,.78fr);gap:14px;align-items:start}.cabinet-side-stack{display:flex;flex-direction:column;gap:14px;min-width:0}.cabinet-side-stack .cabinet-info-panel{grid-column:auto;min-height:auto}.box-summary-v046{min-height:auto}.box-summary-v046 .pixiibox-aggregate{grid-template-columns:1fr 1fr}.battery-card-actions{display:flex;align-items:center;gap:6px}.battery-card-actions form{margin:0}.battery-hide-btn{border:1px solid #CBD5DC;background:#FFF;color:#617484;border-radius:5px;padding:3px 6px;font:600 7px Alexandria,Arial,sans-serif;cursor:pointer}.battery-hide-btn:hover{border-color:#D99100;color:#8C5A00;background:#FFF8EA}

/* Admin battery visibility controls */
.battery-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.battery-admin-list{border:1px solid var(--line);border-radius:8px;padding:10px;background:#FBFCFD}.battery-admin-list h3{font-size:11px;margin:0 0 7px}.battery-admin-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--line)}.battery-admin-row:first-of-type{border-top:0}.battery-admin-row>div{display:flex;flex-direction:column;gap:2px}.battery-admin-row strong{font-size:10px}.battery-admin-row small{font-size:8px;color:var(--muted)}

/* Advanced RTE fallback stays out of the normal Pixii workflow. */
.rte-native-source{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #D5E6DB;background:#F5FBF7;border-radius:8px;padding:10px 12px;margin-bottom:10px}.rte-native-source strong{font-size:11px}.rte-native-source span{font-size:9px;color:#5F7181}.rte-fallback-details{margin-top:9px}.rte-fallback-details summary{cursor:pointer;font-size:10px;font-weight:600;color:#52677B}.rte-fallback-details .form-grid{margin-top:10px}

@media(max-width:1100px){.cabinet-hardware-v043{grid-template-columns:1fr}.cabinet-side-stack{display:grid;grid-template-columns:1fr 1fr}.battery-admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.calibration-overview{align-items:flex-start;flex-direction:column}.calibration-last{align-items:flex-start;border-left:0;border-top:1px solid rgba(28,47,72,.10);padding:10px 0 0;width:100%}.calibration-last small{text-align:left}.cabinet-side-stack{grid-template-columns:1fr}.series-switches .series-toggle small{display:none}}
.calibration-overview.unknown{background:#F4F6F7;border-color:#D6DDE2;border-left-color:#8A96A3}.calibration-overview.unknown .calibration-icon{background:#E8ECEF;color:#667487}.calibration-badge.unknown{background:#E8ECEF;color:#5E6A74}

/* --------------------------------------------------------------------------
   ENERGICO Vision 0.4.7 — cabinet information architecture + brand lockup
   -------------------------------------------------------------------------- */
.sidebar-brand{align-items:center;padding-left:4px;padding-right:4px;gap:6px}
.sidebar-brand img{width:190px;max-width:100%;margin:0 auto;transform:translateY(-4px)}
.sidebar-brand>span{width:100%;align-items:center;text-align:center}
.sidebar-brand>span strong{font-size:27px;line-height:1;font-weight:700;letter-spacing:.12em;color:#F05223;margin-top:0}
.sidebar-brand>span small{font-size:8px;margin-top:7px;letter-spacing:.055em;color:#D5E0E8;opacity:.9}
.topline-brand>span{align-items:center;text-align:center}.topline-brand>span strong{color:#F05223}

.cabinet-detail-v047{padding:16px}
.cabinet-layout-v047{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:16px;align-items:start}
.battery-zone-v047{min-width:0}
.battery-layout-v047{gap:9px;margin-top:8px}
.battery-layout-v047 .battery-column-v045{gap:7px}
.battery-module-v047,.battery-slot-empty-v047{min-height:92px;border-radius:8px}
.battery-module-v047{padding:9px 10px;gap:7px}
.battery-module-v047 .battery-v045-head{padding-bottom:5px}
.battery-module-v047 .battery-v045-title strong{font-size:11px}
.battery-module-v047 .battery-v045-state{font-size:7px;padding:3px 6px}
.battery-module-v047 .battery-hide-btn{width:20px;height:20px;padding:0;display:grid;place-items:center;font-size:12px}
.battery-v047-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 9px}
.battery-v047-main>div{display:flex;align-items:baseline;justify-content:space-between;gap:5px;min-width:0;border-bottom:1px solid rgba(28,47,72,.06);padding-bottom:2px}
.battery-v047-main span{font-size:7px;color:#71808E;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}
.battery-v047-main strong{font-size:10px;color:var(--blue);font-variant-numeric:tabular-nums;white-space:nowrap}
.battery-v047-main .battery-v047-soc strong{font-size:13px;color:#163A5A}
.battery-v047-cells{display:grid;grid-template-columns:auto auto auto auto auto auto;align-items:baseline;justify-content:space-between;gap:3px;padding-top:1px;color:#5E6F7E;font-variant-numeric:tabular-nums}
.battery-v047-cells span{font-size:8px;font-weight:650;color:#365069}.battery-v047-cells i{font-size:6px;font-style:normal;color:#8995A0;text-transform:uppercase}
.battery-slot-empty-v047{min-height:92px;background:#F8FAFB;border-color:#D6DEE3}.battery-slot-empty-v047 span{font-size:11px}.battery-slot-empty-v047 small{font-size:7px}
.battery-zone-v047 .rack-direction-note-v045{font-size:8px;margin-top:9px;padding-top:7px}

.cabinet-technical-panel-v047{min-width:0;padding:16px;background:#FFF}
.technical-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.technical-panel-head p{font-size:10px}.technical-panel-head .badge{margin-top:2px}
.technical-section-v047{padding:15px 0;border-bottom:1px solid var(--line)}.technical-section-v047:last-of-type{border-bottom:0}
.technical-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}
.technical-section-title>span{font-size:11px;font-weight:700;color:var(--blue);letter-spacing:.015em}.technical-section-title>small{font-size:8px;color:var(--muted)}
.technical-metric-grid-v047{display:grid;gap:8px}.technical-metric-grid-v047.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.technical-metric-grid-v047.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tech-card{min-width:0;min-height:72px;border:1px solid #DCE3E7;border-radius:8px;background:#F8FAFB;padding:9px 10px;display:flex;flex-direction:column;justify-content:center}
.tech-card>span{font-size:7px;line-height:1.2;text-transform:uppercase;letter-spacing:.055em;color:#728190}.tech-card>strong{font-size:14px;margin-top:5px;color:var(--blue);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tech-card>small{font-size:7px;margin-top:3px;color:var(--muted)}
.tech-card.status-card{background:#FBFCFD}.tech-card.sensor strong{font-size:16px}
.state-ok{color:#177A44!important}.state-warn{color:#A66700!important}.state-bad{color:#B82424!important}.state-info{color:#2F6FB2!important}.state-off{color:#7E8B96!important}
.protection-grid-v047{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.protection-grid-v047>div{min-height:42px;border:1px solid #E0E5E8;border-radius:7px;background:#FBFCFD;padding:8px 9px;display:grid;grid-template-columns:minmax(0,1fr) 8px auto;align-items:center;gap:7px}
.protection-grid-v047 span{font-size:8px;color:#637587;min-width:0}.protection-grid-v047 strong{font-size:8px;color:var(--blue);white-space:nowrap}.status-dot{display:block;width:7px;height:7px;border-radius:50%;background:#8C98A3}.status-dot.ok{background:#20A35A}.status-dot.warn{background:#D99100}.status-dot.bad{background:#D22C2C}.status-dot.off{background:#A6B0B8}
.compact-tech-summary .info-list{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.compact-tech-summary .info-list>div{min-height:37px}.compact-tech-summary .info-list span{font-size:8px}.compact-tech-summary .info-list strong{font-size:9px}
.active-event-strip-v047{margin-top:13px;padding:11px;border-radius:8px;background:#FFF8EA;border:1px solid #F0D8A4}.active-event-strip-v047>strong{font-size:9px;color:#7D5714}.active-event-strip-v047>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.active-event-strip-v047 span{font-size:7px;font-weight:650;border-radius:999px;padding:4px 7px}.active-event-strip-v047 .warning{background:#FFE9B8;color:#865500}.active-event-strip-v047 .alarm{background:#F8D8D8;color:#A52222}

@media(max-width:1350px){.cabinet-layout-v047{grid-template-columns:minmax(0,55fr) minmax(0,45fr)}.technical-metric-grid-v047.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.protection-grid-v047{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.cabinet-layout-v047{grid-template-columns:1fr}.battery-layout-v047{grid-template-columns:1fr 1fr}.technical-metric-grid-v047.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.protection-grid-v047{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.technical-metric-grid-v047.cols-4,.technical-metric-grid-v047.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.protection-grid-v047{grid-template-columns:1fr 1fr}.compact-tech-summary .info-list{grid-template-columns:1fr}}
@media(max-width:520px){.battery-layout-v047{grid-template-columns:1fr}.technical-metric-grid-v047.cols-4,.technical-metric-grid-v047.cols-3,.protection-grid-v047{grid-template-columns:1fr}}

/* Cabinet overview cards follow the same 35/65 information hierarchy. */
.cabinet-overview-body-v047{grid-template-columns:minmax(330px,.7fr) minmax(0,1.3fr);min-height:0;align-items:stretch}
.cabinet-preview-rack-v047{justify-content:flex-start;min-width:0}.preview-panel-title{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.preview-panel-title span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.preview-panel-title strong{font-size:11px}
.preview-rack-v047{width:100%;height:auto;min-height:300px;border:1px solid #DCE3E7;border-bottom-width:1px;background:#F7F9FA;border-radius:8px;padding:9px;box-shadow:none}
.preview-rack-v047 .preview-battery.empty{background:#F1F4F6;border:1px dashed #CBD4DA;color:#A0ABB3;opacity:1}.preview-rack-v047 .preview-battery.empty span{font-size:7px}
.cabinet-preview-info-v047{min-width:0;border:1px solid #E2E7EA;border-radius:9px;background:#FFF;padding:11px 13px;display:flex;flex-direction:column}
.preview-info-section-v047{padding:9px 0;border-bottom:1px solid var(--line)}.preview-info-section-v047:first-child{padding-top:0}.preview-info-section-v047.compact{border-bottom:0;padding-bottom:4px}
.preview-info-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}.preview-info-title>span{font-size:9px;font-weight:700;color:var(--blue)}.preview-info-title>small{font-size:7px;color:var(--muted)}
.preview-tech-grid-v047{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.preview-tech-grid-v047>div{border:1px solid #E2E7EA;border-radius:6px;background:#F8FAFB;padding:7px 8px;min-height:50px}.preview-tech-grid-v047 span{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.04em;color:#748391}.preview-tech-grid-v047 strong{display:block;font-size:11px;margin-top:4px;color:var(--blue);font-variant-numeric:tabular-nums}.preview-tech-grid-v047.environment strong{font-size:10px}
.preview-status-row-v047{display:flex;flex-wrap:wrap;gap:5px}.preview-status-row-v047 span{font-size:7px;font-weight:650;border-radius:999px;padding:4px 7px;border:1px solid transparent}.preview-status-row-v047 .ok{background:#E9F6EE;color:#177A44;border-color:#CDE7D6}.preview-status-row-v047 .bad{background:#FBE5E5;color:#B82424;border-color:#ECC5C5}.preview-status-row-v047 .warn{background:#FFF0CE;color:#8C5A00;border-color:#EED69D}
@media(max-width:1100px){.cabinet-overview-body-v047{grid-template-columns:1fr}.preview-rack-v047{min-height:250px}.preview-tech-grid-v047{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.preview-tech-grid-v047{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ENERGICO Vision 0.4.8 — live telemetry + interactive continuous charts */
.live-kpi-strip .kpi-box{position:relative;padding-bottom:27px}
.live-age{position:absolute;left:12px;bottom:8px;font-size:7px!important;line-height:1;color:#7A8792!important;font-style:normal!important;font-weight:500!important;letter-spacing:.015em;text-transform:none!important}
.kpi-grid.import .live-age{color:#A96060!important}.kpi-grid.export .live-age{color:#4B8061!important}
.history-canvas-wrap canvas{cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}
.history-canvas-wrap canvas.dragging{cursor:grabbing}
.graph-reset{margin-left:3px}
.project-table .calibration-badge{font-size:8px;padding:4px 7px;white-space:nowrap}
.project-table .calibration-badge.ok{background:#E7F5EC;color:#177A44}
.project-table .calibration-badge.required{background:#FFEABF;color:#8C5A00}
.project-table .calibration-badge.running{background:#DDEAF5;color:#245F94}
.project-table .calibration-badge.unknown{background:#E8ECEF;color:#5E6A74}
@media(max-width:1000px){.project-table{min-width:1080px}}

/* ======================================================================
   ENERGICO Vision 0.5.0 — responsive typography, touch charts, BESS market + ingest health
   ====================================================================== */
html,body{font-size:15px}
.content{max-width:1760px;padding:26px 26px 54px}
.nav-item{font-size:14px;padding:11px 12px}.nav-group-title{font-size:11px}.sidebar-user-copy strong{font-size:13px}.sidebar-user-copy span{font-size:12px}
.eyebrow{font-size:11px}.small{font-size:13px}.crumb a{font-size:13px}
h1{font-size:31px}h2{font-size:21px}h3{font-size:16px}h4{font-size:14px}
.project-page-nav a{font-size:13px}.badge{font-size:12px}.badge.large{font-size:13px}
th{font-size:11px;padding:12px 13px}td{font-size:13px;padding:12px 13px}.project-table .calibration-badge{font-size:11px;padding:5px 8px}.soc-text{font-size:11px}

/* Cabinet overview: the previous 7–11 px typography was too dense for operations. */
.cabinet-overview-head strong{font-size:19px}.cabinet-overview-head span:not(.badge){font-size:12px}
.cabinet-overview-kpis>div{padding:10px 12px}.cabinet-overview-kpis span{font-size:11px}.cabinet-overview-kpis strong{font-size:16px;margin-top:4px}
.preview-panel-title span{font-size:11px}.preview-panel-title strong{font-size:14px}.cabinet-preview-rack small{font-size:10px}
.preview-battery{font-size:11px;padding:5px 8px;min-height:25px}.preview-battery strong{font-size:12px}.preview-rack-v047 .preview-battery.empty span{font-size:10px}
.preview-info-title>span{font-size:14px}.preview-info-title>small{font-size:10px}
.preview-tech-grid-v047>div{padding:9px 10px;min-height:58px}.preview-tech-grid-v047 span{font-size:10px}.preview-tech-grid-v047 strong{font-size:15px}.preview-tech-grid-v047.environment strong{font-size:14px}
.preview-status-row-v047 span{font-size:10px;padding:5px 8px}.cabinet-open-hint{font-size:11px}

/* Cabinet detail readability. */
.cabinet-kpis-v043 span{font-size:11px}.cabinet-kpis-v043 strong{font-size:18px}
.hardware-zone-head .eyebrow{font-size:11px}.hardware-zone-head>span{font-size:13px}.hardware-zone-subtitle{font-size:12px}
.battery-module-v047{padding:11px 12px;gap:8px;min-height:106px}.battery-module-v047 .battery-v045-title strong{font-size:14px}.battery-module-v047 .battery-v045-state{font-size:9px;padding:4px 7px}
.battery-v047-main span{font-size:9px}.battery-v047-main strong{font-size:13px}.battery-v047-main .battery-v047-soc strong{font-size:17px}
.battery-v047-cells span{font-size:11px}.battery-v047-cells i{font-size:8px}.battery-slot-empty-v047 span{font-size:13px}.battery-slot-empty-v047 small{font-size:9px}.battery-zone-v047 .rack-direction-note-v045{font-size:10px}
.technical-panel-head p{font-size:12px}.technical-section-title>span{font-size:15px}.technical-section-title>small{font-size:10px}
.tech-card{min-height:82px;padding:11px 12px}.tech-card>span{font-size:10px}.tech-card>strong{font-size:17px}.tech-card>small{font-size:9px}.tech-card.sensor strong{font-size:19px}
.protection-grid-v047>div{min-height:50px;padding:10px 11px}.protection-grid-v047 span{font-size:11px}.protection-grid-v047 strong{font-size:11px}.status-dot{width:8px;height:8px}
.compact-tech-summary .info-list>div{min-height:43px}.compact-tech-summary .info-list span{font-size:10px}.compact-tech-summary .info-list strong{font-size:12px}
.active-event-strip-v047>strong{font-size:11px}.active-event-strip-v047 span{font-size:9px}

/* Continuous solid SOC tint. Warning/alarm/offline states always take precedence. */
.battery-module-v047.live{background:#F3FAF5;background:color-mix(in srgb,#20A35A var(--soc-fill,18%),#FFFFFF);border-color:#BFD9C8;border-left-color:#168B4B}
.preview-battery.live{background:#F3FAF5;background:color-mix(in srgb,#20A35A var(--soc-fill,18%),#FFFFFF);border-color:#C4DDCD;border-left-color:#168B4B}
.battery-module-v047.warning{background:#FFF8EA;border-color:#E7C889;border-left-color:#D99100}.battery-module-v047.alarm{background:#FFF0F0;border-color:#E5B3B3;border-left-color:#C92B2B}.battery-module-v047.unknown{background:#F2F4F5;border-color:#D4DADF;border-left-color:#8996A2}
.preview-battery.warning{background:#FFF7E6;border-color:#ECD8AA;border-left-color:#D99100}.preview-battery.alarm{background:#FFF0F0;border-color:#E9C3C3;border-left-color:#C92B2B}.preview-battery.unknown{background:#F0F3F5;border-color:#D8DEE2;border-left-color:#8996A2}

/* Energy page */
.energy-page{display:flex;flex-direction:column;gap:16px}.energy-toolbar-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.energy-toolbar-left{display:flex;align-items:center;gap:24px;min-width:0}.energy-period-switch{display:flex;align-items:center;gap:5px;padding:4px;background:#F0F3F5;border-radius:9px}.energy-period-btn{border:0;background:transparent;color:#53687B;padding:8px 12px;border-radius:7px;font-size:12px;font-weight:650}.energy-period-btn.active{background:var(--blue);color:#FFF}.energy-date-controls{display:flex;align-items:flex-end;gap:6px}.energy-date-controls>input{width:150px;min-height:34px}.energy-custom-range{display:flex;align-items:flex-end;gap:7px}.energy-custom-range label{min-width:190px}.energy-custom-range input{min-height:34px;padding:5px 8px}.energy-custom-range label>span{font-size:10px;margin-bottom:3px}
.energy-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.energy-kpi{position:relative;background:#FFF;border:1px solid var(--line);border-radius:10px;padding:14px 15px 13px;min-height:94px;box-shadow:0 3px 14px rgba(28,47,72,.035);overflow:hidden}.energy-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#8D99A4}.energy-kpi>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:#687A8A}.energy-kpi>strong{display:inline-block;margin-top:8px;font-size:24px;line-height:1;color:var(--blue);font-variant-numeric:tabular-nums}.energy-kpi>small{font-size:11px;margin-left:4px;color:#70808D}.energy-kpi.grid-import::before{background:#D22C2C}.energy-kpi.grid-export::before{background:#20A35A}.energy-kpi.pv::before{background:#F05223}.energy-kpi.site::before{background:#7A5AA6}.energy-kpi.bess-charge::before{background:#69A8D3}.energy-kpi.bess-discharge::before{background:#2F6FB2}
.energy-chart-panel{padding:17px 18px}.energy-chart-head{align-items:center}.energy-export-actions{display:flex;gap:6px}.energy-legend{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 12px}.energy-series{display:inline-flex;align-items:center;gap:7px;border:1px solid #D8E0E5;background:#FFF;color:#435A70;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:650}.energy-series:not(.active){opacity:.35;background:#F1F3F5}.energy-series .swatch{width:10px;height:10px;border-radius:3px}.swatch.grid-import,.energy-balance-track i.grid-import{background:#D22C2C}.swatch.grid-export,.energy-balance-track i.grid-export{background:#20A35A}.swatch.pv,.energy-balance-track i.pv{background:#F05223}.swatch.bess-charge,.energy-balance-track i.bess-charge{background:#69A8D3}.swatch.bess-discharge,.energy-balance-track i.bess-discharge{background:#2F6FB2}.swatch.site,.energy-balance-track i.site{background:#7A5AA6}
.energy-canvas-wrap{position:relative;width:100%;min-height:470px;border:1px solid #E0E6E9;border-radius:9px;background:#FFF;overflow:hidden}.energy-canvas-wrap canvas{display:block;width:100%;height:470px}.energy-tooltip{position:absolute;z-index:5;min-width:230px;background:#1C2F48;color:#FFF;border-radius:8px;padding:10px 11px;box-shadow:0 8px 24px rgba(28,47,72,.22);pointer-events:none}.energy-tooltip>b{display:block;font-size:12px;margin-bottom:7px}.energy-tooltip>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;padding:3px 0;font-size:10px}.energy-tooltip i{width:8px;height:8px;border-radius:2px}.energy-tooltip strong{font-variant-numeric:tabular-nums}.energy-empty{position:absolute;inset:0;display:grid;place-items:center;color:#6B7D8D;font-size:14px;background:rgba(255,255,255,.94)}.energy-chart-foot{display:flex;justify-content:space-between;gap:20px;margin-top:10px;color:#6B7B88;font-size:10px}
.energy-bottom-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px}.energy-balance-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.energy-balance-columns h3{margin-bottom:12px}.energy-balance-row{display:grid;grid-template-columns:130px minmax(80px,1fr) 95px;align-items:center;gap:10px;padding:7px 0}.energy-balance-row>span{font-size:11px;color:#52677A}.energy-balance-row>strong{font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.energy-balance-track{height:9px;border-radius:999px;background:#EDF1F3;overflow:hidden}.energy-balance-track i{display:block;height:100%;border-radius:999px;min-width:0;transition:width .25s ease}
.energy-source-list{display:flex;flex-direction:column}.energy-source-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.energy-source-row:first-child{padding-top:0}.energy-source-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.energy-source-row strong{font-size:12px}.energy-source-row span{font-size:9px;color:#6A7A88;overflow-wrap:anywhere}.energy-source-meta{display:flex;align-items:center;gap:7px}.energy-source-meta small{font-size:9px;color:#6A7A88;white-space:nowrap}.energy-source-meta .badge{font-size:9px;padding:4px 6px}.energy-mqtt-hint{margin-top:13px;padding:11px 12px;border:1px solid #E6DDD2;border-left:4px solid var(--orange);border-radius:8px;background:#FFFAF7}.energy-mqtt-hint strong{font-size:12px}.energy-mqtt-hint p{font-size:10px;line-height:1.5}
.energy-page.loading{opacity:.78}.energy-page.loading .energy-canvas-wrap::after{content:"Načítám…";position:absolute;right:12px;top:10px;background:#FFF;border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:10px;color:#637587}
@media(max-width:1400px){.energy-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.energy-toolbar-panel{align-items:flex-start}.energy-toolbar-left{flex-direction:column;align-items:flex-start;gap:12px}.energy-date-controls{padding-top:4px}}
@media(max-width:980px){.energy-toolbar-panel{flex-direction:column}.energy-date-controls{width:100%;flex-wrap:wrap}.energy-bottom-grid{grid-template-columns:1fr}.energy-balance-columns{grid-template-columns:1fr}.energy-chart-foot{flex-direction:column;gap:4px}}
@media(max-width:680px){.energy-kpi-grid{grid-template-columns:1fr 1fr}.energy-period-switch{width:100%;overflow:auto}.energy-period-btn{white-space:nowrap}.energy-custom-range{width:100%;flex-wrap:wrap}.energy-custom-range label{flex:1 1 160px;min-width:0}.energy-balance-row{grid-template-columns:105px 1fr 85px}.energy-canvas-wrap{overflow-x:auto}.energy-canvas-wrap canvas{min-width:720px}}
.mqtt-mapping-box{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.subsection-head.compact{margin:0 0 8px}.subsection-head.compact h4{font-size:13px}.mqtt-mapping-list{display:flex;flex-direction:column;gap:5px;margin-bottom:9px}.mqtt-mapping-list>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:#F8FAFB;border:1px solid #E3E8EB;border-radius:6px;padding:6px 8px;font-size:10px}.mqtt-mapping-list small{color:var(--muted)}.mapping-grid-v049{grid-template-columns:1.25fr .9fr 1.15fr .55fr .55fr auto;align-items:end}.mapping-grid-v049 label>span{font-size:10px}@media(max-width:1200px){.mapping-grid-v049{grid-template-columns:repeat(3,minmax(0,1fr))}.mapping-grid-v049 button{align-self:end}}@media(max-width:680px){.mapping-grid-v049{grid-template-columns:1fr}}

/* ENERGICO Vision 0.5 — BESS market page + native mobile chart controls */
.market-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px}.market-range-switch{display:flex;gap:6px;flex-wrap:wrap}.market-range-switch>button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px;color:#506579;font-weight:650;cursor:pointer}.market-range-switch>button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.market-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.market-kpi{background:#fff;border:1px solid var(--line);border-left:5px solid #2F6FB2;border-radius:10px;padding:14px 15px;min-height:92px}.market-kpi.imbalance{border-left-color:#F05223}.market-kpi span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#687A8A}.market-kpi strong{display:block;font-size:24px;color:var(--blue);margin-top:8px;font-variant-numeric:tabular-nums}.market-kpi small{font-size:10px;color:#71808D}.market-legend{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 10px;color:#52677A;font-size:11px}.market-legend span{display:inline-flex;align-items:center;gap:7px}.market-legend i{width:22px;height:3px;border-radius:2px}.market-legend .spot{background:#2F6FB2}.market-legend .imbalance{background:#F05223}.market-canvas-wrap{position:relative;width:100%;height:500px;min-width:0;overflow:hidden;border:1px solid #E0E6E9;border-radius:9px;background:#FFF}.market-canvas-wrap canvas{display:block;width:100%;height:500px;touch-action:pan-y;user-select:none;-webkit-user-select:none}.market-tooltip{z-index:8}.market-page.loading{opacity:.82}
.history-canvas-wrap canvas,.energy-canvas-wrap canvas{touch-action:pan-y;user-select:none;-webkit-user-select:none}.graph-reset{white-space:nowrap}
@media(max-width:760px){.market-toolbar{align-items:flex-start;flex-direction:column}.market-kpi-grid{grid-template-columns:1fr 1fr}.market-canvas-wrap,.market-canvas-wrap canvas{height:470px}.history-toolbar,.operational-toolbar{gap:7px}.series-switches .series-toggle,.energy-series{min-height:40px;padding:9px 11px;font-size:11px}.history-tooltip,.energy-tooltip{max-width:calc(100vw - 40px);font-size:11px}.history-canvas-wrap{min-width:0;overflow:hidden}.history-canvas-wrap canvas{max-width:100%}.energy-canvas-wrap{overflow:hidden}.energy-canvas-wrap canvas{min-width:0!important;width:100%!important}.energy-chart-panel{padding-left:10px;padding-right:10px}}
@media(max-width:460px){.market-kpi-grid{grid-template-columns:1fr}.market-kpi strong{font-size:21px}.market-canvas-wrap,.market-canvas-wrap canvas{height:440px}}

/* ENERGICO Vision 0.5.0 final deployment additions */
.weather-strip{min-height:54px;margin:0 0 14px;padding:10px 16px;border:1px solid #DDE6EC;border-radius:11px;background:linear-gradient(90deg,#F8FBFD 0%,#EEF5F9 100%);display:flex;align-items:center;gap:13px;color:var(--blue);box-shadow:0 4px 14px rgba(28,47,72,.04)}
.weather-strip .weather-icon{font-size:28px;line-height:1}.weather-strip strong{font-size:14px}.weather-strip .weather-temp{font-size:21px;font-weight:750}.weather-strip>span:not(.weather-icon):not(.weather-temp){font-size:12px;color:#536C80}.weather-divider{width:1px;height:25px;background:#CFDAE2}.weather-strip .weather-source{margin-left:auto!important;font-size:9px!important;color:#8A98A5!important;white-space:nowrap}
.mobile-menu-button{display:none;border:0;background:transparent;color:var(--blue);font-size:28px;line-height:1;padding:5px 8px;cursor:pointer}.mobile-nav-backdrop{display:none}
.notification-grid{display:grid;gap:8px}.notification-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 120px auto;gap:10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:9px;background:#FAFBFC}.weather-candidates{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:10px;background:#FFF8E8;border:1px solid #ECD49F;border-radius:9px}.weather-candidates>strong{width:100%}.login-help{margin-top:12px;text-align:center;font-size:12px}
@media(max-width:760px){
  body.mobile-nav-open{overflow:hidden}
  .portal-shell{display:block}.sidebar{position:fixed;z-index:1002;left:0;top:0;width:min(86vw,320px);height:100vh;min-height:100vh;transform:translateX(-105%);transition:transform .2s ease;padding:18px 14px;box-shadow:8px 0 28px rgba(0,0,0,.22)}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  .sidebar .nav-list{display:flex;flex-direction:column;overflow:visible}.sidebar .nav-group-title,.sidebar .nav-separator,.sidebar .sidebar-user,.sidebar .sidebar-bottom{display:flex}.sidebar .nav-group-title{display:block}.sidebar-brand{padding-bottom:18px}.sidebar-brand span{display:flex}
  .main-shell{width:100%}.topline{display:flex;position:sticky;top:0;z-index:900;height:64px;padding:9px 12px;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(28,47,72,.05)}.topline-brand{display:flex;align-items:center;gap:7px}.topline-brand img{width:116px;height:auto}.topline-brand>span small{display:none}.topline-brand>span strong{font-size:12px}.topline-meta{display:none}.mobile-menu-button{display:block}
  .mobile-nav-backdrop{position:fixed;inset:0;z-index:1001;background:rgba(14,27,42,.42)}body.mobile-nav-open .mobile-nav-backdrop{display:block}
  .weather-strip{display:none!important}
  .content{padding-top:12px}.notification-row{grid-template-columns:1fr}.notification-row .btn{width:100%}
}
.trigger-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0 12px}.trigger-admin-item{border:1px solid var(--line);border-radius:8px;padding:8px;background:#FAFBFC}.trigger-admin-item .mandatory{margin-top:5px;font-size:10px;color:#6C7B87}@media(max-width:900px){.trigger-admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.trigger-admin-grid{grid-template-columns:1fr}}
.report-content-blocks{display:flex;flex-wrap:wrap;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#FAFBFC}.report-content-blocks>strong{width:100%}

/* ======================================================================
   ENERGICO Vision 0.5.0 Hotfix 3 — compact weather, battery modules,
   market controls and modern service layout
   ====================================================================== */
.project-head-with-weather{align-items:center}.project-head-status-inline{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.weather-compact{display:inline-grid;grid-template-columns:auto auto auto auto;align-items:center;gap:7px;min-height:38px;padding:6px 10px;border:1px solid #DCE4E9;border-radius:9px;background:#F8FAFB;color:#3E556A;white-space:nowrap;box-shadow:0 2px 8px rgba(28,47,72,.035)}.weather-compact-icon{font-size:18px;line-height:1}.weather-compact-temp{font-size:15px;font-weight:750;color:var(--blue);font-variant-numeric:tabular-nums}.weather-compact-desc{font-size:10px;color:#657787;max-width:150px;overflow:hidden;text-overflow:ellipsis}.weather-compact-wind{font-size:10px;color:#6F7F8D;padding-left:7px;border-left:1px solid #D9E1E6;font-variant-numeric:tabular-nums}.weather-compact.is-loading{opacity:.72}.weather-compact.is-loading .weather-compact-icon{animation:hf3pulse 1.1s ease-in-out infinite}.weather-compact.is-unavailable{background:#F4F6F7;color:#84909A}.weather-compact.is-unavailable .weather-compact-temp,.weather-compact.is-unavailable .weather-compact-wind{display:none}@keyframes hf3pulse{0%,100%{opacity:.35}50%{opacity:1}}
.rte-loading-row{display:flex;align-items:center;gap:8px;padding:8px 10px;margin:2px 0 9px;border:1px solid #DFE6EB;border-radius:8px;background:#F8FAFB;color:#64778A;font-size:10px}.rte-loading-dot{width:8px;height:8px;border-radius:50%;background:#2F6FB2;box-shadow:0 0 0 0 rgba(47,111,178,.35);animation:hf3ring 1.3s infinite}.rte-loading-row.error{background:#FFF6F2;border-color:#E8C7BA;color:#955134}.rte-loading-row.error .rte-loading-dot{background:#D22C2C;animation:none}@keyframes hf3ring{70%{box-shadow:0 0 0 7px rgba(47,111,178,0)}100%{box-shadow:0 0 0 0 rgba(47,111,178,0)}}

/* Battery detail: the former aggregate block is intentionally removed. Values are
   grouped with the physical battery modules; system SOH is clearly marked as system-wide. */
.battery-zone-head-hf3{align-items:flex-start}.battery-zone-head-stats{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.battery-zone-head-stats>span{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border:1px solid #DCE4E9;border-radius:999px;background:#F8FAFB;color:#536A7D;font-size:10px;font-weight:650}.battery-zone-head-stats .battery-system-soh{border-color:#BFD9C8;background:#EEF8F1;color:#177A44}.battery-module-hf3{position:relative;display:flex;flex-direction:column;gap:8px;min-height:178px;padding:11px 12px;border:1px solid #DCE3E7;border-left:4px solid #8A98A4;border-radius:10px;background:#FFF;box-shadow:0 3px 12px rgba(28,47,72,.04);overflow:hidden}.battery-module-hf3.live{border-color:#BEDBC8;border-left-color:#20A35A;background:linear-gradient(110deg,#F7FCF8 0%,#FFFFFF 68%)}.battery-module-hf3.warning{border-color:#E8CF9B;border-left-color:#D99100;background:#FFFBF2}.battery-module-hf3.alarm{border-color:#E6BABA;border-left-color:#D22C2C;background:#FFF6F6}.battery-module-hf3.unknown{background:#F6F8F9}.battery-hf3-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px solid rgba(28,47,72,.08)}.battery-hf3-id{display:flex;align-items:center;gap:7px;min-width:0}.battery-hf3-id strong{font-size:15px;color:var(--blue)}.battery-hf3-id small{font-size:9px;color:#788692;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battery-hf3-id .battery-led{width:9px;height:9px;border-radius:50%;background:#98A4AE;box-shadow:0 0 0 3px rgba(152,164,174,.12)}.battery-module-hf3.live .battery-led{background:#20A35A;box-shadow:0 0 0 3px rgba(32,163,90,.13)}.battery-module-hf3.warning .battery-led{background:#D99100}.battery-module-hf3.alarm .battery-led{background:#D22C2C}.battery-hf3-hero{display:grid;grid-template-columns:1.22fr .8fr .95fr .95fr;gap:7px}.battery-hf3-hero>div{min-width:0;padding:7px 8px;border:1px solid #E3E8EB;border-radius:8px;background:rgba(255,255,255,.78)}.battery-hf3-hero span,.battery-hf3-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#758593}.battery-hf3-hero strong{display:block;margin-top:3px;font-size:13px;color:#263E56;font-variant-numeric:tabular-nums;white-space:nowrap}.battery-hf3-hero strong small{font-size:8px;margin-left:2px}.battery-hf3-soc strong{font-size:18px;color:#177A44}.battery-hf3-soh strong{font-size:15px}.battery-hf3-socbar{height:4px;margin-top:5px;border-radius:99px;background:#E7ECEF;overflow:hidden}.battery-hf3-socbar i{display:block;height:100%;border-radius:99px;background:#20A35A}.battery-hf3-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.battery-hf3-grid>div{min-width:0;padding:5px 6px;border-radius:6px;background:#F5F7F8}.battery-hf3-grid strong{display:block;margin-top:2px;font-size:10px;color:#40586D;font-variant-numeric:tabular-nums;white-space:nowrap}.battery-hf3-cells{display:grid;grid-template-columns:1fr 1fr;gap:5px}.battery-hf3-cells>span{display:flex;justify-content:space-between;gap:7px;padding:5px 7px;border-radius:6px;background:#EDF3F7;color:#627687;font-size:9px}.battery-hf3-cells b{color:#29445C;font-size:10px;font-variant-numeric:tabular-nums}.battery-module-hf3 .battery-v045-alerts{margin-top:0}.battery-module-hf3 .battery-v045-alerts span{font-size:8px}

/* Market */
.market-toolbar-hf3{align-items:flex-end}.market-controls-hf3{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.market-control-group-hf3{display:flex;flex-direction:column;gap:4px}.market-control-group-hf3>span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#758593}.market-control-actions-hf3{display:flex;gap:6px}.market-data-status-hf3{margin-top:8px;padding:7px 9px;border-radius:7px;background:#F6F8F9;color:#647587;font-size:10px}.market-data-status-hf3.warn{background:#FFF7E8;color:#93640C}

/* Service */
.service-dashboard-hf3{display:flex;flex-direction:column;gap:14px}.service-status-grid-hf3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.service-status-card-hf3{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:92px;padding:14px 15px;border:1px solid #DCE3E7;border-radius:11px;background:#FFF;box-shadow:0 3px 13px rgba(28,47,72,.035)}.service-status-icon-hf3{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#EEF3F7;color:#284A68;font-size:16px;font-weight:800}.service-status-card-hf3>div:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}.service-status-card-hf3>div:nth-child(2)>span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#768694}.service-status-card-hf3>div:nth-child(2)>strong{font-size:17px;color:var(--blue)}.service-status-card-hf3>div:nth-child(2)>small{font-size:10px;color:#71808D}.service-main-grid-hf3{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:14px;align-items:start}.service-main-column-hf3,.service-side-column-hf3{display:flex;flex-direction:column;gap:14px}.service-access-card-hf3 .panel-head p,.service-maintenance-card-hf3 .panel-head p{font-size:10px;color:#71808D}.service-info-grid-hf3{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.service-info-grid-hf3>div{padding:10px 11px;border:1px solid #E1E7EA;border-radius:8px;background:#F8FAFB}.service-info-grid-hf3 span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#758593}.service-info-grid-hf3 strong{display:block;margin-top:4px;font-size:12px;color:#334C63;overflow-wrap:anywhere}.service-task-list-hf3{display:flex;flex-direction:column;gap:7px}.service-task-hf3{display:grid;grid-template-columns:5px minmax(0,1fr) 130px auto;align-items:center;gap:11px;padding:10px 11px;border:1px solid #E0E6E9;border-radius:8px;background:#FFF}.service-task-state-hf3{align-self:stretch;border-radius:99px;background:#8795A0}.service-task-state-hf3.ok{background:#20A35A}.service-task-state-hf3.warn{background:#D99100}.service-task-state-hf3.bad{background:#D22C2C}.service-task-copy-hf3{display:flex;flex-direction:column;gap:3px}.service-task-copy-hf3 strong{font-size:12px;color:#2D455B}.service-task-copy-hf3 span,.service-task-due-hf3 span{font-size:9px;color:#758593}.service-task-due-hf3{display:flex;flex-direction:column;gap:2px}.service-task-due-hf3 strong{font-size:11px;color:#40566B}.service-doc-list-hf3{display:flex;flex-direction:column;gap:6px}.service-doc-hf3{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 8px;border:1px solid #E3E8EB;border-radius:8px;background:#FAFBFC;color:inherit;text-decoration:none}.service-doc-hf3:hover{border-color:#B8C5CF;background:#FFF}.service-doc-icon-hf3{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#EDF3F7;color:#315777}.service-doc-hf3>span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}.service-doc-hf3 strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-doc-hf3 small{font-size:8px;color:#788692}.service-doc-hf3>b{font-size:18px;color:#91A0AC}.service-tariff-card-hf3>strong{display:block;margin:6px 0 10px;font-size:15px;color:var(--blue)}.service-tariff-tags-hf3{display:flex;flex-wrap:wrap;gap:5px}.service-tariff-tags-hf3 span{padding:5px 7px;border:1px solid #DDE5E9;border-radius:999px;background:#F7F9FA;color:#5C7081;font-size:9px}.service-empty-hf3{padding:16px;border:1px dashed #D6DEE3;border-radius:8px;color:#7A8996;text-align:center;font-size:10px}.service-admin-panel-hf3{padding:0;overflow:hidden}.service-admin-panel-hf3>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;cursor:pointer;list-style:none;background:#F8FAFB}.service-admin-panel-hf3>summary::-webkit-details-marker{display:none}.service-admin-panel-hf3>summary>span:first-child{display:flex;flex-direction:column;gap:2px}.service-admin-panel-hf3>summary b{font-size:13px;color:var(--blue)}.service-admin-panel-hf3>summary small{font-size:9px;color:#758593}.service-admin-panel-hf3>summary>span:last-child{font-size:10px;color:#617485}.service-admin-body-hf3{display:grid;grid-template-columns:1fr;gap:18px;padding:16px;border-top:1px solid #E1E7EA}.service-admin-body-hf3>section+section{padding-top:15px;border-top:1px solid #E5EAED}

/* Hotfix 3 status chips used by Energy/Market. */
.resolution-chip.warn{background:#FFF3DC;color:#8D6008;border-color:#E6C98F}

@media(max-width:1200px){.battery-hf3-hero{grid-template-columns:1fr 1fr}.battery-hf3-grid{grid-template-columns:1fr 1fr}.service-main-grid-hf3{grid-template-columns:1fr}.service-side-column-hf3{display:grid;grid-template-columns:1fr 1fr}.service-info-grid-hf3{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.project-head-with-weather{align-items:flex-start}.project-head-status-inline{width:100%;justify-content:flex-start}.weather-compact{grid-template-columns:auto auto minmax(0,1fr);width:min(100%,420px)}.weather-compact-wind{grid-column:2/4;border-left:0;padding-left:0}.battery-hf3-hero{grid-template-columns:1fr 1fr}.battery-hf3-grid{grid-template-columns:1fr 1fr}.service-status-grid-hf3{grid-template-columns:1fr}.service-side-column-hf3{display:flex}.service-task-hf3{grid-template-columns:5px minmax(0,1fr) auto}.service-task-due-hf3{grid-column:2/3}.market-controls-hf3{justify-content:flex-start;width:100%}.market-control-actions-hf3{width:100%}.market-control-actions-hf3 .btn{flex:1}}
@media(max-width:520px){.weather-compact-desc{max-width:110px}.battery-hf3-hero,.battery-hf3-grid{grid-template-columns:1fr 1fr}.service-info-grid-hf3{grid-template-columns:1fr}.service-task-hf3{grid-template-columns:5px minmax(0,1fr)}.service-task-hf3>.badge{grid-column:2/3;justify-self:start}.market-control-group-hf3{width:100%}.market-range-switch{width:100%}.market-range-switch>button{flex:1}}

/* ENERGICO Vision 0.5.1.4 */
.rte-values-v0512{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.rte-values-v0512{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.rte-values-v0512{grid-template-columns:1fr}}

/* 0.5.1.4 market price levels */
.market-price-levels{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-2px 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#FAFBFC;color:#52677B;font-size:10px}.market-price-levels span{display:inline-flex;align-items:center;gap:6px;font-weight:600}.market-price-levels i{width:12px;height:12px;border-radius:3px;border:1px solid rgba(28,47,72,.12)}.market-price-levels i.low{background:rgba(32,163,90,.22)}.market-price-levels i.normal{background:rgba(47,111,178,.18)}.market-price-levels i.high{background:rgba(217,145,0,.22)}.market-price-levels i.peak{background:rgba(240,82,35,.25)}.market-price-levels small{margin-left:auto;color:#758593;font-size:9px}@media(max-width:760px){.market-price-levels small{width:100%;margin-left:0}}

.energy-empty[hidden],.history-tooltip[hidden]{display:none!important}

/* 0.5.1.8 market final */
.energy-empty[hidden],.history-tooltip[hidden],.market-price-levels[hidden]{display:none!important}
.market-head-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.market-head-meta .resolution-chip.warn{background:#FFF7E8;color:#93640C;border-color:#F1D699}
.market-series-switches{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}.market-series-toggle{display:grid;grid-template-columns:22px auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;min-width:155px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 11px;color:#506579;cursor:pointer;text-align:left;opacity:.58;transition:opacity .15s,border-color .15s,box-shadow .15s}.market-series-toggle.active{opacity:1;border-color:#B9C8D5;box-shadow:0 1px 4px rgba(28,47,72,.08)}.market-series-toggle i{grid-row:1/3;width:22px;height:4px;border-radius:3px}.market-series-toggle i.spot{background:#2F6FB2}.market-series-toggle i.imbalance{background:#F05223}.market-series-toggle span{font-size:11px;font-weight:700;color:#314A61}.market-series-toggle small{font-size:9px;color:#758593}.market-tooltip b{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.market-tooltip b small{font-size:9px;font-weight:500;color:#C8D3DE}.market-data-status-hf3{font-variant-numeric:tabular-nums}
@media(max-width:760px){.market-head-meta{align-items:flex-start}.market-series-switches{width:100%}.market-series-toggle{flex:1;min-width:130px}}

/* ENERGICO Vision 0.5.1.10 — unified calendar history controls */
.history-preset-group{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.history-preset-group>button{border:1px solid var(--line);background:#FFF;color:#52677B;border-radius:6px;padding:6px 9px;font-size:10px;min-height:30px;font-weight:650;cursor:pointer}
.history-preset-group>button:hover{background:#F2F5F7}.history-preset-group>button.active{background:var(--blue);border-color:var(--blue);color:#FFF}
.history-preset-primary{flex:1 1 100%;padding-bottom:3px;border-bottom:1px solid #EDF1F3}.history-preset-secondary{display:flex;align-items:center}
.history-day-picker{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:3px 5px 3px 8px;border:1px solid var(--line);border-radius:6px;background:#FFF;color:#52677B;font-size:10px;font-weight:650;white-space:nowrap}
.history-day-picker input{width:132px;min-height:24px;height:24px;padding:2px 4px;border:0;background:transparent;color:#314A61;font-size:10px}
.analysis-calendar-presets{margin:0 0 10px}.energy-calendar-presets{max-width:760px}
.energy-toolbar-left{flex-wrap:wrap}.energy-calendar-presets .btn.active{background:var(--blue);color:#FFF;border-color:var(--blue)}
.market-controls-v05110{max-width:100%}.market-history-presets{flex:1 1 560px}.market-history-presets .history-preset-group{justify-content:flex-end}.market-history-presets .history-preset-group>button{padding:7px 9px}
.market-day-picker input{width:126px}.market-currency-switch{min-width:120px}
@media(max-width:1000px){.market-history-presets{flex-basis:100%}.market-history-presets .history-preset-group{justify-content:flex-start}.energy-calendar-presets{width:100%}}
@media(max-width:680px){.history-preset-primary,.history-preset-secondary,.analysis-calendar-presets,.energy-calendar-presets{width:100%}.history-day-picker{width:100%;justify-content:space-between}.history-day-picker input{flex:1;max-width:170px}.market-history-presets .history-preset-group>button{flex:1 1 calc(50% - 5px)}.market-history-presets .history-day-picker{flex:1 1 100%}.energy-calendar-presets>button,.analysis-calendar-presets>button{flex:1 1 calc(50% - 5px)}}


/* ENERGICO Vision 0.5.1.11 — dashboard hierarchy + energy charts */
.project-head-status-stack{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:7px;padding-top:7px}
.project-head-status-stack #liveConnectionBadge{align-self:flex-end}
.kpi-energy-v05111{padding-bottom:13px!important}
.kpi-energy-layout-v05111{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.88fr);gap:12px;align-items:stretch;margin-top:8px}
.kpi-energy-current-v05111,.kpi-energy-right-v05111{min-width:0}
.kpi-energy-current-v05111{display:flex;flex-direction:column;justify-content:center;border-right:1px solid #E5EAED;padding-right:10px}
.kpi-energy-current-v05111>small,.kpi-soc-hero-v05111>small,.kpi-capacity-v05111>small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.055em;color:#718292}
.kpi-energy-current-v05111>strong{display:block;margin-top:5px;font-size:20px;color:var(--blue);white-space:nowrap}
.kpi-energy-current-v05111>strong small{font-size:10px}
.kpi-energy-right-v05111{display:grid;grid-template-rows:auto auto;gap:5px}
.kpi-soc-hero-v05111{padding:2px 0 6px;border-bottom:1px solid #E5EAED}
.kpi-soc-hero-v05111>strong{display:block;margin-top:1px;font-size:27px;line-height:1.05;color:#177A44;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi-soc-hero-v05111>strong small{font-size:12px;color:#177A44}
.kpi-capacity-v05111>strong{display:block;margin-top:2px;font-size:12px;color:#405A70;white-space:nowrap;font-variant-numeric:tabular-nums}
.kpi-capacity-v05111>strong small{font-size:9px}
.live-kpi-strip .kpi-box>em{font-size:11px}
.live-kpi-strip #kpiLastUpdate{font-size:11px;font-weight:650;color:#566C7E}
.live-age{font-size:9px!important;font-weight:550!important}
.system-info-row>span{font-size:12px}.system-info-row>strong{font-size:13px}.system-info-group-title{font-size:11px}
.energy-balance-axis{display:grid;grid-template-columns:130px minmax(80px,1fr) 95px;gap:10px;align-items:center;margin:-6px 0 2px}
.energy-balance-axis>div{grid-column:2;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #CAD5DD;color:#7A8995;font-size:8px;line-height:1;padding-bottom:3px}
.energy-balance-axis small{font-size:8px;font-variant-numeric:tabular-nums}
.energy-canvas-wrap canvas{cursor:crosshair}
@media(max-width:760px){.project-head-status-stack{width:100%;align-items:flex-start}.project-head-status-stack #liveConnectionBadge{align-self:flex-start}.project-head-status-stack .weather-compact{display:none!important}.kpi-energy-layout-v05111{grid-template-columns:1fr 1fr}.system-info-row>span{font-size:12px}.system-info-row>strong{font-size:13px}}
@media(max-width:680px){.energy-balance-axis{grid-template-columns:105px minmax(60px,1fr) 85px}}

/* ENERGICO Vision 0.5.1.13 — Reports + alarm device deep-links */
.alarm-compact-v05113 td{vertical-align:top}.alarm-groups-cell-v05113{min-width:390px}
.alarm-inline-v05113{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:5px!important;padding:7px 0!important;border-bottom:1px solid #EDF1F3}.alarm-inline-v05113:first-child{padding-top:0!important}.alarm-inline-v05113:last-of-type{border-bottom:0}
.alarm-inline-main-v05113{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.alarm-inline-main-v05113 strong{font-size:11px;line-height:1.3;color:var(--blue)}
.alarm-device-link-v05113,.alarm-device-text-v05113{display:inline-flex;align-items:center;gap:5px;margin-left:0!important;font-size:9px!important;line-height:1.35;color:#6B7D8C;text-decoration:none}.alarm-device-link-v05113{color:#2F6FB2;font-weight:650;border-bottom:1px dotted #9BB5CB}.alarm-device-link-v05113:hover{color:#F05223;border-bottom-color:#F05223}.alarm-device-link-v05113 span{font-size:10px}.alarm-more-v05113{display:block;margin-top:7px;color:#758593}
.report-editor-v05113{border-top:3px solid #F05223}.report-form-v05113 label>small{display:block;margin-top:4px;color:#758593;font-size:8px}.report-options-v05113{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:16px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#FAFBFC}.report-options-v05113>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.report-options-v05113 strong{width:100%;font-size:10px;color:var(--blue)}
.report-actions-v05113{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.report-actions-v05113 form{margin:0}.danger-lite{border-color:#E7C1C1!important;color:#A92A2A!important;background:#FFF8F8!important}.danger-lite:hover{background:#FCEEEE!important}.file-link-v05113{display:inline-flex;margin-right:6px;padding:4px 7px;border-radius:5px;border:1px solid #D5DEE5;background:#F8FAFB;color:#2F6FB2;font-size:9px;font-weight:700;text-decoration:none}.file-link-v05113:hover{border-color:#F05223;color:#F05223}
.report-job-list-v05113{display:flex;flex-direction:column}.report-job-row-v05113{display:grid;grid-template-columns:85px minmax(130px,.55fr) minmax(220px,1.5fr) 140px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.report-job-row-v05113:first-child{border-top:0}.report-job-row-v05113 strong{font-size:10px;color:var(--blue)}.report-job-row-v05113 small{font-size:9px;color:#687A89}.report-job-row-v05113 time{font-size:9px;color:#758593;text-align:right}.reports-table-v05113 td:last-child{min-width:300px}
@media(max-width:900px){.report-options-v05113{grid-template-columns:1fr}.report-job-row-v05113{grid-template-columns:80px 1fr}.report-job-row-v05113 small,.report-job-row-v05113 time{grid-column:2}.report-job-row-v05113 time{text-align:left}.alarm-groups-cell-v05113{min-width:300px}}

/* 0.5.1.13 MQTT diagnostics */
.mqtt-project-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 22px}
.mqtt-project-summary article{border:1px solid var(--border,#dfe5eb);border-radius:14px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:3px}
.mqtt-project-summary article>span,.connector-diagnostic-meta span{color:#667085;font-size:12px}
.mqtt-project-summary strong{font-size:24px;color:#1C2F48}.mqtt-project-summary small{color:#667085}
.loxone-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.loxone-topic-grid>div{border:1px solid #e6eaf0;border-radius:12px;padding:12px;background:#fbfcfd;display:flex;flex-direction:column;gap:5px}
.loxone-topic-grid code{overflow-wrap:anywhere}.connector-diagnostic-card{margin-top:12px}
.connector-diagnostic-meta{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 12px}.connector-diagnostic-meta strong{color:#1C2F48}
.diagnostic-values td small{display:block;margin-top:4px}.diagnostic-values form{margin:0}.danger-lite{border-color:#efb4a5!important;color:#a53a1d!important;background:#fff8f5!important}
.raw-message{margin-top:10px}.raw-message pre{white-space:pre-wrap;overflow:auto;max-height:220px;background:#f6f8fa;border-radius:10px;padding:10px;font-size:12px}
.mqtt-health-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px;color:#667085;font-size:13px}
.maintenance-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.maintenance-actions form{margin:0}
.collector-command-list{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:10px 12px;background:#f7f9fb;border-radius:10px;font-size:12px;color:#667085}
@media(max-width:900px){.mqtt-project-summary,.loxone-topic-grid{grid-template-columns:1fr}}

/* ENERGICO Vision 0.5.1.14 — fleet, grouped alarms, admin UX */
.sidebar-admin-tools{display:flex;flex-direction:column;gap:3px;margin:2px 12px 10px 48px;padding:8px 0 0;border-top:1px solid rgba(255,255,255,.10)}
.sidebar-admin-link{display:flex;align-items:center;gap:9px;min-height:31px;padding:6px 9px;border-radius:7px;color:rgba(255,255,255,.72);font-size:11px;text-decoration:none;transition:background .15s,color .15s}
.sidebar-admin-link>span{width:16px;text-align:center;color:rgba(255,255,255,.48);font-size:12px}.sidebar-admin-link strong{font-weight:650}
.sidebar-admin-link:hover,.sidebar-admin-link.active{background:rgba(255,255,255,.09);color:#fff}.sidebar-admin-link.active>span{color:#F05223}

.detected-devices-table-v05114 td{vertical-align:middle}.device-alias-form-v05114{display:grid;grid-template-columns:minmax(165px,1fr) minmax(180px,.85fr) auto;gap:7px;align-items:center;margin:0}
.device-alias-form-v05114 input,.device-alias-form-v05114 select{min-width:0}.device-master-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#EDF3F8;color:#38566F;font-size:9px;font-weight:700}

.comm-health-dashboard-v05114{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:10px 0 12px}
.comm-health-card-v05114{min-width:0;padding:12px 13px;border:1px solid #DFE6EB;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(28,47,72,.03);display:flex;flex-direction:column;gap:4px}
.comm-health-card-v05114.primary{border-top:3px solid #1C2F48;padding-top:10px}.comm-health-card-v05114.warning{border-color:#E7C778;background:#FFF9ED}.comm-health-card-v05114.danger{border-color:#E7B5AA;background:#FFF7F4}
.comm-health-card-v05114>span{font-size:9px;text-transform:uppercase;letter-spacing:.045em;color:#758593;font-weight:750}.comm-health-card-v05114>strong{font-size:18px;line-height:1.15;color:#1C2F48;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.comm-health-card-v05114>small{font-size:9px;line-height:1.3;color:#718190}
.comm-queue-bar-v05114{padding:10px 12px;border:1px solid #E3E8EC;border-radius:9px;background:#FAFBFC}.comm-queue-bar-head-v05114{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:10px;color:#5D7182}.comm-queue-bar-head-v05114 strong{color:#1C2F48}
.comm-queue-track-v05114{height:7px;border-radius:999px;background:#E7ECF0;overflow:hidden}.comm-queue-track-v05114 i{display:block;height:100%;border-radius:inherit;background:#F05223;transition:width .25s ease}.comm-actions-v05114{padding-top:2px}.comm-command-history-v05114{margin-top:12px}.current-params-bottom-v05114{margin-top:30px;padding-top:22px;border-top:2px solid #E8EDF0}

.cabinet-fleet-summary-v05114{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 14px}
.cabinet-fleet-summary-v05114>article{min-width:0;padding:10px 11px;border:1px solid #E1E7EB;border-radius:9px;background:#fff}.cabinet-fleet-summary-v05114 span{display:block;color:#748593;font-size:8px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.cabinet-fleet-summary-v05114 strong{display:block;margin-top:3px;color:#1C2F48;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.cabinet-head-badges-v05114{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.master-group-list-v05114{display:flex;flex-direction:column;gap:9px}.master-group-v05114{border:1px solid #DDE5EA;border-radius:11px;background:#fff;overflow:hidden}.master-group-v05114.unassigned{border-style:dashed}
.master-group-v05114>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:#FAFBFC}.master-group-v05114>summary::-webkit-details-marker{display:none}.master-summary-title-v05114{display:flex;align-items:center;gap:10px;min-width:180px}.master-summary-title-v05114>div{display:flex;flex-direction:column;gap:2px}.master-summary-title-v05114 strong{font-size:12px;color:#1C2F48}.master-summary-title-v05114 small{font-size:8px;color:#7B8995}.master-chevron-v05114{font-size:20px;color:#81909C;transition:transform .15s}.master-group-v05114[open] .master-chevron-v05114{transform:rotate(90deg)}
.master-summary-kpis-v05114{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.master-summary-kpis-v05114 span{display:flex;flex-direction:column;gap:1px;text-align:right;font-size:8px;color:#768694}.master-summary-kpis-v05114 b{font-size:11px;color:#314D63}.master-cabinets-v05114{padding:12px;border-top:1px solid #E6EBEE}

.alarm-project-groups-v05114,.alarm-collapsed-list-v05114,.alarm-history-groups-v05114{display:flex;flex-direction:column;gap:8px}.alarm-project-card-v05114{padding:0;overflow:hidden}.alarm-project-head-v05114{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid #E8ECEF}.alarm-project-head-v05114>div{display:flex;align-items:center;gap:8px}.alarm-project-head-v05114>div:first-child{flex-direction:column;align-items:flex-start;gap:2px}.alarm-project-head-v05114 strong{color:#1C2F48}.alarm-project-head-v05114 small{color:#748593;font-size:9px}
.alarm-collapsed-group-v05114,.alarm-history-group-v05114{border:1px solid #E1E7EB;border-radius:9px;background:#fff;overflow:hidden}.alarm-collapsed-group-v05114>summary,.alarm-history-group-v05114>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#FAFBFC}.alarm-collapsed-group-v05114>summary::-webkit-details-marker,.alarm-history-group-v05114>summary::-webkit-details-marker{display:none}.alarm-group-title-v05114{display:flex;align-items:center;gap:8px;min-width:0}.alarm-group-title-v05114 strong{font-size:11px;color:#1C2F48;overflow:hidden;text-overflow:ellipsis}.alarm-group-count-v05114,.alarm-history-summary-kpis-v05114{display:flex;align-items:center;gap:12px;color:#70808D;font-size:9px;white-space:nowrap}.alarm-group-count-v05114 b,.alarm-history-summary-kpis-v05114 b{color:#314D63}.alarm-group-count-v05114 i,.alarm-history-summary-kpis-v05114 i{font-size:18px;font-style:normal;transition:transform .15s}.alarm-collapsed-group-v05114[open] .alarm-group-count-v05114 i,.alarm-history-group-v05114[open] .alarm-history-summary-kpis-v05114 i{transform:rotate(90deg)}
.alarm-group-occurrences-v05114{padding:5px 12px 9px}.alarm-occurrence-row-v05114{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #EDF1F3}.alarm-occurrence-row-v05114:first-child{border-top:0}.alarm-occurrence-row-v05114>div{display:flex;flex-direction:column;gap:3px}.alarm-occurrence-row-v05114 small{color:#758593;font-size:9px}.alarm-location-link-v05114{display:inline-flex;align-items:center;gap:5px;color:#2F6FB2;text-decoration:none;border-bottom:1px dotted #A9BDCD;width:max-content;max-width:100%}.alarm-location-link-v05114:hover{color:#F05223;border-bottom-color:#F05223}.alarm-location-link-v05114 span{font-size:10px}.alarm-group-footer-v05114{padding:8px 12px;border-top:1px solid #E7ECEF;background:#FAFBFC;color:#718190;font-size:9px;text-align:right}

@media(max-width:1200px){.comm-health-dashboard-v05114{grid-template-columns:repeat(3,minmax(0,1fr))}.cabinet-fleet-summary-v05114{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.device-alias-form-v05114{grid-template-columns:1fr}.master-group-v05114>summary{align-items:flex-start;flex-direction:column}.master-summary-kpis-v05114{justify-content:flex-start}.master-summary-kpis-v05114 span{text-align:left}.alarm-history-summary-kpis-v05114{flex-wrap:wrap;white-space:normal}.sidebar-admin-tools{margin-left:12px}}
@media(max-width:680px){.comm-health-dashboard-v05114{grid-template-columns:repeat(2,minmax(0,1fr))}.cabinet-fleet-summary-v05114{grid-template-columns:repeat(2,minmax(0,1fr))}.alarm-collapsed-group-v05114>summary,.alarm-history-group-v05114>summary{align-items:flex-start;flex-direction:column}.alarm-group-count-v05114{width:100%;justify-content:flex-start}.alarm-project-head-v05114{align-items:flex-start;flex-direction:column}.alarm-project-head-v05114>div:last-child{width:100%;justify-content:flex-start}}


/* ENERGICO Vision 0.5.1.15 — readability, RTE planner and UI consistency */
html,body{font-size:15px}
.nav-item{font-size:14px}.nav-group-title{font-size:11px}.sidebar-user-copy strong{font-size:13px}.sidebar-user-copy span{font-size:12px}
th{font-size:11px}td{font-size:13px}label>span{font-size:12px}.badge{font-size:12px}.small-btn{font-size:12px}
.sidebar-admin-link{min-height:34px;font-size:13px}.sidebar-admin-link>span{font-size:13px}
.comm-health-card-v05114>span{font-size:11px}.comm-health-card-v05114>strong{font-size:20px}.comm-health-card-v05114>small{font-size:11px}.comm-queue-bar-head-v05114{font-size:11px}
.cabinet-fleet-summary-v05114 span{font-size:10px}.cabinet-fleet-summary-v05114 strong{font-size:16px}.device-master-badge{font-size:10px}
.master-summary-title-v05114 strong{font-size:14px}.master-summary-title-v05114 small{font-size:10px}.master-summary-kpis-v05114 span{font-size:10px}.master-summary-kpis-v05114 b{font-size:13px}
.alarm-project-head-v05114 small{font-size:11px}.alarm-group-title-v05114 strong{font-size:13px}.alarm-group-count-v05114,.alarm-history-summary-kpis-v05114{font-size:11px}.alarm-occurrence-row-v05114 small{font-size:11px}.alarm-group-footer-v05114{font-size:11px}.alarm-location-link-v05114 span{font-size:12px}
.history-canvas-wrap,.energy-canvas-wrap,.market-canvas-wrap,#historyChart{background:#FFF}
.rte-head-actions-v05115{display:flex;align-items:center;gap:8px}
.rte-kpi-grid-v05115{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0 0}
.rte-kpi-v05115{min-width:0;min-height:116px;display:flex;flex-direction:column;justify-content:center;border-top:3px solid #DDE4E9}.rte-kpi-v05115.primary{border-top-color:var(--orange)}
.rte-kpi-v05115>span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.rte-kpi-v05115>strong{display:block;margin-top:7px;color:var(--blue);font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.rte-kpi-v05115>small{display:block;margin-top:7px;color:#748391;font-size:11px;line-height:1.35}
.rte-plan-grid-v05115{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#FFF}.rte-plan-grid-v05115>div{padding:13px 14px;min-width:0}.rte-plan-grid-v05115>div+div{border-left:1px solid var(--line)}.rte-plan-grid-v05115 span{display:block;color:var(--muted);font-size:11px}.rte-plan-grid-v05115 strong{display:block;margin-top:5px;color:var(--blue);font-size:17px;font-variant-numeric:tabular-nums}
.rte-chart-head-v05115{align-items:center}.rte-chart-switch-v05115{display:flex;gap:5px;flex-wrap:wrap}.rte-chart-switch-v05115 button{border:1px solid var(--line);background:#FFF;color:#52677B;border-radius:7px;padding:7px 10px;font:600 12px/1.2 inherit}.rte-chart-switch-v05115 button.active{background:var(--blue);border-color:var(--blue);color:#FFF}
.rte-planner-legend-v05115{display:flex;gap:18px;align-items:center;margin:0 0 9px;color:#5F7181;font-size:12px}.rte-planner-legend-v05115 span{display:inline-flex;align-items:center;gap:7px}.rte-planner-legend-v05115 i{display:inline-block;width:20px;height:4px;border-radius:2px}.rte-planner-legend-v05115 i.plan{background:var(--blue)}.rte-planner-legend-v05115 i.actual{background:var(--orange)}
.rte-planner-canvas-wrap-v05115{position:relative;width:100%;height:430px;border:1px solid var(--line);border-radius:9px;background:#FFF;overflow:hidden}.rte-planner-canvas-wrap-v05115 canvas{display:block;width:100%;height:430px;touch-action:pan-y}.rte-planner-empty-v05115{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.94);color:var(--muted);font-size:14px}
.rte-planner-foot-v05115{display:flex;justify-content:space-between;gap:16px;margin-top:9px;color:#687A89;font-size:11px}.rte-daily-table-v05115 tbody tr.is-today{background:#FFF1E9;box-shadow:inset 3px 0 0 var(--orange)}.rte-daily-table-v05115 tbody tr.is-today td{font-weight:600}.rte-daily-table-v05115 th,.rte-daily-table-v05115 td{white-space:nowrap}.rte-method-note-v05115{display:flex;gap:9px;align-items:flex-start}.rte-method-note-v05115 strong{color:var(--blue)}
.users-table-v05115 th:first-child,.users-table-v05115 td:first-child{min-width:190px}.users-table-v05115 th:nth-child(2),.users-table-v05115 td:nth-child(2){min-width:230px}.user-identity-v05115{display:flex;flex-direction:column;gap:3px}.user-identity-v05115 strong{font-size:14px;color:var(--blue)}.user-identity-v05115 small{font-size:11px;color:var(--muted)}.user-email-v05115{font-size:13px;color:#41556A;overflow-wrap:anywhere;word-break:break-word}
.report-files-v05115{display:flex;gap:6px;flex-wrap:wrap}.report-no-file-v05115{color:var(--muted);font-size:12px}
@media(max-width:1280px){.rte-kpi-grid-v05115{grid-template-columns:repeat(3,minmax(0,1fr))}.rte-plan-grid-v05115{grid-template-columns:repeat(3,minmax(0,1fr))}.rte-plan-grid-v05115>div:nth-child(4){border-left:0;border-top:1px solid var(--line)}.rte-plan-grid-v05115>div:nth-child(5),.rte-plan-grid-v05115>div:nth-child(6){border-top:1px solid var(--line)}}
@media(max-width:760px){html,body{font-size:14px}.nav-item{font-size:14px}.rte-kpi-grid-v05115{grid-template-columns:1fr 1fr}.rte-plan-grid-v05115{grid-template-columns:1fr 1fr}.rte-plan-grid-v05115>div{border-top:1px solid var(--line)!important;border-left:0!important}.rte-plan-grid-v05115>div:nth-child(-n+2){border-top:0!important}.rte-plan-grid-v05115>div:nth-child(even){border-left:1px solid var(--line)!important}.rte-chart-head-v05115{align-items:flex-start;flex-direction:column}.rte-planner-canvas-wrap-v05115,.rte-planner-canvas-wrap-v05115 canvas{height:390px}.rte-planner-foot-v05115{flex-direction:column;gap:4px}.rte-head-actions-v05115{align-items:flex-end;flex-direction:column}}


/* --------------------------------------------------------------------------
   ENERGICO Vision 0.5.1.17 — compact RTE, manual export and installation photo
   -------------------------------------------------------------------------- */
.detail-grid-single-v05117{grid-template-columns:1fr}
.detail-side-stack-v05117{display:flex;flex-direction:column;gap:14px;min-width:0}
.rte-card-compact-v05117 .rte-gauge{margin-bottom:10px}
.rte-compact-summary-v05117{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.rte-compact-summary-v05117>div{background:#F8FAFB;border:1px solid #EDF1F3;border-radius:8px;padding:12px}
.rte-compact-summary-v05117>div>span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}
.rte-compact-summary-v05117 .rte-big{margin:0;font-size:34px;line-height:1.05}
.rte-compact-summary-v05117>div>small{display:block;margin-top:6px;color:var(--muted);font-size:10px}
.rte-eom-v05117 strong{display:block;font-size:28px;line-height:1.1;color:var(--blue)}
.rte-eom-v05117 strong small{font-size:13px}.rte-eom-v05117 strong.below{color:#B66A00}.rte-eom-v05117 strong.ok{color:#168B50}
.installation-photo-card-v05117{overflow:hidden}.installation-photo-card-v05117 .panel-head{margin-bottom:9px}
.installation-photo-link-v05117{display:block;border-radius:8px;overflow:hidden;background:#EDF1F3;border:1px solid var(--line);aspect-ratio:16/9}
.installation-photo-link-v05117 img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}
.installation-photo-link-v05117:hover img{transform:scale(1.015)}
.admin-cover-setting-v05117{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.admin-cover-grid-v05117{display:grid;grid-template-columns:minmax(280px,440px) minmax(280px,1fr);gap:18px;align-items:start}
.admin-cover-preview-v05117{aspect-ratio:16/9;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#F5F7F8}
.admin-cover-preview-v05117 img{display:block;width:100%;height:100%;object-fit:cover}
.admin-cover-empty-v05117{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:var(--muted)}
.admin-cover-empty-v05117 strong{color:var(--blue);font-size:14px}.admin-cover-empty-v05117 span{font-size:10px}
.admin-cover-actions-v05117{display:flex;flex-direction:column;gap:10px}.admin-cover-actions-v05117 form{margin:0}.admin-cover-actions-v05117 small{color:var(--muted);font-size:10px;line-height:1.45}
.report-export-hint-v05117{margin:11px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:760px){.rte-compact-summary-v05117,.admin-cover-grid-v05117{grid-template-columns:1fr}.report-range label{min-width:100%;width:100%}}


/* Energy clarity */
.energy-balance-warning{padding:11px 12px;margin:0 0 12px;border:1px solid #E8C98F;border-left:4px solid #D99100;border-radius:8px;background:#FFF9ED;color:#72520B;font-size:11px;line-height:1.45}

/* Market BESS comparison */
.market-series-toggle i.bess{background:#1C2F48}
.market-control-note{display:block;margin-top:4px;font-size:8px;color:#7A8995;max-width:210px;line-height:1.35}


/* 0.5.1.17.4 — relative SoC balance contrast.
   Color expresses deviation from the median SoC of the same cabinet.
   Alarm/warning/offline state has priority. */
.preview-battery.live.soc-balanced{background:#E7F5EB;border-color:#B8D9C2;border-left-color:#168B4B;color:#245B38}
.preview-battery.live.soc-deviation-minor{background:#F4F5D9;border-color:#D8D49A;border-left-color:#AAA021;color:#665F13}
.preview-battery.live.soc-deviation-medium{background:#FFF0D3;border-color:#E9C27D;border-left-color:#D99100;color:#7A5200}
.preview-battery.live.soc-deviation-high{background:#FFE2C8;border-color:#E9A968;border-left-color:#E06F13;color:#8A3E08}
.preview-battery.live.soc-deviation-critical{background:#FFD9D3;border-color:#E58E82;border-left-color:#C92B2B;color:#8D241B}
.preview-battery.live.soc-balanced strong,.preview-battery.live.soc-deviation-minor strong,.preview-battery.live.soc-deviation-medium strong,.preview-battery.live.soc-deviation-high strong,.preview-battery.live.soc-deviation-critical strong{color:inherit}

.battery-module-hf3.live.soc-balanced{background:linear-gradient(110deg,#E8F6EC 0%,#FFFFFF 72%);border-color:#A9D0B5;border-left-color:#168B4B}
.battery-module-hf3.live.soc-deviation-minor{background:linear-gradient(110deg,#F8F7E3 0%,#FFFFFF 72%);border-color:#DAD6A3;border-left-color:#AAA021}
.battery-module-hf3.live.soc-deviation-medium{background:linear-gradient(110deg,#FFF4DF 0%,#FFFFFF 72%);border-color:#E8C98B;border-left-color:#D99100}
.battery-module-hf3.live.soc-deviation-high{background:linear-gradient(110deg,#FFEBDD 0%,#FFFFFF 72%);border-color:#E7B07B;border-left-color:#E06F13}
.battery-module-hf3.live.soc-deviation-critical{background:linear-gradient(110deg,#FFE7E3 0%,#FFFFFF 72%);border-color:#E69A91;border-left-color:#C92B2B}
.battery-module-hf3.live.soc-balanced .battery-hf3-soc strong{color:#168B4B}
.battery-module-hf3.live.soc-deviation-minor .battery-hf3-soc strong{color:#8C8217}
.battery-module-hf3.live.soc-deviation-medium .battery-hf3-soc strong{color:#B06F00}
.battery-module-hf3.live.soc-deviation-high .battery-hf3-soc strong{color:#C65D0D}
.battery-module-hf3.live.soc-deviation-critical .battery-hf3-soc strong{color:#B52D25}
.battery-module-hf3.live.soc-balanced .battery-hf3-socbar i{background:#168B4B}
.battery-module-hf3.live.soc-deviation-minor .battery-hf3-socbar i{background:#AAA021}
.battery-module-hf3.live.soc-deviation-medium .battery-hf3-socbar i{background:#D99100}
.battery-module-hf3.live.soc-deviation-high .battery-hf3-socbar i{background:#E06F13}
.battery-module-hf3.live.soc-deviation-critical .battery-hf3-socbar i{background:#C92B2B}
.battery-zone-head-stats small{display:block;margin-top:3px;font-size:9px;color:#7A8995;font-weight:500}


/* VISION-STICKY-PROJECT-20260909 */
.project-page-nav{
    position:sticky !important;
    top:0;
    z-index:850;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    background:#FFFFFF;
    padding:9px 10px 10px;
    margin:0 -10px 16px;
    border-bottom:1px solid #E1E7EB;
    box-shadow:0 4px 10px rgba(28,47,72,.06);
}

.project-sticky-title-v05118{
    flex:0 0 100%;
    width:100%;
    display:flex;
    align-items:baseline;
    gap:8px;
    padding:0 3px 7px;
    white-space:nowrap;
    overflow:hidden;
}

.project-sticky-title-v05118 span{
    flex:0 0 auto;
    font-size:9px;
    font-weight:700;
    letter-spacing:.12em;
    color:#7A8995;
}

.project-sticky-title-v05118 strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    color:#1C2F48;
    font-size:15px;
    line-height:1.2;
    font-weight:650;
}

@media(max-width:760px){
    .project-page-nav{
        top:64px;
        z-index:850;
        margin-left:-12px;
        margin-right:-12px;
        padding-left:12px;
        padding-right:12px;
        box-shadow:0 3px 9px rgba(28,47,72,.08);
    }

    .project-sticky-title-v05118{
        padding-bottom:6px;
    }

    .project-sticky-title-v05118 strong{
        font-size:14px;
    }
}


/* VISION-STICKY-PROJECT-V05119 */

/* starý chybný sticky řeší už společný wrapper */
.project-sticky-wrap-v05119 .project-page-nav{
    position:static !important;
    top:auto !important;
    z-index:auto !important;
    margin:0 !important;
    padding:0 0 10px !important;
    box-shadow:none !important;
    border-bottom:0 !important;
    background:transparent !important;
}

.project-sticky-wrap-v05119{
    position:sticky;
    top:0;
    z-index:850;
    background:#FFFFFF;
    margin:0 -10px 16px;
    padding:8px 10px 0;
    border-bottom:1px solid #E1E7EB;
    box-shadow:0 4px 10px rgba(28,47,72,.06);
}

.project-sticky-wrap-v05119 .project-head{
    margin-bottom:8px;
}

/* již nepoužívaný druhý název */
.project-sticky-title-v05118{
    display:none !important;
}

@media(max-width:760px){
    .project-sticky-wrap-v05119{
        top:64px;
        margin-left:-12px;
        margin-right:-12px;
        padding-left:12px;
        padding-right:12px;
    }
}

/* VISION 0.5.1.19 — restore dashboard RTE layout */
.detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(380px,.55fr);
    gap:16px;
    align-items:start;
    margin-top:16px;
}

.detail-grid > .panel{
    min-width:0;
}

#projectRteCard.rte-card{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    min-width:0;
    background:#FFFFFF;
}

#projectRteCard .rte-gauge{
    margin-top:14px;
}

#projectRteCard .rte-values{
    margin-top:12px;
}

@media(max-width:1100px){
    .detail-grid{
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   VISION CABINET RESTORE 2026-09-09
   ========================================================== */

/* Přehled kabinetů */
.cabinet-page-title{
    align-items:end;
    margin:4px 0 12px;
}

.cabinet-overview-list{
    display:grid;
    gap:14px;
}

.cabinet-overview-card{
    display:block;
    background:#FFF;
    border:1px solid var(--line);
    border-radius:12px;
    box-shadow:var(--shadow);
    padding:15px;
    color:inherit;
}

.cabinet-overview-card:hover{
    border-color:#AEBBC6;
    box-shadow:0 10px 28px rgba(28,47,72,.09);
}

.cabinet-overview-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding-bottom:10px;
    border-bottom:1px solid var(--line);
}

.cabinet-overview-head>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.cabinet-overview-head strong{
    font-size:19px;
}

.cabinet-overview-head span:not(.badge){
    font-size:12px;
    color:var(--muted);
}

.cabinet-overview-kpis{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin:10px 0;
}

.cabinet-overview-kpis>div{
    background:#F8FAFB;
    border-radius:7px;
    padding:10px 12px;
}

.cabinet-overview-kpis span{
    display:block;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--muted);
}

.cabinet-overview-kpis strong{
    display:block;
    margin-top:4px;
    font-size:16px;
    color:var(--blue);
}

/* 35 % rack / 65 % technické informace */
.cabinet-overview-body-v047{
    display:grid;
    grid-template-columns:minmax(330px,.7fr) minmax(0,1.3fr);
    gap:12px;
    min-height:0;
    align-items:stretch;
}

.cabinet-preview-rack-v047{
    justify-content:flex-start;
    min-width:0;
}

.preview-panel-title{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:8px;
}

.preview-panel-title span{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--muted);
}

.preview-panel-title strong{
    font-size:14px;
}

.preview-rack-v047{
    width:100%;
    height:auto;
    min-height:300px;
    border:1px solid #DCE3E7;
    border-bottom-width:1px;
    background:#F7F9FA;
    border-radius:8px;
    padding:9px;
    box-shadow:none;
}

.preview-battery{
    font-size:11px;
    padding:5px 8px;
    min-height:25px;
}

.preview-battery strong{
    font-size:12px;
}

.cabinet-preview-info-v047{
    min-width:0;
    border:1px solid #E2E7EA;
    border-radius:9px;
    background:#FFF;
    padding:11px 13px;
    display:flex;
    flex-direction:column;
}

.preview-info-section-v047{
    padding:9px 0;
    border-bottom:1px solid var(--line);
}

.preview-info-section-v047:first-child{
    padding-top:0;
}

.preview-info-section-v047.compact{
    border-bottom:0;
    padding-bottom:4px;
}

.preview-info-title{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
    margin-bottom:7px;
}

.preview-info-title>span{
    font-size:14px;
    font-weight:700;
    color:var(--blue);
}

.preview-info-title>small{
    font-size:10px;
    color:var(--muted);
}

.preview-tech-grid-v047{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
}

.preview-tech-grid-v047>div{
    border:1px solid #E2E7EA;
    border-radius:6px;
    background:#F8FAFB;
    padding:9px 10px;
    min-height:58px;
}

.preview-tech-grid-v047 span{
    display:block;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#748391;
}

.preview-tech-grid-v047 strong{
    display:block;
    font-size:15px;
    margin-top:4px;
    color:var(--blue);
    font-variant-numeric:tabular-nums;
}

.preview-tech-grid-v047.environment strong{
    font-size:14px;
}

.preview-status-row-v047{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}

.preview-status-row-v047 span{
    font-size:10px;
    font-weight:650;
    border-radius:999px;
    padding:5px 8px;
    border:1px solid transparent;
}

.preview-status-row-v047 .ok{
    background:#E9F6EE;
    color:#177A44;
    border-color:#CDE7D6;
}

.preview-status-row-v047 .bad{
    background:#FBE5E5;
    color:#B82424;
    border-color:#ECC5C5;
}

.preview-status-row-v047 .warn{
    background:#FFF0CE;
    color:#8C5A00;
    border-color:#EED69D;
}

.cabinet-open-hint{
    font-size:11px;
}

@media(max-width:1100px){
    .cabinet-overview-body-v047{
        grid-template-columns:1fr;
    }

    .preview-rack-v047{
        min-height:250px;
    }

    .preview-tech-grid-v047{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .cabinet-overview-kpis{
        grid-template-columns:repeat(3,1fr);
    }
}

@media(max-width:640px){
    .preview-tech-grid-v047{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .cabinet-overview-kpis{
        grid-template-columns:1fr 1fr;
    }
}


/* VISION RTE RESTORE 20260909 */

.rte-grid-page-v05115{
    display:flex;
    flex-direction:column;
    gap:16px;
    min-width:0;
}

.rte-grid-toolbar-v05115{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:20px;
    background:#FFF;
    border:1px solid var(--line);
    border-radius:11px;
    padding:17px 18px;
    box-shadow:0 3px 14px rgba(28,47,72,.035);
}

.rte-grid-toolbar-v05115 h2{
    margin:2px 0 4px;
}

.rte-grid-toolbar-v05115 p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.rte-month-select-v05115{
    display:flex;
    align-items:flex-end;
    gap:7px;
    margin:0;
}

.rte-month-select-v05115 label{
    margin:0;
}

.rte-month-select-v05115 input{
    min-width:155px;
}

/* horní KPI */
.rte-grid-kpis-v05115{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}

.rte-grid-kpi-v05115{
    position:relative;
    min-width:0;
    min-height:112px;
    padding:14px 15px;
    background:#FFF;
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 3px 14px rgba(28,47,72,.035);
    overflow:hidden;
}

.rte-grid-kpi-v05115::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:4px;
    background:#CBD5DC;
}

.rte-grid-kpi-v05115.primary::before{
    background:var(--orange);
}

.rte-grid-kpi-v05115>span{
    display:block;
    color:#687A8A;
    font-size:11px;
    font-weight:650;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.rte-grid-kpi-v05115>strong{
    display:block;
    margin-top:9px;
    color:var(--blue);
    font-size:24px;
    line-height:1.05;
    font-variant-numeric:tabular-nums;
}

.rte-grid-kpi-v05115>small{
    display:block;
    margin-top:7px;
    color:#748391;
    font-size:11px;
    line-height:1.35;
}

/* energie / cykly */
.rte-grid-energy-v05115{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}

.rte-grid-energy-v05115>article{
    padding:13px 15px;
    background:#FFF;
    border:1px solid var(--line);
    border-radius:9px;
}

.rte-grid-energy-v05115 span{
    display:block;
    color:var(--muted);
    font-size:11px;
}

.rte-grid-energy-v05115 strong{
    display:block;
    margin-top:5px;
    color:var(--blue);
    font-size:18px;
    font-variant-numeric:tabular-nums;
}

.rte-grid-energy-v05115 small{
    display:block;
    margin-top:5px;
    color:#748391;
    font-size:10px;
}

/* graf */
.rte-trajectory-panel-v05115{
    min-width:0;
}

.rte-chart-wrap-v05115{
    position:relative;
    width:100%;
    height:360px;
    margin-top:10px;
    background:#FFF;
    border:1px solid #E0E6E9;
    border-radius:9px;
    overflow:hidden;
}

.rte-chart-wrap-v05115 canvas{
    display:block;
    width:100%;
    height:100%;
}

.rte-chart-tooltip-v05115{
    position:absolute;
    z-index:5;
    min-width:170px;
    padding:9px 11px;
    background:#1C2F48;
    color:#FFF;
    border-radius:7px;
    box-shadow:0 8px 24px rgba(28,47,72,.22);
    pointer-events:none;
    font-size:11px;
}

.rte-trajectory-legend-v05115{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:10px;
    color:#5F7181;
    font-size:11px;
}

.rte-trajectory-legend-v05115 span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.rte-trajectory-legend-v05115 i{
    display:inline-block;
    width:22px;
    height:3px;
    border-radius:2px;
}

.rte-trajectory-legend-v05115 i.actual{
    background:var(--orange);
}

.rte-trajectory-legend-v05115 i.forecast{
    background:#2F6FB2;
}

.rte-trajectory-legend-v05115 i.target{
    background:#20A35A;
}

/* denní tabulka */
.rte-daily-table-wrap-v05115{
    overflow-x:auto;
}

.rte-daily-table-v05115{
    width:100%;
}

.rte-daily-table-v05115 th,
.rte-daily-table-v05115 td{
    white-space:nowrap;
}

.rte-daily-table-v05115 tbody tr.today{
    background:#FFF1E9;
    box-shadow:inset 3px 0 0 var(--orange);
}

.rte-daily-table-v05115 tbody tr.future{
    opacity:.58;
}

/* spodní blok */
.rte-bottom-grid-v05115{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    align-items:start;
}

/* mobil / tablet */
@media(max-width:1280px){
    .rte-grid-kpis-v05115{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .rte-grid-energy-v05115{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:760px){
    .rte-grid-toolbar-v05115{
        flex-direction:column;
        align-items:stretch;
    }

    .rte-month-select-v05115{
        width:100%;
    }

    .rte-grid-kpis-v05115,
    .rte-grid-energy-v05115,
    .rte-bottom-grid-v05115{
        grid-template-columns:1fr;
    }

    .rte-chart-wrap-v05115{
        height:330px;
    }
}


/* ==========================================================
   VISION CABINETS FINAL — LIST + DETAIL 2x7
   ========================================================== */

.cabinet-list-page-v2{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.cabinet-list-heading-v2{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:2px;
}

.cabinet-list-heading-v2 h2{
    margin:2px 0 3px;
}

.cabinet-list-heading-v2 p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

.cabinet-flat-list-v2{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    width:100%;
}

.cabinet-list-row-v2{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(360px,1.25fr) auto;
    align-items:center;
    gap:20px;

    width:100%;
    padding:16px 18px;

    background:#FFF;
    border:1px solid var(--line);
    border-radius:10px;

    color:inherit;
    text-decoration:none;

    box-shadow:0 2px 8px rgba(28,47,72,.035);
    transition:border-color .15s ease,box-shadow .15s ease;
}

.cabinet-list-row-v2:hover{
    border-color:#AAB9C4;
    box-shadow:0 7px 20px rgba(28,47,72,.08);
}

.cabinet-list-main-v2{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.cabinet-list-main-v2>div:last-child{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}

.cabinet-list-main-v2 strong{
    font-size:18px;
    color:var(--blue);
}

.cabinet-list-main-v2 span{
    font-size:11px;
    color:var(--muted);
}

.cabinet-list-status-dot-v2{
    width:11px;
    height:11px;
    flex:0 0 11px;
    border-radius:50%;
}

.cabinet-list-status-dot-v2.ok{
    background:#20A35A;
}

.cabinet-list-status-dot-v2.warn{
    background:#D99100;
}

.cabinet-list-status-dot-v2.bad{
    background:#D22C2C;
}

.cabinet-list-kpis-v2{
    display:grid;
    grid-template-columns:repeat(3,minmax(100px,1fr));
    gap:8px;
}

.cabinet-list-kpis-v2>div{
    padding:8px 10px;
    background:#F8FAFB;
    border-radius:7px;
}

.cabinet-list-kpis-v2 span{
    display:block;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.cabinet-list-kpis-v2 strong{
    display:block;
    margin-top:4px;
    color:var(--blue);
    font-size:15px;
}

.cabinet-state-ok-v2{
    color:#18834A!important;
}

.cabinet-state-warn-v2{
    color:#A26900!important;
}

.cabinet-state-bad-v2{
    color:#C52B2B!important;
}

.cabinet-list-open-v2{
    color:#42637D;
    font-size:12px;
    font-weight:650;
    white-space:nowrap;
}


/* DETAIL KABINETU — fyzický rack 2 × 7 */
.battery-layout-v045.battery-layout-v047.physical-order{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:stretch!important;
}

.battery-layout-v047.physical-order .battery-column-v045{
    display:grid!important;
    grid-template-rows:repeat(7,minmax(0,1fr))!important;
    gap:7px!important;
    min-width:0!important;
}

.battery-layout-v047.physical-order .battery-module-hf3,
.battery-layout-v047.physical-order .battery-slot-empty-v045{
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
}


/* responsive */
@media(max-width:1000px){
    .cabinet-list-row-v2{
        grid-template-columns:1fr;
        gap:12px;
    }

    .cabinet-list-open-v2{
        text-align:right;
    }
}

@media(max-width:620px){
    .cabinet-list-heading-v2{
        align-items:flex-start;
        flex-direction:column;
    }

    .cabinet-list-kpis-v2{
        grid-template-columns:repeat(3,1fr);
    }

    .battery-layout-v045.battery-layout-v047.physical-order{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:6px!important;
    }
}


/* ==========================================================
   VISION CABINET MINI PREVIEW 2x7
   ========================================================== */

.cabinet-list-row-v2{
    grid-template-columns:
        minmax(260px,1fr)
        minmax(330px,1.15fr)
        210px !important;
}

.cabinet-list-mini-v3{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
}

.cabinet-list-mini-v3>small{
    display:none;
}

.cabinet-mini-frame-v3{
    box-sizing:border-box;
    width:190px;
    height:150px;

    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;

    padding:8px;

    background:#263039;
    border:4px solid #59666F;
    border-bottom-width:7px;
    border-radius:6px;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.04),
        0 3px 8px rgba(28,47,72,.08);
}

.cabinet-mini-col-v3{
    min-width:0;

    display:grid;
    grid-template-rows:repeat(7,minmax(0,1fr));
    gap:3px;
}

.cabinet-mini-battery-v3{
    min-width:0;
    min-height:0;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:3px;

    padding:1px 4px;

    background:#EDF1F3;
    border-left:4px solid #8996A2;
    border-radius:2px;

    color:#1C2F48;
    font-size:8px;
    line-height:1;

    overflow:hidden;
}

.cabinet-mini-battery-v3 b{
    font-size:8px;
    font-weight:700;
}

.cabinet-mini-battery-v3 i{
    font-size:7px;
    font-style:normal;
    font-weight:600;
    opacity:.8;
}

.cabinet-mini-battery-v3.live{
    background:#E9F6EE;
    border-left-color:#20A35A;
}

.cabinet-mini-battery-v3.warning{
    background:#FFF0CE;
    border-left-color:#D99100;
}

.cabinet-mini-battery-v3.alarm{
    background:#FBE5E5;
    border-left-color:#D22C2C;
}

.cabinet-mini-battery-v3.unknown{
    background:#EDF1F3;
    border-left-color:#8996A2;
}

.cabinet-mini-battery-v3.empty{
    background:#323E47;
    border-left-color:#44515A;
    opacity:.5;
}


/* tablet */
@media(max-width:1100px){

    .cabinet-list-row-v2{
        grid-template-columns:minmax(230px,1fr) 190px !important;
    }

    .cabinet-list-kpis-v2{
        grid-column:1/2;
    }

    .cabinet-list-mini-v3{
        grid-column:2;
        grid-row:1/3;
    }

}


/* mobil */
@media(max-width:700px){

    .cabinet-list-row-v2{
        grid-template-columns:1fr !important;
    }

    .cabinet-list-main-v2,
    .cabinet-list-kpis-v2,
    .cabinet-list-mini-v3{
        grid-column:1 !important;
        grid-row:auto !important;
    }

    .cabinet-list-mini-v3{
        justify-content:space-between;
    }

    .cabinet-list-mini-v3>small{
        display:block;
        color:#42637D;
        font-size:11px;
        font-weight:650;
    }

    .cabinet-mini-frame-v3{
        width:170px;
        height:140px;
    }
}

/* =========================================================
   VISION FLEET CABINET LIST V4
   návrat k původnímu cabinet overview, optimalizovaný pro 50 ks
   ========================================================= */

.fleet-title-v4{
    margin-top:5px;
}

.fleet-summary-v4{
    margin-bottom:14px;
}

.fleet-toolbar-v4{
    position:sticky;
    top:0;
    z-index:15;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;

    margin:0 0 10px;
    padding:8px 10px;

    background:rgba(254,254,247,.96);
    border:1px solid var(--line);
    border-radius:9px;
    backdrop-filter:blur(7px);
}

.fleet-filters-v4{
    display:flex;
    gap:5px;
    flex-wrap:wrap;
}

.fleet-filters-v4 button{
    border:1px solid #D8E0E5;
    background:#FFF;
    color:#53687B;

    padding:6px 10px;
    border-radius:6px;

    font:650 11px/1.2 inherit;
    cursor:pointer;
}

.fleet-filters-v4 button.active{
    background:var(--blue);
    border-color:var(--blue);
    color:#FFF;
}

.fleet-search-v4{
    display:flex;
    align-items:center;
    gap:6px;

    min-width:280px;
    padding:0 9px;

    background:#FFF;
    border:1px solid #D8E0E5;
    border-radius:7px;
}

.fleet-search-v4 span{
    color:#71808D;
}

.fleet-search-v4 input{
    width:100%;
    min-height:34px;
    padding:5px 0;

    border:0;
    outline:0;
    background:transparent;
    font-size:12px;
}


.fleet-list-v4{
    display:flex;
    flex-direction:column;
    gap:8px;
}


.fleet-cabinet-row-v4{
    display:grid;

    grid-template-columns:
        minmax(235px,.8fr)
        minmax(520px,1.7fr)
        150px;

    align-items:center;
    gap:16px;

    min-height:104px;

    padding:11px 13px;

    background:#FFF;
    border:1px solid #DDE4E8;
    border-radius:10px;

    color:inherit;
    text-decoration:none;

    box-shadow:0 2px 7px rgba(28,47,72,.025);

    transition:
        border-color .14s ease,
        box-shadow .14s ease,
        transform .14s ease;
}

.fleet-cabinet-row-v4:hover{
    border-color:#AEBCC6;
    box-shadow:0 6px 18px rgba(28,47,72,.075);
    transform:translateY(-1px);
}

.fleet-cabinet-row-v4[hidden]{
    display:none!important;
}


/* identity */

.fleet-cabinet-identity-v4{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:9px;
    min-width:0;
}

.fleet-status-line-v4{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.fleet-status-line-v4>div{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}

.fleet-status-line-v4 strong{
    color:var(--blue);
    font-size:16px;
    line-height:1.15;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.fleet-status-line-v4 small{
    color:var(--muted);
    font-size:10px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.fleet-led-v4{
    width:10px;
    height:10px;
    flex:0 0 10px;
    border-radius:50%;
    background:#8C98A3;
}

.fleet-led-v4.ok{background:#20A35A}
.fleet-led-v4.warn{background:#D99100}
.fleet-led-v4.bad{background:#D22C2C}
.fleet-led-v4.off{background:#8996A2}

.fleet-badges-v4{
    display:flex;
    gap:5px;
    padding-left:20px;
}


/* KPI */

.fleet-kpis-v4{
    display:grid;
    grid-template-columns:
        .7fr
        .85fr
        .72fr
        .72fr
        1.1fr;

    gap:6px;
}

.fleet-kpis-v4>div{
    min-width:0;
    padding:8px 9px;

    background:#F8FAFB;
    border-radius:6px;
}

.fleet-kpis-v4 span{
    display:block;

    color:#71808D;
    font-size:9px;
    font-weight:650;

    text-transform:uppercase;
    letter-spacing:.04em;

    white-space:nowrap;
}

.fleet-kpis-v4 strong{
    display:block;

    margin-top:4px;

    color:var(--blue);
    font-size:13px;
    font-variant-numeric:tabular-nums;

    white-space:nowrap;
}


/* mini fyzický kabinet 2 x 7 */

.fleet-rack-side-v4{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:4px;
}

.fleet-rack-side-v4>span{
    color:#526D83;
    font-size:9px;
    font-weight:650;
}

.fleet-mini-rack-v4{
    box-sizing:border-box;

    width:126px;
    height:82px;

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px;

    padding:5px;

    background:#263039;

    border:3px solid #59666F;
    border-bottom-width:5px;
    border-radius:5px;
}

.fleet-mini-col-v4{
    display:grid;
    grid-template-rows:repeat(7,minmax(0,1fr));
    gap:2px;
    min-width:0;
    min-height:0;
}

.fleet-mini-battery-v4{
    display:flex;
    align-items:center;
    justify-content:space-between;

    min-width:0;
    min-height:0;

    padding:0 3px;

    background:#EDF1F3;
    border-left:3px solid #8996A2;
    border-radius:1px;

    color:#21394F;
    overflow:hidden;
}

.fleet-mini-battery-v4 span,
.fleet-mini-battery-v4 strong{
    font-size:6px;
    line-height:1;
}

.fleet-mini-battery-v4.live{
    background:#E9F6EE;
    border-left-color:#20A35A;
}

.fleet-mini-battery-v4.warning{
    background:#FFF0CE;
    border-left-color:#D99100;
}

.fleet-mini-battery-v4.alarm{
    background:#FBE5E5;
    border-left-color:#D22C2C;
}

.fleet-mini-battery-v4.unknown{
    background:#EDF1F3;
    border-left-color:#8996A2;
}

.fleet-mini-battery-v4.empty{
    background:#323E47;
    border-left-color:#44515A;
    color:#85919A;
    opacity:.55;
}


/* responsive */

@media(max-width:1250px){

    .fleet-cabinet-row-v4{
        grid-template-columns:minmax(220px,.9fr) minmax(360px,1.4fr) 140px;
    }

    .fleet-kpis-v4{
        grid-template-columns:repeat(3,1fr);
    }

}

@media(max-width:900px){

    .fleet-toolbar-v4{
        position:static;
        align-items:stretch;
        flex-direction:column;
    }

    .fleet-search-v4{
        min-width:0;
        width:100%;
    }

    .fleet-cabinet-row-v4{
        grid-template-columns:1fr 130px;
    }

    .fleet-cabinet-identity-v4{
        grid-column:1;
    }

    .fleet-kpis-v4{
        grid-column:1;
    }

    .fleet-rack-side-v4{
        grid-column:2;
        grid-row:1 / 3;
    }

}

@media(max-width:620px){

    .fleet-cabinet-row-v4{
        grid-template-columns:1fr;
    }

    .fleet-cabinet-identity-v4,
    .fleet-kpis-v4,
    .fleet-rack-side-v4{
        grid-column:1;
        grid-row:auto;
    }

    .fleet-rack-side-v4{
        align-items:flex-start;
    }

    .fleet-kpis-v4{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}


/* === RESTORED CABINET OVERVIEW 0511411 === */
.cabinet-page-title{align-items:end;margin:4px 0 12px}.cabinet-overview-list{display:grid;gap:14px}.cabinet-overview-card{display:block;background:#FFF;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:15px;color:inherit}.cabinet-overview-card:hover{border-color:#AEBBC6;box-shadow:0 10px 28px rgba(28,47,72,.09)}
.cabinet-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.cabinet-overview-head>div{display:flex;flex-direction:column;gap:2px}.cabinet-overview-head strong{font-size:15px}.cabinet-overview-head span:not(.badge){font-size:10px;color:var(--muted)}
.cabinet-overview-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px 0}.cabinet-overview-kpis>div{background:#F8FAFB;border-radius:7px;padding:8px 10px}.cabinet-overview-kpis span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cabinet-overview-kpis strong{display:block;margin-top:3px;font-size:13px;color:var(--blue)}
.cabinet-overview-body{display:grid;grid-template-columns:minmax(410px,1.15fr) minmax(330px,.85fr);gap:12px;min-height:280px}.cabinet-preview-rack,.cabinet-preview-boxes{background:#F5F7F8;border:1px solid #E2E7EA;border-radius:9px;padding:10px}.cabinet-preview-rack{display:flex;flex-direction:column;align-items:center;justify-content:center}.cabinet-preview-rack small{font-size:9px;color:var(--muted);margin-top:5px}.preview-rack-frame{width:min(100%,660px);height:230px;background:#263039;border:5px solid #59666F;border-bottom-width:10px;border-radius:6px;padding:7px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.preview-rack-column{display:grid;grid-template-rows:repeat(9,1fr);gap:3px}.preview-battery{border-radius:3px;background:#F8FBFC;border-left:5px solid var(--green);display:flex;align-items:center;justify-content:space-between;padding:2px 7px;color:#21394F;font-size:8px;min-height:0}.preview-battery.warning{background:#FFF3DC;border-left-color:var(--amber)}.preview-battery.alarm{background:#FDE9E9;border-left-color:var(--red)}.preview-battery.unknown{background:#E8ECEF;border-left-color:#8D99A4}.preview-battery.empty{background:#323E47;border-left-color:#44515A;opacity:.48}.preview-battery strong{font-size:9px}
.cabinet-preview-boxes{display:flex;flex-direction:column}.cabinet-preview-box-summary{display:flex;flex-direction:column;padding-bottom:8px;border-bottom:1px solid var(--line)}.cabinet-preview-box-summary span{font-size:9px;text-transform:uppercase;color:var(--muted)}.cabinet-preview-box-summary strong{font-size:17px;margin-top:2px}.cabinet-preview-box-summary small{font-size:9px;color:var(--muted)}.preview-box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:5px;margin-top:9px}.preview-box{height:34px;border-radius:5px;background:#E9F6EE;border:1px solid #BFDCC9;display:grid;place-items:center;font-style:normal;font-size:9px;font-weight:650}.preview-box.warn{background:#FFF1D8;border-color:#EBCB8C}.preview-box.bad{background:#FBE1E1;border-color:#E5ACAC}.cabinet-preview-events{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.cabinet-preview-events span{font-size:8px;border-radius:12px;padding:4px 6px}.cabinet-preview-events .warning{background:var(--amber-bg);color:#9A6200}.cabinet-preview-events .alarm{background:var(--red-bg);color:#B92727}.cabinet-open-hint{text-align:right;font-size:10px;color:#506B83;margin-top:8px}
@media(max-width:900px){.cabinet-overview-kpis{grid-template-columns:repeat(3,1fr)}.cabinet-overview-body{grid-template-columns:1fr}.cabinet-hardware-v043{grid-template-columns:1fr}.battery-rack-v043{height:620px;min-height:620px}.cabinet-kpis-v043{grid-template-columns:repeat(3,1fr)}.alarm-filter-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.export-actions{margin-left:0}}
@media(max-width:620px){.cabinet-overview-kpis{grid-template-columns:1fr 1fr}.preview-rack-frame{height:220px}.battery-rack-v043{height:auto;min-height:920px}.battery-card-main{grid-template-columns:1fr 1fr}.battery-card-cells{grid-template-columns:1fr 1fr}.alarm-filter-grid{grid-template-columns:1fr}.cabinet-kpis-v043{grid-template-columns:1fr 1fr}}
.cabinet-preview-rack,.cabinet-preview-boxes{background:#FFF}
.preview-rack-frame{height:auto;min-height:250px;background:#F7F9FA;border:1px solid #DCE3E7;border-radius:9px;padding:9px;gap:7px;box-shadow:none}
.preview-rack-column{gap:4px}.preview-battery{min-height:22px;background:#F5FBF7;border:1px solid #D6E3DB;border-left:4px solid #20A35A;border-radius:5px;padding:4px 7px;font-size:8px}.preview-battery.warning{background:#FFF7E6;border-color:#ECD8AA;border-left-color:#D99100}.preview-battery.alarm{background:#FFF0F0;border-color:#E9C3C3;border-left-color:#C92B2B}.preview-battery.unknown{background:#F0F3F5;border-color:#D8DEE2;border-left-color:#8996A2}.preview-battery.empty{background:#F4F6F7;border:1px dashed #CBD4DA;opacity:1}
.cabinet-overview-body-v047{grid-template-columns:minmax(330px,.7fr) minmax(0,1.3fr);min-height:0;align-items:stretch}
.cabinet-preview-rack-v047{justify-content:flex-start;min-width:0}.preview-panel-title{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.preview-panel-title span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.preview-panel-title strong{font-size:11px}
.preview-rack-v047{width:100%;height:auto;min-height:300px;border:1px solid #DCE3E7;border-bottom-width:1px;background:#F7F9FA;border-radius:8px;padding:9px;box-shadow:none}
.preview-rack-v047 .preview-battery.empty{background:#F1F4F6;border:1px dashed #CBD4DA;color:#A0ABB3;opacity:1}.preview-rack-v047 .preview-battery.empty span{font-size:7px}
.cabinet-preview-info-v047{min-width:0;border:1px solid #E2E7EA;border-radius:9px;background:#FFF;padding:11px 13px;display:flex;flex-direction:column}
.preview-info-section-v047{padding:9px 0;border-bottom:1px solid var(--line)}.preview-info-section-v047:first-child{padding-top:0}.preview-info-section-v047.compact{border-bottom:0;padding-bottom:4px}
.preview-info-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}.preview-info-title>span{font-size:9px;font-weight:700;color:var(--blue)}.preview-info-title>small{font-size:7px;color:var(--muted)}
.preview-tech-grid-v047{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.preview-tech-grid-v047>div{border:1px solid #E2E7EA;border-radius:6px;background:#F8FAFB;padding:7px 8px;min-height:50px}.preview-tech-grid-v047 span{display:block;font-size:7px;text-transform:uppercase;letter-spacing:.04em;color:#748391}.preview-tech-grid-v047 strong{display:block;font-size:11px;margin-top:4px;color:var(--blue);font-variant-numeric:tabular-nums}.preview-tech-grid-v047.environment strong{font-size:10px}
.preview-status-row-v047{display:flex;flex-wrap:wrap;gap:5px}.preview-status-row-v047 span{font-size:7px;font-weight:650;border-radius:999px;padding:4px 7px;border:1px solid transparent}.preview-status-row-v047 .ok{background:#E9F6EE;color:#177A44;border-color:#CDE7D6}.preview-status-row-v047 .bad{background:#FBE5E5;color:#B82424;border-color:#ECC5C5}.preview-status-row-v047 .warn{background:#FFF0CE;color:#8C5A00;border-color:#EED69D}
@media(max-width:1100px){.cabinet-overview-body-v047{grid-template-columns:1fr}.preview-rack-v047{min-height:250px}.preview-tech-grid-v047{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.preview-tech-grid-v047{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cabinet-overview-head strong{font-size:19px}.cabinet-overview-head span:not(.badge){font-size:12px}
.cabinet-overview-kpis>div{padding:10px 12px}.cabinet-overview-kpis span{font-size:11px}.cabinet-overview-kpis strong{font-size:16px;margin-top:4px}
.preview-panel-title span{font-size:11px}.preview-panel-title strong{font-size:14px}.cabinet-preview-rack small{font-size:10px}
.preview-battery{font-size:11px;padding:5px 8px;min-height:25px}.preview-battery strong{font-size:12px}.preview-rack-v047 .preview-battery.empty span{font-size:10px}
.preview-info-title>span{font-size:14px}.preview-info-title>small{font-size:10px}
.preview-tech-grid-v047>div{padding:9px 10px;min-height:58px}.preview-tech-grid-v047 span{font-size:10px}.preview-tech-grid-v047 strong{font-size:15px}.preview-tech-grid-v047.environment strong{font-size:14px}
.preview-status-row-v047 span{font-size:10px;padding:5px 8px}.cabinet-open-hint{font-size:11px}
.preview-battery.live{background:#F3FAF5;background:color-mix(in srgb,#20A35A var(--soc-fill,18%),#FFFFFF);border-color:#C4DDCD;border-left-color:#168B4B}
.preview-battery.warning{background:#FFF7E6;border-color:#ECD8AA;border-left-color:#D99100}.preview-battery.alarm{background:#FFF0F0;border-color:#E9C3C3;border-left-color:#C92B2B}.preview-battery.unknown{background:#F0F3F5;border-color:#D8DEE2;border-left-color:#8996A2}
.cabinet-fleet-summary-v05114{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 14px}
.cabinet-fleet-summary-v05114>article{min-width:0;padding:10px 11px;border:1px solid #E1E7EB;border-radius:9px;background:#fff}.cabinet-fleet-summary-v05114 span{display:block;color:#748593;font-size:8px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.cabinet-fleet-summary-v05114 strong{display:block;margin-top:3px;color:#1C2F48;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.cabinet-head-badges-v05114{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.master-group-list-v05114{display:flex;flex-direction:column;gap:9px}.master-group-v05114{border:1px solid #DDE5EA;border-radius:11px;background:#fff;overflow:hidden}.master-group-v05114.unassigned{border-style:dashed}
.master-group-v05114>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:#FAFBFC}.master-group-v05114>summary::-webkit-details-marker{display:none}.master-summary-title-v05114{display:flex;align-items:center;gap:10px;min-width:180px}.master-summary-title-v05114>div{display:flex;flex-direction:column;gap:2px}.master-summary-title-v05114 strong{font-size:12px;color:#1C2F48}.master-summary-title-v05114 small{font-size:8px;color:#7B8995}.master-chevron-v05114{font-size:20px;color:#81909C;transition:transform .15s}.master-group-v05114[open] .master-chevron-v05114{transform:rotate(90deg)}
.master-summary-kpis-v05114{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.master-summary-kpis-v05114 span{display:flex;flex-direction:column;gap:1px;text-align:right;font-size:8px;color:#768694}.master-summary-kpis-v05114 b{font-size:11px;color:#314D63}.master-cabinets-v05114{padding:12px;border-top:1px solid #E6EBEE}
@media(max-width:1200px){.comm-health-dashboard-v05114{grid-template-columns:repeat(3,minmax(0,1fr))}.cabinet-fleet-summary-v05114{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.device-alias-form-v05114{grid-template-columns:1fr}.master-group-v05114>summary{align-items:flex-start;flex-direction:column}.master-summary-kpis-v05114{justify-content:flex-start}.master-summary-kpis-v05114 span{text-align:left}.alarm-history-summary-kpis-v05114{flex-wrap:wrap;white-space:normal}.sidebar-admin-tools{margin-left:12px}}
@media(max-width:680px){.comm-health-dashboard-v05114{grid-template-columns:repeat(2,minmax(0,1fr))}.cabinet-fleet-summary-v05114{grid-template-columns:repeat(2,minmax(0,1fr))}.alarm-collapsed-group-v05114>summary,.alarm-history-group-v05114>summary{align-items:flex-start;flex-direction:column}.alarm-group-count-v05114{width:100%;justify-content:flex-start}.alarm-project-head-v05114{align-items:flex-start;flex-direction:column}.alarm-project-head-v05114>div:last-child{width:100%;justify-content:flex-start}}
.cabinet-fleet-summary-v05114 span{font-size:10px}.cabinet-fleet-summary-v05114 strong{font-size:16px}.device-master-badge{font-size:10px}
.master-summary-title-v05114 strong{font-size:14px}.master-summary-title-v05114 small{font-size:10px}.master-summary-kpis-v05114 span{font-size:10px}.master-summary-kpis-v05114 b{font-size:13px}
.preview-battery.live.soc-balanced{background:#E7F5EB;border-color:#B8D9C2;border-left-color:#168B4B;color:#245B38}
.preview-battery.live.soc-deviation-minor{background:#F4F5D9;border-color:#D8D49A;border-left-color:#AAA021;color:#665F13}
.preview-battery.live.soc-deviation-medium{background:#FFF0D3;border-color:#E9C27D;border-left-color:#D99100;color:#7A5200}
.preview-battery.live.soc-deviation-high{background:#FFE2C8;border-color:#E9A968;border-left-color:#E06F13;color:#8A3E08}
.preview-battery.live.soc-deviation-critical{background:#FFD9D3;border-color:#E58E82;border-left-color:#C92B2B;color:#8D241B}
.preview-battery.live.soc-balanced strong,.preview-battery.live.soc-deviation-minor strong,.preview-battery.live.soc-deviation-medium strong,.preview-battery.live.soc-deviation-high strong,.preview-battery.live.soc-deviation-critical strong{color:inherit}

.preview-rack-column{
    grid-template-rows:repeat(7,minmax(0,1fr))!important;
}

.preview-rack-v047{
    min-height:250px!important;
}

.cabinet-overview-body-v047{
    grid-template-columns:minmax(320px,.70fr) minmax(0,1.30fr)!important;
}

/* původní moderní typografie */
.cabinet-overview-head strong{
    font-size:19px!important;
}

.cabinet-overview-head span:not(.badge){
    font-size:12px!important;
}

.cabinet-overview-kpis span{
    font-size:11px!important;
}

.cabinet-overview-kpis strong{
    font-size:16px!important;
}

.preview-panel-title span{
    font-size:11px!important;
}

.preview-panel-title strong{
    font-size:14px!important;
}

.preview-tech-grid-v047 span{
    font-size:10px!important;
}

.preview-tech-grid-v047 strong{
    font-size:15px!important;
}

.preview-status-row-v047 span{
    font-size:10px!important;
}

.cabinet-open-hint{
    font-size:11px!important;
}


/* === END RESTORED CABINET OVERVIEW === */

/* =========================================================
   CABINET FLEET V5 — compact modern list
   ========================================================= */

.cab-page-head-v5{
    margin-bottom:12px;
}

.cab-summary-v5{
    margin-bottom:12px;
}


/* toolbar */

.cab-tools-v5{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;

    margin-bottom:8px;
    padding:7px 8px;

    background:#F8FAFB;
    border:1px solid #E1E7EA;
    border-radius:9px;
}

.cab-filter-v5{
    display:flex;
    gap:4px;
}

.cab-filter-v5 button{
    min-height:31px;
    padding:5px 10px;

    border:1px solid #D9E0E5;
    border-radius:6px;

    background:#FFF;
    color:#53687A;

    font:650 11px/1 inherit;
    cursor:pointer;
}

.cab-filter-v5 button.active{
    background:#1C2F48;
    border-color:#1C2F48;
    color:#FFF;
}

.cab-search-v5{
    display:flex;
    align-items:center;
    gap:6px;

    width:270px;
    min-height:33px;
    padding:0 9px;

    background:#FFF;
    border:1px solid #D9E0E5;
    border-radius:7px;
}

.cab-search-v5 span{
    color:#7A8792;
}

.cab-search-v5 input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    font-size:12px;
}


/* list */

.cab-list-v5{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.cab-row-v5{
    position:relative;

    display:grid;
    grid-template-columns:
        4px
        minmax(210px,.9fr)
        145px
        minmax(510px,1.8fr)
        105px
        20px;

    align-items:center;
    gap:13px;

    min-height:82px;
    padding:8px 11px 8px 0;

    background:#FFF;
    border:1px solid #E1E6EA;
    border-radius:9px;

    color:inherit;
    text-decoration:none;

    box-shadow:0 1px 4px rgba(28,47,72,.025);

    transition:
        border-color .14s ease,
        box-shadow .14s ease,
        transform .14s ease,
        background .14s ease;
}

.cab-row-v5:hover{
    background:#FCFDFD;
    border-color:#AAB8C2;
    box-shadow:0 5px 16px rgba(28,47,72,.07);
    transform:translateY(-1px);
}

.cab-row-v5[hidden]{
    display:none!important;
}


/* left status rail */

.cab-row-state-v5{
    align-self:stretch;
    width:4px;
    margin:-1px 0;
    border-radius:9px 0 0 9px;
    background:#8996A2;
}

.cab-row-state-v5.online{background:#20A35A}
.cab-row-state-v5.warning{background:#D99100}
.cab-row-state-v5.alarm{background:#D22C2C}
.cab-row-state-v5.offline{background:#8996A2}


/* identity */

.cab-id-v5{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}

.cab-id-v5 strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    color:#1C2F48;
    font-size:17px;
    line-height:1.1;
}

.cab-id-v5 span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    color:#748391;
    font-size:10px;
}


/* connection */

.cab-connection-v5{
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
}

.cab-connection-v5 .badge{
    font-size:9px;
    padding:4px 6px;
}


/* metrics */

.cab-metrics-v5{
    display:grid;
    grid-template-columns:.72fr .9fr .72fr .72fr 1.1fr;
    gap:5px;
}

.cab-metrics-v5>div{
    min-width:0;
    padding:7px 8px;

    background:#F7F9FA;
    border:1px solid #EDF0F2;
    border-radius:6px;
}

.cab-metrics-v5 span{
    display:block;

    color:#788692;
    font-size:9px;
    font-weight:650;
    text-transform:uppercase;
    letter-spacing:.035em;

    white-space:nowrap;
}

.cab-metrics-v5 strong{
    display:block;

    margin-top:4px;

    color:#1C2F48;
    font-size:13px;
    line-height:1.05;
    font-variant-numeric:tabular-nums;

    white-space:nowrap;
}


/* mini cabinet */

.cab-rack-v5{
    display:flex;
    align-items:center;
    justify-content:center;
}

.cab-mini-v5{
    box-sizing:border-box;

    width:96px;
    height:58px;

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3px;

    padding:4px;

    background:#263039;

    border:2px solid #59666F;
    border-bottom-width:4px;
    border-radius:4px;
}

.cab-mini-col-v5{
    display:grid;
    grid-template-rows:repeat(7,minmax(0,1fr));
    gap:1px;
    min-width:0;
    min-height:0;
}

.cab-mini-cell-v5{
    display:block;
    min-width:0;
    min-height:0;

    border-radius:1px;
    background:#E8EDF0;
    border-left:3px solid #8996A2;
}

.cab-mini-cell-v5.live{
    background:#E3F4E9;
    border-left-color:#20A35A;
}

.cab-mini-cell-v5.warning{
    background:#FFF0CE;
    border-left-color:#D99100;
}

.cab-mini-cell-v5.alarm{
    background:#F8DFDF;
    border-left-color:#D22C2C;
}

.cab-mini-cell-v5.unknown{
    background:#E8EDF0;
    border-left-color:#8996A2;
}

.cab-mini-cell-v5.empty{
    background:#364149;
    border-left-color:#46525B;
    opacity:.55;
}


/* arrow */

.cab-arrow-v5{
    color:#8A98A3;
    font-size:25px;
    font-weight:300;
    text-align:center;
    transition:transform .14s ease,color .14s ease;
}

.cab-row-v5:hover .cab-arrow-v5{
    color:#F05223;
    transform:translateX(2px);
}


/* responsive */

@media(max-width:1350px){

    .cab-row-v5{
        grid-template-columns:
            4px
            minmax(190px,.9fr)
            125px
            minmax(360px,1.6fr)
            100px
            18px;
    }

    .cab-metrics-v5{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

}

@media(max-width:950px){

    .cab-tools-v5{
        align-items:stretch;
        flex-direction:column;
    }

    .cab-search-v5{
        width:100%;
    }

    .cab-row-v5{
        grid-template-columns:4px 1fr 105px 18px;
    }

    .cab-id-v5{
        grid-column:2;
    }

    .cab-connection-v5{
        grid-column:2;
        flex-direction:row;
    }

    .cab-metrics-v5{
        grid-column:2;
        grid-template-columns:repeat(3,1fr);
    }

    .cab-rack-v5{
        grid-column:3;
        grid-row:1 / span 3;
    }

    .cab-arrow-v5{
        grid-column:4;
        grid-row:1 / span 3;
    }

}

@media(max-width:620px){

    .cab-row-v5{
        grid-template-columns:4px 1fr 18px;
    }

    .cab-rack-v5{
        display:none;
    }

    .cab-arrow-v5{
        grid-column:3;
    }

    .cab-metrics-v5{
        grid-template-columns:repeat(2,1fr);
    }

}

/* =========================================================
   PROJECT TITLE + NAV STICKY FINAL
   ========================================================= */

.project-sticky-wrap-v05119{
    position:sticky !important;
    top:0 !important;
    z-index:850 !important;

    background:#FEFEF7 !important;

    padding:5px 0 6px !important;
    margin-bottom:14px !important;

    border-bottom:1px solid #E1E7EB;
    box-shadow:0 5px 12px rgba(28,47,72,.035);
}

.project-sticky-wrap-v05119 .project-head{
    margin-bottom:5px !important;
}

.project-sticky-wrap-v05119 .project-page-nav{
    margin-bottom:0 !important;
    background:#FEFEF7;
}

/* mobilní horní lišta má 64 px */
@media(max-width:760px){
    .project-sticky-wrap-v05119{
        top:64px !important;
        z-index:850 !important;
    }
}

/* =========================================================
   CABINET FLEET V4 COMPACT FINAL
   pouze rozměry - struktura původního seznamu zůstává
   ========================================================= */

.fleet-list-v4{
    gap:6px !important;
}

.fleet-cabinet-row-v4{
    min-height:82px !important;
    padding:8px 12px !important;

    grid-template-columns:
        minmax(230px,.8fr)
        minmax(500px,1.7fr)
        118px !important;

    gap:13px !important;

    border-radius:9px !important;
    box-shadow:0 1px 5px rgba(28,47,72,.03) !important;
}

.fleet-cabinet-row-v4:hover{
    border-color:#AEBCC6 !important;
    box-shadow:0 5px 15px rgba(28,47,72,.065) !important;
    transform:none !important;
}


/* název */

.fleet-cabinet-identity-v4{
    gap:6px !important;
}

.fleet-status-line-v4{
    gap:9px !important;
}

.fleet-status-line-v4 strong{
    font-size:16px !important;
}

.fleet-status-line-v4 small{
    font-size:10px !important;
}

.fleet-badges-v4{
    gap:4px !important;
}

.fleet-badges-v4 .badge{
    font-size:9px !important;
    padding:3px 6px !important;
}


/* KPI */

.fleet-kpis-v4{
    gap:5px !important;
}

.fleet-kpis-v4>div{
    padding:6px 8px !important;
    border:1px solid #E9EDF0 !important;
    background:#F8FAFB !important;
    border-radius:6px !important;
}

.fleet-kpis-v4 span{
    font-size:9px !important;
}

.fleet-kpis-v4 strong{
    margin-top:3px !important;
    font-size:13px !important;
}


/* mikro kabinet 2 x 7 */

.fleet-mini-rack-v4{
    width:100px !important;
    height:62px !important;

    padding:4px !important;
    gap:3px !important;

    border-width:2px !important;
    border-bottom-width:4px !important;
    border-radius:4px !important;
}

.fleet-mini-col-v4{
    gap:1px !important;
}

.fleet-mini-battery-v4{
    padding:0 2px !important;
    border-left-width:3px !important;
}

.fleet-mini-battery-v4 span,
.fleet-mini-battery-v4 strong{
    font-size:5px !important;
}

.fleet-rack-side-v4{
    gap:2px !important;
}

.fleet-rack-side-v4>span{
    display:none !important;
}


/* toolbar trochu nižší */

.fleet-toolbar-v4{
    padding:6px 8px !important;
    margin-bottom:8px !important;
}


/* tablet */

@media(max-width:1250px){

    .fleet-cabinet-row-v4{
        grid-template-columns:
            minmax(210px,.9fr)
            minmax(360px,1.5fr)
            110px !important;
    }

}


/* mobil */

@media(max-width:700px){

    .fleet-cabinet-row-v4{
        grid-template-columns:1fr 100px !important;
    }

    .fleet-rack-side-v4{
        display:flex !important;
    }

}

/* =========================================================
   VISION UI STABILIZE 20260909
   ========================================================= */

/* název projektu + menu musí být vždy POD SEBOU */
.project-sticky-wrap-v05119{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;

    position:sticky !important;
    top:0 !important;
    z-index:850 !important;

    background:#FEFEF7 !important;
    padding:6px 0 5px !important;
    margin:0 0 14px !important;

    border:0 !important;
    border-bottom:1px solid #E2E7EA !important;
    box-shadow:0 4px 10px rgba(28,47,72,.035) !important;
}

.project-sticky-wrap-v05119 > .project-head{
    display:flex !important;
    width:100% !important;
    max-width:none !important;

    align-items:flex-start !important;
    justify-content:space-between !important;

    margin:0 0 7px !important;
    padding:0 !important;

    position:static !important;
    float:none !important;
}

.project-sticky-wrap-v05119 > .project-page-nav{
    display:flex !important;
    width:100% !important;
    max-width:none !important;

    position:static !important;
    float:none !important;

    margin:0 !important;
    padding:0 !important;

    overflow-x:auto !important;
    overflow-y:hidden !important;
}


/* žádné náhodné rámečky KPI v seznamu kabinetů */
.cab-row-v5,
.cab-row-v5:focus,
.cab-row-v5:focus-visible,
.cab-row-v5:active{
    outline:none !important;
}

.cab-metrics-v5 > div,
.cab-row-v5:focus .cab-metrics-v5 > div,
.cab-row-v5:focus-visible .cab-metrics-v5 > div,
.cab-row-v5:active .cab-metrics-v5 > div{
    border:1px solid #E7ECEF !important;
    outline:none !important;
    box-shadow:none !important;
    background:#F7F9FA !important;
}


/* konzistentní řádky */
.cab-row-v5{
    min-height:78px !important;
    border:1px solid #DDE4E8 !important;
    border-radius:9px !important;
}

.cab-row-v5:hover{
    border-color:#AEBBC5 !important;
}


/* mini kabinet */
.cab-mini-v5{
    width:92px !important;
    height:56px !important;
}


/* mobil */
@media(max-width:760px){

    .project-sticky-wrap-v05119{
        top:64px !important;
    }

    .project-sticky-wrap-v05119 > .project-head{
        flex-direction:column !important;
        gap:6px !important;
    }

}

/* =========================================================
   VISION PROJECT STICKY FINAL
   název projektu + hlavní projektové menu
   ========================================================= */

.project-sticky-wrap-v05119.vision-project-sticky-final{
    display:block !important;

    position:sticky !important;
    top:0 !important;
    z-index:890 !important;

    width:100% !important;
    box-sizing:border-box !important;

    background:#FFFFFF !important;

    margin:0 0 14px !important;
    padding:8px 0 0 !important;

    border-bottom:1px solid #E1E7EB !important;

    box-shadow:
        0 5px 12px rgba(28,47,72,.045) !important;
}


/* název projektu */

.vision-project-sticky-final > .project-head{
    position:static !important;
    float:none !important;

    display:flex !important;
    width:100% !important;

    align-items:flex-start !important;
    justify-content:space-between !important;

    margin:0 0 6px !important;
    padding:0 !important;

    background:#FFFFFF !important;
}


/* hlavní menu */

.vision-project-sticky-final > .project-page-nav{
    position:static !important;
    float:none !important;

    display:flex !important;
    width:100% !important;

    margin:0 !important;
    padding:0 !important;

    background:#FFFFFF !important;

    overflow-x:auto !important;
    overflow-y:hidden !important;

    scrollbar-width:none;
}

.vision-project-sticky-final > .project-page-nav::-webkit-scrollbar{
    display:none;
}


/* bílé pozadí i mezi hlavičkou a menu */

.vision-project-sticky-final .project-head,
.vision-project-sticky-final .project-page-nav,
.vision-project-sticky-final .project-head-status,
.vision-project-sticky-final .project-head-status-stack{
    background-color:#FFFFFF !important;
}


/* trochu kompaktnější sticky hlavička */

.vision-project-sticky-final .project-head h1{
    margin-bottom:1px !important;
}

.vision-project-sticky-final .project-head p{
    margin-top:4px !important;
}


/* mobil - nad tím je 64px mobilní topline */

@media(max-width:760px){

    .project-sticky-wrap-v05119.vision-project-sticky-final{
        top:64px !important;
        padding-top:6px !important;
    }

    .vision-project-sticky-final > .project-head{
        gap:7px !important;
    }

    .vision-project-sticky-final > .project-page-nav{
        white-space:nowrap !important;
    }

}

/* =========================================================
   PROJECT STICKY HEADER — SOFT FADE
   ========================================================= */

.project-sticky-wrap-v05119,
.project-sticky-wrap-v05119.vision-project-sticky-final{
    position:sticky !important;
    top:0 !important;
    z-index:890 !important;

    background:#FFFFFF !important;

    border:0 !important;
    box-shadow:none !important;

    margin:0 0 8px !important;
    padding:7px 0 12px !important;

    overflow:visible !important;
}


/* jemný přechod do stránky */
.project-sticky-wrap-v05119::after,
.project-sticky-wrap-v05119.vision-project-sticky-final::after{
    content:"";
    position:absolute;

    left:0;
    right:0;
    bottom:-16px;

    height:16px;

    pointer-events:none;

    background:linear-gradient(
        to bottom,
        rgba(255,255,255,.98) 0%,
        rgba(255,255,255,.78) 35%,
        rgba(255,255,255,.35) 68%,
        rgba(255,255,255,0) 100%
    );
}


/* název projektu */
.project-sticky-wrap-v05119 .project-head{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;

    margin-bottom:4px !important;
}


/* menu */
.project-sticky-wrap-v05119 .project-page-nav{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;

    margin-bottom:0 !important;
}


/* žádný rámeček kolem menu */
.project-sticky-wrap-v05119 .project-page-nav,
.project-sticky-wrap-v05119 .project-page-nav > *{
    outline:none !important;
}


/* mobil */
@media(max-width:760px){

    .project-sticky-wrap-v05119,
    .project-sticky-wrap-v05119.vision-project-sticky-final{
        top:64px !important;
    }

}

/* =========================================================
   PROJECT MOBILE HAMBURGER
   desktop beze změny
   ========================================================= */

.project-mobile-menu-btn{
    display:none;
}


/* MOBILE */
@media(max-width:760px){

    /*
     * Projektová sticky hlavička:
     * pouze název + hamburger.
     */
    .vision-mobile-project-wrap{
        position:sticky !important;
        top:64px !important;
        z-index:895 !important;

        background:#FFFFFF !important;

        padding:4px 0 5px !important;
        margin-bottom:8px !important;

        border:0 !important;
        box-shadow:none !important;
    }


    /* kompaktní řádek názvu */
    .vision-mobile-project-wrap > .project-head{
        position:relative !important;

        min-height:42px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;

        gap:8px !important;

        margin:0 !important;
        padding:3px 2px !important;

        background:#FFFFFF !important;
    }


    /* na telefonu nepotřebujeme nadpis PROJEKT ani popis */
    .vision-mobile-project-wrap > .project-head
    .eyebrow{
        display:none !important;
    }

    .vision-mobile-project-wrap > .project-head
    p{
        display:none !important;
    }


    .vision-mobile-project-wrap > .project-head h1{
        font-size:19px !important;
        line-height:1.15 !important;
        margin:0 !important;

        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }


    /*
     * Stav Online/Alarm necháme, ale kompaktní.
     */
    .vision-mobile-project-wrap
    .project-head-status{
        padding:0 !important;
        margin-left:auto !important;
    }

    .vision-mobile-project-wrap
    .project-head-status .badge{
        font-size:10px !important;
        padding:4px 7px !important;
    }


    /* hamburger */
    .project-mobile-menu-btn{
        flex:0 0 42px;

        width:42px;
        height:38px;

        display:flex !important;
        align-items:center;
        justify-content:center;

        padding:0;

        border:0;
        border-radius:8px;

        background:transparent;
        color:#1C2F48;

        cursor:pointer;
    }

    .project-mobile-menu-btn:active{
        background:#F2F5F7;
    }


    .project-mobile-menu-icon{
        width:21px;
        display:flex;
        flex-direction:column;
        gap:4px;
    }

    .project-mobile-menu-icon i{
        display:block;

        width:21px;
        height:2px;

        border-radius:2px;

        background:#1C2F48;

        transition:
            transform .16s ease,
            opacity .16s ease;
    }


    /* zavřené projektové menu */
    .vision-mobile-project-wrap >
    .project-page-nav{
        display:none !important;
    }


    /* otevřené menu */
    .vision-mobile-project-wrap.project-mobile-menu-open >
    .project-page-nav{
        position:absolute !important;

        left:0 !important;
        right:0 !important;
        top:100% !important;

        display:flex !important;
        flex-direction:column !important;

        gap:2px !important;

        width:100% !important;
        max-height:calc(100vh - 120px) !important;

        overflow-y:auto !important;
        overflow-x:hidden !important;

        padding:7px !important;
        margin:0 !important;

        background:#FFFFFF !important;

        border:1px solid #E3E8EC !important;
        border-radius:0 0 10px 10px !important;

        box-shadow:
            0 12px 26px rgba(28,47,72,.16) !important;
    }


    .vision-mobile-project-wrap.project-mobile-menu-open
    .project-page-nav a{
        display:flex !important;
        align-items:center !important;

        width:100% !important;

        min-height:42px !important;

        padding:9px 11px !important;

        border:0 !important;
        border-radius:7px !important;

        font-size:14px !important;

        white-space:normal !important;
    }


    .vision-mobile-project-wrap.project-mobile-menu-open
    .project-page-nav a.active{
        background:#FFF1E9 !important;
        color:#F05223 !important;
    }


    /*
     * Hamburger → X
     */
    .project-mobile-menu-open
    .project-mobile-menu-icon i:nth-child(1){
        transform:translateY(6px) rotate(45deg);
    }

    .project-mobile-menu-open
    .project-mobile-menu-icon i:nth-child(2){
        opacity:0;
    }

    .project-mobile-menu-open
    .project-mobile-menu-icon i:nth-child(3){
        transform:translateY(-6px) rotate(-45deg);
    }


    /* méně prázdného prostoru nad obsahem */
    .content{
        padding-top:8px !important;
    }

}


/* =========================================================
   MOBILE FINAL — JEDEN HAMBURGER
   ========================================================= */

@media(max-width:760px){

    /* -----------------------------------------
       1. horní systémová lišta co nejmenší
       ----------------------------------------- */

    .topline{
        height:48px !important;
        min-height:48px !important;

        padding:5px 9px !important;

        background:#FFFFFF !important;

        border:0 !important;
        border-bottom:1px solid #EEF1F3 !important;

        box-shadow:none !important;
    }

    .topline-brand{
        gap:5px !important;
        min-width:0 !important;
    }

    .topline-brand img{
        width:96px !important;
        max-height:34px !important;
        object-fit:contain !important;
    }

    .topline-brand > span{
        display:none !important;
    }

    .mobile-menu-button{
        width:40px !important;
        height:38px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        padding:0 !important;

        font-size:25px !important;

        border:0 !important;
        background:transparent !important;
    }


    /* -----------------------------------------
       2. žádný druhý hamburger projektu
       ----------------------------------------- */

    .project-mobile-menu-btn{
        display:none !important;
    }


    /* -----------------------------------------
       3. projektová sticky hlavička
       jen název projektu
       ----------------------------------------- */

    .project-sticky-wrap-v05119,
    .vision-mobile-project-wrap{
        top:48px !important;

        padding:2px 0 4px !important;
        margin:0 0 7px !important;

        background:#FFFFFF !important;

        border:0 !important;
        box-shadow:none !important;
    }


    .vision-mobile-project-wrap > .project-head,
    .project-sticky-wrap-v05119 > .project-head{
        min-height:34px !important;

        display:flex !important;
        align-items:center !important;

        margin:0 !important;
        padding:1px 2px !important;

        background:#FFFFFF !important;
    }


    .vision-mobile-project-wrap .project-head .eyebrow,
    .vision-mobile-project-wrap .project-head p,
    .project-sticky-wrap-v05119 .project-head .eyebrow,
    .project-sticky-wrap-v05119 .project-head p{
        display:none !important;
    }


    .vision-mobile-project-wrap .project-head h1,
    .project-sticky-wrap-v05119 .project-head h1{
        font-size:18px !important;
        line-height:1.1 !important;

        margin:0 !important;

        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }


    /*
       původní vodorovné projektové menu
       na telefonu vůbec nezabírá místo
    */
    .vision-mobile-project-wrap > .project-page-nav,
    .project-sticky-wrap-v05119 > .project-page-nav{
        display:none !important;
    }


    /* případný status vedle názvu */
    .vision-mobile-project-wrap .project-head-status,
    .project-sticky-wrap-v05119 .project-head-status{
        margin-left:auto !important;
        padding:0 !important;
    }

    .vision-mobile-project-wrap .project-head-status .badge,
    .project-sticky-wrap-v05119 .project-head-status .badge{
        padding:3px 6px !important;
        font-size:9px !important;
    }


    /* -----------------------------------------
       4. projektové položky uvnitř HLAVNÍHO
       hamburger menu
       ----------------------------------------- */

    .mobile-project-nav-final{
        display:block !important;

        margin:12px 0 10px !important;
        padding-top:10px !important;

        border-top:1px solid rgba(255,255,255,.12) !important;
    }

    .mobile-project-nav-title{
        margin:0 10px 6px !important;

        font-size:10px !important;
        font-weight:700 !important;

        letter-spacing:.10em !important;

        color:#92A2B3 !important;
    }

    .mobile-project-nav-links{
        display:flex !important;
        flex-direction:column !important;
        gap:2px !important;
    }

    .mobile-project-nav-link{
        display:flex !important;
        align-items:center !important;

        min-height:38px !important;

        padding:8px 11px !important;

        border-radius:7px !important;

        color:#C7D2DC !important;

        font-size:13px !important;
        font-weight:500 !important;

        text-decoration:none !important;
    }

    .mobile-project-nav-link.active{
        background:#F05223 !important;
        color:#FFFFFF !important;
    }


    /* obsah ještě o něco výš */
    .content{
        padding-top:6px !important;
    }

}


/* desktop: vložené mobilní projektové menu nikdy nezobrazovat */
@media(min-width:761px){
    .mobile-project-nav-final{
        display:none !important;
    }
}


/* =========================================================
   MOBILE — PROJECT TITLE + STATUS ONE ROW
   ========================================================= */

@media(max-width:760px){

    .vision-mobile-project-wrap > .project-head,
    .project-sticky-wrap-v05119 > .project-head{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;

        align-items:center !important;
        gap:8px !important;

        min-height:34px !important;

        margin:0 !important;
        padding:1px 2px !important;
    }

    .vision-mobile-project-wrap > .project-head > div:first-child,
    .project-sticky-wrap-v05119 > .project-head > div:first-child{
        min-width:0 !important;
    }

    .vision-mobile-project-wrap .project-head h1,
    .project-sticky-wrap-v05119 .project-head h1{
        font-size:18px !important;
        line-height:1.1 !important;

        margin:0 !important;

        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }

    .vision-mobile-project-wrap .project-head-status,
    .vision-mobile-project-wrap .project-head-status-stack,
    .project-sticky-wrap-v05119 .project-head-status,
    .project-sticky-wrap-v05119 .project-head-status-stack{
        display:flex !important;

        width:auto !important;

        align-items:center !important;
        justify-content:flex-end !important;

        gap:0 !important;

        margin:0 !important;
        padding:0 !important;
    }

    .vision-mobile-project-wrap #liveConnectionBadge,
    .project-sticky-wrap-v05119 #liveConnectionBadge{
        display:flex !important;
        align-items:center !important;
        margin:0 !important;
    }

    .vision-mobile-project-wrap .project-head-status .badge,
    .vision-mobile-project-wrap .project-head-status-stack .badge,
    .project-sticky-wrap-v05119 .project-head-status .badge,
    .project-sticky-wrap-v05119 .project-head-status-stack .badge{
        display:inline-flex !important;

        align-items:center !important;

        min-height:24px !important;

        padding:3px 7px !important;

        font-size:9px !important;
        line-height:1 !important;

        white-space:nowrap !important;
    }

    /* počasí na mobilu nesmí tlačit stav na další řádek */
    .vision-mobile-project-wrap .weather-compact,
    .project-sticky-wrap-v05119 .weather-compact{
        display:none !important;
    }

}

/* ============================================================
   MOBILE FINAL NAVIGATION
   1 hamburger + project cards + ENERGICO VISION
   ============================================================ */

@media(max-width:760px){

    /* ---------- horní lišta ---------- */

    .topline{
        height:48px !important;
        min-height:48px !important;
        padding:5px 9px !important;

        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;

        background:#FFFFFF !important;
        border-bottom:1px solid #EEF1F3 !important;
        box-shadow:none !important;
    }

    .topline-brand{
        display:flex !important;
        align-items:center !important;
        gap:7px !important;
        min-width:0 !important;
    }

    .topline-brand img{
        display:block !important;
        width:96px !important;
        height:auto !important;
        max-height:32px !important;
        object-fit:contain !important;
    }

    /* VISION zpět do mobilní hlavičky */
    .topline-brand > span{
        display:flex !important;
        flex-direction:column !important;
        justify-content:center !important;
        align-items:flex-start !important;

        line-height:1 !important;
        margin:0 !important;
    }

    .topline-brand > span strong{
        display:block !important;

        color:#F05223 !important;

        font-size:12px !important;
        font-weight:700 !important;
        letter-spacing:.12em !important;

        line-height:1 !important;
        white-space:nowrap !important;
    }

    .topline-brand > span small{
        display:none !important;
    }


    /* ---------- jediný hamburger ---------- */

    .mobile-menu-button{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;

        width:40px !important;
        height:38px !important;

        padding:0 !important;
        margin:0 !important;

        border:0 !important;
        background:transparent !important;

        color:#1C2F48 !important;
        font-size:25px !important;
        line-height:1 !important;
    }

    /* případný starý druhý hamburger definitivně pryč */
    .project-mobile-menu-btn{
        display:none !important;
    }


    /* ---------- sidebar ---------- */

    .sidebar{
        overflow-y:auto !important;
        overscroll-behavior:contain !important;
        -webkit-overflow-scrolling:touch !important;
    }


    /* ---------- projektové karty uvnitř hamburgeru ---------- */

    .mobile-project-nav-final{
        display:block !important;

        margin:14px 0 12px !important;
        padding:12px 0 10px !important;

        border-top:1px solid rgba(255,255,255,.14) !important;
        border-bottom:1px solid rgba(255,255,255,.10) !important;
    }

    .mobile-project-nav-heading{
        display:flex !important;
        flex-direction:column !important;
        gap:2px !important;

        margin:0 10px 8px !important;
    }

    .mobile-project-nav-heading span{
        color:#91A2B2 !important;

        font-size:9px !important;
        font-weight:700 !important;
        letter-spacing:.12em !important;
    }

    .mobile-project-nav-heading strong{
        color:#FFFFFF !important;

        font-size:14px !important;
        font-weight:650 !important;

        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }

    .mobile-project-nav-links{
        display:flex !important;
        flex-direction:column !important;
        gap:2px !important;
    }

    .mobile-project-nav-link{
        display:flex !important;
        align-items:center !important;

        min-height:40px !important;

        padding:9px 11px !important;

        border-radius:7px !important;

        color:#C7D2DC !important;

        font-size:13px !important;
        font-weight:550 !important;

        text-decoration:none !important;
    }

    .mobile-project-nav-link:hover{
        background:rgba(255,255,255,.07) !important;
        color:#FFFFFF !important;
    }

    .mobile-project-nav-link.active{
        background:#F05223 !important;
        color:#FFFFFF !important;
        font-weight:700 !important;
    }


    /* --------------------------------------------------------
       Pokud JS úspěšně vložil karty do hamburgeru,
       původní vodorovná navigace nezabírá místo.
       -------------------------------------------------------- */

    body.mobile-project-nav-ready .project-sticky-tabs-v0511412{
        display:none !important;
    }

    body.mobile-project-nav-ready
    .project-sticky-shell-v0511412
    .project-page-nav{
        display:none !important;
    }

    body.mobile-project-nav-ready
    .vision-mobile-project-wrap > .project-page-nav,
    body.mobile-project-nav-ready
    .project-sticky-wrap-v05119 > .project-page-nav{
        display:none !important;
    }


    /* --------------------------------------------------------
       FALLBACK:
       pokud by JS z nějakého důvodu selhal,
       karty zůstanou dostupné vodorovně.
       -------------------------------------------------------- */

    body:not(.mobile-project-nav-ready)
    .project-sticky-tabs-v0511412{
        display:block !important;

        width:100% !important;
        overflow-x:auto !important;

        -webkit-overflow-scrolling:touch !important;
        scrollbar-width:none !important;
    }

    body:not(.mobile-project-nav-ready)
    .project-sticky-tabs-v0511412::-webkit-scrollbar{
        display:none !important;
    }

    body:not(.mobile-project-nav-ready)
    .project-sticky-tabs-v0511412
    .project-page-nav{
        display:flex !important;

        width:max-content !important;
        min-width:100% !important;

        gap:6px !important;

        overflow:visible !important;
        white-space:nowrap !important;

        margin:0 !important;
        padding:4px 2px 7px !important;
    }

    body:not(.mobile-project-nav-ready)
    .project-sticky-tabs-v0511412
    .project-page-nav a{
        display:inline-flex !important;
        align-items:center !important;

        min-height:34px !important;

        padding:6px 9px !important;

        font-size:11px !important;
        white-space:nowrap !important;
    }

}


/* desktop se nemění */
@media(min-width:761px){

    .mobile-project-nav-final{
        display:none !important;
    }

}


/* ==========================================================
   VISION DESKTOP STICKY PROJECT NAV — RESTORE 051152b
   ========================================================== */

@media(min-width:761px){

  .project-sticky-shell-v0511412{
    position:sticky !important;
    top:0 !important;
    z-index:890 !important;

    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;

    width:100% !important;

    margin:0 0 12px !important;
    padding:7px 0 10px !important;

    background:#FFFFFF !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;

    overflow:visible !important;
  }

  .project-sticky-shell-v0511412
  .project-sticky-identity-v0511412{
    display:block !important;

    width:100% !important;
    min-width:0 !important;
    max-width:none !important;

    margin:0 0 5px !important;
    padding:0 2px 6px !important;

    border:0 !important;
  }

  .project-sticky-shell-v0511412
  .project-sticky-identity-v0511412 > div{
    display:block !important;
    width:100% !important;
  }

  .project-sticky-shell-v0511412
  .project-sticky-identity-v0511412 strong{
    display:block !important;

    margin:0 !important;

    color:#1C2F48 !important;
    font-size:20px !important;
    font-weight:700 !important;
    line-height:1.25 !important;

    text-align:left !important;

    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }

  .project-sticky-tabs-v0511412{
    display:block !important;

    width:100% !important;
    min-width:0 !important;

    overflow-x:auto !important;
    overflow-y:hidden !important;
  }

  .project-sticky-tabs-v0511412 .project-page-nav{
    position:static !important;

    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;

    width:max-content !important;
    min-width:100% !important;

    margin:0 !important;
    padding:0 !important;

    white-space:nowrap !important;
  }

  /* jemné ukončení sticky plochy */
  .project-sticky-shell-v0511412::after{
    content:"";
    position:absolute;

    left:0;
    right:0;
    bottom:-14px;

    height:14px;

    pointer-events:none;

    background:linear-gradient(
      to bottom,
      rgba(255,255,255,.96) 0%,
      rgba(255,255,255,.58) 45%,
      rgba(255,255,255,0) 100%
    );
  }
}


/* Mobil používá hamburger, tento desktopový blok nezabírá místo. */
@media(max-width:760px){
  body.mobile-project-nav-ready
  .project-sticky-shell-v0511412{
    display:none !important;
  }
}


/* ==========================================================
   OVERVIEW ONLY — desktop layout
   projekt nahoře, sticky menu pod ním
   ========================================================== */

@media(min-width:761px){

    .overview-sticky-layout-fix{
        display:block !important;
        width:100% !important;

        grid-template-columns:none !important;
        flex-direction:column !important;
        align-items:stretch !important;
    }

    .overview-sticky-layout-fix > .project-head{
        display:flex !important;
        width:100% !important;

        align-items:flex-start !important;
        justify-content:space-between !important;

        margin:0 !important;
    }

    .overview-sticky-layout-fix >
    .project-sticky-shell-v0511412{
        display:flex !important;
        flex-direction:column !important;

        width:100% !important;
        max-width:none !important;

        margin-top:0 !important;
        margin-left:0 !important;

        clear:both !important;
    }

    .overview-sticky-layout-fix
    .project-sticky-identity-v0511412{
        width:100% !important;
        max-width:none !important;

        text-align:left !important;
    }

    .overview-sticky-layout-fix
    .project-sticky-tabs-v0511412{
        width:100% !important;
        max-width:none !important;
    }

    .overview-sticky-layout-fix
    .project-page-nav{
        justify-content:flex-start !important;
    }
}


/* ==========================================================
   DASHBOARD RTE KPI RESTORE
   ========================================================== */

.kpi-rte-top-v051149{
    border-top:3px solid #F05223 !important;
    position:relative;
}

.kpi-rte-top-v051149 .rte-top-value-v051149{
    color:#1C2F48;
    font-variant-numeric:tabular-nums;
}

.kpi-rte-top-v051149 .rte-top-value-v051149 small{
    font-size:12px;
}

.kpi-rte-top-v051149 .rte-top-data-v051149{
    display:block;
    margin-top:5px;

    color:#6B7D8C;

    font-size:9px;
    font-weight:600;

    font-variant-numeric:tabular-nums;
}


/* BESS + vlastní spotřeba = 6 KPI */
@media(min-width:1201px){

    .kpi-strip-rte-v051149.kpi-strip-five{
        grid-template-columns:repeat(6,minmax(0,1fr)) !important;
    }

    /* BESS bez vlastní spotřeby = 5 KPI */
    .kpi-strip-rte-v051149.kpi-strip-four{
        grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    }
}


/* Dashboard RTE — native KPI */
.live-kpi-strip .kpi-rte{
    border-top:3px solid #F05223;
}

.live-kpi-strip .kpi-rte > strong{
    color:#1C2F48;
}

/* battery_only s RTE: rozdělit dostupnou šířku rovnoměrně */
@media(min-width:1201px){
    .live-kpi-strip:has(.kpi-rte){
        grid-template-columns:repeat(
            auto-fit,
            minmax(180px,1fr)
        ) !important;
    }
}


/* ==========================================================
   DASHBOARD RTE FINAL
   ========================================================== */

.kpi-strip-six{
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
}

.live-kpi-strip .kpi-rte-native{
    position:relative;
    padding-bottom:27px;
    border-top:3px solid #F05223;
}

.live-kpi-strip .kpi-rte-native > strong{
    display:block;
    margin-top:6px;
    font-size:23px;
    color:#1C2F48;
    font-variant-numeric:tabular-nums;
}

.live-kpi-strip .kpi-rte-native > strong small{
    font-size:12px;
}

.live-kpi-strip .kpi-rte-native > em{
    display:block;
    margin-top:7px;
    font-size:11px;
    font-style:normal;
    color:var(--muted);
}

/* stejné umístění spodního textu jako GRID/BESS */
.live-kpi-strip .kpi-rte-native .live-age{
    position:absolute;
    left:12px;
    bottom:8px;
    margin:0;
    font-size:9px !important;
    line-height:1;
    color:#6B7D8C !important;
    font-weight:550 !important;
}

@media(max-width:1200px){
    .kpi-strip-six{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:760px){
    .kpi-strip-six{
        grid-template-columns:1fr 1fr !important;
    }
}

@media(max-width:480px){
    .kpi-strip-six{
        grid-template-columns:1fr !important;
    }
}


/* RTE_NATIVE_FINAL_20260909 */

.kpi-strip-six{
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
}

.kpi-strip-six > .kpi-box{
    min-width:0;
    height:100%;
}

.live-kpi-strip .kpi-rte-native{
    position:relative;
    min-height:94px;
    height:100%;
    box-sizing:border-box;
    padding-bottom:27px;
    border-top:3px solid #F05223;
}

.live-kpi-strip .kpi-rte-native > strong{
    display:block;
    margin-top:6px;
    font-size:23px;
    color:#1C2F48;
}

.live-kpi-strip .kpi-rte-native > strong small{
    font-size:12px;
}

.live-kpi-strip .kpi-rte-native > em{
    display:block;
    margin-top:7px;
    font-size:11px;
    font-style:normal;
    color:var(--muted);
}

.live-kpi-strip .kpi-rte-native .live-age{
    position:absolute;
    left:12px;
    bottom:8px;
    margin:0;
    font-size:9px !important;
    font-weight:550 !important;
}

@media(max-width:1200px){
    .kpi-strip-six{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:760px){
    .kpi-strip-six{
        grid-template-columns:1fr 1fr !important;
    }
}

@media(max-width:480px){
    .kpi-strip-six{
        grid-template-columns:1fr !important;
    }
}

/* CABINET LIST — odstranění tmavého focus/active orámování KPI */
.cab-row-v5:focus,
.cab-row-v5:focus-visible,
.cab-row-v5:active{
    outline:none !important;
}

.cab-row-v5:focus .cab-metrics-v5 > div,
.cab-row-v5:focus-visible .cab-metrics-v5 > div,
.cab-row-v5:active .cab-metrics-v5 > div{
    border:1px solid #E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
}


/* CABINET LIST KPI BORDER — FINAL */
.cab-row-v5 .cab-metrics-v5 > div,
.cab-row-v5:hover .cab-metrics-v5 > div,
.cab-row-v5:focus .cab-metrics-v5 > div,
.cab-row-v5:focus-visible .cab-metrics-v5 > div,
.cab-row-v5:active .cab-metrics-v5 > div{
    border:1px solid #E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
}

.cab-row-v5,
.cab-row-v5:hover,
.cab-row-v5:focus,
.cab-row-v5:focus-visible,
.cab-row-v5:active{
    outline:none !important;
}


/* =========================================================
   CABINET KPI BORDER — ABSOLUTE FINAL
   V4 + V5, všechny stavy
   ========================================================= */

/* V5 */
.cab-row-v5 .cab-metrics-v5 > div,
.cab-row-v5:hover .cab-metrics-v5 > div,
.cab-row-v5:focus .cab-metrics-v5 > div,
.cab-row-v5:focus-visible .cab-metrics-v5 > div,
.cab-row-v5:active .cab-metrics-v5 > div,

/* V4 */
.fleet-cabinet-row-v4 .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:hover .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:focus .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:focus-visible .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:active .fleet-kpis-v4 > div,

/* pojistka pro samotné KPI bloky */
.fleet-kpis-v4 > div{
    border:1px solid #E3E8EB !important;
    border-color:#E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
}

/* odkazy/řádky nesmí vytvářet vlastní focus efekt */
.cab-row-v5,
.cab-row-v5:hover,
.cab-row-v5:focus,
.cab-row-v5:focus-visible,
.cab-row-v5:active,
.fleet-cabinet-row-v4,
.fleet-cabinet-row-v4:hover,
.fleet-cabinet-row-v4:focus,
.fleet-cabinet-row-v4:focus-visible,
.fleet-cabinet-row-v4:active{
    outline:none !important;
    box-shadow:none !important;
    -webkit-tap-highlight-color:transparent !important;
}


/* ==========================================================
   ENERGY_UI_FINAL_20260909
   ========================================================== */

/* Od/Do se zobrazí výhradně při režimu Vlastní období */
#energyCustomRange[hidden],
.energy-custom-range[hidden]{
    display:none !important;
}

/* Desktop toolbar */
.energy-toolbar-panel{
    align-items:flex-start;
}

.energy-toolbar-left{
    flex:1 1 auto;
    min-width:0;
}

.energy-date-controls{
    flex:0 0 auto;
    align-self:center;
}

/* Čistý BESS má 5 KPI, hybrid/FVE může mít 6 */
@media(min-width:1401px){

    #energyPage[data-has-pv="0"] .energy-kpi-grid{
        grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    }

    #energyPage[data-has-pv="1"] .energy-kpi-grid{
        grid-template-columns:repeat(6,minmax(0,1fr)) !important;
    }
}

/* Střední desktop / tablet */
@media(max-width:1400px) and (min-width:681px){

    #energyPage .energy-kpi-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }

    .energy-toolbar-panel{
        flex-direction:column;
        gap:12px;
    }

    .energy-date-controls{
        align-self:stretch;
        width:100%;
        flex-wrap:wrap;
    }
}

/* Mobil */
@media(max-width:680px){

    #energyPage .energy-kpi-grid{
        grid-template-columns:1fr 1fr !important;
    }

    .energy-toolbar-panel{
        flex-direction:column;
    }

    .energy-date-controls{
        width:100%;
        flex-wrap:wrap;
    }

    .energy-custom-range{
        width:100%;
        flex-wrap:wrap;
    }
}

@media(max-width:460px){

    #energyPage .energy-kpi-grid{
        grid-template-columns:1fr !important;
    }
}


/* ==========================================================
   OPERATIONAL GRAPH — MINIMAL PERIOD SELECTOR FINAL
   Dnes | Včera | Poslední týden
   ========================================================== */

#operationalPeriod{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:6px !important;
    margin:10px 0 !important;
}

/* obě původní skupiny se rozpustí do jednoho řádku */
#operationalPeriod .history-preset-primary,
#operationalPeriod .history-preset-secondary{
    display:contents !important;
}

/* všechno standardně skrýt */
#operationalPeriod button{
    display:none !important;
}

/* ponechat pouze 3 volby */
#operationalPeriod button[data-period-preset="today"],
#operationalPeriod button[data-period-preset="yesterday"],
#operationalPeriod button[data-hours="168"]{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:0 !important;
    height:31px !important;
    margin:0 !important;
    white-space:nowrap !important;
}

/* datumový picker "Den" pryč */
#operationalPeriod .history-day-picker,
#operationalPeriod label{
    display:none !important;
}

/* vlastní rozsah Od / Do a všechny další bloky pryč */
#operationalPeriod > :not(.history-preset-primary):not(.history-preset-secondary){
    display:none !important;
}


/* ==========================================================
   CABINET OVERVIEW KPI — FINAL NORMALIZATION
   ========================================================== */

.cabinet-overview-kpis > div,
.cabinet-overview-card:hover .cabinet-overview-kpis > div,
.cabinet-overview-card:focus .cabinet-overview-kpis > div,
.cabinet-overview-card:focus-visible .cabinet-overview-kpis > div,
.cabinet-overview-card:active .cabinet-overview-kpis > div{
    border:1px solid #E3E8EB !important;
    border-color:#E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
    background:#F8FAFB !important;
}

/* žádné zvýraznění KPI přes pseudo-element */
.cabinet-overview-kpis > div::before,
.cabinet-overview-kpis > div::after{
    box-shadow:none !important;
    outline:none !important;
}

/* focus může zůstat jen na celém klikacím řádku, ne na jednotlivých KPI */
.cabinet-overview-card,
.cabinet-overview-card:focus,
.cabinet-overview-card:focus-visible,
.cabinet-overview-card:active{
    outline:none !important;
}


/* ==========================================================
   FLEET V4 — visited links must look exactly like unvisited
   ========================================================== */

.fleet-cabinet-row-v4:link,
.fleet-cabinet-row-v4:visited{
    color:inherit !important;
    text-decoration:none !important;
}

.fleet-cabinet-row-v4:link .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:visited .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:hover .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:focus .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:focus-visible .fleet-kpis-v4 > div,
.fleet-cabinet-row-v4:active .fleet-kpis-v4 > div{
    border:1px solid #E3E8EB !important;
    border-top-color:#E3E8EB !important;
    border-right-color:#E3E8EB !important;
    border-bottom-color:#E3E8EB !important;
    border-left-color:#E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
}


/* FLEET V4 KPI — jednotný vzhled bez náhodných rámečků */
.fleet-cabinet-row-v4 .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:link .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:visited .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:hover .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:focus .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:focus-visible .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:active .fleet-kpi-cell-v4{
    border:1px solid #E3E8EB !important;
    outline:0 !important;
    box-shadow:none !important;
    background:#F8FAFB !important;
}

/* FLEET_V4_KPI_FINAL_20260909 */
.fleet-cabinet-row-v4 .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:visited .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:hover .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:focus .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:focus-visible .fleet-kpi-cell-v4,
.fleet-cabinet-row-v4:active .fleet-kpi-cell-v4{
    border:1px solid #E3E8EB !important;
    border-color:#E3E8EB !important;
    outline:none !important;
    box-shadow:none !important;
    background:#F8FAFB !important;
}


/* ==========================================================
   VISION_PROJECT_STICKY_FULL_FINAL_20260909
   celý blok: název projektu + projektové menu
   ========================================================== */

/* DESKTOP */
@media(min-width:761px){

    .project-sticky-wrap-v05119{
        position:sticky !important;
        top:0 !important;
        z-index:895 !important;

        width:100% !important;
        background:#FFFFFF !important;
    }

    /*
       Sticky přebírá vnější wrapper.
       Starý vnitřní shell už nesmí být druhý sticky element.
    */
    .project-sticky-wrap-v05119
    .project-sticky-shell-v0511412{
        position:static !important;
        top:auto !important;
        z-index:auto !important;
    }
}


/* MOBIL */
@media(max-width:760px){

    /*
       Horní systémová lišta má 64 px.
       Název projektu zůstane ukotven přímo pod ní.
    */
    .project-sticky-wrap-v05119{
        position:sticky !important;
        top:64px !important;
        z-index:895 !important;

        width:100% !important;
        background:#FFFFFF !important;
    }

    .project-sticky-wrap-v05119
    .project-sticky-shell-v0511412{
        position:static !important;
        top:auto !important;
        z-index:auto !important;
    }

    /*
       Hamburger vždy vlevo.
       Neměníme HTML ani pořadí ostatních prvků.
    */
    .topline{
        padding-left:56px !important;
    }

    .topline .mobile-menu-button{
        display:block !important;

        position:absolute !important;
        left:10px !important;
        right:auto !important;
        top:50% !important;

        transform:translateY(-50%) !important;

        margin:0 !important;
        z-index:5 !important;
    }
}



/* ==========================================================
   VISION_PROJECT_STICKY_FULL_FINAL_20260909
   celý blok: název projektu + projektové menu
   ========================================================== */

/* DESKTOP */
@media(min-width:761px){

    .project-sticky-wrap-v05119{
        position:sticky !important;
        top:0 !important;
        z-index:895 !important;

        width:100% !important;
        background:#FFFFFF !important;
    }

    /*
       Sticky přebírá vnější wrapper.
       Starý vnitřní shell už nesmí být druhý sticky element.
    */
    .project-sticky-wrap-v05119
    .project-sticky-shell-v0511412{
        position:static !important;
        top:auto !important;
        z-index:auto !important;
    }
}


/* MOBIL */
@media(max-width:760px){

    /*
       Horní systémová lišta má 64 px.
       Název projektu zůstane ukotven přímo pod ní.
    */
    .project-sticky-wrap-v05119{
        position:sticky !important;
        top:64px !important;
        z-index:895 !important;

        width:100% !important;
        background:#FFFFFF !important;
    }

    .project-sticky-wrap-v05119
    .project-sticky-shell-v0511412{
        position:static !important;
        top:auto !important;
        z-index:auto !important;
    }

    /*
       Hamburger vždy vlevo.
       Neměníme HTML ani pořadí ostatních prvků.
    */
    .topline{
        padding-left:56px !important;
    }

    .topline .mobile-menu-button{
        display:block !important;

        position:absolute !important;
        left:10px !important;
        right:auto !important;
        top:50% !important;

        transform:translateY(-50%) !important;

        margin:0 !important;
        z-index:5 !important;
    }
}

/* ==========================================================
   VISION_FILTERS_RESTORE_20260909
   Vrací původní časové filtry grafů
   ========================================================== */

/* PROVOZNÍ GRAF */
#operationalPeriod{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    gap:7px !important;
}

#operationalPeriod .history-preset-primary,
#operationalPeriod .history-preset-secondary{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:6px !important;
}

#operationalPeriod button{
    display:inline-flex !important;
}

#operationalPeriod .history-day-picker{
    display:flex !important;
    align-items:center !important;
}

#operationalPeriod .custom-range{
    display:flex;
}

/* hidden musí dál fungovat pro vlastní období */
#operationalCustomRange[hidden]{
    display:none !important;
}


/* ANALÝZA — VLASTNÍ KOMBINACE PARAMETRŮ */
.compact-history-toolbar{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-end !important;
    gap:7px !important;
}

.compact-history-toolbar .metric-picker{
    display:block !important;
    flex:1 1 420px !important;
    min-width:260px !important;
}

#historyAddMetric{
    display:inline-flex !important;
}

#historyPeriod{
    display:block !important;
}

#historySavedViews{
    display:block !important;
}

#historySaveView,
#historyResetView{
    display:inline-flex !important;
}

.analysis-custom-range{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:flex-end;
}

#historyCustomRange[hidden]{
    display:none !important;
}


/* kalendářní filtry Analýzy */
.history-preset-group{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:6px !important;
}

.history-preset-group button{
    display:inline-flex !important;
}

.history-day-picker{
    display:flex !important;
    align-items:center !important;
}


/* MOBIL */
@media(max-width:760px){

    #operationalPeriod,
    .compact-history-toolbar{
        align-items:stretch !important;
    }

    .compact-history-toolbar .metric-picker{
        flex:1 1 100% !important;
        width:100% !important;
    }

    .compact-history-toolbar > label:not(.metric-picker){
        flex:1 1 150px !important;
    }

    #historySavedViews{
        flex:1 1 100% !important;
        width:100% !important;
    }
}


/* ==========================================================
   ADMIN ACCOUNT SUBPAGES 20260909
   Uživatelé / SMTP / Notifikace
   ========================================================== */

.admin-account-head-v1{
    margin:0 0 18px;
    padding:18px;
    border:1px solid #DDE5EA;
    border-radius:12px;
    background:#FFFFFF;
}

.admin-account-title-v1{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
}

.admin-account-title-v1 h1{
    margin:3px 0 4px;
    color:#1C2F48;
    font-size:25px;
    line-height:1.1;
}

.admin-account-title-v1 p{
    margin:0;
    color:#687A89;
    font-size:12px;
}

.admin-account-role-v1{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 10px;
    border:1px solid #D9E2E8;
    border-radius:999px;
    background:#F7F9FA;
    color:#1C2F48;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}

.admin-account-nav-v1{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}

.admin-account-nav-v1 a{
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:8px;

    min-height:58px;
    padding:10px 12px;

    border:1px solid #DDE5EA;
    border-radius:9px;
    background:#F8FAFB;

    color:#1C2F48;
    text-decoration:none;
}

.admin-account-nav-v1 a > span{
    grid-row:1 / 3;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    color:#60788B;
}

.admin-account-nav-v1 a strong{
    align-self:end;
    font-size:13px;
}

.admin-account-nav-v1 a small{
    align-self:start;
    margin-top:2px;
    color:#7A8995;
    font-size:10px;
}

.admin-account-nav-v1 a:hover{
    background:#FFFFFF;
    border-color:#AEBCC7;
}

.admin-account-nav-v1 a.active{
    border-color:#F05223;
    background:#FFF6F2;
    box-shadow:inset 3px 0 0 #F05223;
}

.admin-account-nav-v1 a.active > span{
    color:#F05223;
}


/* mobil */
@media(max-width:760px){

    .admin-account-head-v1{
        padding:13px;
        margin-bottom:14px;
    }

    .admin-account-title-v1 h1{
        font-size:20px;
    }

    .admin-account-title-v1 p{
        font-size:11px;
    }

    .admin-account-nav-v1{
        grid-template-columns:1fr;
        gap:6px;
    }

    .admin-account-nav-v1 a{
        min-height:50px;
        padding:8px 10px;
    }
}


/* ==========================================================
   CHART SOFTENING 20260909
   ========================================================== */

.chart-container canvas,
.panel canvas{
    image-rendering:auto;
}

.chartjs-render-monitor,
canvas{
    -webkit-font-smoothing:antialiased;
}

.legend button,
.chart-legend button{
    border-radius:999px;
}


/* ==========================================================
   PIXII POWER CYCLES 20260909
   ========================================================== */

.kpi-rte-native em b{
    color:#1C2F48;
    font-weight:750;
    font-variant-numeric:tabular-nums;
}

.energy-cycles-panel-v1{
    margin-top:14px;
}

.energy-cycles-panel-v1.loading{
    opacity:.72;
}

.energy-cycle-total-v1{
    min-width:145px;
    text-align:right;
}

.energy-cycle-total-v1 span,
.energy-cycle-total-v1 small{
    display:block;
    color:#748391;
    font-size:10px;
}

.energy-cycle-total-v1 strong{
    display:block;
    margin:3px 0;
    color:#1C2F48;
    font-size:25px;
    line-height:1;
    font-variant-numeric:tabular-nums;
}

.energy-cycle-meta-v1{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 12px;
}

.energy-cycle-meta-v1 span{
    display:inline-flex;
    gap:4px;
    align-items:center;
    padding:5px 8px;
    border:1px solid #DDE5EA;
    border-radius:999px;
    background:#F8FAFB;
    color:#748391;
    font-size:10px;
}

.energy-cycle-meta-v1 b{
    color:#1C2F48;
}

.energy-cycle-table-wrap-v1{
    max-height:390px;
    overflow:auto;
}

.energy-cycle-table-v1{
    width:100%;
}

.energy-cycle-table-v1 th,
.energy-cycle-table-v1 td{
    white-space:nowrap;
}

.energy-cycle-table-v1 tbody tr.is-today{
    background:#FFF4EE;
    box-shadow:inset 3px 0 0 #F05223;
}

.cycle-number-v1{
    color:#1C2F48;
    font-weight:750;
    font-variant-numeric:tabular-nums;
}

.energy-cycle-track-v1{
    width:180px;
    max-width:22vw;
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#E9EEF1;
}

.energy-cycle-track-v1 i{
    display:block;
    width:0;
    height:100%;
    border-radius:999px;
    background:#F05223;
}

@media(max-width:760px){

    .energy-cycle-total-v1{
        min-width:auto;
        text-align:left;
    }

    .energy-cycle-track-v1{
        width:120px;
        max-width:none;
    }

    .energy-cycle-table-wrap-v1{
        max-height:430px;
    }
}

/* RTE_DUAL_NATIVE_20260909_START */

.live-kpi-strip .rte-dual-native-v1{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) !important;
    align-items:stretch !important;
    gap:0 !important;

    padding:0 !important;
    min-width:0;
    min-height:94px;

    overflow:hidden;
    border-top:3px solid #F05223 !important;
}

.rte-dual-cell-v1{
    min-width:0;
    padding:13px 13px 12px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
}

.rte-dual-cell-v1 > span{
    display:block;
    margin:0;

    color:#748391;
    font-size:10px;
    line-height:1.1;
    font-weight:700;

    letter-spacing:.055em;
    text-transform:uppercase;
    white-space:nowrap;
}

.rte-dual-cell-v1 > strong.num{
    display:block;

    margin:7px 0 5px;

    color:#1C2F48;
    font-size:23px;
    line-height:1;
    font-weight:750;

    letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}

.rte-dual-rte-v1 > strong.num{
    color:#F05223;
}

.rte-dual-cell-v1 > strong.num small{
    font-size:.55em;
    font-weight:650;
}

.rte-dual-note-v1{
    display:block;

    color:#83909B;
    font-size:9px;
    line-height:1.15;
    font-weight:500;

    white-space:nowrap;
}

.rte-dual-separator-v1{
    width:1px;
    margin:12px 0;
    align-self:stretch;

    background:#E1E7EB;
}

.rte-dual-cycles-v1{
    background:linear-gradient(
        90deg,
        rgba(28,47,72,.025) 0%,
        rgba(28,47,72,0) 100%
    );
}


/* staré styly této KPI nesmí přepisovat nové rozložení */
.live-kpi-strip .rte-dual-native-v1 > em{
    display:none !important;
}

.live-kpi-strip .rte-dual-native-v1 .rte-top-data-v051149{
    position:static !important;
}


/* menší dashboard */
@media(max-width:1200px){

    .rte-dual-cell-v1{
        padding:12px 11px;
    }

    .rte-dual-cell-v1 > strong.num{
        font-size:22px;
    }
}


/* mobil */
@media(max-width:760px){

    .live-kpi-strip .rte-dual-native-v1{
        min-height:92px;
    }

    .rte-dual-cell-v1{
        padding:11px 12px;
    }

    .rte-dual-cell-v1 > span{
        font-size:9px;
    }

    .rte-dual-cell-v1 > strong.num{
        font-size:22px;
    }

    .rte-dual-note-v1{
        font-size:9px;
    }
}

/* RTE_DUAL_NATIVE_20260909_END */


/* DASHBOARD_KPI_LINKS_20260909_START */

.dashboard-link-card-v1{
    cursor:pointer;
    position:relative;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease,
        background-color .15s ease;
}

.dashboard-link-card-v1:hover{
    border-color:#C8D2D9;
    box-shadow:0 5px 16px rgba(28,47,72,.08);
    transform:translateY(-1px);
}

.dashboard-link-card-v1:focus-visible{
    outline:2px solid #F05223;
    outline-offset:2px;
}

.dashboard-link-card-v1:active{
    transform:translateY(0);
    box-shadow:0 2px 7px rgba(28,47,72,.06);
}

/* diskrétní indikace, že karta je otevřitelná */
.dashboard-link-card-v1::after{
    content:'›';

    position:absolute;
    top:7px;
    right:9px;

    color:#82909B;
    font-size:17px;
    line-height:1;
    font-weight:500;

    opacity:.42;
    transition:
        opacity .15s ease,
        transform .15s ease,
        color .15s ease;

    pointer-events:none;
}

.dashboard-link-card-v1:hover::after{
    color:#F05223;
    opacity:.9;
    transform:translateX(2px);
}

/* RTE dual karta zachová své vnitřní rozložení */
.rte-dual-native-v1.dashboard-link-card-v1::after{
    z-index:3;
}

/* DASHBOARD_KPI_LINKS_20260909_END */



/* DASHBOARD_PHOTO_V3_START */

.detail-grid-photo-v3{
    grid-template-columns:
        minmax(0,1.45fr)
        minmax(320px,.8fr) !important;

    align-items:stretch;
}

.detail-grid-info-only-v3{
    grid-template-columns:1fr !important;
}

.detail-grid-photo-v3 > .system-overview-card,
.detail-grid-photo-v3 > .dashboard-photo-inline-v3{
    min-width:0;
    height:100%;
}

.dashboard-photo-inline-v3{
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

.dashboard-photo-inline-v3 .panel-head{
    margin-bottom:9px;
    flex:0 0 auto;
}

.dashboard-photo-link-v3{
    display:block;
    flex:1 1 auto;

    min-height:260px;

    overflow:hidden;
    border:1px solid #E1E7EB;
    border-radius:9px;
    background:#EDF1F3;
}

.dashboard-photo-link-v3 img{
    display:block;

    width:100%;
    height:100%;
    min-height:260px;

    object-fit:cover;

    transition:transform .18s ease;
}

.dashboard-photo-link-v3:hover img{
    transform:scale(1.015);
}

@media(max-width:900px){

    .detail-grid-photo-v3,
    .detail-grid-info-only-v3{
        grid-template-columns:1fr !important;
    }

    .dashboard-photo-inline-v3{
        height:auto;
    }

    .dashboard-photo-link-v3{
        min-height:0;
        aspect-ratio:16/9;
    }

    .dashboard-photo-link-v3 img{
        height:100%;
        min-height:0;
    }
}

/* DASHBOARD_PHOTO_V3_END */

/* ADMIN_PROJECT_PHOTO_V1_START */

.admin-project-photo-v1{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #E1E7EB;
}

.admin-project-photo-form-v1{
    display:flex;
    align-items:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

.admin-project-photo-file-v1{
    flex:1 1 360px;
    min-width:260px;
}

.admin-project-photo-file-v1 > span{
    display:block;
    margin-bottom:6px;
}

.admin-project-photo-file-v1 input[type=file]{
    width:100%;
}

.admin-project-photo-file-v1 small{
    display:block;
    margin-top:5px;
    color:#748391;
}

@media(max-width:680px){
    .admin-project-photo-form-v1{
        align-items:stretch;
        flex-direction:column;
    }

    .admin-project-photo-file-v1{
        min-width:0;
        width:100%;
        flex:auto;
    }

    .admin-project-photo-form-v1 .btn{
        width:100%;
    }
}

/* ADMIN_PROJECT_PHOTO_V1_END */

/* FLEET_MINI_SOC_V2_START */

/*
   MINI KABINET — absolutní SOC
   0–20   červená
   20–40  oranžová
   40–60  žlutá
   60–80  zelená
   80–100 tmavě zelená
*/

.fleet-mini-rack-v4 .fleet-mini-battery-v4{
    border:1px solid rgba(0,0,0,.30) !important;
    border-left-width:4px !important;
    border-radius:2px !important;
    font-weight:800 !important;
    text-shadow:none !important;
}


/* 0–20 % */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-0-v2{
    background:#C62828 !important;
    border-color:#711010 !important;
    color:#FFFFFF !important;
}


/* 20–40 % */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-20-v2{
    background:#F05223 !important;
    border-color:#9D2B0D !important;
    color:#FFFFFF !important;
}


/* 40–60 % */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-40-v2{
    background:#F6C900 !important;
    border-color:#9E7C00 !important;
    color:#14283C !important;
}


/* 60–80 % */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-60-v2{
    background:#35A853 !important;
    border-color:#17672E !important;
    color:#FFFFFF !important;
}


/* 80–100 % */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-80-v2{
    background:#04713E !important;
    border-color:#023E23 !important;
    color:#FFFFFF !important;
}


/* bez dat */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-none-v2{
    background:#87939D !important;
    border-color:#505B64 !important;
    color:#FFFFFF !important;
}


/* číslo + SOC */
.fleet-mini-rack-v4 .fleet-mini-battery-v4 span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4 strong{
    color:inherit !important;
    font-weight:800 !important;
}


/*
   Stav baterie nepřepíše SOC barvu.
   Alarm/warning se zobrazí výrazným rámečkem.
*/
.fleet-mini-rack-v4 .fleet-mini-battery-v4.warning{
    outline:2px solid #FF9D00 !important;
    outline-offset:-1px !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.alarm{
    outline:2px solid #760000 !important;
    outline-offset:-1px !important;
    box-shadow:0 0 0 1px #FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.unknown{
    opacity:.70;
}

/* FLEET_MINI_SOC_V2_END */

/* FLEET_MINI_SOC_LIGHT_START */

/* lightning / light verze mini kabinetu */

.fleet-rack-side-v4{
    min-width:92px !important;
}

.fleet-mini-rack-v4{
    width:72px !important;
    min-width:72px !important;
    max-width:72px !important;
    height:auto !important;

    padding:4px !important;
    gap:2px !important;

    background:#24323B !important;
    border:1px solid #4D5D67 !important;
    border-radius:7px !important;
    box-shadow:none !important;
}

.fleet-mini-col-v4{
    gap:2px !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4{
    min-height:7px !important;
    height:7px !important;
    padding:0 !important;
    margin:0 !important;

    border:none !important;
    border-radius:2px !important;
    box-shadow:none !important;
    outline:none !important;
}

/* žádný text */
.fleet-mini-rack-v4 .fleet-mini-battery-v4 span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4 strong,
.fleet-mini-rack-v4 .fleet-mini-battery-v4 small{
    display:none !important;
}

/* SOC barvy */
.fleet-mini-battery-v4.fleet-soc-0-v2   { background:#D62828 !important; }
.fleet-mini-battery-v4.fleet-soc-20-v2  { background:#F0632B !important; }
.fleet-mini-battery-v4.fleet-soc-40-v2  { background:#F2C230 !important; }
.fleet-mini-battery-v4.fleet-soc-60-v2  { background:#49B061 !important; }
.fleet-mini-battery-v4.fleet-soc-80-v2  { background:#0A7A46 !important; }
.fleet-mini-battery-v4.fleet-soc-none-v2{ background:#7E8A93 !important; }

/* prázdné sloty */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.empty{
    background:#3B4A53 !important;
    opacity:1 !important;
}

/* warning/alarm nepřebarvovat */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.warning,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.alarm,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.unknown{
    outline:none !important;
    box-shadow:none !important;
}

.fleet-rack-side-v4 > span{
    margin-top:4px !important;
    font-size:10px !important;
}

/* FLEET_MINI_SOC_LIGHT_END */

/* OPERATIONAL_PERIOD_UI_V2_START */

.operational-period-main-v2{
    display:inline-flex !important;
    align-items:center;
    flex-wrap:wrap;

    gap:3px !important;
    padding:4px !important;

    background:#EEF1F3 !important;
    border:1px solid #E0E5E8 !important;
    border-radius:9px !important;
}

.operational-period-main-v2 > button{
    min-height:31px;

    padding:6px 10px !important;

    border:0 !important;
    border-radius:6px !important;

    background:transparent !important;
    color:#53687B !important;

    font-size:11px !important;
    font-weight:650 !important;

    box-shadow:none !important;
}

.operational-period-main-v2 > button:hover{
    background:#FFFFFF !important;
    color:#1C2F48 !important;
}

.operational-period-main-v2 > button.active{
    background:#1C2F48 !important;
    color:#FFFFFF !important;
}

.operational-period-main-v2 .operational-custom-main-v2{
    border-left:1px solid #D4DBE0 !important;
    border-radius:0 6px 6px 0 !important;
    margin-left:2px;
    padding-left:12px !important;
}

.history-day-picker{
    display:none !important;
}

@media(max-width:760px){
    .operational-period-main-v2{
        width:100%;
    }

    .operational-period-main-v2 > button{
        flex:1 1 auto;
    }
}

/* OPERATIONAL_PERIOD_UI_V2_END */

/* ENERGY_PERIOD_CLEAN_V1_START */

/* odstranit šedý přepínač Den / Měsíc / Rok / Vlastní období */
#energyPage .energy-period-switch{
    display:none !important;
}

/* odstranit starý pravý výběr jednoho data + šipky */
#energyPage #energyPrev,
#energyPage #energyAnchor,
#energyPage #energyNext{
    display:none !important;
}

/* Od / Do je nyní stále viditelné */
#energyPage #energyCustomRange,
#energyPage #energyCustomRange[hidden]{
    display:flex !important;
    align-items:flex-end !important;
    gap:6px !important;
}

/* celý horní řádek */
#energyPage .energy-toolbar-panel{
    display:flex !important;
    align-items:center !important;
    gap:18px !important;
}

#energyPage .energy-toolbar-left{
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:18px !important;
    flex:1 1 auto !important;
}

/* bílé rychlé volby */
#energyPage .energy-calendar-presets{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    max-width:none !important;
}

#energyPage .energy-calendar-presets > button{
    background:#FFFFFF !important;
    border:1px solid #D8E0E5 !important;
    color:#405A70 !important;
    border-radius:7px !important;
    min-height:34px !important;
    padding:7px 11px !important;
    box-shadow:none !important;
}

#energyPage .energy-calendar-presets > button:hover{
    border-color:#9EADB8 !important;
    background:#F8FAFB !important;
}

#energyPage .energy-calendar-presets > button.active{
    background:#1C2F48 !important;
    border-color:#1C2F48 !important;
    color:#FFFFFF !important;
}

/* Od / Do */
#energyPage .energy-date-controls{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    margin-left:auto !important;
}

#energyPage #energyCustomRange label{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:6px !important;
    margin:0 !important;
}

#energyPage #energyCustomRange label > span{
    font-size:11px !important;
    font-weight:650 !important;
    color:#52677B !important;
    margin:0 !important;
}

#energyPage #energyCustomRange input{
    width:175px !important;
    min-height:34px !important;
    height:34px !important;
    background:#FFFFFF !important;
    border:1px solid #D8E0E5 !important;
    border-radius:7px !important;
    padding:5px 8px !important;
}

#energyPage #energyLoadCustom{
    min-height:34px !important;
    height:34px !important;
    border-radius:7px !important;
}

/* mobil */
@media(max-width:900px){
    #energyPage .energy-toolbar-panel{
        flex-direction:column !important;
        align-items:stretch !important;
    }

    #energyPage .energy-date-controls{
        margin-left:0 !important;
    }

    #energyPage #energyCustomRange{
        flex-wrap:wrap !important;
    }
}

/* ENERGY_PERIOD_CLEAN_V1_END */

/* RTE_MANUAL_V1_START */

.rte-manual-editor-v1{
    margin-top:16px;
    padding:16px;
    border:1px solid #DDE4E9;
    border-left:4px solid #F05223;
    border-radius:9px;
    background:#F8FAFB;
}

.rte-manual-head-v1{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.rte-manual-head-v1 strong{
    display:block;
    color:#1C2F48;
    font-size:15px;
}

.rte-manual-head-v1 small{
    display:block;
    margin-top:3px;
    color:#71808D;
    font-size:11px;
}

.rte-manual-form-v1{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}

.rte-manual-form-v1 .full{
    grid-column:1 / -1;
}

.rte-manual-badge-v1{
    display:inline-flex;
    margin-left:5px;
    padding:2px 5px;
    border-radius:4px;
    background:#FFF1E9;
    color:#C7471F;
    font-size:9px;
    font-weight:750;
}

.rte-manual-open-v1{
    white-space:nowrap;
}

@media(max-width:900px){
    .rte-manual-form-v1{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:600px){
    .rte-manual-form-v1{
        grid-template-columns:1fr;
    }

    .rte-manual-form-v1 .full{
        grid-column:auto;
    }
}

/* RTE_MANUAL_V1_END */

/* RTE_MONTH_PICKER_V2_START */

.rte-month-picker-v2{
    display:flex;
    align-items:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

.rte-month-presets-v2{
    display:flex;
    gap:5px;
    padding:4px;
    background:#EEF1F3;
    border:1px solid #E0E5E8;
    border-radius:8px;
}

.rte-month-presets-v2 .btn{
    background:#FFF;
    border:1px solid #D8E0E5;
    color:#405A70;
    min-height:34px;
}

.rte-month-nav-v2{
    display:flex;
    align-items:flex-end;
    gap:5px;
}

.rte-month-nav-v2 label{
    margin:0;
}

.rte-month-nav-v2 input[type="month"]{
    min-width:170px;
    height:36px;
    background:#FFF;
}

.rte-month-nav-v2 > button{
    height:36px;
}

@media(max-width:760px){
    .rte-month-picker-v2,
    .rte-month-nav-v2{
        width:100%;
    }

    .rte-month-presets-v2{
        width:100%;
    }

    .rte-month-presets-v2 .btn{
        flex:1;
    }
}

/* RTE_MONTH_PICKER_V2_END */


/* WARRANTY_STEP2_START */

.warranty-live-v2{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #E3E8EC;
}

.warranty-status-head-v2{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.warranty-status-head-v2>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.warranty-status-head-v2 h3{
    margin:0;
    color:#1C2F48;
    font-size:17px;
}

.warranty-status-head-v2 span{
    color:#748391;
    font-size:11px;
}

.warranty-kpis-v2{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin-top:13px;
}

.warranty-kpis-v2 article{
    min-width:0;
    padding:13px 14px;
    border:1px solid #E1E7EB;
    border-top:3px solid #DDE4E9;
    border-radius:9px;
    background:#FFF;
}

.warranty-kpis-v2 article.primary{
    border-top-color:#F05223;
}

.warranty-kpis-v2 article>span{
    display:block;
    color:#748391;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:700;
}

.warranty-kpis-v2 article>strong{
    display:block;
    margin-top:7px;
    color:#1C2F48;
    font-size:20px;
    line-height:1.1;
    font-variant-numeric:tabular-nums;
}

.warranty-kpis-v2 article>small{
    display:block;
    margin-top:6px;
    color:#748391;
    font-size:10px;
    line-height:1.35;
}

.warranty-progress-v2{
    display:grid;
    grid-template-columns:90px minmax(0,1fr);
    gap:7px 12px;
    align-items:center;
    margin-top:15px;
    padding:12px 14px;
    border:1px solid #E1E7EB;
    border-radius:9px;
    background:#FAFBFC;
}

.warranty-progress-v2>div:nth-child(odd){
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    font-size:11px;
}

.warranty-progress-v2 strong{
    color:#1C2F48;
    font-variant-numeric:tabular-nums;
}

.warranty-progress-track-v2{
    height:8px;
    overflow:hidden;
    border-radius:999px;
    background:#E4E9ED;
}

.warranty-progress-track-v2 i{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:#1C2F48;
    transition:width .35s ease;
}

.warranty-progress-track-v2 i.warning{
    background:#F05223;
}

.warranty-progress-track-v2 i.danger{
    background:#B92D22;
}

@media(max-width:1300px){
    .warranty-kpis-v2{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .warranty-kpis-v2{
        grid-template-columns:1fr 1fr;
    }

    .warranty-progress-v2{
        grid-template-columns:70px minmax(0,1fr);
    }
}

@media(max-width:480px){
    .warranty-kpis-v2{
        grid-template-columns:1fr;
    }
}

/* WARRANTY_STEP2_END */


/* WARRANTY_TOTAL_CYCLES_V1 */
@media(min-width:1301px){
    .warranty-kpis-v2{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

/* RTE_SELF_CONSUMPTION_SPLIT_V1_START */

.rte-grid-kpi-v05115.rte-self-consumption-large-v1{
    grid-column:span 2;
    min-height:150px;
    padding:18px 20px;
    border-top:3px solid #F05223;
}

.rte-self-consumption-large-v1>span{
    display:block;
    margin-bottom:14px;
    color:#657789;
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.rte-self-split-v1{
    display:grid;
    grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);
    align-items:stretch;
    gap:18px;
}

.rte-self-divider-v1{
    background:#E1E7EB;
}

.rte-self-part-v1{
    min-width:0;
}

.rte-self-part-v1 small{
    display:block;
    margin-bottom:6px;
    color:#738393;
    font-size:11px;
    font-weight:600;
}

.rte-self-part-v1 strong{
    display:block;
    color:#1C2F48;
    font-size:25px;
    line-height:1.1;
    font-weight:700;
    font-variant-numeric:tabular-nums;
}

.rte-self-part-v1.forecast strong{
    color:#F05223;
}

.rte-self-part-v1 em{
    display:block;
    margin-top:5px;
    color:#8996A2;
    font-size:10px;
    font-style:normal;
}

.rte-self-total-v1{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-top:15px;
    padding-top:11px;
    border-top:1px solid #E3E8EC;
}

.rte-self-total-v1 span{
    color:#657789;
    font-size:11px;
}

.rte-self-total-v1 strong{
    color:#1C2F48;
    font-size:15px;
    font-variant-numeric:tabular-nums;
}

@media(max-width:850px){

    .rte-grid-kpi-v05115.rte-self-consumption-large-v1{
        grid-column:1 / -1;
    }

}

@media(max-width:520px){

    .rte-self-split-v1{
        grid-template-columns:1fr;
        gap:12px;
    }

    .rte-self-divider-v1{
        height:1px;
    }

}

/* RTE_SELF_CONSUMPTION_SPLIT_V1_END */


/* RTE_OWN_BIG_V2_START */

.rte-grid-kpi-v05115.rte-own-big-v2{
    grid-column:span 2;
    min-height:210px;
    padding:20px 22px;
    border-top:3px solid #F05223;
}

.rte-own-title-v2{
    display:block;
    color:#687D90;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.rte-own-total-v2{
    display:block;
    margin-top:8px;
    color:#1C2F48;
    font-size:31px !important;
    line-height:1.1;
    font-weight:700;
    font-variant-numeric:tabular-nums;
}

.rte-own-split-v2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:18px;
}

.rte-own-part-v2{
    padding:14px 16px;
    border:1px solid #E1E7EB;
    border-radius:9px;
    background:#FAFBFC;
}

.rte-own-part-v2>span{
    display:block;
    color:#1C2F48;
    font-size:12px;
    font-weight:700;
}

.rte-own-part-v2>small{
    display:block;
    margin-top:4px;
    color:#7B8996;
    font-size:10px;
}

.rte-own-part-v2>strong{
    display:block;
    margin-top:10px;
    color:#1C2F48;
    font-size:21px !important;
    line-height:1.1;
    font-weight:700;
    font-variant-numeric:tabular-nums;
}

.rte-own-part-v2.forecast>strong{
    color:#F05223;
}

@media(max-width:900px){
    .rte-grid-kpi-v05115.rte-own-big-v2{
        grid-column:1 / -1;
    }
}

@media(max-width:560px){
    .rte-own-split-v2{
        grid-template-columns:1fr;
    }

    .rte-own-total-v2{
        font-size:27px !important;
    }
}

/* RTE_OWN_BIG_V2_END */


/* ==========================================================
   RTE SUMMARY LAYOUT RIGHT
   ========================================================== */

.rte-summary-shell-v2{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(360px,0.95fr);
    gap:16px;
    align-items:start;
    margin:14px 0 18px;
}

.rte-summary-left-v2{
    display:grid;
    gap:16px;
    min-width:0;
}

.rte-summary-right-v2{
    min-width:0;
}

.rte-summary-left-v2 .rte-grid-kpis-v05115,
.rte-summary-left-v2 .rte-grid-energy-v05115{
    margin:0;
}

.rte-summary-left-v2 .rte-grid-kpis-v05115{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.rte-summary-left-v2 .rte-grid-energy-v05115{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.rte-summary-right-v2 .rte-own-big-v2{
    grid-column:auto !important;
    min-height:100%;
    margin:0;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-total-v2{
    font-size:42px !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-split-v2{
    grid-template-columns:1fr;
    gap:10px;
}

@media(max-width:1280px){
    .rte-summary-left-v2 .rte-grid-kpis-v05115,
    .rte-summary-left-v2 .rte-grid-energy-v05115{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:980px){
    .rte-summary-shell-v2{
        grid-template-columns:1fr;
    }

    .rte-summary-right-v2 .rte-own-big-v2{
        min-height:auto;
    }
}

@media(max-width:640px){
    .rte-summary-left-v2 .rte-grid-kpis-v05115,
    .rte-summary-left-v2 .rte-grid-energy-v05115{
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   RTE – DOLADENI VELIKOSTI A ROZLOZENI
   ========================================================== */

.rte-summary-shell-v2{
    grid-template-columns:minmax(0,2.15fr) minmax(320px,0.95fr) !important;
    gap:14px !important;
    align-items:start !important;
}

.rte-summary-left-v2{
    gap:14px !important;
}

.rte-summary-left-v2 .rte-grid-kpis-v05115,
.rte-summary-left-v2 .rte-grid-energy-v05115{
    gap:12px !important;
}

.rte-summary-left-v2 .rte-grid-kpi-v05115,
.rte-summary-left-v2 .rte-grid-energy-v05115 > article{
    min-height:92px !important;
    padding:14px 16px !important;
}

/* pravy sloupec = vlastni spotreba o neco mensi a uhlazenejsi */
.rte-summary-right-v2{
    max-width:100% !important;
}

.rte-summary-right-v2 .rte-own-big-v2{
    margin:0 !important;
    padding:16px 18px !important;
    min-height:auto !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-total-v2{
    font-size:30px !important;
    line-height:1.06 !important;
    margin:6px 0 14px !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-split-v2{
    gap:10px !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-split-v2 > div{
    min-height:96px !important;
    padding:14px 16px !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-split-v2 strong{
    font-size:18px !important;
    line-height:1.15 !important;
}

.rte-summary-right-v2 .rte-own-big-v2 .rte-own-split-v2 small{
    font-size:11px !important;
}

/* responsivni doladeni */
@media (max-width:1280px){
    .rte-summary-shell-v2{
        grid-template-columns:minmax(0,1fr) minmax(300px,0.92fr) !important;
    }
}

@media (max-width:980px){
    .rte-summary-shell-v2{
        grid-template-columns:1fr !important;
    }

    .rte-summary-right-v2 .rte-own-big-v2 .rte-own-total-v2{
        font-size:28px !important;
    }
}


/* ==========================================================
   RTE SUMMARY FINAL ALIGNMENT
   ========================================================== */

.rte-summary-shell-v2{
    grid-template-columns:
        minmax(0,4.6fr)
        minmax(330px,1.35fr) !important;

    gap:14px !important;
    align-items:stretch !important;
}

.rte-summary-left-v2{
    gap:14px !important;
}

/* levé KPI přesně stejné */
.rte-summary-left-v2 .rte-grid-kpis-v05115,
.rte-summary-left-v2 .rte-grid-energy-v05115{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:12px !important;
}

.rte-summary-left-v2 .rte-grid-kpi-v05115,
.rte-summary-left-v2 .rte-grid-energy-v05115 > article{
    min-height:92px !important;
    height:92px !important;
    box-sizing:border-box !important;
}

/* pravá karta přesně na výšku obou levých řádků */
.rte-summary-right-v2{
    display:flex !important;
    min-width:0 !important;
}

.rte-summary-right-v2 .rte-own-big-v2{
    width:100% !important;
    height:198px !important;
    min-height:198px !important;

    padding:14px 16px !important;
    margin:0 !important;

    box-sizing:border-box !important;
}

/* hlavní hodnota menší */
.rte-summary-right-v2 .rte-own-total-v2{
    margin:5px 0 12px !important;

    font-size:27px !important;
    line-height:1.05 !important;
}

/* skutečnost + odhad vedle sebe */
.rte-summary-right-v2 .rte-own-split-v2{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;

    gap:9px !important;
    margin-top:0 !important;
}

.rte-summary-right-v2 .rte-own-part-v2{
    min-height:95px !important;

    padding:11px 12px !important;
    box-sizing:border-box !important;
}

.rte-summary-right-v2 .rte-own-part-v2 > span{
    font-size:10px !important;
}

.rte-summary-right-v2 .rte-own-part-v2 > small{
    margin-top:3px !important;
    font-size:9px !important;
}

.rte-summary-right-v2 .rte-own-part-v2 > strong{
    margin-top:8px !important;

    font-size:16px !important;
    line-height:1.1 !important;
}

/* tablet */
@media(max-width:1200px){

    .rte-summary-shell-v2{
        grid-template-columns:1fr !important;
    }

    .rte-summary-right-v2 .rte-own-big-v2{
        height:auto !important;
        min-height:0 !important;
    }

}

/* mobil */
@media(max-width:600px){

    .rte-summary-right-v2 .rte-own-split-v2{
        grid-template-columns:1fr !important;
    }

}


/* PROJECT TABS COMPACT V1 */
@media(min-width:761px){

    .project-page-nav{
        margin-bottom:7px !important;
        gap:10px !important;
    }

    .project-page-nav a{
        padding-left:7px !important;
        padding-right:7px !important;

        font-size:13.5px !important;
        font-weight:600 !important;
        color:#425A70 !important;
    }

    .project-page-nav a:hover{
        color:#1C2F48 !important;
    }

    .project-page-nav a.active{
        color:#1C2F48 !important;
        font-weight:700 !important;
    }
}


/* MQTT_MODERN_UI_V1_START */

/* =========================================================
   ENERGICO Vision — MQTT administration
   Moderní vizuální vrstva. Scope pouze #mqtt.
   ========================================================= */

#mqtt{
  --mqtt-blue:#1C2F48;
  --mqtt-orange:#F05223;
  --mqtt-bg:#F5F7F8;
  --mqtt-soft:#F8FAFB;
  --mqtt-line:#E3E9ED;
  --mqtt-muted:#71808E;
  --mqtt-green:#198754;
  --mqtt-red:#B83A3A;
}

/* hlavní plocha */
#mqtt.panel.admin-section{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
}

/* HEADER MQTT */
#mqtt > .panel-head{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-left:4px solid var(--mqtt-orange);
  border-radius:14px;
  padding:18px 20px;
  margin-bottom:14px;
  box-shadow:0 5px 18px rgba(28,47,72,.05);
  align-items:center;
}

#mqtt > .panel-head .eyebrow{
  color:var(--mqtt-orange);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
}

#mqtt > .panel-head h2{
  font-size:20px;
  line-height:1.2;
  color:var(--mqtt-blue);
  margin-top:3px;
}

#mqtt .endpoint-inline{
  background:var(--mqtt-blue);
  border:0;
  border-radius:10px;
  padding:10px 14px;
  min-width:220px;
  text-align:right;
}

#mqtt .endpoint-inline strong{
  color:#FFFFFF;
  font-size:13px;
}

#mqtt .endpoint-inline span{
  color:rgba(255,255,255,.68);
  font-size:9px;
}

/* TOP KPI */
#mqtt .mqtt-project-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 20px;
}

#mqtt .mqtt-project-summary article{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:12px;
  padding:15px 16px;
  min-height:90px;
  box-shadow:0 3px 12px rgba(28,47,72,.035);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

#mqtt .mqtt-project-summary article:first-child{
  border-top:3px solid var(--mqtt-orange);
}

#mqtt .mqtt-project-summary article > span{
  color:var(--mqtt-muted);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
}

#mqtt .mqtt-project-summary article > strong{
  color:var(--mqtt-blue);
  font-size:25px;
  line-height:1.15;
  margin:5px 0 3px;
}

#mqtt .mqtt-project-summary article > small{
  color:var(--mqtt-muted);
  font-size:10px;
}

/* SEKCE */
#mqtt .subsection-head{
  margin:24px 0 9px;
  padding:0;
  border:0;
  align-items:center;
}

#mqtt .subsection-head h3{
  color:var(--mqtt-blue);
  font-size:15px;
  font-weight:700;
}

#mqtt .subsection-head > span{
  color:var(--mqtt-muted);
  font-size:10px;
}

/* TABULKY */
#mqtt .table-wrap{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:12px;
  overflow:auto;
  box-shadow:0 2px 9px rgba(28,47,72,.025);
}

#mqtt table{
  border-collapse:separate;
  border-spacing:0;
}

#mqtt table thead th{
  background:#F6F8FA;
  color:#667785;
  font-size:9px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:10px 12px;
  border-bottom:1px solid var(--mqtt-line);
}

#mqtt table tbody td{
  padding:10px 12px;
  border-bottom:1px solid #EEF2F4;
  vertical-align:middle;
}

#mqtt table tbody tr:last-child td{
  border-bottom:0;
}

#mqtt table tbody tr:hover{
  background:#FAFBFC;
}

#mqtt table code{
  background:#F1F4F6;
  color:#32485C;
  border-radius:5px;
  padding:3px 5px;
  font-size:9px;
}

/* přihlašovací údaje */
#mqtt .mqtt-password-cell{
  min-width:0;
  gap:5px;
}

#mqtt .mqtt-password-cell input{
  min-width:170px;
  background:#F8FAFB;
}

#mqtt .create-mqtt-row{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:10px;
  padding:10px;
  margin-top:8px;
}

/* ROZPOZNANÁ ZAŘÍZENÍ */
#mqtt .detected-devices-table-v05114 strong{
  color:var(--mqtt-blue);
  font-size:11px;
}

#mqtt .device-alias-form-v05114{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;
  gap:6px;
  align-items:center;
}

#mqtt .device-alias-form-v05114 input,
#mqtt .device-alias-form-v05114 select{
  background:#FFFFFF;
  border:1px solid #D9E1E6;
  border-radius:7px;
  min-height:33px;
}

/* PIXII TOPICY — největší změna */
#mqtt .topic-root-chip{
  background:#EDF2F4;
  color:var(--mqtt-blue);
  border-radius:18px;
  padding:5px 9px;
  font-weight:700;
}

#mqtt .topic-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

#mqtt .topic-check{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-left:3px solid #AAB6BF;
  border-radius:11px;
  padding:12px;
  gap:10px;
  box-shadow:0 2px 7px rgba(28,47,72,.025);
  min-height:102px;
}

#mqtt .topic-check.active{
  border-left-color:#22A66A;
}

#mqtt .topic-check.stale{
  border-left-color:#D39B28;
}

#mqtt .topic-check.missing{
  border-left-color:#AAB6BF;
  background:#FAFBFC;
}

#mqtt .topic-check-icon{
  width:28px;
  height:28px;
  background:#F0F3F5;
  font-size:12px;
}

#mqtt .topic-check.active .topic-check-icon{
  background:#E9F7EF;
  color:#16834E;
}

#mqtt .topic-check-main strong{
  color:var(--mqtt-blue);
  font-size:12px;
}

#mqtt .topic-check-main p{
  color:#637481;
  font-size:10px;
  line-height:1.4;
  margin:4px 0 6px;
}

#mqtt .topic-meta{
  font-size:9px;
  color:#81909B;
  gap:9px;
}

#mqtt .topic-check-main > code{
  display:block;
  margin-top:5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
}

#mqtt .required-chip,
#mqtt .optional-chip{
  font-size:8px;
  padding:3px 6px;
  border-radius:10px;
}

/* DATOVÉ ZDROJE */
#mqtt .source-card{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:12px;
  padding:14px;
  margin-bottom:10px;
  box-shadow:0 2px 8px rgba(28,47,72,.025);
}

#mqtt .source-card-head{
  padding-bottom:9px;
  margin-bottom:10px;
  border-bottom:1px solid #EEF2F4;
}

#mqtt .source-card-head strong{
  color:var(--mqtt-blue);
  font-size:13px;
}

#mqtt .loxone-topic-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

#mqtt .loxone-topic-grid > div{
  background:#F8FAFB;
  border:1px solid #E8EDF0;
  border-radius:9px;
  padding:11px;
}

#mqtt .loxone-topic-grid > div > strong{
  display:block;
  color:var(--mqtt-blue);
  margin-bottom:6px;
  font-size:11px;
}

#mqtt .loxone-topic-grid > div > code{
  display:block;
  margin-bottom:5px;
  overflow-wrap:anywhere;
}

#mqtt .loxone-topic-grid > div > span{
  color:var(--mqtt-muted);
  font-size:9px;
}

#mqtt .integration-status,
#mqtt .connector-diagnostic-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  background:#F8FAFB;
  border-radius:8px;
  padding:8px 10px;
  margin:9px 0;
  font-size:9px;
}

/* DIAGNOSTIKA — dashboard místo drobných boxů */
#mqtt .comm-health-dashboard-v05114{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

#mqtt .comm-health-card-v05114{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:11px;
  padding:13px 14px;
  min-height:88px;
  box-shadow:none;
}

#mqtt .comm-health-card-v05114.primary{
  border-top:3px solid var(--mqtt-blue);
}

#mqtt .comm-health-card-v05114.warning{
  border-top:3px solid #D99B27;
}

#mqtt .comm-health-card-v05114.danger{
  border-top:3px solid var(--mqtt-red);
  background:#FFF9F9;
}

#mqtt .comm-health-card-v05114 > span{
  color:var(--mqtt-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:9px;
  font-weight:700;
}

#mqtt .comm-health-card-v05114 > strong{
  display:block;
  color:var(--mqtt-blue);
  font-size:20px;
  line-height:1.15;
  margin:5px 0 3px;
}

#mqtt .comm-health-card-v05114 > small{
  color:#81909B;
  font-size:9px;
}

#mqtt .comm-queue-bar-v05114{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:9px;
  padding:9px 11px;
  margin-top:8px;
}

#mqtt .comm-actions-v05114{
  margin-top:9px;
  padding:8px 0 2px;
}

/* AKTUÁLNÍ PARAMETRY */
#mqtt .current-params-bottom-v05114{
  margin-top:26px;
  padding-top:2px;
}

#mqtt .param-tools{
  margin-bottom:8px;
}

#mqtt .compact-search{
  min-width:280px;
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:9px;
}

#mqtt .current-parameters-wrap{
  max-height:520px;
  border-radius:12px;
}

#mqtt .current-parameters-wrap table thead{
  position:sticky;
  top:0;
  z-index:3;
}

#mqtt .category-chip{
  background:#EEF2F4;
  color:#627483;
  border:1px solid #E0E6EA;
}

/* obecné buttony pouze v MQTT */
#mqtt .btn{
  border-radius:7px;
}

#mqtt .btn.primary{
  background:var(--mqtt-blue);
  border-color:var(--mqtt-blue);
}

#mqtt .btn.primary:hover{
  background:#15263A;
}

#mqtt .advanced-box{
  background:#FFFFFF;
  border:1px solid var(--mqtt-line);
  border-radius:9px;
  margin-top:8px;
}

#mqtt .advanced-box > summary{
  color:var(--mqtt-blue);
  font-weight:600;
}

/* RESPONSIVE */
@media(max-width:1200px){
  #mqtt .topic-check-grid{
    grid-template-columns:1fr;
  }

  #mqtt .comm-health-dashboard-v05114{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #mqtt .device-alias-form-v05114{
    grid-template-columns:1fr;
  }
}

@media(max-width:760px){
  #mqtt > .panel-head{
    align-items:flex-start;
    flex-direction:column;
  }

  #mqtt .endpoint-inline{
    width:100%;
    min-width:0;
    text-align:left;
  }

  #mqtt .mqtt-project-summary,
  #mqtt .comm-health-dashboard-v05114,
  #mqtt .loxone-topic-grid{
    grid-template-columns:1fr;
  }

  #mqtt .topic-check{
    grid-template-columns:28px minmax(0,1fr);
  }

  #mqtt .topic-state{
    grid-column:2;
  }

  #mqtt .compact-search{
    width:100%;
    min-width:0;
  }
}

/* MQTT_MODERN_UI_V1_END */



/* PIXII_DEVICE_SERIAL_V1 */
#mqtt .pixii-device-id-cell{
  min-width:190px;
}

#mqtt .pixii-device-serial{
  display:inline-block;
  font-size:16px !important;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.025em;
  color:#1C2F48;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}


/* PIXII_DEVICE_ONLINE_V1 */

#mqtt .pixii-device-serial-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

#mqtt .pixii-device-online{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border-radius:999px;
  font-size:8px;
  line-height:1;
  font-weight:700;
  letter-spacing:.05em;
}

#mqtt .pixii-device-online i{
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
}

#mqtt .pixii-device-online.online{
  background:#E9F7EF;
  color:#16834E;
}

#mqtt .pixii-device-online.online i{
  background:#20A866;
  box-shadow:0 0 0 3px rgba(32,168,102,.12);
}

#mqtt .pixii-device-online.offline{
  background:#EEF1F3;
  color:#73818C;
}

#mqtt .pixii-device-online.offline i{
  background:#9BA7AF;
}

#mqtt .pixii-online-summary{
  display:flex;
  align-items:center;
  gap:5px;
  color:#71808E;
  font-size:10px;
}

#mqtt .pixii-online-summary strong{
  color:#16834E;
  font-size:12px;
}

#mqtt .pixii-online-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#20A866;
  box-shadow:0 0 0 3px rgba(32,168,102,.12);
}

#mqtt .pixii-online-separator{
  color:#B0BAC1;
}


/* MQTT_LOXONE_PRIMARY_V1 */

#mqtt .loxone-source-card{
  border-left:4px solid #F05223 !important;
  padding:16px 18px !important;
}

#mqtt .loxone-source-card .source-card-head > div > strong{
  font-size:15px !important;
  color:#1C2F48;
}

#mqtt .loxone-source-card .integration-status{
  margin-top:12px;
  padding:10px 12px;
}

#mqtt .loxone-source-card .loxone-topic-grid > div{
  min-height:90px;
}

#mqtt .loxone-source-card .loxone-topic-grid > div > strong{
  font-size:12px;
}


/* MQTT_CONNECTED_DEVICES_UI_V1_START */

#mqtt .mqtt-portal-bubble{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
}

#mqtt .mqtt-portal-label{
  color:#F05223 !important;
  font-size:8px !important;
  line-height:1;
  font-weight:800;
  letter-spacing:.12em;
}

#mqtt .mqtt-connected-devices{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:12px;
  background:#FFFFFF;
  border:1px solid #E3E9ED;
  border-radius:12px;
  box-shadow:0 2px 8px rgba(28,47,72,.025);
}

#mqtt .mqtt-connected-device{
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  background:#F7FAF8;
  border:1px solid #DCEBE2;
  border-radius:9px;
}

#mqtt .mqtt-connected-device i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#20A866;
  box-shadow:0 0 0 3px rgba(32,168,102,.12);
}

#mqtt .mqtt-connected-device strong{
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:13px;
  color:#1C2F48;
}

#mqtt .mqtt-connected-device span{
  font-size:8px;
  font-weight:700;
  color:#16834E;
  letter-spacing:.05em;
}

#mqtt .mqtt-connected-empty{
  color:#71808E;
  font-size:10px;
  padding:4px;
}

@media(max-width:760px){
  #mqtt .mqtt-portal-bubble{
    align-items:flex-start;
  }

  #mqtt .mqtt-connected-device{
    width:100%;
  }
}

/* MQTT_CONNECTED_DEVICES_UI_V1_END */


/* MQTT_HEADER_LIVE_V1_START */

#mqtt .mqtt-portal-bubble{
  min-width:315px;
  padding:10px 14px;
}

#mqtt .mqtt-endpoint-status-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin:2px 0;
}

#mqtt .mqtt-endpoint-status-row > strong{
  color:#fff;
  font-size:13px;
}

#mqtt .mqtt-header-live{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border-radius:999px;
  font-size:8px;
  line-height:1;
  font-weight:800;
  letter-spacing:.05em;
}

#mqtt .mqtt-header-live i{
  width:6px;
  height:6px;
  border-radius:50%;
}

#mqtt .mqtt-header-live.online{
  color:#BDF4D4;
  background:rgba(32,168,102,.18);
}

#mqtt .mqtt-header-live.online i{
  background:#35D07F;
  box-shadow:0 0 0 3px rgba(53,208,127,.12);
}

#mqtt .mqtt-header-live.stale{
  color:#FFE09A;
  background:rgba(217,155,39,.18);
}

#mqtt .mqtt-header-live.stale i{
  background:#E4A62E;
}

#mqtt .mqtt-header-live.offline{
  color:#D7DEE4;
  background:rgba(255,255,255,.10);
}

#mqtt .mqtt-header-live.offline i{
  background:#A3ADB5;
}

#mqtt .mqtt-header-last{
  color:rgba(255,255,255,.67) !important;
  font-size:8px !important;
}

@media(max-width:760px){
  #mqtt .mqtt-portal-bubble{
    min-width:0;
    width:100%;
  }

  #mqtt .mqtt-endpoint-status-row{
    justify-content:flex-start;
  }
}

/* MQTT_HEADER_LIVE_V1_END */


/* LOXONE_UNIFIED_UI_V1_START */

#mqtt .loxone-section-head{
  margin-top:24px;
}

#mqtt .loxone-unified-card{
  background:#FFFFFF;
  border:1px solid #DDE5EA;
  border-left:4px solid #F05223;
  border-radius:13px;
  padding:16px;
  box-shadow:0 3px 12px rgba(28,47,72,.035);
}

#mqtt .loxone-unified-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid #E8EDF0;
}

#mqtt .loxone-unified-head > div:first-child{
  display:flex;
  align-items:center;
  gap:8px;
}

#mqtt .loxone-unified-head strong{
  color:#1C2F48;
  font-size:15px;
}

#mqtt .loxone-unit-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  background:#EEF2F4;
  color:#657683;
  border-radius:999px;
  font-size:9px;
  font-weight:700;
}

#mqtt .loxone-channel-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}

#mqtt .loxone-channel{
  background:#F8FAFB;
  border:1px solid #E3E9ED;
  border-radius:11px;
  padding:14px;
}

#mqtt .loxone-channel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}

#mqtt .loxone-channel-head > div{
  display:flex;
  flex-direction:column;
  gap:3px;
}

#mqtt .loxone-channel-label{
  color:#F05223;
  font-size:8px;
  font-weight:800;
  letter-spacing:.10em;
}

#mqtt .loxone-channel-head strong{
  color:#1C2F48;
  font-size:12px;
}

#mqtt .loxone-live-value{
  display:flex;
  align-items:baseline;
  gap:5px;
  margin:14px 0;
}

#mqtt .loxone-live-value strong{
  color:#1C2F48;
  font-size:25px;
  line-height:1;
}

#mqtt .loxone-live-value span{
  color:#71808E;
  font-size:10px;
  font-weight:700;
}

#mqtt .loxone-canonical,
#mqtt .loxone-topic{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:9px;
}

#mqtt .loxone-canonical > span,
#mqtt .loxone-topic > span{
  color:#84929C;
  font-size:8px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}

#mqtt .loxone-canonical code,
#mqtt .loxone-topic code{
  display:block;
  width:100%;
  background:#EEF2F4;
  padding:6px 8px;
  border-radius:6px;
  color:#23405A;
  overflow-wrap:anywhere;
}

#mqtt .loxone-channel-meta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:11px;
  padding-top:9px;
  border-top:1px solid #E5EAED;
  color:#71808E;
  font-size:9px;
}

#mqtt .loxone-channel-meta strong{
  color:#1C2F48;
}

#mqtt .loxone-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #E8EDF0;
}

#mqtt .loxone-broker-info{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px 18px;
  color:#71808E;
  font-size:9px;
}

#mqtt .loxone-broker-info strong{
  color:#1C2F48;
}

#mqtt .loxone-advanced{
  margin-top:12px;
}

#mqtt .loxone-advanced-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding-top:12px;
}

#mqtt .loxone-advanced-source{
  background:#F8FAFB;
  border:1px solid #E4E9ED;
  border-radius:9px;
  padding:12px;
}

#mqtt .loxone-advanced-source > strong{
  display:block;
  color:#1C2F48;
  margin-bottom:9px;
}

@media(max-width:900px){

  #mqtt .loxone-channel-grid,
  #mqtt .loxone-advanced-grid{
    grid-template-columns:1fr;
  }

}

@media(max-width:760px){

  #mqtt .loxone-unified-head,
  #mqtt .loxone-footer{
    flex-direction:column;
    align-items:flex-start;
  }

}

/* LOXONE_UNIFIED_UI_V1_END */


/* MQTT_PORTAL_CLEAN_V2_START */

#mqtt .mqtt-portal-bubble{
  width:340px !important;
  min-width:340px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:7px !important;

  padding:12px 14px !important;
  background:#1C2F48 !important;
  border-radius:11px !important;
  text-align:left !important;
}

#mqtt .mqtt-portal-label{
  display:block !important;
  color:#F05223 !important;
  font-size:8px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase;
}

#mqtt .mqtt-endpoint-status-row{
  width:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin:0 !important;
}

#mqtt .mqtt-endpoint-status-row > strong{
  color:#FFFFFF !important;
  font-size:14px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  white-space:nowrap;
}

#mqtt .mqtt-header-live{
  flex:none;
  padding:5px 8px !important;
  border-radius:999px !important;
  font-size:8px !important;
}

#mqtt .mqtt-header-last{
  display:block !important;
  padding-top:6px;
  border-top:1px solid rgba(255,255,255,.10);

  color:rgba(255,255,255,.65) !important;
  font-size:9px !important;
  line-height:1.2 !important;
  text-align:left !important;
}

#mqtt .mqtt-header-live.online{
  background:rgba(32,168,102,.18) !important;
  color:#BDF4D4 !important;
}

#mqtt .mqtt-header-live.online i{
  background:#35D07F !important;
}

#mqtt .mqtt-header-live.stale{
  background:rgba(217,155,39,.18) !important;
  color:#FFE09A !important;
}

#mqtt .mqtt-header-live.offline{
  background:rgba(255,255,255,.09) !important;
  color:#D7DEE4 !important;
}

@media(max-width:760px){
  #mqtt .mqtt-portal-bubble{
    width:100% !important;
    min-width:0 !important;
  }

  #mqtt .mqtt-endpoint-status-row{
    flex-wrap:wrap;
  }
}

/* MQTT_PORTAL_CLEAN_V2_END */



/* FLEET_SOC_BALANCE_V1_START */

/*
 Mini vizualizace baterií:
 barva nevyjadřuje absolutní SOC, ale relativní odchylku
 baterie vůči ostatním bateriím stejného kabinetu.
*/

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-balanced{
  background:#169653 !important;
  border-color:#117A43 !important;
  color:#FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-minor{
  background:#A9B735 !important;
  border-color:#8C982C !important;
  color:#FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-medium{
  background:#D99100 !important;
  border-color:#B87900 !important;
  color:#FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-high{
  background:#E06F13 !important;
  border-color:#BE5708 !important;
  color:#FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-critical{
  background:#C92B2B !important;
  border-color:#A91F1F !important;
  color:#FFFFFF !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-balanced span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-balanced strong,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-minor span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-minor strong,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-medium span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-medium strong,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-high span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-high strong,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-critical span,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.live.soc-deviation-critical strong{
  color:inherit !important;
}

/* baterie bez SOC zůstává šedá */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.fleet-soc-none-v2{
  background:#7E8A93 !important;
}

/* FLEET_SOC_BALANCE_V1_END */

/* MINI CABINET SOC BALANCE - pouziva existujici soc_balance_class */

/* zelená = vyrovnané vůči mediánu kabinetu */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-balanced{
  background:#E7F5EB !important;
  border-color:#B8D9C2 !important;
  color:#245B38 !important;
}

/* malá odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-minor{
  background:#F4F5D9 !important;
  border-color:#D8D49A !important;
  color:#665F13 !important;
}

/* střední odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-medium{
  background:#FFF0D3 !important;
  border-color:#E9C27D !important;
  color:#7A5200 !important;
}

/* velká odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-high{
  background:#FFE2C8 !important;
  border-color:#E9A968 !important;
  color:#8A3E08 !important;
}

/* kritická odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-critical{
  background:#FFD9D3 !important;
  border-color:#E58E82 !important;
  color:#8D241B !important;
}

/* text uvnitř */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-balanced *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-minor *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-medium *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-high *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-critical *{
  color:inherit !important;
}

/* warning/alarm zůstane vidět jako rámeček, ale nepřepíše SOC škálu */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.warning{
  box-shadow:inset 0 0 0 2px #D99100 !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.alarm{
  box-shadow:inset 0 0 0 2px #C92B2B !important;
}

/* MINI CABINET SOC BALANCE - pouziva existujici soc_balance_class */

/* zelená = vyrovnané vůči mediánu kabinetu */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-balanced{
  background:#E7F5EB !important;
  border-color:#B8D9C2 !important;
  color:#245B38 !important;
}

/* malá odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-minor{
  background:#F4F5D9 !important;
  border-color:#D8D49A !important;
  color:#665F13 !important;
}

/* střední odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-medium{
  background:#FFF0D3 !important;
  border-color:#E9C27D !important;
  color:#7A5200 !important;
}

/* velká odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-high{
  background:#FFE2C8 !important;
  border-color:#E9A968 !important;
  color:#8A3E08 !important;
}

/* kritická odchylka */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-critical{
  background:#FFD9D3 !important;
  border-color:#E58E82 !important;
  color:#8D241B !important;
}

/* text uvnitř */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-balanced *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-minor *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-medium *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-high *,
.fleet-mini-rack-v4 .fleet-mini-battery-v4.soc-deviation-critical *{
  color:inherit !important;
}

/* warning/alarm zůstane vidět jako rámeček, ale nepřepíše SOC škálu */
.fleet-mini-rack-v4 .fleet-mini-battery-v4.warning{
  box-shadow:inset 0 0 0 2px #D99100 !important;
}

.fleet-mini-rack-v4 .fleet-mini-battery-v4.alarm{
  box-shadow:inset 0 0 0 2px #C92B2B !important;
}


/* ENERGY_BALANCE_PERCENT_V3_START */

.energy-balance-v3{
  padding:18px 18px 20px;
}

.energy-balance-head-v3{
  align-items:flex-start;
}

.energy-balance-head-v3 p{
  margin:4px 0 0;
  font-size:10px;
  color:#718291;
}

.energy-balance-base-v3{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:6px;
  margin:-4px 0 10px;
  color:#758593;
  font-size:9px;
}

.energy-balance-base-v3 strong{
  color:#1C2F48;
  font-size:11px;
  font-variant-numeric:tabular-nums;
}

.energy-balance-v3-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.energy-flow-card-v3{
  min-width:0;
  padding:15px 16px 13px;
  border:1px solid #E2E8EC;
  border-radius:11px;
  background:#FAFBFC;
}

.energy-flow-head-v3{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:12px;
}

.energy-flow-head-v3 small{
  display:block;
  margin-bottom:2px;
  color:#778896;
  font-size:8px;
  font-weight:700;
  letter-spacing:.09em;
}

.energy-flow-head-v3 h3{
  margin:0;
  color:#1C2F48;
  font-size:15px;
}

.energy-flow-head-v3>strong{
  color:#1C2F48;
  font-size:16px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.energy-balance-stack-v3{
  display:flex;
  width:100%;
  height:20px;
  overflow:hidden;
  border-radius:7px;
  background:#E9EEF1;
}

.energy-balance-stack-v3>i{
  display:block;
  height:100%;
  min-width:0;
  transition:width .3s ease;
}

.energy-balance-stack-v3 .grid-import{background:#D22C2C}
.energy-balance-stack-v3 .grid-export{background:#20A35A}
.energy-balance-stack-v3 .pv{background:#F05223}
.energy-balance-stack-v3 .bess-charge{background:#69A8D3}
.energy-balance-stack-v3 .bess-discharge{background:#2F6FB2}
.energy-balance-stack-v3 .site{background:#7A5AA6}
.energy-balance-stack-v3 .energy-balance-gap-v3{
  background:#E5EAED;
}

.energy-balance-stack-scale-v3{
  display:flex;
  justify-content:space-between;
  margin:4px 1px 11px;
  color:#8795A0;
  font-size:8px;
}

.energy-balance-list-v3{
  border-top:1px solid #E5EAED;
  padding-top:4px;
}

.energy-balance-row-v3{
  grid-template-columns:125px minmax(70px,1fr) 142px;
  gap:10px;
  min-height:43px;
  padding:7px 0;
}

.energy-balance-row-v3>span{
  display:flex;
  align-items:center;
  gap:7px;
  color:#52677A;
  font-size:11px;
}

.energy-balance-row-v3>span>i{
  flex:0 0 auto;
  width:9px;
  height:9px;
  border-radius:3px;
}

.energy-balance-row-v3>span>i.grid-import{background:#D22C2C}
.energy-balance-row-v3>span>i.grid-export{background:#20A35A}
.energy-balance-row-v3>span>i.pv{background:#F05223}
.energy-balance-row-v3>span>i.bess-charge{background:#69A8D3}
.energy-balance-row-v3>span>i.bess-discharge{background:#2F6FB2}
.energy-balance-row-v3>span>i.site{background:#7A5AA6}

.energy-balance-row-v3>strong{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  white-space:nowrap;
}

.energy-balance-row-v3>strong>b{
  color:#1C2F48;
  font-size:12px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}

.energy-balance-row-v3>strong>small{
  min-width:52px;
  padding:4px 6px;
  border:1px solid #DDE5EA;
  border-radius:999px;
  background:#FFF;
  color:#536A7D;
  font-size:9px;
  font-weight:700;
  text-align:center;
  font-variant-numeric:tabular-nums;
}

.energy-balance-row-v3 .energy-balance-track{
  height:6px;
}

@media(max-width:1100px){
  .energy-balance-v3-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:680px){
  .energy-flow-card-v3{
    padding:12px;
  }

  .energy-balance-row-v3{
    grid-template-columns:105px minmax(55px,1fr) 115px;
    gap:7px;
  }

  .energy-balance-row-v3>strong{
    gap:4px;
  }

  .energy-balance-row-v3>strong>b{
    font-size:10px;
  }

  .energy-balance-row-v3>strong>small{
    min-width:46px;
    font-size:8px;
  }
}

/* ENERGY_BALANCE_PERCENT_V3_END */








/* HYBRID_POWER_GRAPH_V3_CSS_START */

.hybrid-power-panel-v3{
  margin-top:16px;
  padding:17px 18px;
}

.hybrid-power-head-v3{
  align-items:flex-start;
}

.hybrid-power-head-v3 p{
  margin-top:4px;
  color:#66798A;
  font-size:11px;
}

.hybrid-power-switches-v3{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:3px 0 11px;
}

.hybrid-power-toggle-v3{
  display:grid;
  grid-template-columns:22px auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:8px;

  min-width:165px;

  border:1px solid var(--line);
  border-radius:8px;

  padding:8px 11px;

  background:#FFF;
  color:#506579;

  cursor:pointer;
  text-align:left;

  opacity:.42;

  transition:
    opacity .15s,
    border-color .15s,
    box-shadow .15s;
}

.hybrid-power-toggle-v3.active{
  opacity:1;
  border-color:#B9C8D5;
  box-shadow:0 1px 4px rgba(28,47,72,.08);
}

.hybrid-power-toggle-v3>i{
  grid-row:1/3;

  width:22px;
  height:4px;

  border-radius:3px;
}

.hybrid-power-toggle-v3>i.pv{
  background:#F05223;
}

.hybrid-power-toggle-v3>i.bess{
  background:#2F6FB2;
}

.hybrid-power-toggle-v3>span:not(.grid-dual-v3){
  font-size:11px;
  font-weight:700;
  color:#314A61;
}

.hybrid-power-toggle-v3 small{
  font-size:9px;
  color:#758593;
}

.grid-dual-v3{
  grid-row:1/3;

  display:flex;
  gap:2px;

  width:22px;
}

.grid-dual-v3 i{
  display:block;

  width:10px;
  height:4px;

  border-radius:3px;
}

.grid-dual-v3 .grid-import{
  background:#D22C2C;
}

.grid-dual-v3 .grid-export{
  background:#20A35A;
}

.hybrid-power-canvas-wrap-v3{
  position:relative;

  width:100%;
  height:430px;

  min-width:0;
  overflow:hidden;

  border:1px solid #E0E6E9;
  border-radius:9px;

  background:#FFF;
}

.hybrid-power-canvas-wrap-v3 canvas{
  display:block;

  width:100%;
  height:430px;

  cursor:crosshair;

  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
}

.hybrid-power-tooltip-v3{
  z-index:8;
}

.hybrid-power-foot-v3{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:10px;

  margin-top:8px;

  color:#758593;
  font-size:9px;
}

.hybrid-power-panel-v3.loading{
  opacity:.82;
}

@media(max-width:760px){

  .hybrid-power-panel-v3{
    padding-left:10px;
    padding-right:10px;
  }

  .hybrid-power-head-v3{
    flex-direction:column;
    gap:7px;
  }

  .hybrid-power-switches-v3{
    width:100%;
  }

  .hybrid-power-toggle-v3{
    flex:1;
    min-width:130px;
  }

  .hybrid-power-canvas-wrap-v3,
  .hybrid-power-canvas-wrap-v3 canvas{
    height:360px;
  }

  .hybrid-power-foot-v3{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* HYBRID_POWER_GRAPH_V3_CSS_END */


/* HYBRID_POWER_COMPACT_V4_START */

.hybrid-power-panel-v3{
  display:flex;
  flex-direction:column;
  margin-top:8px;
  padding:12px 14px;
}

.hybrid-power-head-v3{
  align-items:flex-start;
  margin-bottom:4px;
}

.hybrid-power-head-v3 p{
  margin-top:2px;
  margin-bottom:0;
  color:#66798A;
  font-size:10px;
}

.hybrid-power-canvas-wrap-v3{
  order:2;
  height:300px;
  margin-top:4px;
}

.hybrid-power-canvas-wrap-v3 canvas{
  height:300px;
}

.hybrid-power-switches-v3{
  order:3;
  margin:6px 0 4px;
  gap:6px;
}

.hybrid-power-foot-v3{
  order:4;
  margin-top:4px;
}

.hybrid-power-toggle-v3{
  min-width:138px;
  padding:6px 9px;
  grid-template-columns:18px auto;
  column-gap:7px;
}

.hybrid-power-toggle-v3 > i{
  width:18px;
  height:4px;
}

.hybrid-power-toggle-v3 > span:not(.grid-dual-v3){
  font-size:10px;
}

.hybrid-power-toggle-v3 small{
  font-size:8px;
  line-height:1.1;
}

.grid-dual-v3{
  width:18px;
}

.grid-dual-v3 i{
  width:8px;
  height:4px;
}

.market-chart-panel .history-help{
  margin-top:4px;
}

@media(max-width:760px){
  .hybrid-power-panel-v3{
    padding:10px;
  }

  .hybrid-power-canvas-wrap-v3,
  .hybrid-power-canvas-wrap-v3 canvas{
    height:260px;
  }

  .hybrid-power-switches-v3{
    gap:5px;
  }

  .hybrid-power-toggle-v3{
    min-width:118px;
    padding:6px 8px;
  }
}

/* HYBRID_POWER_COMPACT_V4_END */

/* ==========================================================
   PRICE_MODEL_V1
   ========================================================== */

.market-kpi-grid-price-v1{
  grid-template-columns:
    minmax(260px,.8fr)
    minmax(260px,.8fr)
    minmax(220px,.65fr);
  align-items:stretch;
}

.market-spot-summary-v1,
.market-spot-cost-v1{
  min-height:84px !important;
  padding:11px 14px !important;
}

.market-spot-main-v1{
  display:flex;
  align-items:baseline;
  gap:7px;
  margin-top:4px;
}

.market-spot-main-v1 strong{
  display:inline !important;
  margin:0 !important;
  font-size:22px !important;
}

.market-spot-minmax-v1{
  display:flex;
  gap:18px;
  margin-top:6px;
  color:#687A8A;
  font-size:9px;
}

.market-spot-minmax-v1 span{
  display:flex !important;
  align-items:baseline;
  gap:4px;
  font-size:9px !important;
}

.market-spot-minmax-v1 b{
  color:#1C2F48;
  font-size:11px;
  font-variant-numeric:tabular-nums;
}

.market-spot-minmax-v1 small{
  font-size:8px !important;
}

.market-spot-cost-v1{
  border-left-color:#F05223 !important;
}

.market-spot-cost-v1 strong{
  font-size:22px !important;
  margin-top:7px !important;
}

.calculation-page-v1{
  margin-top:12px;
}

.calculation-periods-v1{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.calculation-periods-v1 .active{
  background:#1C2F48;
  color:#FFF;
  border-color:#1C2F48;
}

.calculation-custom-v1{
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#F8FAFB;
}

.calculation-custom-v1[hidden]{
  display:none !important;
}

.calculation-custom-v1 label{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.calculation-custom-v1 label span{
  font-size:9px;
  color:#718391;
}

.calculation-status-v1{
  margin:8px 0 12px;
  padding:8px 10px;
  border-radius:7px;
  background:#F3F7FA;
  color:#52677A;
  font-size:10px;
}

.calculation-status-v1.warn{
  background:#FFF5E8;
  color:#93640C;
}

.calculation-kpis-v1{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.calculation-kpis-v1 article{
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#FFF;
  border-top:3px solid #2F6FB2;
}

.calculation-kpis-v1 article>span{
  display:block;
  font-size:9px;
  text-transform:uppercase;
  color:#718391;
  letter-spacing:.04em;
}

.calculation-kpis-v1 article>strong{
  display:block;
  margin-top:5px;
  color:#1C2F48;
  font-size:20px;
  font-variant-numeric:tabular-nums;
}

.calculation-kpis-v1 article>small{
  display:block;
  margin-top:3px;
  color:#82909B;
  font-size:9px;
}

.calculation-kpis-v1 .calculation-total-v1{
  border-top-color:#F05223;
}

.calculation-kpis-v1 .calculation-total-v1 strong{
  color:#F05223;
}

.calculation-kpis-v1 .calculation-effective-v1{
  border-top-color:#20A35A;
}

.calculation-breakdown-v1{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
}

.calculation-breakdown-v1 .subsection-head{
  padding:12px 14px 6px;
}

.calculation-breakdown-v1 table{
  width:100%;
  border-collapse:collapse;
}

.calculation-breakdown-v1 th,
.calculation-breakdown-v1 td{
  padding:9px 14px;
  border-top:1px solid #E7EBEE;
}

.calculation-breakdown-v1 th{
  text-align:left;
  color:#52677A;
  font-weight:550;
}

.calculation-breakdown-v1 td{
  text-align:right;
  color:#1C2F48;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}

.calculation-breakdown-v1 tr.total th,
.calculation-breakdown-v1 tr.total td{
  font-size:15px;
  color:#F05223;
  background:#FFF8F4;
}

@media(max-width:1100px){
  .calculation-kpis-v1{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .market-kpi-grid-price-v1{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:680px){
  .calculation-kpis-v1,
  .market-kpi-grid-price-v1{
    grid-template-columns:1fr;
  }

  .calculation-periods-v1{
    width:100%;
  }
}

/* PRICE_MODEL_V1_END */


/* MARKET_COMPACT_TOOLBAR_V6_START */

/*
 * Horní panel Trhu má být nízký a informačně hustý.
 */
.market-toolbar{
  align-items:flex-end !important;
  gap:14px !important;
}

.market-toolbar-panel{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

/*
 * Dnes / Včera / měsíc / rok přímo pod popisem SPOT.
 */
.market-history-inline-v6{
  margin-top:10px;
}

.market-history-inline-v6
.history-preset-group{
  justify-content:flex-start !important;
  gap:5px;
}

.market-history-inline-v6
.history-preset-group > button{
  min-height:28px;
  padding:5px 9px !important;
  font-size:9px;
}

/*
 * Pokud je uvnitř i kalendářní picker,
 * zůstane ve stejné řádce.
 */
.market-history-inline-v6
.history-day-picker{
  min-height:28px;
}

/*
 * Pravé ovládání už nepotřebuje vysoké bloky.
 */
.market-controls-v05110{
  align-items:flex-end !important;
  gap:10px !important;
  flex:0 1 auto !important;
}

.market-control-group-hf3{
  gap:4px !important;
}

.market-control-group-hf3 > span{
  margin-bottom:1px !important;
}

.market-control-note{
  display:none !important;
}

.market-range-switch{
  gap:5px !important;
}

.market-range-switch > button{
  padding:7px 11px !important;
  min-height:34px;
}

.market-control-actions-hf3{
  align-self:flex-end;
}

/*
 * Po přesunu nesmí zůstat rezervované místo
 * pro původní blok Historie.
 */
.market-history-presets{
  display:none !important;
}

/*
 * Méně prostoru pod horním ovládacím panelem.
 */
.market-page > .panel:first-of-type{
  margin-bottom:8px !important;
}

.market-kpi-grid{
  margin-top:8px !important;
}

@media(max-width:1000px){

  .market-toolbar{
    align-items:flex-start !important;
  }

  .market-controls-v05110{
    flex-basis:100%;
  }
}

@media(max-width:680px){

  .market-history-inline-v6
  .history-preset-group{
    width:100%;
  }

  .market-history-inline-v6
  .history-preset-group > button{
    flex:1 1 auto;
  }
}

/* MARKET_COMPACT_TOOLBAR_V6_END */


/* HYBRID_GRAPH_AUTOSCALE_V7_START */

/*
 * Informace "xxxx bodů · společná osa kW"
 * není pro uživatele potřebná.
 */
#hybridPowerStatus{
  display:none !important;
}

/*
 * Po odstranění levého statusu není potřeba
 * držet footer roztažený přes celou šířku.
 */
.hybrid-power-foot-v3{
  justify-content:flex-end !important;
}

/* HYBRID_GRAPH_AUTOSCALE_V7_END */

/* MARKET HYBRID BUTTON VISIBILITY */
.market-series-toggle[hidden]{
    display:none !important;
}



/* CABINET MASTER ACCORDION V2 START */

.cabinet-master-groups-v2{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.cabinet-master-group-v2{
  border:1px solid #DCE4E9;
  border-radius:10px;
  background:#FFFFFF;
  overflow:hidden;
}

.cabinet-master-summary-v2{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(620px,2fr);
  align-items:center;
  gap:18px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
  background:#F8FAFB;
}

.cabinet-master-summary-v2::-webkit-details-marker{
  display:none;
}

.cabinet-master-name-v2{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.cabinet-master-name-v2 strong{
  display:block;
  font-size:17px;
  color:#1C2F48;
}

.cabinet-master-name-v2 small{
  display:block;
  margin-top:3px;
  font-size:10px;
  color:#788895;
}

.cabinet-master-chevron-v2{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  font-size:23px;
  color:#1C2F48;
  transition:transform .15s ease;
}

.cabinet-master-group-v2[open]
.cabinet-master-chevron-v2{
  transform:rotate(90deg);
}

.cabinet-master-kpis-v2{
  display:grid;
  grid-template-columns:repeat(5,minmax(90px,1fr));
  gap:8px;
}

.cabinet-master-kpis-v2 > div{
  min-width:0;
  padding:7px 9px;
  border-left:1px solid #E2E8EC;
}

.cabinet-master-kpis-v2 span{
  display:block;
  margin-bottom:3px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#7B8994;
}

.cabinet-master-kpis-v2 strong{
  display:block;
  font-size:14px;
  color:#1C2F48;
}

.cabinet-master-children-v2{
  padding:14px;
  border-top:1px solid #E2E8EC;
  background:#FFFFFF;
}

.cabinet-master-children-head-v2{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.cabinet-master-children-head-v2 strong{
  font-size:12px;
  color:#1C2F48;
}

.cabinet-master-children-head-v2 span{
  font-size:10px;
  color:#788895;
}

.cabinet-master-group-v2.unassigned{
  border-style:dashed;
}

@media(max-width:1000px){

  .cabinet-master-summary-v2{
    grid-template-columns:1fr;
  }

  .cabinet-master-kpis-v2{
    grid-template-columns:repeat(3,1fr);
  }
}

@media(max-width:620px){

  .cabinet-master-kpis-v2{
    grid-template-columns:repeat(2,1fr);
  }
}

/* CABINET MASTER ACCORDION V2 END */



/* MASTER ACCORDION FINAL V1 */

.master-group-list-v05114{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.master-group-v05114{
  border:1px solid #DCE4E9;
  border-radius:10px;
  background:#FFFFFF;
  overflow:hidden;
}

.master-group-v05114 > summary{
  display:grid;
  grid-template-columns:minmax(250px,1fr) minmax(600px,2fr);
  align-items:center;
  gap:16px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
  background:#F8FAFB;
}

.master-group-v05114 > summary::-webkit-details-marker{
  display:none;
}

.master-summary-title-v05114{
  display:flex;
  align-items:center;
  gap:10px;
}

.master-summary-title-v05114 strong{
  display:block;
  font-size:17px;
  color:#1C2F48;
}

.master-summary-title-v05114 small{
  display:block;
  margin-top:3px;
  color:#778794;
  font-size:10px;
}

.master-chevron-v05114{
  display:inline-block;
  font-size:22px;
  transition:transform .15s ease;
}

.master-group-v05114[open] .master-chevron-v05114{
  transform:rotate(90deg);
}

.master-summary-kpis-v05114{
  display:grid;
  grid-template-columns:repeat(5,minmax(90px,1fr));
  gap:6px;
}

.master-summary-kpis-v05114 span{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding-left:10px;
  border-left:1px solid #DFE6EA;
  font-size:9px;
  color:#778794;
}

.master-summary-kpis-v05114 b{
  font-size:14px;
  color:#1C2F48;
}

.master-cabinets-v05114{
  padding:14px;
  border-top:1px solid #E2E8EC;
}

@media(max-width:1000px){
  .master-group-v05114 > summary{
    grid-template-columns:1fr;
  }

  .master-summary-kpis-v05114{
    grid-template-columns:repeat(3,1fr);
  }
}



/* MASTER_FLEET_V3_START */

.master-fleet-groups-v3{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.master-fleet-group-v3{
    display:block;
    width:100%;
    border:1px solid #DCE4E9;
    border-radius:9px;
    background:#FFFFFF;
    overflow:hidden;
}

.master-fleet-summary-v3{
    display:grid;
    grid-template-columns:minmax(250px,.8fr) minmax(600px,1.7fr);
    align-items:center;
    gap:16px;
    padding:12px 14px;
    cursor:pointer;
    list-style:none;
    background:#F7F9FA;
}

.master-fleet-summary-v3::-webkit-details-marker{
    display:none;
}

.master-fleet-title-v3{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.master-fleet-title-v3 strong{
    display:block;
    color:#1C2F48;
    font-size:17px;
    line-height:1.2;
}

.master-fleet-title-v3 small{
    display:block;
    margin-top:3px;
    color:#778794;
    font-size:10px;
}

.master-fleet-arrow-v3{
    display:flex;
    align-items:center;
    justify-content:center;
    width:22px;
    font-size:23px;
    color:#1C2F48;
    transition:transform .15s ease;
}

.master-fleet-group-v3[open] .master-fleet-arrow-v3{
    transform:rotate(90deg);
}

.master-fleet-kpis-v3{
    display:grid;
    grid-template-columns:repeat(5,minmax(90px,1fr));
    gap:5px;
}

.master-fleet-kpis-v3 > div{
    min-width:0;
    padding:6px 9px;
    border-left:1px solid #E1E7EB;
}

.master-fleet-kpis-v3 span{
    display:block;
    color:#778794;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.master-fleet-kpis-v3 strong{
    display:block;
    margin-top:3px;
    color:#1C2F48;
    font-size:14px;
    white-space:nowrap;
}

.master-fleet-content-v3{
    padding:10px;
    border-top:1px solid #E1E7EB;
    background:#FFFFFF;
}

.master-fleet-content-head-v3{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:2px 3px 9px;
}

.master-fleet-content-head-v3 strong{
    color:#1C2F48;
    font-size:11px;
}

.master-fleet-content-head-v3 span{
    color:#778794;
    font-size:10px;
}

.master-fleet-children-v3{
    margin:0;
}

.master-fleet-group-v3.unassigned{
    border-style:dashed;
}

@media(max-width:1100px){

    .master-fleet-summary-v3{
        grid-template-columns:1fr;
    }

    .master-fleet-kpis-v3{
        grid-template-columns:repeat(3,1fr);
    }
}

@media(max-width:650px){

    .master-fleet-kpis-v3{
        grid-template-columns:repeat(2,1fr);
    }
}

/* MASTER_FLEET_V3_END */


.analysis-export-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
@media(max-width:760px){
  .analysis-export-actions{
    justify-content:flex-start;
    width:100%;
  }
}


/* BESS_LAYOUT_FINAL_V5_START */

/* Battery-only dashboard:
   BESS wider, System status narrower */
#projectLiveKpis.kpi-strip-six {
    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr)
        minmax(0,1.28fr)
        minmax(0,1fr)
        minmax(0,1fr)
        minmax(0,.72fr) !important;
}

/* BESS split */
#projectLiveKpis .kpi-bess.kpi-bess-split {
    grid-template-columns:
        minmax(0,58fr)
        minmax(0,42fr) !important;
}

/* Real BESS value */
#projectLiveKpis .kpi-bess-main #kpiBess {
    white-space:nowrap !important;
}

#projectLiveKpis .kpi-bess-main #kpiBess small {
    font-size:10px !important;
    font-weight:600 !important;
}

/* Demand */
#projectLiveKpis .kpi-bess-demand #kpiDemand {
    font-size:20px !important;
    line-height:1.05 !important;
    letter-spacing:-0.025em !important;
    white-space:nowrap !important;
}

#projectLiveKpis .kpi-bess-demand #kpiDemand small {
    font-size:10px !important;
    font-weight:500 !important;
}

/* Compact system card */
#projectLiveKpis > .kpi-system {
    padding-left:9px !important;
    padding-right:9px !important;
    min-width:0;
}

@media(max-width:1200px) {
    #projectLiveKpis.kpi-strip-six {
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:760px) {
    #projectLiveKpis.kpi-strip-six {
        grid-template-columns:1fr 1fr !important;
    }
}

@media(max-width:480px) {
    #projectLiveKpis.kpi-strip-six {
        grid-template-columns:1fr !important;
    }
}

/* BESS_LAYOUT_FINAL_V5_END */


/* VISION_ALARM_ADMIN_V2 */
.alarm-admin-v2 .alarm-admin-head p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
}

.alarm-info-note{
  margin-bottom:14px;
}

.alarm-info-note span{
  display:block;
  margin-top:3px;
}

.alarm-builder{
  margin-top:14px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#FAFBFC;
}

.alarm-builder-title,
.alarm-existing-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}

.alarm-builder-title div,
.alarm-existing-head div{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.alarm-builder-title strong,
.alarm-existing-head strong{
  font-size:14px;
  color:var(--blue);
}

.alarm-builder-title span,
.alarm-existing-head span{
  font-size:10px;
  color:var(--muted);
}

.alarm-rule-form{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:12px;
  align-items:start;
}

.alarm-field{
  grid-column:span 3;
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

.alarm-field-name{
  grid-column:span 4;
}

.alarm-field-metric{
  grid-column:span 8;
}

.alarm-field-operator{
  grid-column:span 3;
}

.alarm-field-threshold{
  grid-column:span 3;
}

.alarm-field > span{
  font-size:10px;
  font-weight:700;
  color:var(--blue);
}

.alarm-field > span b{
  font-weight:500;
  color:var(--muted);
}

.alarm-field small{
  font-size:9px;
  line-height:1.3;
  color:var(--muted);
}

.alarm-field input,
.alarm-field select{
  width:100%;
  min-height:42px;
}

.alarm-rule-preview{
  grid-column:span 9;
  min-height:48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  padding:8px 12px;
  border:1px solid rgba(28,47,72,.10);
  border-radius:9px;
  background:#fff;
}

.alarm-rule-preview span{
  font-size:8px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--muted);
}

.alarm-rule-preview strong{
  font-size:12px;
  color:var(--blue);
}

.alarm-submit{
  grid-column:span 3;
  display:flex;
  justify-content:flex-end;
  align-items:stretch;
}

.alarm-submit .btn{
  width:100%;
  min-height:48px;
}

.alarm-existing{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.alarm-rule-meta{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:9px;
}

.alarm-rules-table td{
  vertical-align:middle;
}

.alarm-rules-table code{
  font-size:9px;
}

@media(max-width:900px){
  .alarm-field,
  .alarm-field-name,
  .alarm-field-metric,
  .alarm-field-operator,
  .alarm-field-threshold{
    grid-column:span 6;
  }

  .alarm-rule-preview,
  .alarm-submit{
    grid-column:span 12;
  }
}

@media(max-width:620px){
  .alarm-field,
  .alarm-field-name,
  .alarm-field-metric,
  .alarm-field-operator,
  .alarm-field-threshold{
    grid-column:span 12;
  }

  .alarm-builder{
    padding:13px;
  }
}


/* VISION_PIXII_BATTERY_DIAGNOSTICS_V1_20261007 */
.battery-diagnostic-v1{margin:8px 0 2px;padding:7px 9px;border:1px solid rgba(192,57,43,.32);border-radius:7px;background:rgba(192,57,43,.06);display:flex;flex-direction:column;gap:2px}
.battery-diagnostic-v1 strong{font-size:11px;line-height:1.25;color:#9d2f25;letter-spacing:.01em}
.battery-diagnostic-v1 span{font-size:10px;line-height:1.25;color:#6b7280}
.battery-module-hf3.alarm{outline:2px solid rgba(192,57,43,.18);outline-offset:1px}
