/* Custom figma color code */

.custom-color-black {
    color: #1F3D4E !important
}

.custom-color-primary {
    color: #90ABB5 !important
}

.custom-color-warning {
    color: #FBAF16 !important
}

.custom-color-danger {
    color: #FF7E27 !important
}

.custom-color-success {
    color: #D84B2B !important
}

.custom-color-unit {
    color: #AAC760 !important
}

.machine-off-text-color {
    color: #788085 !important;
}

.bg-color-black {
    background: #1F3D4E !important
}

.bg-color-primary {
    background: #4180FF !important
}

.bg-color-warning {
    background: #FBAF16 !important
}

.bg-color-danger {
    background: #FF7144 !important
}

.bg-color-success {
    background: #FF2966 !important
}

.bg-color-unit {
    background: #45BF55 !important
}

.bg-color-default {
    background: #F0F0F1 !important
}

.margin-left-10 {
    margin-left: 10px;
}

.margin-right-10 {
    margin-right: 10px;
}

.img-64 {
    width: 64px !important;
    height: 64px !important;
}


/* Custom figma color code End */

.error {
    color: #f82649 !important;
}

.label-margin {
    margin-bottom: 0 !important;
}

.form-group-register {
    margin-bottom: 0;
}

.wrap-login100-register {
    width: 700px;
}

@media (max-width: 992px) {
    .wrap-login100-register {
        width: unset;
    }
}

@media (max-width: 768px) {
    .wrap-login100-register {
        width: unset;
    }
    .form-group-register {
        margin-bottom: 1rem;
    }
}

@media (max-width: 576px) {
    .wrap-login100-register {
        width: unset;
    }
    .form-group-register {
        margin-bottom: 1rem;
    }
}

.card-border-radius {
    border-radius: 12px;
}

.card-border {
    border: 1px solid #eaedf1 !important;
    vertical-align: top;
}

.custom-border-left {
    border-left: 1px solid #f5f3f9;
}

.card-title-overview-page {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    color: #1F3D4E;
    font-size: 24px;
    line-height: 1.1;
    margin-bottom: 0
}

.modal-number {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 900;
    font-size: 18px;
    line-height: 22px;
    /* identical to box height */
    letter-spacing: 0.04em;
    color: #1F3D4E;
}

.kw-number-1 {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 22px;
    /* identical to box height */
    letter-spacing: 0.04em;
    color: #1F3D4E;
}

.kw-number-2 {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 22px;
    /* identical to box height */
    letter-spacing: 0.04em;
    color: #788085;
}

.card-kw-number-1 {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 22px;
    /* identical to box height */
    letter-spacing: 0;
    color: #1F3D4E;
}

.card-kw-number-2 {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 500;
    font-size: 18px;
    line-height: 22px;
    /* identical to box height */
    letter-spacing: 0.04em;
    color: #788085;
}

.card-border-black {
    border: 1px solid #1F3D4E !important;
    vertical-align: top;
}

.card-border-warning {
    border: 1px solid #FBAF16 !important;
    vertical-align: top;
}

.card-border-primary {
    border: 1px solid #90ABB5 !important;
    vertical-align: top;
}

.card-border-generater {
    border: 1px solid #90ABB5 !important;
}

.custom-color-generator {
    color: #90ABB5
}

.card-border-danger {
    border: 1px solid #FF7E27 !important;
    vertical-align: top;
}

.card-border-solar {
    border: 1px solid #FF7E27 !important;
}

.custom-color-solar {
    color: #FF7E27
}

.card-border-success {
    border: 1px solid #D84B2B !important;
    vertical-align: top;
}

.card-border-load {
    border: 1px solid #D84B2B !important;
}

.custom-color-load {
    color: #D84B2B
}

.card-border-unit {
    border: 1px solid #AAC760 !important;
    vertical-align: top;
}

.card-border-unitcard {
    border: 1px solid #AAC760 !important;
}

.custom-color-unitcard {
    color: #AAC760
}

.fontw-5 {
    font-weight: 500 !important
}

.fontw-7 {
    font-weight: 700 !important
}

.fontw-9 {
    font-weight: 900 !important
}


/* View Device Details page */

.device-card-height {
    min-height: 120px;
}


/* ── Active-card “pretty” state (Device/Battery details) ───────────────── */

.card-active {
    position: relative;
    overflow: hidden;
    background-color: #fff !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08), 0 2px 8px rgba(15, 23, 42, 0.06) !important;
    transform: translateY(-1px);
    transition: box-shadow 160ms ease, transform 160ms ease, background-color 160ms ease;
}

.card-active::before {
    content: "";
    position: absolute;
    inset: 0;
    /* White base + soft tinted gradient to show "active" */
    /* background: radial-gradient(120% 90% at 18% 12%, rgba(var(--card-tint-rgb, 170, 199, 96), 0.32) 0%, rgba(255, 255, 255, 0.0) 58%), linear-gradient(135deg, rgba(var(--card-tint-rgb, 170, 199, 96), 0.18) 0%, rgba(255, 255, 255, 0.0) 55%); */
    pointer-events: none;
    z-index: 0;
}


/* keep content above the tint */

.card-active>* {
    position: relative;
    z-index: 1;
}


/* 
.card-active.card-accent-gen {
    --card-tint-rgb: 31, 61, 78;
}

.card-active.card-accent-grid {
    --card-tint-rgb: 13, 202, 240;
}

.card-active.card-accent-ac {
    --card-tint-rgb: 251, 175, 22;
}

.card-active.card-accent-dc {
    --card-tint-rgb: 220, 53, 69;
}

.card-active.card-accent-load {

    --card-tint-rgb: 25, 135, 84;
} */


/* Load card border should match the load stroke colour only when active */

.ecm-flow-overlay-wrap .load-card.card-active {
    border-color: #198754 !important;
}


/* In OFF/grey mode, keep normal border */

.ecm-flow-overlay-wrap .load-card.machine-off {
    border-color: #eaedf1 !important;
}


/* .card-active.card-accent-unit {
    --card-tint-rgb: 170, 199, 96;
} */

.device-serial-number {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700 !important;
    font-size: 22px;
    /* line-height: 0px; */
    letter-spacing: 0.06em;
    color: #1F3D4E;
}

.device-serial-label {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 600 !important;
    font-size: 14px;
    line-height: 0px;
    letter-spacing: 0.02em;
    color: #788085;
}

.device-inverter-temp-card {
    background-color: #1F3D4E !important;
    border-radius: 12px;
}

.device-battery-temp-card {
    background-color: #AAC760 !important;
    border-radius: 12px;
}

.device-ambient-temp-card {
    background-color: #90ABB5 !important;
    border-radius: 12px;
}

.device-celcius {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 22px;
    line-height: 0px;
    letter-spacing: 0.02em;
    color: #FFFFFF;
}

.device-celcius-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 0px;
    letter-spacing: 0.02em;
    color: #FFFFFF;
}

.device-card-title {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 1.3rem;
    color: #788085;
    margin-bottom: 0;
    letter-spacing: 0.02em;
}

.charging-btn {
    background: #DCFFE1;
    border-radius: 40px;
    width: 125px;
    height: 32px;
    margin-left: 10px;
}

.charging-btn-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 600;
    font-size: 14px;
    line-height: 18px;
    text-align: center;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #45BF55;
}

.power-btn {
    background: #DCFFE1;
    border-radius: 40px;
    width: 105px;
    height: 30px;
    margin-left: 0px;
}

.power-btn-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 600;
    font-size: 12px;
    line-height: 17px;
    text-align: center;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: #45BF55;
}

.frequency-icon {
    position: absolute;
    left: 19px;
    top: 8px;
}

.voltage-icon {
    position: absolute;
    left: 19px;
    top: 8px;
}

.frequency-main-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 19px;
    letter-spacing: 0.02em;
    color: #788085;
}

.frequency-child-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 22px;
    letter-spacing: 0.02em;
    color: #1F3D4E;
}

.edit-icon-btn {
    width: 3rem;
    height: 3rem;
    line-height: 3rem;
    text-align: center;
    font-size: 24px;
    background: linear-gradient(to bottom right, #3498db 0%, #6942b4 100%) !important;
    border-radius: 5px;
}

.img-grid-line {
    /* transform: translate(415px, -53px); */
    transform: translate(50%, 50%);
    position: absolute;
    left: 132%;
    height: 57px;
    top: -59%;
}

.img-generator-line {
    /* transform: translate(28px, -56px); */
    transform: translate(50%, 50%);
    top: -128px;
    left: 0;
}

.img-acsolar-line {
    /* transform: translate(4px, -56px); */
    transform: translate(50%, 50%);
    top: -90%;
    left: 118%;
}

.img-unit-line {
    left: 0%;
    top: -76%;
    transform: translate(50%, 50%);
    /* transform: translate(-100px, 144px); */
}

.img-dcsolar-line {
    /* transform: translate(100px, 140px); */
    transform: translate(50%, 50%);
    top: 33%;
    left: -195%;
}

.selection-scroll {
    max-height: 325px;
    overflow: auto;
}

.icons-list-item-overview-page {
    height: 2.4rem !important;
    margin: 0;
}

.device-btn-width {
    width: 210px;
    border-radius: 12px;
    height: 50px;
}

.device-btn-icon {
    margin-right: 5px;
    margin-bottom: 5px;
    width: 22px;
    height: 22px;
}

.device-btn-text {
    position: inherit;
    /* padding-top: 9px; */
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 1px;
    line-height: 35px;
    text-align: left;
    padding-left: 25px;
}

.battry-card-voltage {
    background-color: #1F3D4E !important;
    border-radius: 12px;
}

.battry-card-current {
    background-color: #90ABB5 !important;
    border-radius: 12px;
}

.battry-card-power {
    background-color: #4E1F4A !important;
    border-radius: 12px;
}

.battry-card-state-of-charge {
    background-color: #AAC760 !important;
    border-radius: 12px;
}

.battry-card-text-header {
    font-style: normal;
    font-weight: 700;
    font-size: 26px;
    line-height: 22px;
}

.battry-card-text {
    font-style: normal;
    font-weight: 700;
    font-size: 20px;
    line-height: 22px;
    color: #788085;
}

.battry-card-height {
    min-height: 300px;
    transform: translate(0%, -48%);
    z-index: 1;
}

.last-row-card {
    transform: translate(0%, -145%);
}

.battry-icon-img {
    transform: translate(50%, 80%);
    position: absolute;
    left: 25%;
}

.battry-icon-text {
    transform: translate(0%, 55px);
}

.good-icon {
    transform: translate(75%, 18px);
}


/* .card-z-index{
    /* z-index: 9999;
} */

.get-to-battry-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    right: 0%;
    top: -40%;
    height: 14%;
}

.battry-to-load-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    right: -90%;
    top: -40%;
    height: 14%;
}

.acdc-to-battery-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    right: 180%;
    top: -12%;
    height: 50%;
}

.grid-to-battery-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    right: 94%;
    top: -12%;
    height: 50%;
}

.battery-voltage-text {
    /* font-family: 'Roboto sans-serif'; */
    font-style: normal;
    font-weight: 700;
    font-size: 22px;
    line-height: 0px;
    letter-spacing: 0.02em;
    color: #FFFFFF;
}

.battery-voltage-text-child {
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 0px;
    letter-spacing: 0.02em;
    color: #FFFFFF;
}

.machine-off {
    background: #F0F0F1 !important;
    border: 1px solid #F0F0F1 !important;
}

.db-grid-and-load-row-card {
    transform: translate(0%, -200%);
}

.db-dcsolar-row-card {
    transform: translate(0%, -180%);
    margin-bottom: -250px;
}

.bty-last-row-card {
    transform: translate(0%, -105%);
}

.bty-health-row-card {
    transform: translate(10px, -120px);
    margin-bottom: 0px !important;
}

.bty-health-good-icon {
    transform: translate(40%, 4px);
}

.bty-card-height {
    min-height: 300px;
    transform: translate(0%, -48%);
}

.bty-icon-img {
    transform: translate(-58%, 70%);
    position: absolute;
    left: 25%;
    height: 65px;
}

.bty-health-icon-text {
    font-style: normal;
    font-weight: 700;
    font-size: 20px;
    line-height: 22px;
    color: #788085;
    transform: translate(33%, 48px);
}

.bty-health-good-icon {
    transform: translate(50%, 50%);
    height: 30px;
    position: absolute;
    top: 90%;
    /* left: -25%; */
    left: -22%;
}

.bty-card-text-header {
    font-style: normal;
    font-weight: 700;
    font-size: 26px;
    line-height: 22px;
}

.bty-card-text {
    font-style: normal;
    font-weight: 700;
    font-size: 20px;
    line-height: 22px;
    color: #788085;
}

.db-img-generator-line {
    transform: translate(50%, 50%);
    position: absolute;
    top: -195px;
    left: -70px;
    height: auto;
}

.db-img-acsolar-line {
    transform: translate(50%, 50%);
    position: absolute;
    top: -195px;
    left: 340px;
    height: auto;
}

.db-img-grid-line {
    transform: translate(50%, 50%);
    position: absolute;
    left: -75px;
    top: -15px;
    height: auto;
}

.db-img-unit-line {
    width: 100%;
}

.db-img-unit-line {
    transform: translate(50%, 50%);
    position: absolute;
    /* left: 75px;
    top: -52px; */
    height: auto;
}

.db-img-dcsolar-line {
    transform: translate(50%, 50%);
    position: absolute;
    top: 34%;
    left: -70%;
    width: 50px;
}

.bty-helth-card-row {
    position: absolute;
    margin-top: -35px;
    margin-bottom: 30px;
}

.bty-get-to-battry-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    bottom: 125%;
    left: -25%;
}

.bty-solar-to-battery-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    bottom: 125%;
    left: -95%;
}

.bty-battry-to-load-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    left: 125%;
    top: 8px;
}

.bty-load-to-battry-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    left: -210px;
    top: -18px;
}

.bty-grid-to-battery-line-img {
    transform: translate(50%, 50%);
    position: absolute;
    right: 80px;
    top: -18px;
}

.bg-verified {
    background: #FFCE00
}

.bg-unverified {
    background: #D84B2B
}

.bg-connected {
    background: #AAC760
}

.bg-chart-powerbank {
    background: #AAC760
}

.bg-chart-generator {
    background: #1F3D4E
}

.bg-chart-acsolar {
    background: #0F203D
}

.bg-chart-dcsolar {
    background: #90ABB5
}

.bg-status-off {
    background: #D84B2B
}

.bg-status-no {
    background: #D84B2B
}

.bg-status-charging {
    background: #AAC760
}

.bg-status-verified {
    background: #AAC760
}

.bg-status-yes {
    background: #AAC760
}

.bg-add-btn {
    color: #FFFFFF;
    background: #AAC760 !important;
}


/*----------------------- Start Media Query ------------------------------- */

@media (min-width: 320px) and (max-width: 766px) {
    .mrb-sm-1 {
        margin-bottom: 5px;
    }
    .mrt-sm-1 {
        margin-top: 5px;
    }
    .mrb-sm-2 {
        margin-bottom: 10px;
    }
    .mrt-sm-2 {
        margin-top: 10px;
    }
    .img-grid-line {
        display: none;
    }
    .img-generator-line {
        display: none;
    }
    .img-acsolar-line {
        display: none;
    }
    .img-unit-line {
        display: none;
    }
    .img-dcsolar-line {
        display: none;
    }
    .db-img-grid-line {
        display: none;
    }
    .db-img-generator-line {
        display: none;
    }
    .db-img-acsolar-line {
        display: none;
    }
    .db-img-unit-line {
        display: none;
    }
    .db-img-dcsolar-line {
        display: none;
    }
    /* Battry Section */
    .bty-get-to-battry-line-img {
        display: none;
    }
    .bty-battry-to-load-line-img {
        display: none;
    }
    .bty-load-to-battry-line-img {
        display: none;
    }
    .bty-solar-to-battery-line-img {
        display: none;
    }
    .bty-grid-to-battery-line-img {
        display: none;
    }
    .bty-battery-to-grid-line-img {
        display: none;
    }
    .device-btn-text {
        margin-bottom: 10px;
    }
    .get-to-battry-line-img {
        display: none;
    }
    .battry-to-load-line-img {
        display: none;
    }
    .acdc-to-battery-line-img {
        display: none;
    }
    .grid-to-battery-line-img {
        display: none;
    }
    .last-row-card {
        transform: translate(0%, 0%) !important;
        margin-bottom: unset !important;
    }
    .card-z-index {
        z-index: 0 !important;
        ;
    }
    .helth-card-row {
        margin-top: -35px;
        margin-bottom: 30px;
        ;
    }
    .battry-card-height {
        transform: translate(0%, 0%) !important;
    }
    .db-grid-and-load-row-card {
        transform: translate(0%, 0%) !important;
    }
    .db-dcsolar-row-card {
        transform: translate(0%, -0%) !important;
        margin-bottom: 0px !important;
    }
    .bty-last-row-card {
        transform: translate(0%, 0%) !important;
    }
    .bty-health-row-card {
        transform: translate(-25px, 0px) !important;
        margin-bottom: 0px !important;
    }
    .bty-card-height {
        transform: translate(0%, 0%) !important;
    }
    .bty-icon-img {
        transform: translate(-50%, 80%) !important;
        height: 60px !important;
    }
    .bty-health-icon-text {
        transform: translate(40%, 52px) !important;
    }
    .bty-health-good-icon {
        position: fixed;
        top: 32px;
        left: -60;
    }
    .bty-helth-card-row {
        position: unset !important;
        margin-bottom: 50px !important;
    }
    .db-img-grid-line {
        transform: translate(50%, 50%);
        position: absolute;
        left: -25%;
        top: -4% !important;
        height: auto;
    }
}

@media (min-width: 420px) and (max-width: 767px) {
    .bty-health-good-icon {
        left: -33% !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .card-kw-number-1 {
        font-size: 16px;
        line-height: 20px;
    }
    .card-kw-number-2 {
        font-size: 14px;
        line-height: 20px;
    }
    .device-celcius-text {
        font-size: 10px;
    }
    .img-generator-line {
        transform: translate(50%, 50%);
        top: -127px;
        left: 14px;
    }
    .img-acsolar-line {
        transform: translate(50%, 50%);
        top: -89%;
        left: 118%;
    }
    .img-grid-line {
        transform: translate(50%, 50%);
        position: absolute;
        left: 125%;
        height: 57px;
        top: -59%;
    }
    .img-dcsolar-line {
        transform: translate(50%, 50%);
        top: 33%;
        left: -183%;
    }
    .img-unit-line {
        transform: translate(50%, 50%);
        top: -76%;
        left: 5%;
    }
    .battry-icon-img {
        transform: translate(50%, 125%) !important;
        position: absolute;
        left: 25%;
    }
    .bty-icon-img {
        position: absolute;
        left: 24%;
        height: 50px;
    }
    .battery-voltage-text {
        line-height: unset !important;
    }
    .battery-voltage-text-child {
        line-height: unset !important;
    }
    .bty-health-icon-text {
        transform: translate(30%, 34px);
        font-size: 16px;
    }
    .bty-card-text-header {
        font-size: 20px;
    }
    .bty-health-good-icon {
        transform: translate(50%, 50%) !important;
        top: 78%;
        left: -22%;
        height: 25px;
        position: absolute;
    }
    .bty-grid-to-battery-line-img {
        right: 10px !important;
        top: 10px !important;
    }
    .bty-load-to-battry-line-img {
        left: -200px !important;
        top: 10px !important;
    }
    .db-img-acsolar-line {
        left: 250px !important;
    }
    .db-img-dcsolar-line {
        left: -60% !important;
    }
    .db-img-grid-line {
        top: 3% !important;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .card-kw-number-1 {
        font-size: 16px;
        line-height: 20px;
    }
    .card-kw-number-2 {
        font-size: 14px;
        line-height: 20px;
    }
    .device-celcius-text {
        font-size: 10px;
    }
    .img-generator-line {
        transform: translate(50%, 50%);
        top: -128px;
        left: 15px;
    }
    .img-acsolar-line {
        transform: translate(50%, 50%);
        top: -89%;
        left: 119%;
    }
    .img-grid-line {
        transform: translate(50%, 50%);
        position: absolute;
        left: 125%;
        height: 57px;
        top: -59%;
    }
    .img-dcsolar-line {
        transform: translate(50%, 50%);
        top: 33%;
    }
    .img-unit-line {
        transform: translate(50%, 50%);
        left: 5%;
        top: -76%;
    }
    .battery-voltage-text {
        line-height: unset !important;
    }
    .battery-voltage-text-child {
        line-height: unset !important;
    }
    .battry-icon-img {
        position: absolute;
        left: 24%;
        height: 50px;
        top: 15px;
    }
    .bty-icon-img {
        position: absolute;
        left: 24%;
        height: 50px;
        top: 15px;
    }
    .bty-health-icon-text {
        font-size: 16px !important;
    }
    .bty-health-good-icon {
        transform: translate(50%, 50%) !important;
        height: 25px !important;
        position: absolute;
        top: 97% !important;
        left: -21% !important;
    }
    .bty-grid-to-battery-line-img {
        top: 35px !important;
    }
    .bty-load-to-battry-line-img {
        top: 35px !important;
    }
    .db-img-acsolar-line {
        left: 240px !important;
    }
    .db-img-dcsolar-line {
        left: -60% !important;
    }
    .db-img-grid-line {
        top: 4% !important;
    }
}

@media (min-width: 1200px) and (max-width: 1360px) {
    .bty-grid-to-battery-line-img {
        top: 0px !important;
    }
    .bty-load-to-battry-line-img {
        top: 0px !important;
    }
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .list-acsolar-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-grid-img {
        min-width: 70px;
        margin-top: -8px;
    }
}

@media (min-width: 1361px) and (max-width: 1439px) {
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 18px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 18px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .list-acsolar-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-grid-img {
        min-width: 70px;
        margin-top: -8px;
    }
    .list-dcsolar-img {
        min-width: 75px;
        margin-top: -8px;
    }
    .list-generator-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-unit-img {
        min-width: 80px;
        margin-top: 5px;
    }
    .list-view-details-img {
        min-width: 80px;
        margin-top: 8px;
    }
}

@media (min-width: 1440px) and (max-width: 1516px) {
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .list-acsolar-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-grid-img {
        min-width: 70px;
        margin-top: -8px;
    }
    .list-dcsolar-img {
        min-width: 75px;
        margin-top: -8px;
    }
    .list-generator-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-unit-img {
        min-width: 80px;
        margin-top: 5px;
    }
    .list-view-details-img {
        min-width: 80px;
        margin-top: 8px;
    }
}

@media (min-width: 1517px) and (max-width: 1600px) {
    .db-img-grid-line {
        top: -25px !important;
    }
    .db-img-generator-line {
        top: -208px !important;
        left: -50px !important;
    }
    .db-img-acsolar-line {
        top: -208px !important;
        left: 445px !important;
    }
    .bty-load-to-battry-line-img {
        top: -30px !important;
    }
    .bty-grid-to-battery-line-img {
        top: -30px !important;
    }
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .list-acsolar-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-grid-img {
        min-width: 70px;
        margin-top: -8px;
    }
    .list-dcsolar-img {
        min-width: 75px;
        margin-top: -8px;
    }
    .list-generator-img {
        min-width: 80px;
        margin-top: -8px;
    }
    .list-unit-img {
        min-width: 80px;
        margin-top: 5px;
    }
    .list-view-details-img {
        min-width: 80px;
        margin-top: 8px;
    }
}

@media (min-width: 1700px) and (max-width: 1800px) {
    .db-img-grid-line {
        top: -45px !important;
    }
    .db-img-generator-line {
        top: -224px !important;
        left: -50px !important;
    }
    .db-img-acsolar-line {
        top: -225px !important;
        left: 510px !important;
    }
    .bty-load-to-battry-line-img {
        top: -40px !important;
    }
    .bty-grid-to-battery-line-img {
        top: -40px !important;
    }
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 20px;
        line-height: 26px;
    }
    .card-kw-number-2 {
        font-size: 20px;
        line-height: 26px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
}

@media (min-width: 1801px) and (max-width: 1920px) {
    .db-img-grid-line {
        top: -50px !important;
    }
    .db-img-generator-line {
        top: -235px !important;
        left: -75px !important;
    }
    .db-img-acsolar-line {
        top: -235px !important;
        left: 520px !important;
    }
    .bty-load-to-battry-line-img {
        left: -280px !important;
        top: -48px !important;
    }
    .bty-grid-to-battery-line-img {
        top: -48px !important;
    }
    .generator-img-off {
        min-width: 90px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 20px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 70px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 70px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 80px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 20px;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
}

@media (min-width: 1921px) and (max-width: 2160px) {
    .db-img-grid-line {
        top: -50px !important;
    }
    .db-img-generator-line {
        top: -230px !important;
        left: -75px !important;
    }
    .db-img-acsolar-line {
        top: -230px !important;
        left: 610px !important;
    }
    .bty-load-to-battry-line-img {
        right: 80px !important;
        top: -48px !important;
        left: -270px !important;
    }
    .bty-grid-to-battery-line-img {
        top: -48px !important;
    }
    .generator-img-off {
        min-width: 100px;
        margin-top: -18px;
    }
    .generator-img-on {
        min-width: 100px;
        margin-top: -18px;
    }
    .card-kw-number-1 {
        font-size: 26px;
        line-height: 26px;
        margin-left: 10px;
    }
    .card-kw-number-2 {
        font-size: 26px;
        line-height: 26px;
        margin-left: 10px;
    }
    .grid-img-off {
        min-width: 80px;
        margin-top: -18px;
    }
    .grid-img-on {
        min-width: 80px;
        margin-top: -18px;
    }
    .unit-img-off {
        min-width: 100px;
    }
    .unit-card .card-kw-number-1,
    .unit-card .card-kw-number-2 {
        font-size: 26px;
    }
    .dcsolar-img-off,
    dcsolar-img-on {
        min-width: 100px;
        margin-top: -3px;
    }
    .acsolar-img-off,
    acsolar-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .load-img-off,
    load-img-on {
        min-width: 80px;
        margin-top: -7px;
    }
    .frequency-img-on,
    .frequency-img-off {
        min-width: 60px !important;
        margin-top: -10px !important;
    }
    .frequency-main-text,
    .frequency-child-text {
        font-size: 24px;
        margin-top: -6px;
        line-height: unset;
    }
    .voltage-img-on,
    .voltage-img-off {
        min-width: 60px;
        margin-top: -10px;
    }
    .acdc-img-off,
    acdc-img-on {
        min-width: 90px;
        margin-top: -18px;
    }
    .bty-health-icon-text {
        font-size: 26px;
    }
    .bty-card-text {
        font-size: 26px;
    }
}

@media (min-width: 2700px) and (max-width: 2750px) {
    .db-img-grid-line {
        left: 55px !important;
        top: -54px !important;
        height: auto !important;
    }
    .db-img-generator-line {
        top: -315px !important;
        left: -130px !important;
    }
    .bty-get-to-battry-line-img {
        bottom: 125% !important;
        left: 70px !important;
    }
    .bty-solar-to-battery-line-img {
        left: -240px !important;
    }
    .bty-load-to-battry-line-img {
        right: 155px !important;
        top: -50px !important;
    }
    .bty-grid-to-battery-line-img {
        left: 65px !important;
        top: -50px !important;
    }
}

@media (min-width: 4098px) and (max-width: 5050px) {
    .db-img-grid-line {
        left: 10% !important;
        top: -40% !important;
        height: 70% !important;
    }
}

.db-img-unit-line {
    width: 100% !important;
    left: 0 !important;
    top: -3.5em !important;
    right: -25% !important;
}

.db-img-unit-line-div {
    display: flex;
    align-content: center;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
}

.db-img-unit-line-div-grid {
    display: flex;
    flex-direction: row;
    align-content: flex-start;
    align-items: flex-start;
    justify-content: space-between;
}

.db-img-generator-line {
    height: auto !important;
    top: -12rem !important;
    left: 0px !important;
    right: -25% !important;
    width: 100% !important;
}

.db-img-unit-line {
    width: 100% !important;
    left: 0 !important;
    top: -3.5em !important;
    right: -25% !important;
}

.db-img-unit-line-div {
    display: flex;
    align-content: center;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
}

.db-img-unit-line-div-grid {
    display: flex;
    flex-direction: row;
    align-content: flex-start;
    align-items: flex-start;
    justify-content: space-between;
}

.db-img-generator-line {
    height: fit-content !important;
    top: -10rem !important;
    left: 0px !important;
    right: -25% !important;
    width: 100% !important;
}

.middel-unit-range {
    margin-top: 2.5rem;
}

@media screen and (min-width: 1600px) {
    .db-img-generator-line {
        top: -11.5rem !important;
    }
}

@media (min-width: 1279.98px) and (max-width: 1328px) {
    .db-img-generator-line {
        top: -11.5rem !important;
    }
}

@media (min-width: 65.375em) and (max-width: 1199px) {
    .db-img-generator-line {
        top: -10rem !important;
    }
}

@media (min-width: 768px) and (max-width: 988px) {
    .db-img-generator-line {
        top: -11rem !important;
    }
}

@media (min-width: 5120px) {
    .db-img-generator-line {
        top: -35em !important;
        height: fit-content !important;
    }
}


/* @media (min-width: 767px) and (max-width: 988px) {    .db-img-generator-line {top: -10rem !important; }  } */

@media screen and (min-width: 992px) and (max-width:1025px) {
    .db-img-generator-line {
        top: -9.5rem !important;
    }
}

@media screen and (min-width: 1135px) and (max-width:1170px) {
    .db-img-generator-line {
        top: -10.5rem !important;
    }
}

@media screen and (min-width: 75em) and (max-width:85em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: auto;
    }
    .db-img-grid-line-grid {
        left: 0px;
        height: auto;
        width: 100%;
        display: flex;
        align-content: flex-start;
        align-items: flex-start;
        top: -15em;
    }
}

@media screen and (min-width: 86em) and (max-width:92em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: auto;
    }
    .db-img-generator-line {
        /* height: 65% !important;
        top: -18rem !important; */
        top: -10rem !important;
    }
}

@media screen and (min-width: 93em) and (max-width:95em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: auto;
    }
}

@media screen and (min-width: 96em) and (max-width:100em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: auto;
    }
}

@media screen and (min-width: 101em) and (max-width:105em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: auto;
    }
    .db-img-generator-line {
        top: -11.5rem !important;
    }
}

@media screen and (min-width: 105em) and (max-width:115em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: -6.5em !important;
    }
    .db-img-generator-line {
        top: -12rem !important;
    }
}

@media screen and (min-width: 116em) and (max-width:125.5em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: -7em !important;
    }
}

@media screen and (min-width: 301em) and (max-width:500em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 0em !important;
        right: -25% !important;
        top: -8em !important;
        height: 12em !important;
    }
    .db-img-generator-line {
        top: -16rem !important;
    }
}

@media screen and (min-width: 201em) and (max-width:300em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 0em !important;
        right: -25% !important;
        top: -11em !important;
        height: 15em !important;
    }
    .db-img-generator-line {
        height: 50% !important;
        top: -15rem !important;
    }
}

@media screen and (min-width: 170em) and (max-width:200em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 6em !important;
        right: -25% !important;
        top: 0 !important;
    }
}

@media screen and (min-width: 170em) and (max-width:180em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: auto !important;
        right: -25% !important;
        top: -11em !important;
    }
    .db-img-generator-line {
        height: 42% !important;
        top: -13rem !important;
    }
}

@media screen and (min-width: 125.01em) and (max-width:1992px) {
    .db-img-generator-line {
        height: 40% !important;
        top: -13rem !important;
    }
}

@media screen and (min-width: 126em) and (max-width:169em) {
    .db-img-unit-line {
        width: 100% !important;
        left: 0 !important;
        bottom: 0 !important;
        right: -25% !important;
        top: -10em !important;
    }
    .db-img-generator-line {
        height: 40% !important;
        top: -13rem !important;
    }
}

@media (max-width: 991px) {
    .responsive-logo {
        display: flex;
        align-items: center;
        justify-content: center;
        align-content: center;
        flex-direction: row;
        flex-wrap: nowrap;
    }
    .responsive-logo .header-logo {
        top: auto !important;
        height: 100% !important;
        max-height: 100% !important;
        display: flex;
        align-items: center;
        justify-content: center;
        align-content: center;
    }
    .responsive-logo .header-logo .mobile-logo {
        width: 50% !important;
    }
}


/* Width: 4000–7050px */

@media (min-width: 4000px) and (max-width: 7050px) {
    .db-img-dcsolar-line {
        left: -55%;
    }
}

@media (min-width: 2500px) and (max-width: 4000px) {
    .db-img-dcsolar-line {
        left: -60%;
    }
}


/* Width: 1921–2160px */

@media (min-width: 1900px) and (max-width: 2500px) {
    .db-img-dcsolar-line {
        left: -64%;
    }
}


/* ── ECM power-flow lines (SVG, no GIF) — scales with layout & browser zoom ── */

svg.ecm-flow-line-svg {
    pointer-events: none;
    overflow: visible;
    display: block;
    max-width: 100%;
    height: auto;
    shape-rendering: geometricPrecision;
}


/* Device dashboard: SVG flow lines should align like the old GIFs.
   The old classes (.db-img-grid-line, .db-img-generator-line, etc.) already
   have a lot of breakpoint-specific top/left tuning. SVGs must NOT inherit
   translate(50%,50%) from those image rules, otherwise they drift. */

svg.db-img-grid-line.ecm-flow-line-svg,
svg.db-img-grid-line-new.ecm-flow-line-svg,
svg.db-img-generator-line-new.ecm-flow-line-svg,
svg.db-img-acsolar-line.ecm-flow-line-svg,
svg.db-img-dcsolar-line.ecm-flow-line-svg,
svg.db-img-unit-line-new.ecm-flow-line-svg,
svg.db-img-unit-line.ecm-flow-line-svg {
    transform: none !important;
    height: auto;
}


/* Give SVGs intrinsic-like dimensions similar to the GIFs */

svg.db-img-grid-line.ecm-flow-line-svg,
svg.db-img-grid-line-new.ecm-flow-line-svg {
    width: 320px;
    height: 70px;
}

svg.db-img-generator-line-new.ecm-flow-line-svg {
    width: 280px;
    height: 210px;
}

svg.db-img-acsolar-line.ecm-flow-line-svg {
    width: 280px;
    height: 210px;
}

svg.db-img-dcsolar-line.ecm-flow-line-svg {
    width: 120px;
    height: 120px;
}

svg.db-img-unit-line-new.ecm-flow-line-svg,
svg.db-img-unit-line.ecm-flow-line-svg {
    width: 100%;
    height: 70px;
}

svg.ecm-flow-line-svg .animated-line-path {
    fill: none;
    stroke-width: 4.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 7 12;
    opacity: 0.95;
    animation: ecmFlowDash 0.95s linear infinite;
}


/* "Track + knob" style (matches the solid line with movable circle) */

svg.ecm-flow-style-knob .animated-line-path {
    stroke-dasharray: none;
    animation: none;
    stroke-width: 3.5;
    opacity: 0.9;
}


/* DC Solar vertical connector: make it a bit stronger for visibility */

svg.ecm-flow-style-knob .animated-line-path.ecm-stroke-dcsolar {
    stroke-width: 4.6;
    opacity: 1;
}


/* Underlay "track" behind DC connector */

svg.ecm-flow-style-knob .ecm-flow-track {
    fill: none;
    stroke-width: 7.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Make the DC track match DC Solar colour (soft tint under the main stroke) */

svg.ecm-flow-style-knob .ecm-flow-track.ecm-stroke-dcsolar {
    stroke: rgba(220, 53, 69, 0.22);
}

svg.ecm-flow-style-knob .ecm-flow-knob {
    fill: #eef1f4;
    stroke-width: 3.6;
    opacity: 0.98;
    filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, 0.18));
}

@media (prefers-reduced-motion: reduce) {
    svg.ecm-flow-style-knob .ecm-flow-knob {
        filter: none;
    }
}

svg.ecm-flow-line-svg.ecm-flow-reverse .animated-line-path {
    animation-direction: reverse;
}

@keyframes ecmFlowDash {
    to {
        stroke-dashoffset: -19;
    }
}


/* Stroke colours (match dashboard / battery semantics) */

svg.ecm-flow-line-svg .ecm-stroke-gen {
    stroke: #1f3d4e;
}

svg.ecm-flow-line-svg .ecm-stroke-acsolar {
    stroke: #ffc107;
}

svg.ecm-flow-line-svg .ecm-stroke-dcsolar {
    stroke: #dc3545;
}

svg.ecm-flow-line-svg .ecm-stroke-grid {
    stroke: #0dcaf0;
}

svg.ecm-flow-line-svg .ecm-stroke-load {
    stroke: #198754;
}

svg.ecm-flow-line-svg .ecm-stroke-battery-grid {
    stroke: #28a745;
}

svg.ecm-flow-line-svg .ecm-stroke-battery-solar {
    stroke: #e74c3c;
}

svg.ecm-flow-line-svg .ecm-stroke-battery-load {
    stroke: #17a2b8;
}

@media (prefers-reduced-motion: reduce) {
    svg.ecm-flow-line-svg .animated-line-path {
        animation: none;
        stroke-dasharray: none;
    }
}


/* Overlay that draws power-flow lines between cards */

.ecm-flow-overlay-wrap {
    position: relative;
}

svg.ecm-flow-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}


/* For the new "track + knob" connectors, keep the stroke visible even when cards overlap slightly */

svg.ecm-flow-overlay.ecm-flow-style-knob {
    z-index: 4;
}


/* keep cards above overlay */

.ecm-flow-overlay-wrap .card {
    position: relative;
    z-index: 3;
}


/* Battery/device overlays: ignore legacy responsive "display:none" rules for line elements.
   Visibility should be controlled only by the JS toggling `d-none`. */

#ecm-flow-overlay-battery .bty-get-to-battry-line-img,
#ecm-flow-overlay-battery .bty-grid-to-battery-line-img,
#ecm-flow-overlay-battery .bty-solar-to-battery-line-img,
#ecm-flow-overlay-battery .bty-battry-to-load-line-img,
#ecm-flow-overlay-device .gen-to-unit-animation-img,
#ecm-flow-overlay-device .grid-to-unit-animation-img,
#ecm-flow-overlay-device .unit-to-grid-animation-img,
#ecm-flow-overlay-device .acsolar-to-unit-animation-img,
#ecm-flow-overlay-device .dcsolar-to-unit-animation-img,
#ecm-flow-overlay-device .unit-to-load-animation-img,
#ecm-flow-overlay-device .load-to-unit-animation-img {
    display: inline !important;
}


/* Ensure Bootstrap `d-none` can always hide overlay lines/knobs (even with rules above). */

#ecm-flow-overlay-device .animation-line.d-none,
#ecm-flow-overlay-battery .animation-line.d-none,
#ecm-flow-overlay-device .ecm-flow-knob.d-none,
#ecm-flow-overlay-battery .ecm-flow-knob.d-none {
    display: none !important;
}


/* Reset legacy positioning rules (they were for <img>/<svg> blocks, not <path> overlay lines) */

#ecm-flow-overlay-battery .bty-get-to-battry-line-img,
#ecm-flow-overlay-battery .bty-grid-to-battery-line-img,
#ecm-flow-overlay-battery .bty-solar-to-battery-line-img,
#ecm-flow-overlay-battery .bty-battry-to-load-line-img,
#ecm-flow-overlay-device .gen-to-unit-animation-img,
#ecm-flow-overlay-device .grid-to-unit-animation-img,
#ecm-flow-overlay-device .unit-to-grid-animation-img,
#ecm-flow-overlay-device .acsolar-to-unit-animation-img,
#ecm-flow-overlay-device .dcsolar-to-unit-animation-img,
#ecm-flow-overlay-device .unit-to-load-animation-img,
#ecm-flow-overlay-device .load-to-unit-animation-img {
    position: static !important;
    transform: none !important;
}


/* Device-details layout: old design used heavy translate() stacking for GIF lines.
   With the SVG overlay we keep natural document flow so the Unit card stays centered
   and the DC Solar card doesn't overlap. Scope under overlay wrap to avoid impacting
   other legacy pages. */

.ecm-flow-overlay-wrap .db-grid-and-load-row-card,
.ecm-flow-overlay-wrap .db-dcsolar-row-card,
.ecm-flow-overlay-wrap .last-row-card,
.ecm-flow-overlay-wrap .battry-card-height {
    transform: none !important;
    margin-bottom: 0 !important;
}

.ecm-flow-overlay-wrap .middel-unit-range {
    margin-top: 0 !important;
}


/* Dashboard top row: two separate cards, equal height */
.dashboard-pair-row {
    align-items: stretch;
    margin-bottom: 1.5rem;
}

.dashboard-pair-row > [class*="col-"] {
    display: flex;
}

.dashboard-pair-row .card {
    width: 100%;
    margin-bottom: 0;
}

.dashboard-pair-row .card-body.ch {
    min-height: 340px;
    display: flex;
    flex-direction: column;
}

.dashboard-alerts-scroll {
    flex: 1 1 auto;
    min-height: 240px;
    overflow: auto;
    display: flex;
    flex-direction: column;
}

/* Account Summary — 2×2 stat tiles */
.account-summary-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 240px;
    min-width: 0;
}

.account-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
    row-gap: 16px;
    column-gap: 16px;
    gap: 16px;
    width: 100%;
    flex: 1 1 auto;
    align-content: center;
}

.account-summary-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 88px;
    height: auto;
    padding: 14px 12px;
    border-radius: 10px;
    background: #f7f9fb;
    border: 1px solid #eaedf1;
}

.account-summary-tile__icon {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 1.1rem;
    color: #fff;
}

.account-summary-tile__icon--users,
.account-summary-tile__icon--groups,
.account-summary-tile__icon--fleet {
    background: #1f3d4e;
}

.account-summary-tile__icon--connected {
    background: #aac760;
}

.account-summary-tile__pro-icon {
    width: 20px;
    height: 20px;
    filter: brightness(0) invert(1);
}

.account-summary-tile__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    flex: 1 1 auto;
    gap: 2px;
}

.account-summary-tile__value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.15;
    color: #1f3d4e;
}

.account-summary-tile__label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #788085;
    line-height: 1.25;
}

.account-summary-tile--connected {
    background: #f4f8ec;
    border-color: #d8e8b8;
}

.account-summary-tile--connected .account-summary-tile__value {
    color: #5a7a2e;
}

.account-summary-tile__dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 4px;
    border-radius: 50%;
    background: #aac760;
    vertical-align: middle;
}

.dashboard-top-summary-row {
    margin-bottom: 0.5rem;
}

@media (max-width: 575px) {
    .dashboard-pair-row > [class*="col-"] {
        display: block;
        margin-bottom: 1rem;
    }

    .account-summary-body,
    .dashboard-alerts-scroll {
        min-height: 200px;
    }

    .account-summary-grid {
        grid-template-rows: repeat(2, minmax(88px, 1fr));
        gap: 10px;
    }

    .account-summary-tile {
        padding: 12px 10px;
    }

    .account-summary-tile__value {
        font-size: 1.3rem;
    }
}